Ultima modifica da un moderatore:
Salve community, oggi voglio scrivere una breve guida per i principianti, non mi reputo un esperto ma voglio condividere le mie conoscenze con la community.
So che per molti può essere una guida inutile o banale, ma credo che nessuno nasce "imparato" e a qualcuno alle prime armi nè può trarre tesoro.
1) La fase iniziale che ogni Quest deve avere:
2)In questa fase si inizia a realizzare le basi del nostro dungeon, daremo il value di un npc che modificherete secondo le vostre esigente e le coordinate della vostra mappa per iniziare il dungeon
Beh, si vede si tratta di un semplice NPC che vi porterà a quella mappa X per avviare il dungeon.
3)Ora andremo nella mappa , per dare inizio al dungeon bisogna uccidere un mob
Una volta che il pg ha ucciso il mob inizierà il dungeon
4) potete personalizzarlo inserendo un timer di 5 secondi
timer("inizio_dungeon", 5)
end
5) in questa fase iniziamo il dungeon dopo il tempo stabilito dal timer
when inizio_dungeon.timer begin
6)Qui in questa fase useremo la prima funzione "d" del dungeon e sarà fondamentale per salire di piano
d.new_jump_all(23, 2312, 2122)
Mi spiego: la funzione visualizzata teletrasporta tutti coloro che sono in quella mappa a quelle coordinate (X e Y), il numero 23, che è di prima indica l'indice di quella mappa.
7)Per il settimo passo utilizzeremo una nuova funzione
d.setf("freddyryk", 1)
Come mai abbiamo messo il "d.setf"?, esso indica un nome iniziale denominato nel nostro caso"freddyryk", è possibile inserire qualsiasi nome, ma sempre in tutta la d.setf dovrebbe avere lo stesso nome della funzione; il numero "1" indica che questa è la prima d.setf, in altre parole, il primo piano del dungeon.
Attenzione, qui comincia a giocare la nostra immaginazione e iniziamo a personalizzare il dungeon. Richiamare i mob con la funzione "d.spawn_mob".
Sarebbe simile:
8)Nel punto 8 inseriremo il mob da uccidere per salire al piano successivo
Ora vediamo una nuova caratteristica, per voi ed è il "d.getf" il quale è simile a "d.setf",è possibile inserire il nome che abbiamo dato a tutti i piani," freddyryk", nel mio caso, ma puoi mettere un altro nome; "1" non si riferisce anche come "d.setf", in altre parole significa che siamo al primo piano.
9) inseriamo di nuovo un timer è possibile anche non inserirlo , si basa sulla vostra fantasia
10)in questo passaggio abbiamo richiamato la funzione del timer come citato in precedenza, e abbiamo inserito dei mob o metin da uccidere è tutto personalizzabile secondo le vostre fantasie
11) richiamiamo la funzione di distruggere il metin per salire al piano successivo , è simile ai passaggi precedenti.
12)In questa fase abbiamo inserito il timer come già citato in precendenza e in più abbiamo inserito un modo simile alla torre per salire al piano successivo, cioè quello di droppare una chiave dai mob cliccare su di essa e passare al piano successivo.
13) In questa fase richiamiamo la funzione del timer come abbiamo visto in precedenza
In questo caso abbiamo inserito un bos , che una volta ucciso dropperà un item e uscirà un annuncio globale di chi ha ucciso il bos e per concludere dopo 10 secondi vi farà uscire dal dungeon
14) In questo passo aggiungeremo la funzione per portarci fuori dal dungeon
15) Infine la quest finale
Guarda anche : http://www.inforge.net/community/me...vati/413091-release-il-mio-primo-dungeon.html
So che per molti può essere una guida inutile o banale, ma credo che nessuno nasce "imparato" e a qualcuno alle prime armi nè può trarre tesoro.
1) La fase iniziale che ogni Quest deve avere:
Codice:
quest dungeon_principiante begin
state start begin
2)In questa fase si inizia a realizzare le basi del nostro dungeon, daremo il value di un npc che modificherete secondo le vostre esigente e le coordinate della vostra mappa per iniziare il dungeon
Codice:
when 20090.chat."Dungeon Principiante" begin
say_title("Dungeon:")
say("Ciao viaggiatore, oggi andremo")
say("in un luogo magico dove è possibile esplorare")
say("nuove terre")
say("")
say("Vuoi andare?")
local dungeon = select("Si" , "No")
if dungeon == 1 then
pc.warp(6521200, 1231200)
elseif dungeon == 2 then
return
end
end
Beh, si vede si tratta di un semplice NPC che vi porterà a quella mappa X per avviare il dungeon.
3)Ora andremo nella mappa , per dare inizio al dungeon bisogna uccidere un mob
Codice:
when 101.kill begin
Una volta che il pg ha ucciso il mob inizierà il dungeon
4) potete personalizzarlo inserendo un timer di 5 secondi
timer("inizio_dungeon", 5)
end
5) in questa fase iniziamo il dungeon dopo il tempo stabilito dal timer
when inizio_dungeon.timer begin
6)Qui in questa fase useremo la prima funzione "d" del dungeon e sarà fondamentale per salire di piano
d.new_jump_all(23, 2312, 2122)
Mi spiego: la funzione visualizzata teletrasporta tutti coloro che sono in quella mappa a quelle coordinate (X e Y), il numero 23, che è di prima indica l'indice di quella mappa.
7)Per il settimo passo utilizzeremo una nuova funzione
d.setf("freddyryk", 1)
Come mai abbiamo messo il "d.setf"?, esso indica un nome iniziale denominato nel nostro caso"freddyryk", è possibile inserire qualsiasi nome, ma sempre in tutta la d.setf dovrebbe avere lo stesso nome della funzione; il numero "1" indica che questa è la prima d.setf, in altre parole, il primo piano del dungeon.
Attenzione, qui comincia a giocare la nostra immaginazione e iniziamo a personalizzare il dungeon. Richiamare i mob con la funzione "d.spawn_mob".
Sarebbe simile:
d.setf("freddyryk", 1)
d.spawn_mob(101, 12312, 123123)
d.notice("Sei salito al piano successivo!!!!")
8)Nel punto 8 inseriremo il mob da uccidere per salire al piano successivo
when 101.kill d.getf("freddyryk") == 1 begin
d.notice("Hai ucciso il terribile cane XD")
d.notice("Avanza al piano successivo.")
Ora vediamo una nuova caratteristica, per voi ed è il "d.getf" il quale è simile a "d.setf",è possibile inserire il nome che abbiamo dato a tutti i piani," freddyryk", nel mio caso, ma puoi mettere un altro nome; "1" non si riferisce anche come "d.setf", in altre parole significa che siamo al primo piano.
9) inseriamo di nuovo un timer è possibile anche non inserirlo , si basa sulla vostra fantasia
timer("secondo_dungeon", 5)
end
10)in questo passaggio abbiamo richiamato la funzione del timer come citato in precedenza, e abbiamo inserito dei mob o metin da uccidere è tutto personalizzabile secondo le vostre fantasie
Codice:
when secondo_dungeon.timer begin
d.jump_all(312312, 12131)
d.setf("freddyryk", 2)
d.spawn_mob(8025, 431232, 412421)
d.notice("Siete al secondo piano")
d.notice("Uccidi metin o mob usate la vostra fantasia.")
end
11) richiamiamo la funzione di distruggere il metin per salire al piano successivo , è simile ai passaggi precedenti.
Codice:
when secondo_dungeon.timer begin
d.jump_all(312312, 12131)
d.setf("freddyryk", 2)
d.spawn_mob(8025, 431232, 412421)
d.notice("Siete al secondo piano")
d.notice("testo")
end
when 8025.kill with d.getf("freddyryk") == 2 begin
d.notice("Distruggi il metin")
d.notice("avanza di piano....")
timer("terzo_dungeon", 5)
end
12)In questa fase abbiamo inserito il timer come già citato in precendenza e in più abbiamo inserito un modo simile alla torre per salire al piano successivo, cioè quello di droppare una chiave dai mob cliccare su di essa e passare al piano successivo.
Codice:
when terzo_dungeon.timer begin
d.jump_all(3123, 123123)
d.setf("freddyryk", 3)
d.setf("drop_dungeon", 0)
d.spawn_mob(103, 312312, 123123)
d.spawn_mob(104, 123123, 123123)
d.spawn_mob(105, 123123, 123123)
d.spawn_mob(103, 312312, 123123)
d.spawn_mob(104, 123123, 123123)
d.spawn_mob(105, 123123, 123123)
d.notice("Trova la chiave!!!!!!!!!!")
end
when 103.kill or 104.kill or 105.kill with d.getf("freddyryk") == 3 begin
d.setf("drop_dungeon", d.getf("drop_dungeon")+1)
if d.getf("drop_dungeon") == 2
game.drop_item(43003, 1)
d.setf("drop_dungeon", 0)
end
end
when 43003.use begin
item.remove()
timer("quarto_dungeon", 5)
end
13) In questa fase richiamiamo la funzione del timer come abbiamo visto in precedenza
Codice:
when quarto_dungeon.timer begin
d.jump_all(12312, 13212)
d.setf("freddyryk", 4)
d.spawn_mob(108, 12312, 12312)
d.notice("Batti il boss e vinci il dungeon ")
end
when 108.kill with d.getf("freddyryk") == 4 begin
game.drop_item(289, 1)
notice_all("il giocatore ".. pc.get_name() .." ha ucciso il bos...")
d.notice("Testo..")
d.notice("Tieni 10 secondi per ritirare il premio.")
timer("fine_dungeon", 10)
end
In questo caso abbiamo inserito un bos , che una volta ucciso dropperà un item e uscirà un annuncio globale di chi ha ucciso il bos e per concludere dopo 10 secondi vi farà uscire dal dungeon
14) In questo passo aggiungeremo la funzione per portarci fuori dal dungeon
Codice:
when fine_dungeon.timer begin
d.exit_all()
end
end
end
15) Infine la quest finale
Codice:
quest dungeon_principiante begin
state start begin
when 20090.chat."Dungeon Principiante" begin
say_title("Dungeon")
say("Ciao viaggiatore, oggi andremo")
say("in un luogo magico dov'è possibile esplorare")
say("nuove terre")
say("")
say("vuoi andare?")
local dungeon = select("Si" , "No")
if dungeon == 1 then
pc.warp(6521200, 1231200)
elseif dungeon == 2 then
return
end
end
when 101.kill begin
timer("inizio_dungeon", 5)
end
when inizio_dungeon.timer begin
d.new_jump_all(23, 2312, 2122)
d.setf("freddyryk", 1)
d.spawn_mob(102, 12312, 123123)
d.notice("Sei al primo piano!!!!")
d.notice("Uccidi il cane.")
end
when 102.kill d.getf("freddyryk") == 1 begin
d.notice("Hai ucciso il terribile cane ...")
d.notice("Avanza al piano successivo.")
timer("secondo_dungeon", 5)
end
when secondo_dungeon.timer begin
d.jump_all(312312, 12131)
d.setf("freddyryk", 2)
d.spawn_mob(8025, 431232, 412421)
d.notice("Siete al secondo piano")
d.notice("Testo.")
end
when 8025.kill with d.getf("freddyryk") == 2 begin
d.notice("Avete distrutto il metin")
d.notice("Avanza al piano successivo....")
timer("terzo_dungeon", 5)
end
when terzo_dungeon.timer begin
d.jump_all(3123, 123123)
d.setf("freddyryk", 3)
d.setf("drop_dungeon", 0)
d.spawn_mob(103, 312312, 123123)
d.spawn_mob(104, 123123, 123123)
d.spawn_mob(105, 123123, 123123)
d.spawn_mob(103, 312312, 123123)
d.spawn_mob(104, 123123, 123123)
d.spawn_mob(105, 123123, 123123)
d.notice("Trova la chiave!!!!!!!!!!")
end
when 103.kill or 104.kill or 105.kill with d.getf("freddyryk") == 3 begin
d.setf("drop_dungeon", d.getf("drop_dungeon")+1)
if d.getf("drop_dungeon") == 2
game.drop_item(43003, 1)
d.setf("drop_dungeon", 0)
end
end
when 43003.use begin
item.remove()
timer("quarto_dungeon", 5)
end
when quarto_dungeon.timer begin
d.jump_all(12312, 13212)
d.setf("freddyryk", 4)
d.spawn_mob(108, 12312, 12312)
d.notice("Battere il boss finale e vincere il Dungeon")
end
when 108.kill with d.getf("freddyryk") == 4 begin
game.drop_item(289, 1)
notice_all("Il giocatore ".. pc.get_name() .." ha ucciso il bos...")
d.notice("testo...")
d.notice("testo..")
timer("fine_dungeon", 10)
end
when fine_dungeon.timer begin
warp_to_all_village()
end
end
end
Guarda anche : http://www.inforge.net/community/me...vati/413091-release-il-mio-primo-dungeon.html


