brs_tunahan
Özel Yetenekler
Bunlar benim yazdığım savaş yetenekleri kodları. Bence bu yetenekler savaş devinimine ve atlılarla yayalar arasındaki dengenin kurulmasına katkı sağlıyor. Bazıları eski, geriye kalanları yeni bu kodların. Kullanmakta özgürsünüz. İsterseniz bu kodları değiştirin, uyarlayın, geliştirin modunuzda ya da oyununuzda kullanmak için.
Burada özel yetenekleri(ıslıkla at çağırma ,ilk yardım, odak vb.)öğrenip kendi modumuza uygulamayı göreceğiz.
Ne işe yarar?
Birçok konuda işinizi kolaylaştıran bir kodlamadır. Hile gibi de düşünülebilir; ama gerçekçi bir hile bu.
Orijinal Konu
Rehberi Hazırlayan Arkadaş: Chel
Yardım Mesajı:
Zor durumda kaldığınızda bunu yaparak askerlerinizi yanınıza çağırın, onlar da size yardım etsin.
Bunu, "module_mission_templates.py" içindeki "common_battle_mission_start"ın sağ üstüne ekleyin.
Deneyim Hesaplaması Kodları:
Eklemeniz gereken yer, "module_scripts.py"in sonu.
Islıkla At Çağırma: Bu kodu yazdıktan sonra The Mercenary'nin bunu zaten yaptığını fark ettim, hem de oldukça iyi bir biçimde. Buna karşın küçük bir farkla: onun yaptığında bir savaşa denk geldiğinizde sadece kendi atınızı çağırabiliyorsunuz. Ben, yeterli karizmanız varsa herhangi bir atı çağırabileceğiniz biçimde yaptım. Eğer karizmanız çok fazlaysa birden fazla at da çağırabilirsiniz, bunu yaparak izdihama da yol açabilirsiniz.
Alay: Bu özelliği, çevrenizde dönüp duran atlı okçuları yanınıza çekmek ya da okçularınıza saldıran yayaların dikkatini dağıtmak için kullanabilirsiniz. Bunu yaparak daha çok zarar almalarını sağlayabilirsiniz. Karizmanızın artması daha çok düşmana daha kısa sürede alay edilebilmenize olanak veriyor.
İlk Yardım: Savaş sırasında, savaşta aldığınız küçük yaraları iyileştirmenizi sağlar. İyileştirme düzeyiniz İlk yardım yeteneği ve Zeka ile artıyor. Kafanızdan vuran okların etkisini azaltmak için birebir. Zekanın fazla olması karakterlerin yaşam şansını artırıyor.
Öfke: Daha saldırgan olursunuz ve daha iyi vuruşlar yaparsınız.
Özel not: Bazı ender durumlarda(Bana hiç olmadı, ama bazıları bunu bana bildirdi. Niye, ne yapınca olduğunu bilmiyorum.) öfke/odaklanma/depar yeteneklerinden kazanılanlar kaybolmuyor, kalıcı oluyor.
Bu kodu module_triggers.py'ye ekelemek çoğu durumda bu sorunu çözecektir:
İşte oldu! Bu tuşlara basarak istediğiniz eylemi yerine getirebilirsiniz.
T: Islıkla At Çağırma
Y: İlk Yardım
J: Öfke
G: Alay
Bunlar benim yazdığım savaş yetenekleri kodları. Bence bu yetenekler savaş devinimine ve atlılarla yayalar arasındaki dengenin kurulmasına katkı sağlıyor. Bazıları eski, geriye kalanları yeni bu kodların. Kullanmakta özgürsünüz. İsterseniz bu kodları değiştirin, uyarlayın, geliştirin modunuzda ya da oyununuzda kullanmak için.
Burada özel yetenekleri(ıslıkla at çağırma ,ilk yardım, odak vb.)öğrenip kendi modumuza uygulamayı göreceğiz.
Ne işe yarar?
Birçok konuda işinizi kolaylaştıran bir kodlamadır. Hile gibi de düşünülebilir; ama gerçekçi bir hile bu.
Orijinal Konu
Rehberi Hazırlayan Arkadaş: Chel
Yardım Mesajı:
Zor durumda kaldığınızda bunu yaparak askerlerinizi yanınıza çağırın, onlar da size yardım etsin.
Bunu, "module_mission_templates.py" içindeki "common_battle_mission_start"ın sağ üstüne ekleyin.
Code:
abilities_help_on = (0, 0, 0,[(key_clicked, key_n),
(tutorial_message, "@Combat abilities ^^J : RAGE, +5 Power strike, +5 Power throw, +5 Agility, lasts for 2xStrength sec, requires 14 Strength ^^K : FOCUS, +10xIntelligence to weapon proficiencies, +5 Agility, lasts for 2xIntelligence sec, requires 14 Intelligence ^^O : SPRINT, +7 Athletics, +15 Agility, lasts for 2xAgility seconds, requires 14 Agility ^^T : WHISTLE FOR HORSE, call a horse to come to you, more than one with higher Charisma, requires 14 Charisma ^^Y : FIRST AID, treat your immediate wounds to recover 3xFirstAid+Intelligence hitpoints, requires 14 Intelligence ^^U : BATTLECRY, rally your wounded troops to fight and recover 3xLeadership+Charisma percent of their hitpoints ^^B : WARCRY, unleash a fearsome cry to terrify weaker oppnents around you ^^G : TAUNT, attract the attention of your enemies, more with higher charisma^^All combat abilites can be used every 60 seconds in battle ^^Press M to see several other important changes ^^Press H to close help."),
], [])
abilities_help_extra = (0, 0, 0,[(key_clicked, key_m),
(tutorial_message, "@ blank."),
], [])
abilities_help_off = (0, 0, 0,[(key_clicked, key_h),
(tutorial_message, "@ "),
], [])
Deneyim Hesaplaması Kodları:
Eklemeniz gereken yer, "module_scripts.py"in sonu.
Code:
("rage_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-8),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
("sprint_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-6),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
("focus_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-10),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
Islıkla At Çağırma: Bu kodu yazdıktan sonra The Mercenary'nin bunu zaten yaptığını fark ettim, hem de oldukça iyi bir biçimde. Buna karşın küçük bir farkla: onun yaptığında bir savaşa denk geldiğinizde sadece kendi atınızı çağırabiliyorsunuz. Ben, yeterli karizmanız varsa herhangi bir atı çağırabileceğiniz biçimde yaptım. Eğer karizmanız çok fazlaysa birden fazla at da çağırabilirsiniz, bunu yaparak izdihama da yol açabilirsiniz.
Code:
("rage_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-8),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
("sprint_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-6),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
("focus_exp_penalty",
[(store_character_level,":level","trp_player"),
(val_mul,":level",-10),
(add_xp_to_troop,":level","trp_player"),
(assign,reg1,":level"),
(display_message, "@You spent {reg1} experience points.",0x6495ed),
]),
Alay: Bu özelliği, çevrenizde dönüp duran atlı okçuları yanınıza çekmek ya da okçularınıza saldıran yayaların dikkatini dağıtmak için kullanabilirsiniz. Bunu yaparak daha çok zarar almalarını sağlayabilirsiniz. Karizmanızın artması daha çok düşmana daha kısa sürede alay edilebilmenize olanak veriyor.
Code:
# EGIII taunt
(0, 0, 60, [(key_clicked, key_g),(store_attribute_level,"$attribute","trp_player",3),(neg|main_hero_fallen)], [
(play_sound,"snd_man_warcry"),
(get_player_agent_no, ":player_agent"),
(agent_get_position, pos1, ":player_agent"),
(store_sub,":ch_bonus","$attribute",0),
(val_div,":ch_bonus",-3),
(assign,":whistled",":ch_bonus"),
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_is_human,":agent"),
(neg|agent_is_ally,":agent"),
(neg|ge,":whistled",1),
(agent_get_position, pos2, ":agent"),
(get_distance_between_positions,":distance",pos2,pos1),
(ge,":distance",600),
(agent_set_scripted_destination,":agent",pos1,1),
(val_add,":whistled",1),
(try_end),
(display_message,"@You taunt your enemies!",0x6495ed),
(call_script, "script_rage_exp_penalty"),
]),
(0, 4, 60, [(key_clicked, key_g),(neg|main_hero_fallen)
], [
(try_for_agents,":agent"),
(agent_is_alive,":agent"),
(agent_is_human,":agent"),
(neg|agent_is_ally,":agent"),
(agent_clear_scripted_mode,":agent"),
(try_end),
]),
İlk Yardım: Savaş sırasında, savaşta aldığınız küçük yaraları iyileştirmenizi sağlar. İyileştirme düzeyiniz İlk yardım yeteneği ve Zeka ile artıyor. Kafanızdan vuran okların etkisini azaltmak için birebir. Zekanın fazla olması karakterlerin yaşam şansını artırıyor.
Code:
# EGIII first aid
(0, 0, 60, [(key_clicked, key_y),(store_attribute_level,"$attribute","trp_player",2),(ge,"$attribute",14),(neg|main_hero_fallen)], [
(play_sound,"snd_man_grunt_long"),
(get_player_agent_no, ":player_agent"),
(store_skill_level,":first_aid","skl_first_aid","trp_player"),
(store_sub,":int_bonus","$attribute",0),
(val_mul,":first_aid",3),
(store_agent_hit_points,":life",":player_agent",1),
(val_add,":first_aid",":int_bonus"),
(val_add,":life",":first_aid"),
(agent_set_hit_points,":player_agent",":life",1),
(agent_set_animation, ":player_agent", "anim_strike_abdomen_front"),
(assign,reg1,":first_aid"),
(display_message,"@You treat your wounds! (recover {reg1} hitpoints)",0x6495ed),
(call_script, "script_focus_exp_penalty"),
]),
Öfke: Daha saldırgan olursunuz ve daha iyi vuruşlar yaparsınız.
Code:
# rage NEW9
(0, 0, 60, [(key_clicked, key_j), (store_attribute_level,"$attribute","trp_player",0),(ge,"$attribute",14),(eq,"$ability",1),(neg|main_hero_fallen)], [
(play_sound,"snd_man_victory"),
(display_message,"@You rage in battle!",0x6495ed),
(reset_mission_timer_b),
(assign, "$ability", 2),
(store_attribute_level,"$attribue2","trp_player",0),
(val_mul,"$attribue2",2),
(store_skill_level,"$iron","skl_ironflesh","trp_player"),
(store_skill_level,"$strike","skl_power_strike","trp_player"),
(store_skill_level,"$draw","skl_power_draw","trp_player"),
(store_skill_level,"$throw","skl_power_throw","trp_player"),
(troop_raise_skill,"trp_player","skl_power_strike",5),
#(troop_raise_skill,"trp_player","skl_power_draw",5),
(troop_raise_skill,"trp_player","skl_ironflesh",5),
(troop_raise_skill,"trp_player","skl_power_throw",5),
(store_skill_level,"$ironnew","skl_ironflesh","trp_player"),
(store_skill_level,"$strikenew","skl_power_strike","trp_player"),
(store_skill_level,"$drawnew","skl_power_draw","trp_player"),
(store_skill_level,"$thrownew","skl_power_throw","trp_player"),
(troop_raise_attribute,"trp_player",1,5),
]),
(1, 0, 0, [(store_mission_timer_b,"$timer"),(gt,"$timer","$attribue2"),(eq,"$ability",2)], [
(val_sub,"$iron","$ironnew"),
(val_sub,"$strike","$strikenew"),
(val_sub,"$draw","$drawnew"),
(val_sub,"$throw","$thrownew"),
(troop_raise_skill,"trp_player","skl_ironflesh","$iron"),
(troop_raise_skill,"trp_player","skl_power_strike","$strike"),
(troop_raise_skill,"trp_player","skl_power_draw","$draw"),
(troop_raise_skill,"trp_player","skl_power_throw","$throw"),
(troop_raise_attribute,"trp_player",1,-5),
(display_message,"@Your rage dies down...",0x6495ed),
(call_script, "script_rage_exp_penalty"),
(assign, "$ability", 1),
]),
(1, 0, 0, [(main_hero_fallen),(eq,"$ability",2)], [
(val_sub,"$iron","$ironnew"),
(val_sub,"$strike","$strikenew"),
(val_sub,"$draw","$drawnew"),
(val_sub,"$throw","$thrownew"),
(troop_raise_skill,"trp_player","skl_ironflesh","$iron"),
(troop_raise_skill,"trp_player","skl_power_strike","$strike"),
(troop_raise_skill,"trp_player","skl_power_draw","$draw"),
(troop_raise_skill,"trp_player","skl_power_throw","$throw"),
(troop_raise_attribute,"trp_player",1,-5),
(display_message,"@Your rage dies down...",0x6495ed),
(call_script, "script_rage_exp_penalty"),
(assign, "$ability", 1),
]),
(ti_tab_pressed, 0, 0, [(eq,"$ability",2)], [
(val_sub,"$iron","$ironnew"),
(val_sub,"$strike","$strikenew"),
(val_sub,"$draw","$drawnew"),
(val_sub,"$throw","$thrownew"),
(troop_raise_skill,"trp_player","skl_ironflesh","$iron"),
(troop_raise_skill,"trp_player","skl_power_strike","$strike"),
(troop_raise_skill,"trp_player","skl_power_draw","$draw"),
(troop_raise_skill,"trp_player","skl_power_throw","$throw"),
(troop_raise_attribute,"trp_player",1,-5),
(display_message,"@Your rage dies down... ",0x6495ed),
(call_script, "script_rage_exp_penalty"),
(assign, "$ability", 1),
]),
# rage end
Özel not: Bazı ender durumlarda(Bana hiç olmadı, ama bazıları bunu bana bildirdi. Niye, ne yapınca olduğunu bilmiyorum.) öfke/odaklanma/depar yeteneklerinden kazanılanlar kaybolmuyor, kalıcı oluyor.
Bu kodu module_triggers.py'ye ekelemek çoğu durumda bu sorunu çözecektir:
Code:
(1, 0, 1, [(eq,"$ability",2)], [
(val_sub,"$iron","$ironnew"),
(val_sub,"$strike","$strikenew"),
(val_sub,"$draw","$drawnew"),
(val_sub,"$throw","$thrownew"),
(troop_raise_skill,"trp_player","skl_ironflesh","$iron"),
(troop_raise_skill,"trp_player","skl_power_strike","$strike"),
(troop_raise_skill,"trp_player","skl_power_draw","$draw"),
(troop_raise_skill,"trp_player","skl_power_throw","$throw"),
# (troop_raise_attribute,"trp_player",0,-20),
(troop_raise_attribute,"trp_player",1,-5),
(display_message,"@Your rage dies down...",0x6495ed),
(call_script, "script_rage_exp_penalty"),
(assign, "$ability", 1),
]),
(1, 0, 1, [(eq,"$ability",3)], [
(val_sub,"$athletics","$athleticsnew"),
(troop_raise_skill,"trp_player","skl_athletics","$athletics"),
(troop_raise_attribute,"trp_player",1,-15),
(display_message,"@You are out of breath... ",0x6495ed),
(call_script, "script_sprint_exp_penalty"),
(assign, "$ability", 1),
]),
(1, 0, 1, [(eq,"$ability",4)], [
(val_mul,"$bonus",-1),
(troop_raise_proficiency_linear,"trp_player",0,"$bonus"),
(troop_raise_proficiency_linear,"trp_player",1,"$bonus"),
(troop_raise_proficiency_linear,"trp_player",2,"$bonus"),
(troop_raise_proficiency_linear,"trp_player",3,"$bonus"),
(troop_raise_proficiency_linear,"trp_player",4,"$bonus"),
(troop_raise_proficiency_linear,"trp_player",5,"$bonus"),
(troop_raise_attribute,"trp_player",1,-5),
(display_message,"@Your lose your focus... ",0x6495ed),
(call_script, "script_focus_exp_penalty"),
(assign, "$ability", 1),
]),
İşte oldu! Bu tuşlara basarak istediğiniz eylemi yerine getirebilirsiniz.
T: Islıkla At Çağırma
Y: İlk Yardım
J: Öfke
G: Alay