Daha önce başka platformda paylaştığım burda paylaşmadığımı fark ettim.
[defname questlog]
// turu 1 getirme
// turu 2 kesme
quest_gorev 14 // burada kaç tane görev olduğunu yazıyoruz.
quest_1_name Dark skeleton // Görevin adı
quest_1_aciklama Harm görevlerine hazırmısın, 20 tane dark skeleton kes ödülleri al // Görev açıklama
quest_1_turu 2 // En üstteki turu olarak belirttim
quest_1_level 1 // Burası level sunucusu için hazırlanmıştır.
quest_1_npc c_gold // Burada hangi npcyi keseceğini yada hangi itemi isteyeceğini _npc yazdığına aldanmayın
quest_1_sayi 20 // Burada kaçtane gerektiğini
quest_1_verilis 2 // Bu kısım ise seçmeli olarak ayarlanmıştır 2 ise hepsini alır 1 ise seçer yada tam terside olabilir hatırlamıyorum
quest_1_odulsayi 25000,1,1,1 // alttaki oduliteme göre sıralayın kaçtane eşya varsa ona göre virgülleri koyun
quest_1_odulitem i_gold,i_bag_power,i_kryss_power,i_bow_poison // yukarıdaki açıklamaya göre ayarlayın.
quest_2_name Moloch
quest_2_aciklama Benim için 10 tane Moloch kes sana süpriz öldüllerim var.
quest_2_turu 2 //
quest_2_level 1
quest_2_npc c_moloch
quest_2_sayi 10
quest_2_odulsayi 35000,1
quest_2_verilis 2
quest_2_odulitem i_gold,i_deed_hediye
quest_3_name Daemon bone
quest_3_aciklama Benim için 50 tane Daemon bone getir. Unutma cesedi parçalamalısın.
quest_3_turu 1 //
quest_3_npc i_reag_daemon_bone
quest_3_level 1
quest_3_sayi 50
quest_3_odulsayi 45000,1
quest_3_odulitem i_gold,i_deed_hediye
quest_4_name Hydra
quest_4_aciklama Benim için 30 tane Hydra kes aşağıdaki ödülleri kap!
quest_4_turu 2 //
quest_4_npc c_hydra
quest_4_level 1
quest_4_sayi 30
quest_4_odulsayi 55000,1,1
quest_4_odulitem i_gold,i_bag_vanq,i_deed_hediye
quest_5_name Kraken
quest_5_aciklama Shame de krakenler doluşmuş. Bu görevi bitirirsen shame birazda olsa rahatlayabilir.?
quest_5_turu 2 //
quest_5_npc c_m_kraken
quest_5_level 1
quest_5_sayi 50
quest_5_verilis 1
quest_5_odulsayi 65000,1,1,1
quest_5_odulitem i_gold,i_deed_hediye,i_deed_hediye,i_deed_hediye
quest_6_name Minotaur Scout
quest_6_aciklama Raid dungeon Minotaur Scout kes yada kesen bi party de ol.
quest_6_turu 2 //
quest_6_npc c_minotaur_Scout
quest_6_level 1
quest_6_sayi 1
quest_6_verilis 1
quest_6_odulsayi 125000,1,1,1
quest_6_odulitem i_gold,i_deed_hediye,i_deed_hediye,i_deed_hediye
quest_7_name Reaper Redux
quest_7_aciklama Raid dungeon Reaper Redux kes yada kesen bi party de ol.
quest_7_turu 2 //
quest_7_npc c_reaper_redux
quest_7_level 1
quest_7_sayi 1
quest_7_verilis 1
quest_7_odulsayi 125000,1,1,1
quest_7_odulitem i_gold,i_deed_hediye,i_deed_hediye,i_deed_hediye
quest_8_name Chief Paroxysmus
quest_8_aciklama Raid dungeon Chief Paroxysmus kes yada kesen bi party de ol.
quest_8_turu 2 //
quest_8_npc c_chief_Paroxysmus
quest_8_level 1
quest_8_sayi 1
quest_8_verilis 1
quest_8_odulsayi 125000,1,1,1
quest_8_odulitem i_gold,i_deed_hediye,i_deed_hediye,i_deed_hediye
quest_9_name the Daemon Knight
quest_9_aciklama Ortalıkta iblisler kol geziyor. Buna "bi dur" demenin vakti geldi.
quest_9_turu 2 //
quest_9_npc c_daemon_w_sword
quest_9_level 1
quest_9_sayi 75
quest_9_verilis 1
quest_9_odulsayi 125000,1,1,1
quest_9_odulitem i_gold,i_deed_hediye,i_deed_hediye,i_deed_hediye
quest_10_name Warrior Charge
quest_10_aciklama Eğer bir warrior isen vereceğim parşomene ihtiyacın olabilir! Roa Dungeon ziyaret et
quest_10_turu 2 //
quest_10_npc c_treefellow
quest_10_level 1
quest_10_sayi 10
quest_10_verilis 1
quest_10_odulsayi 20000,2
quest_10_odulitem i_gold,i_warrior_sarj
quest_11_name Reptalon
quest_11_aciklama Reptalonu özgür bırakmak istiyorsan bu görevi tamamla! Roa Dungeon ziyaret et
quest_11_turu 2 //
quest_11_npc c_Tormented_Minotaur
quest_11_level 1
quest_11_sayi 200
quest_11_verilis 1
quest_11_odulsayi 10000,1
quest_11_odulitem i_gold,i_pet_reptalon
quest_12_name Magery Power
quest_12_aciklama Solen Queen baskını! Yaratığı, Destard Dungeon kapısının güneyinde (haritanın "S" yönü) bulabilirsin.
quest_12_turu 2 //
quest_12_npc c_fire_ant_queen
quest_12_level 1
quest_12_sayi 200
quest_12_verilis 2
quest_12_odulsayi 10000,1,1
quest_12_odulitem i_gold,i_p_harm,i_p_fireball
quest_13_name Repeating Crossbow
quest_13_aciklama En iyi yay ustası Eril tarafından yapılan Repeating Crossbow seni bekliyor. Bölge Fire Dungeon
quest_13_turu 2 //
quest_13_npc c_exodus,c_titan
quest_13_level 1
quest_13_sayi 20,30
quest_13_verilis 1
quest_13_odulsayi 10000,1
quest_13_odulitem i_gold,i_crossbow_repeating
quest_14_name Green Armour
quest_14_aciklama Yew Passage bölgesinde Arcane Daemon istilası kol geziyor. Benim için onları yok etmelisin. Yaratığın içinden çıkan Green isimli logları getirirsen, sana özel bir hediyem de olacaktır.
quest_14_turu 1 //
quest_14_npc i_green_log
quest_14_level 1
quest_14_sayi 120
quest_14_verilis 1
quest_14_odulsayi 10000,1
quest_14_odulitem i_gold,i_set_dragon
Menüler
[dialog d_quest]
0,20
nomove
local.uzat 80
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
local.uzat +=20
endfor
for 1 <f_array_lenght <def.quest_<dtag.quests>_odulitem>>
local.uzat +=20
endfor
bozobag 10,10,300,300
dorigin 0 30
if (<def.quest_<dtag.quests>_turu> == 1)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
dtext 30 *20 0481 Eşya: <f_moonsep <dlocal._for>,<ddef.quest_<dtag.quests>_sayi>> adet <serv.itemdef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>.name> getir
endfor
endif
if (<def.quest_<dtag.quests>_turu> == 2)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
if <tag0.questsa<dlocal._for>> > 0
dtext 30 *20 0481 Yrtk: <serv.chardef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>.name> <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_sayi>>-<dtag0.questsa<dlocal._for>>> / <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_sayi>>>
else
dtext 30 *20 0850 Yrtk: <serv.chardef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>.name> tamamlandı
endif
endfor
endif
if !(<ddef.quest_<dtag.quests>_taraf> == 1)
for 1 <f_array_lenght <def.quest_<dtag.quests>_odulitem>>
dtext 30 *20 0481 Ödül: <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulsayi>>> <serv.itemdef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulitem>>.name> kazan!
endif
endfor
[dialog d_quest_sec]
305,20
nomove
local.boy 40
local.boys <eval <def.quest_gorev>*20>
local.boy +=<dlocal.boys>
bozobag 10,10,250,270
dtext 95 13 042 Görev seçim
local.loop=0
local.page=1
page 1
for 1 <def.quest_Gorev>
if (<local.loop> > 9)
local.loop=0
button 220 245 015e1 015e5 0 <eval <local.page>+1> 1
local.page += 1
page <dlocal.page>
button 35 245 015e3 015e7 0 <eval <local.page>-1> 1
endif
local.loop +=1
dtext 60 <eval 20+<hval <local.loop>*20>> 0481 <def.quest_<dlocal._for>_name>
dtext 175 <eval 20+<hval <local.loop>*20>> 0850 <quest_turu <def.quest_<dlocal._for>_turu>>
button 30 <eval 20+<hval <local.loop>*20>> 021 022 1 0 <dlocal._for>
endfor
[dialog d_quest_sec button]
on 0
src.dialogclose d_quest_log
on 1 100
if <src.tag0.questsi>
src.sysmessage @,,1 Tamamlanmayı bekleyen görev var
src.dialogclose d_quest_log
return 1
else
src.tag0.quests <dargn>
src.tag0.questsi
src.sysmessage @,,1 Yeni göreviniz: <def.quest_<dargn>_name>
src.dialogclose d_quest_log
src.dialog d_quest_sec
src.sdialog d_quest_log
endif
[dialog d_quest_log]
0,20
nomove
local.uzat 160
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
local.uzat +=20
endfor
for 1 <f_array_lenght <def.quest_<dtag.quests>_odulitem>>
local.uzat +=20
endfor
bozobag 10,10,300,<eval <dlocal.uzat>>
// alphablack 20 20 280 <eval <dlocal.uzat>-20>
dtext 145 13 042 Görev
if (<ddef.quest_<dtag.quests>_level> >= 1)
if (<level> >= <ddef.quest_<dtag.quests>_level>)
dtext 30 35 0455 <def.quest_<dtag.quests>_name>
dhtmlgump 30 55 260 75 1 1 <def.quest_<dtag.quests>_aciklama>
dorigin 0 110
if (<def.quest_<dtag.quests>_turu> == 1)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
dtext 30 *20 0481 Eşya: <f_moonsep <dlocal._for>,<ddef.quest_<dtag.quests>_sayi>> adet <serv.itemdef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>.name> getir
endif
endfor
if (<def.quest_<dtag.quests>_turu> == 2)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
dtext 30 *20 0481 Yrtk: <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_sayi>>> adet <serv.chardef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>.name> kes
endif
endfor
if !(<ddef.quest_<dtag.quests>_taraf> == 1)
for 1 <f_array_lenght <def.quest_<dtag.quests>_odulitem>>
dtext 30 *20 0481 Ödül: <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulsayi>>> <serv.itemdef.<f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulitem>>.name> kazan!
endif
endfor
if (<ddef.quest_<dtag.quests>_taraf> == 1)
dtext 30 160 0481 Ödül: Taraf seçimi
endif
if !(<tag0.questsi>)
dtext 50 <eval <dlocal.uzat>-20> 0481 Kabul ediyorum
button 30 <eval <dlocal.uzat>-17> 2117 2118 1 0 1
dtext 180 <eval <dlocal.uzat>-20> 0845 Reddediyorum
button 160 <eval <dlocal.uzat>-17> 2117 2118 1 0 0
else
dtext 50 <eval <dlocal.uzat>-20> 0481 Görevi tamamla
button 30 <eval <dlocal.uzat>-17> 2117 2118 1 0 2
dtext 180 <eval <dlocal.uzat>-20> 0845 İptal et
button 160 <eval <dlocal.uzat>-20> 2117 2118 1 0 3
endif
else
dtext 30 120 0845 Şuan sizin için hazırlanmış başka görev yok.
endif
else
dtext 80 120 0845 Başka görev bulunmuyor.
endif
[dialog d_quest_log button]
on 0
src.dialogclose d_quest_Sec
on 1
if (<def.quest_<dtag.quests>_turu> == 2)
src.events e_quest_log
endif
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
src.tag0.quest<dlocal._for> <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>
src.tag0.questsa<dlocal._for> <f_moonsep <dlocal._for>,<def0.quest_<dtag.quests>_sayi>>
endfor
src.tag0.questsi 1
src.sysmessage @,,1 <def.quest_<src.dtag0.quests>_name> görevini kabul ettiniz.
src.dialogclose d_quest_Sec
on 2
local.sayi <f_array_lenght <def.quest_<dtag.quests>_npc>>
if (<def.quest_<dtag.quests>_turu> == 1)
for a 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
for <eval <SRC.findlayer.21.rescount>-1> 0
ref1=<uid.<SRC.findlayer.21>.findcont.<dlocal._for>>
if (<ref1.baseid> == <f_moonsep <dlocal.a>,<def.QUEST_<dtag.quests>_npc>>)
if (<ref1.amount> < <f_moonsep <dlocal.a>,<def.QUEST_<dtag.quests>_sayi>>)
SRC.SYSMESSAGE @,,1 Tamamlanmamış. Gerekli malzeme <eval <f_moonsep <dlocal.a>,<def.QUEST_<dtag.quests>_sayi>>> <basharfbuyuk <ref1.name>>.
SRC.SYSMESSAGE @,,1 Sendeki miktar: <ref1.amount>
else
local.p ++
if (<dlocal.p> == <f_array_lenght <def.quest_<dtag.quests>_npc>>)
src.odulver
src.quest_effect
//else
//src.sysmessage @,,1 Tamamlanmamış.
endif
endif
// else
// src.sysmessage @,,1 Gerekli malzemeler yok
// return 1
endif
endfor
endfor
endif
if (<def.quest_<dtag.quests>_turu> == 2)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
if (<tag0.questsa<dlocal._for>> > 0)
src.sysmessage @,,1 <serv.chardef.<tag0.quest<dlocal._for>>.name> tamamlanmamış
else
local.p ++
if (<dlocal.p> == <f_array_lenght <def.quest_<dtag.quests>_npc>>)
src.odulver
src.quest_Effect
endif
endif
endfor
endif
src.dialogclose d_quest_Sec
on 3
src.tag0.questsi
src.sysmessage @,,1 <def.quest_<src.dtag0.quests>_name> görevi iptal edildi.
src.dialogclose d_quest_Sec
[dialog d_quest_log_3]
10,10
local.uzat 30
for 1 <eval <f_array_lenght <def.quest_<dtag.quests>_odulitem>>-1>
local.uzat +=25
endfor
bozobag 10,10,200,<dlocal.uzat>
// alphablack 20 20 180 <eval <dlocal.uzat>-20>
dorigin 0 15
for 1 <eval <f_array_lenght <def.quest_<dtag.quests>_odulitem>>-1>
dtext 50 *25 0481 <serv.itemdef.<f_moonsep <eval <dlocal._for>+1>,<def.quest_<dtag.quests>_odulitem>>.name>
button 30 *0 2117 2118 1 0 <dlocal._for>
endfor
[dialog d_quest_log_3 button ]
on 1 10
local.button <eval <dargn>+1>
newgold <f_moonsep 1,<def.quest_<dtag.quests>_odulsayi>>
serv.newitem <f_moonsep <dlocal.button>,<def.quest_<dtag.quests>_odulitem>>
new.amount <f_moonsep <dlocal.button>,<def.quest_<dtag.quests>_odulsayi>>
src.bounce <new>
src.tag0.questsi
src.events -e_quest_log
src.dialogclose d_quest_log_2
[dialog d_quest_log_2]
10,10
alphablack2 10 10 210 55
if (<def.quest_<dtag.quests>_turu> == 2)
for 1 <f_array_lenght <def.quest_<dtag.quests>_npc>>
if <dtag.questsa<dlocal._for>> > 0
dtext 20 *25 0481 Yrtk: <serv.chardef.<tag0.quest<dlocal._for>>.name> <dtag.questsa<dlocal._for>>
else
dtext 30 *25 0481 Yrtk: <serv.chardef.<tag0.quest<dlocal._for>>.name> Tamam!
endif
endif
endfor
Fonksiyonlar
[FUNCTION f_array_lenght]
return <dargv>
[function f_moonsep]
if <argv[0]> == 0
return <eval <argv> - 1>
else
return <argv[<argv[0]>]>
endif
[function quest_Effect]
forchars 5
if <id> == c_quester_humanm
anim 2
sayua 07a1,6,6,3 Quest başarıyla tamamlanmıştır.
endif
endfor
[function quest_turu]
if <argv0> == 1
return Eşya getir
elif <argv0> == 2
return Kes gel
else
return Tanımsız
endif
[function odulver]
if (<ddef.quest_<dtag.quests>_taraf> == 1)
sdialog d_quest_taraf
return 1
endif
if !(<ddef.quest_<dtag.quests>_verilis> == 2)
for 1 <f_array_lenght <def.quest_<dtag.quests>_odulitem>>
if <f_strm <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulitem>>,i_gold>
newgold <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulsayi>>
else
serv.newitem <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulitem>>
new.amount <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_odulsayi>>
src.bounce <new>
new.resendtooltip 1
src.update
endif
if (<def.quest_<dtag.quests>_turu> == 1)
// for a 1 <f_array_lenght <def.quest_<dtag.quests>_sayi>>
src.consume <eval <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_sayi>>> <f_moonsep <dlocal._For>,<def.quest_<dtag.quests>_npc>>
// endfor
// src.say @,,1 <eval <f_moonsep <eval <dlocal._for>-1>,<def.quest_<dtag.quests>_sayi>>> <f_moonsep <dlocal._for>,<def.quest_<dtag.quests>_npc>>
endif
endfor
else
src.dialogclose d_quest_log_3
src.dialog d_quest_log_3
return 1
endif
//src.tag0.quests +=1
src.tag0.questsi
src.events -e_quest_log
src.dialogclose d_quest_log_2
[events e_quest_log]
on=@Kill
Ve npc
[CHARDEF c_quester_humanm]
ID=c_satyr
NAME=Chander
CAN=MT_USEHANDS|MT_EQUIP
CATEGORY=Civilized
SUBSECTION=Questers
DESCRIPTION=Human Male
ON=@Create
FLAGS=statf_invul
NPC=BRAIN_HUMAN
DEX=10
INT=10
STR=10
on=@Click
message @07a1,3 [ the Quester]
message @44,,1 <name>
return 1
on=@Dclick
src.level 1
if !<src.tag0.quests>
src.tag0.quests 1
endif
if (<distance <src>> > 3)
src.sysmessage @,,1 Uzaksınız!
return 1
else
src.dialog d_quest_log
src.dialog d_quest_Sec
return 1
endif
Event bu kısım önemli!
Vereceğim eventi oyundaki bütün npclere vermelisiniz. Sphere.ini de ayarlanmış olan npclerin eventine ekleyin!
on=@Death
ref2=<act>
if <ref2.isplayer>
if !(<isevent.e_boss>)
if <findid.i_gold>
ref2.tag0.param +=<findid.i_gold.amount>
ref2.say @07a1,3 +<findid.i_gold.amount> ,
ref2.sysmessage @,,1 Yeni bakiyeniz <f_bolukayir <ref2.dtag.param>> kadar oldu.
findid.i_gold.remove
endif
endif
if (<ref2.isinparty>)
for 0 <eval <ref2.party.members>-1>
ref1=<ref2.party.member.<dlocal._for>>
//if !(<ref1> == <src.uid>)
if (<ref1.distance <ref2>> < 19)
if (<ref1.hits> > 0)
if (<ref1.tag0.questsi>)
if (<ddef.quest_<ref1.dtag.quests>_turu> == 2)
for a 1 <f_array_lenght <def.quest_<ref1.dtag.quests>_npc>>
if <f_strm <ref1.tag0.quest<dlocal.a>>,<id>>
if (<ref1.tag0.questsa<dlocal.a>> >= 1)
ref1.tag0.questsa<dlocal.a> -=1
trysrc <ref1> uid.<ref1>.dialogclose d_quest_log_2
trysrc <ref1> uid.<ref1>.dialog d_quest_log_2
endif
endif
endfor
endif
endif
endif
endif
//endif
endfor
else
if <ref2.tag0.questsi>
for 1 <f_array_lenght <def.quest_<ref2.dtag.quests>_npc>>
if (<id> == <f_moonsep 1,<ref2.tag0.quest<dlocal._for>>>)
ref2.tag0.questsa<dlocal._for> -=1
if (<ref2.tag0.questsa<dlocal._for>> > 0)
trysrc <ref2> uid.<ref2>.dialogclose d_quest_log_2
trysrc <ref2> uid.<ref2>.dialog d_quest_log_2
else
ref2.sysmessage @,,1 <serv.chardef.<ref2.tag0.quest<dlocal._for>>.name> Görevi tamamlandı.
trysrc <ref2> uid.<ref2>.dialogclose d_quest_log_2
trysrc <ref2> uid.<ref2>.dialog d_quest_log_2
endif
endif
endif
endfor
endif
endif