Domanda [AIUTO]Creare una quest e dopo averla finita niente ricompensa ma....

Stato
Discussione chiusa ad ulteriori risposte.

Sa77eR

Utente Emerald
2 Novembre 2009
1,737
74
159
545
Ciao , Mi trovo in un caso che siceramente mi viene difficile superarlo.
Il punto è questo :

* Ho creato una " Quest " con il Quest Tool Di Salvodm che parte da livello 40 , in pratica una volta finita ( Esempio la quest richiedi di killare 5 cani ) vado dalla bottegaia ( colei che mi chiede di fare la missione ) e non mi da la ricompensa ( o meglio la ricevo ) ma subito dopo aver ricevuto la ricompensa si attivi un'altra quest ( collegata con quella della bottegaia ) da un'altro NPC .

Un esempio semplificato [ Le miss. Del Diario Di Uriel , Metin2.it ] ..
Tranne che la quest non sbalzi da livello a livello ma subito dopo.

Non so se mi sono spiegato bene , se siete riusciti a capire e se sapete come fare vi ringrazio ^^
Ovviamente +1 .
 
si ho capito, prima di tutto, non so cosa sia ilo quest tool :S
e seconda cosa ne capisci qualcosa?
terza cosa (lol) posti il codice?


edit: ma ti deve dare una ricompensa o attivarti un altra missione? o entrambe? =)
 
Diciamo entrambe , una volta che so come attivare l'altra appena ho finito la prima saprò dare anche la ricompensa ! alla fine dovrebbe essere un codice
 
si infatti, allora, puoi usare un pc.setqf, alla fine della prima missione (dei 5 cani diciamo) nel posto dove vuoi mettere la ricompensa aggiungici anche "pc.setqf ("missione2",1)" (senza apici)

e poi all'inizio della quest che si dovrebbe attivare metti "when quicidevimetterelatuacondizione begin with pc.getqf("missione2")==1"
prova se nn va usiamo un if =)
 
potresti inserire un setqf nella ricompensa, e poi nell'avvio dell'altra quest fare il controllo di questo qf. (Se mi passi le 2 quest te le collego)
 
No , Vabbe ho risolto ... Non mi serve più che vengano collegate ... se mi servirà mi arrangierò ^^

Comunque volevo sapere se i crediti delle missioni ( Create col Tool Di S4lv0Dm ) si vedranno in gioco , oppure solo nello script ??
 
No , Vabbe ho risolto ... Non mi serve più che vengano collegate ... se mi servirà mi arrangierò ^^

Comunque volevo sapere se i crediti delle missioni ( Create col Tool Di S4lv0Dm ) si vedranno in gioco , oppure solo nello script ??
Solo nello script, sono io S4LV0DM comunque
 
Ultima modifica:
LOL sgamato in piena leechata xD

Comunque io buttandola lì proverei a usare un set_state("<NomeSecondaMissione>"), invece di usare set_state("__COMPLETE__"), lo trovo molto più comodo, soprattutto perchè personalmente proverei a scrivere una sola grande missione, più facile da correggere e da "leggere"..
Peccato che non sappia assolutamente se funzioni :D

Ti conviene dare un occhio alla guida di S4LV0DM (la allego perchè spero non mi odierà essendo nel post sopra, volevo linkarla ma non la trovo più.. sono sempre il solito ._.)
-- Lezione QUEST 2 by S4LV0DM
--Bene, nella prima lezione abbiamo imparato a come strutturare una quest.
--
--Gli argomenti stavolta saranno:
--1. Il setqf ed il getqf
--2. Il q.set_clock()
--3. Gli input e i select
--4. Alcuni comandi di base
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- LE VARIABILI
--Le variabili sono dichiarate con una parola di nome local all'inizio. Esempio:
--"local a"
--In questo caso abbiamo solamente creato la variabile a con valore nil(nullo).
--Per dare un valore alla variabile, ci basta solo fare così:
--
--"local a = "PATATEEEEEE""
--
--Quindi ora se facciamo say(a), dirà PATATEEEEEEEE xD.
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- COME USARE GLI INPUT
--Gli input servono a fare scrivere un pg, ESEMPIO:
----------------------
--"local ciao = input()"
-----------------------
--In questo caso, se avessimo fatto say(ciao), avrebbe scritto quello che avevano scritto prima.
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- COME USARE I SELECT
--I select sono dei pulsanti, che ti possono dare delle scelte. ESEMPIO:
--local siono = select("Si","No")
--In questo caso, per dare una differenza se si clicca si o no basta fare così:
--
--if siono == 1 then --Se clicca sulla prima scelta(Si)
--say("Meno male hai scelto si!")
--return--Esce
--elseif siono == 2 then --Se clicca invece su no
--return --Esce"
--
--In pratica con questo vi ho spiegato l'if <.<
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- COME USARE IL PC.SETQF ED IL PC.GETQF
--Il setqf immagazzina delle informazioni, dentro il pg.
--Il setqf può essere utile per fare un' opzione che puoi usare una sola volta, oppure anche per fare un counter di animali da killare.
--La struttura del setqf è questa:
---------------------------------
--"say("Quanti anni hai?")
--local anni = input()
--say("Anni immagazzinati!")
--pc.setqf("anni",anni) -- Salva gli anni nel qf"
---------------------------------------------------
--Il getqf, invece, scrive le informazioni immagazzinate, per esempio:
----------------------------------------------------------------------------------------------------
--local ciao = pc . getqf ( "anni") --Qui salviamo la variabile ciao, adesso ciao significa anni. --
--say("Tu hai " .. ciao .. " anni!" ) --Qui scriviamo quanti anni ha" --
----------------------------------------------------------------------------------------------------
--Quindi la banca(senza assegni) è fatta principalmente di qf!
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- COME USARE IL Q.SET_CLOCK()
--Il q.set_clock, serve a dare una scadenza a qualcosa
--Struttura:
--
--"pc.setqf("nomeqflimite", get_time()+20*60) --In questo caso 20*60 sarebbe 20 minuti, se fai 20*60*60, sono 20 ore. Spero di essermi spiegato
--q.set_clock("Tempo rimanente ", pc.getqf("nomeqflimite")-get_time()) --Qui salva il q.set_clock."
--
--E adesso? Come si fa a mettere un blocco?
--
--"when 20094.chat."Troppo tardi..." with pc . getqf("nomeqflimite") < get_time() begin
--say("Mi dispiace, sei stato troppo lento")
--set_state("__COMPLETE__")
--end
--
--Invece per quando è in tempo, basta mettere >= get_time al posto di <
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
-- COMANDI DI BASE
--Ecco una lista dei comandi di base che potreste usare per creare quest/npc.
--say("parola") --Scrive in un npc.
--say_reward("scrive") -- Scrive rosso in un npc.
--pc.give_item2("valueitem",quantita) --Da un item.
--pc.remove_item("valueitem",quantita) --Rimuove un item.
--pc.count_item("valueitem") --E' una variabile; restituisce quanti item si hanno.
--chat("Messaggio") --Scrive nella chat visibile solo da un pg.
--notice_all("Scrive nella chat gm") --Scrive nella chat gm.
--pc.get_empire() --E' una variabile; restituisce il regno del pg.
--pc.get_job() --E' una variabile; restituisce la propria razza.
--pc.is_gm() --Questa è boolean, quindi restituisce true o false;Se un pg è gm.
--npc.is_pc() --Boolean;Se un npc è un pg.
--npc.get_empire() --Variabile;Restituisce il regno di un npc.
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------


