Görev Ekleme

Users who are viewing this thread

görev eklemeyi zaten daha önce kolba anlatmış sağolsun ama her şeyi tek bi yorumda anlattığı için bazı arkadaşların gözü korkabilir ve şevkleri kırılabilir. (bana öyle olmuştu :grin:) belki bu arkadaşlara faydası olur niyetiyle ben daha basit bi şekilde anlatayım dedim.


basit bi şekilde görev başlatma:
Code:
[trp_npc1, "start", [(neg|check_quest_active,"qst_kale"),(neg|check_quest_finished,"qst_kale"),], "Culmarr Kalesi'ni al gel.","zurafa54",[]], 
[trp_npc1|plyr, "zurafa54", [], "Pekala.","zurafa55",[]],
[trp_npc1|plyr, "zurafa54", [], "Uzgunum ilgilenmem gereken baska islerim var.","close_window",[]],   
[trp_npc1, "zurafa55", [], "Acele et, 30 gunun var.","close_window",
[
(setup_quest_text, "qst_kale"),
(str_store_party_name_link, s14, "p_castle_1"),
(str_store_string, s2, "str_kale_alip_gel"),
(quest_set_slot, "qst_kale", slot_quest_expiration_days, 30),
(call_script,"script_start_quest","qst_kale","trp_npc1"),
]],
yukarıdaki kodu module_dialogs'a eklemeniz gerek (ramun'un konusmalarının hemen altında bi yerlere eklemeniz iyi olur)

qst_kale: module_quest'e kendi görevinizi eklemeniz lazım.
str_kale_alip_gel: module_strings'e kendi görev notunuzu eklemeniz lazım. cümle içinde alınacak kale için {s14} yazın çünkü ona link verdik. (dosyalardaki örneklere bakarsanız anlarsınız zaten.)

görevi başlatmak için aşağıdaki 3 kod yeterli aslında. her görev için link vermek ya da görev süresi eklemek zorunda değiliz.
(setup_quest_text, "qst_kale"),
(str_store_string, s2, "str_kale_alip_gel"),
(call_script,"script_start_quest","qst_kale","trp_npc1"),


basit bi şekilde görev bitirme:
Code:
[trp_npc1, "start", [(check_quest_active,"qst_kale"),(party_slot_eq, "p_castle_1", slot_town_lord, "trp_player")], "Kaleyi almissin.","troleybus98",[]], 
[trp_npc1|plyr, "troleybus98", [], "Evet, aldim.","troleybus99",[]],
[trp_npc1, "troleybus99", [], "Tebikler.","close_window",[(call_script, "script_end_quest", "qst_kale"),(add_xp_as_reward,1000)]],
yukarıdaki kodu da module_dialogs'a ekleyin

görev bitince hayatı normale döndürme:
Code:
[trp_npc1, "start", [(check_quest_finished,"qst_kale")], "Selam.","papatya34",[]], 
[trp_npc1|plyr, "papatya34", [], "Selam.","close_window",[]],
yukarıdaki kodu da module_dialogs'a ekleyin

görev eklerken sık sık kullanacağınız kodlar:
görevde başarılı olmak ve  bitirmek : (call_script, "script_end_quest", "qst_kale"),
görevde başarılı olmak ama bitirmemek (başardın, git ve ödülünü al): (call_script, "script_succeed_quest", "qst_kale"), 

görevde başarısız olmak ve bitirmek: (call_script, "script_abort_quest", "qst_kale",0),
görevde başarısız olmak ama bitirmemek (başaramadın, git ve hesap ver): (call_script, "script_fail_quest", "qst_kale"),

görev başlatıldı mı diye sorgula: (check_quest_active,"qst_kale"),
görev bitti mi diye sorgula: (check_quest_finished,"qst_kale"),
görev başarıldı mı diye sorgula: (check_quest_succeeded,"qst_kale"),

not: ben görev veren kişi olarak trp_npc1 yazdım sırf örnek olsun diye. siz kimden görev alacaksanız onu yazın.
 
Eline sağlık güzel olmuş, daha önce antler gorevini eklemiştim bu daha iyi oldu.
Şimdi burda 2.ve 3. koddaki dialoglar ilk koddakilerin altına mı eklenecek? ve bu görev sadece dialogstan olşuyor dimi?(module_quest hariç)
zurafa bir troopmu? öyleyse troleybus nedir? görev için 2 troop mu lazım?
-en sonda 1000 xp veriyor (add_xp_as_reward,1000)] bunun yerine kaleyi vermesi için ne yapmalaıyız?
 
frozenpainter said:
Şimdi burda 2.ve 3. koddaki dialoglar ilk koddakilerin altına mı eklenecek? ve bu görev sadece dialogstan olşuyor dimi?(module_quest hariç)
zurafa bir troopmu? öyleyse troleybus nedir? görev için 2 troop mu lazım?
-en sonda 1000 xp veriyor (add_xp_as_reward,1000)] bunun yerine kaleyi vermesi için ne yapmalaıyız?

-bütün diyalogların başlaması için özel şart belirlediğim için sırası önemli değil.
-bi de module_strings'e girip görev notunu yazman lazım.
-zurafa, troleybus vb. yazılan yerlere istediğini yazabilirsin önemli olan tek şey zurafa485 ile biten cümleye verilecek cevapların yine zurafa485 ile başlaması.
-(call_script, "script_give_center_to_lord", "p_castle_1", "trp_player", 0) kendine kale verdirmek için bunu yazman lazım.
 
Tekrar eline sağlık denedim çalıştı.Yalnız bir devlete bağlıyken ele geçrdiğinde görev tamamlanmıyor o kalenin direk senin olması lazım surdaki koddan sanırım slot_town_lord bunun için birşeyler yapılabilirmi?
-bide ödülü şöyle yaptım ama dinarı vermedi başka şekildemi yapmak lazım? "qst_kale"),(add_xp_as_reward,1000),(add_gold_to_party,1000)]],

-sana ödül olarak asker vermesi için add_companion mu yazmak lazım?
-görev bittikten sonra başka bir görev vermesini sağlamak için en sondaki close_window kısmını silip dialoga devam etmek mi gerekir?
 
frozenpainter said:
Tekrar eline sağlık denedim çalıştı.Yalnız bir devlete bağlıyken ele geçrdiğinde görev tamamlanmıyor o kalenin direk senin olması lazım surdaki koddan sanırım slot_town_lord bunun için birşeyler yapılabilirmi?
-bide ödülü şöyle yaptım ama dinarı vermedi başka şekildemi yapmak lazım? "qst_kale"),(add_xp_as_reward,1000),(add_gold_to_party,1000)]],

-sana ödül olarak asker vermesi için add_companion mu yazmak lazım?
-görev bittikten sonra başka bir görev vermesini sağlamak için en sondaki close_window kısmını silip dialoga devam etmek mi gerekir?
-sadece ele geçirdiğinde tamamlansın istiyosan modul_game_menus'te (str_store_string, s11, "@You were victorious!"), bu satırın altına aşağıdaki kodu yaz:
Code:
####kaleyi alinca gorevde basarili olma kodu####
(try_begin),
(eq, "$g_encountered_party", "p_castle_1"),
(call_script, "script_succeed_quest", "qst_kale"),
(try_end),	
####kaleyi alinca gorevde basarili olma kodu####
bi de diyaloglara gelip değişiklik yapman lazım:
[trp_npc1, "start", [(check_quest_active,"qst_kale"),(party_slot_eq, "p_castle_1", slot_town_lord, "trp_player")], "Kaleyi almissin.","troleybus98",[]],  bu satırı aşağıdaki ile değiştir
[trp_npc1, "start", [(check_quest_active,"qst_kale"),(check_quest_succeeded,"qst_kale")], "Kaleyi almissin.","troleybus98",[]],
-para ödülü: (troop_add_gold, "trp_player", 1000),
-asker ödülü: (party_add_members, "p_main_party", "trp_hired_blade", 10),
-evet, close_window yazmayıp diyaloğa devam edersin aynı şekilde yeni görev başlatabilirsin.
 
nanoeray said:
herşeyi yaptım ama hata alıyorum yardım edermisin?
http://prntscr.com/5cxdys

module_quests ve module_strings dosyalarına kale görevleriyle ilgili kodları eklememişsin. iki dosya da çok sade zaten açıp örneklere baktığında anlarsın olayı.
 
nanoeray said:
ekledim
http://prntscr.com/5cxhlf
http://prntscr.com/5cxhqx

böyle olmayacakmı? yanlışım varsa düeltirmisin?

module_quests için
("kale", "Kaleyi al da gel", 0,  "{s2}"),

module_strings için
("kale","Dusman kalesi alinmali. {s14}'ni fethet."),

böyle yazman lazım.
 
nanoeray said:
yine olmadı malesef

az önce "lord_talk"'u yanlış yere yaz demişim pardon, şimdi aşağıdaki şekilde değiştirip dene.

Code:
[anyone|plyr, "lord_talk", [(eq, "$g_talk_troop", "trp_kingdom_7_lord"),], "Benim icin ozel bir gorevin var mi?","zurafa53",[]],
[anyone, "zurafa53", [(neg|check_quest_active,"qst_kale"),(neg|check_quest_finished,"qst_kale"),], "Culmarr Kalesi'ni al gel.","zurafa54",[]], 
[anyone|plyr, "zurafa54", [], "Pekala.","zurafa55",[]],
[anyone|plyr, "zurafa54", [], "Uzgunum ilgilenmem gereken baska islerim var.","close_window",[]],   
[anyone, "zurafa55", [], "Acele et, 30 gunun var.","close_window",
[
(setup_quest_text, "qst_kale"),
(str_store_party_name_link, s14, "p_castle_1"),
(str_store_string, s2, "str_kale_alip_gel"),
(quest_set_slot, "qst_kale", slot_quest_expiration_days, 30),
(call_script,"script_start_quest","qst_kale","trp_kingdom_7_lord"),
]],
 
Back
Top Bottom