quest lezione2 begin --Nominazione

------state start begin --Primo state

------------when letter begin --Arriva la lettera
------------------send_letter("Dirigiti dal fabbro!") --Invia la lettera
------------end--Chiusura when

------------when button or info begin --Quando apre la lettera
------------------say("Il fabbro ha un compito per te!")
------------end --Chiusura when

------------when 20016.click begin --Quando clicchi sul fabbro
------------------say_title("Fabbro:")
------------------say(pc.get_name() .. "ti prego, va dal mercante d'armi in 30 minuti!")
------------------say("Devo preparare una cena, e mi serve un coltello!")
------------------pc.setqf("illimite", get_time()+30*60) --Qui salva il tempo
------------------q.set_clock("Tempo rimanente ", pc.getqf("illimite")-get_time()) --Qui dà il tempo rimanente
------------------set_state("vadalui") --Ti porta al nuovo state
------------end --Chisuura when

------end --Chiusura state

-------------------------------------------------------------------------

------state vadalui begin --Nuovo state

------------when letter begin --Arriva la lettera
------------------send_letter("Va dal mercante d'armi") --Invia la lettera
------------end --Chiusura when

------------when button or info begin --Quando apre la lettera
------------------say("Va dal mercante d'armi!")
------------end --Chiusura when

------------when login or levelup or kill or chat with pc.getqf("illimite") < get_time() begin --Quando il tempo è scaduto
------------------chat("Missione fallita, tempo scaduto")
------------------set_state("__COMPLETE__") --Fine
------------end --Chisuura when

------------when 9001.click with pc.getqf("illimite") >= get_time() begin --Quando sei in tempo
------------------say("Sì, ecco a te il coltello")
------------------pc .give_item2("valuecoltello",1)
------------------set_state("ritorna") --Ti porta al nuovo state
------------end --Chisura when

------end --Chisuura state

--------------------------------------------------------------------

------state ritorna begin

------------when login or levelup or kill or chat with pc.getqf("illimite") < get_time() begin --Quando il tempo è scaduto
------------------chat("Missione fallita, tempo scaduto")
------------------set_state("__COMPLETE__") --Fine
------------end --Chiusura when

------------when 20016.click with pc.getqf("illimite") >= get_time() and pc.count_item("valuecoltello") >= 1 begin --Quando sei ancora in tempo ed hai il coltello e clicchi sul fabbro
------------------say("Grazie!")
------------------pc.give_item2("199",1)
------------------set_state("__COMPLETE__") --Fine
------------end --Chisura when

------end --Chisura state

----------------------------------------------------------------------------

------state __COMPLETE__ begin --Lo state vuoto
------end --Chisura state

end --Chiusura quest

CREDIT BY DevilHunteR!

Tutti i trattini indicano un COMMENTO. Nell'esempio della missione li ho aggiunti per mantenere l'indentatura e farti vedere bene dove iniziano e finiscono le cose ^^

Si vede bene l'utilizzo del set_state e più o meno come sono impostate in realtà le quest (visto che usi il tool magari non sei ancora andato a curiosare)

Ancora grazie a DevilHunter, che ha scritto delle guide molto utili e complete ^^
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom