Mount&Blade Ders Haritası (Grup Büyüklüğünü Değiştirme)

Users who are viewing this thread

Sırasında herkes yabancı dillerdeki modlamaları kullanıyor, fakat türkçeye çevirdiğimiz modları atmıyoruz buraya (kendimde dahil) bu nedenle böyle bir konu açma gereği duydum, burada basit, zor vs kodlarınızı paylaşabilirsiniz. Böylelikle arayan kullanıcılar sayfa sayfa dolaşmak yerine direk konudan bakabilir. Siz mesaj olarak yazdıkca ben ilk mesaja mesajınızın "#" numarasını kod olarak girerim, direk o satıra yönlenir mesaj.

Umarım kodlamaya yeni başlayan, ben ve benim gibi arkadaşlara yardımcı olabilirim.

Konular:
Mount&Blade With Fire And Sword Bayan Cinsiyet Ekleme (Porshy tarafından)
Mount&Blade Türkçeleştirme Ve İsim Değişikliği (sultan_mehmet_han tarafından){Resimli}
Mount&Blade Edit Mod Kullanımı (Sgt.Frost tarafından){Resimli}
Mount&Blade "Windows XP" Python Kurulumu (::karalord:: tarafından){Resimli}
Mount&Blade "Windows 7" Python Kurulumu (Porshy tarafından){Resimli}
Modül Sistemi Kurulumu (Nogay tarafından)
Oyun Zamanını Değiştirme (ridvan95 tarafından){Resimli}
Renkler (Porshy tarafından)
Yeni Faction ve Şehir Oluşturma (Porshy tarafından){1.Kısım}
Yeni Faction ve Şehir Oluşturma (Porshy tarafından){2.Kısım}
Tuz Madenini Oyuna Ekleme (Porshy tarafından)
Krallık İsmi Ve Rengi Belirleme (Porshy tarafından)
Köy Ekleme (Porshy tarafından)
Deniz Savaşları (Ruthven & Porshy tarafından)
Belirli Sahne (Specific Scene) Belirleme (Porshy tarafından)
Game String & Quick String Farkı ve Çevirisi (Porshy tarafından)
Yeni Yetenek (Skill) Ekleme (Porshy tarafından)
Yeni Kitap Okuma Sistemi (Porshy tarafından) {1. Kısım}
Yeni Kitap Okuma Sistemi (Porshy tarafından) {2. Kısım}
Grup Büyüklüğünü Değiştirme (Porshy tarafından)

Phyton Installer
-: Python 2.7.2 (Windows)
-: Python 2.7.2 (Mac OS)

Mount & Blade Installer
-: v.0.202 (24 MB)
-: v.0.632 (34 MB)
-: v.0.704 (34 MB)
-: v.0.711 (37 MB)
-: v.0.731 (42 MB)
-: v.0.751 (53 MB)
-: v.0.808 (77 MB)
-: v.0.894 (115 MB)
-: v.0.901 (123 MB)
-: v.0.903 (123 MB)
-: v.0.955 (153 MB)
-: v.0.960 (153 MB)
-: v.1.001 (Napoleonic Wars) (868 MB)
-: v.1.002 (Napoleonic Wars) (868 MB)
-: v.1.003 (380 MB)
-: v.1.003 (Napoleonic Wars) (868 MB)
-: v.1.004 (Napoleonic Wars) (711 MB)
-: v.1.005 (Napoleonic Wars) (711 MB)
-: v.1.006 (Napoleonic Wars) (721 MB)
-: v.1.011 (380 MB)
-: v.1.139 (Fire And Sword) (842 MB)
-: v.1.142 (Fire And Sword) (849 MB)
-: v.1.143 (Fire And Sword) (851 MB)
-: v.1.153 (Warband) (586 MB)

Module System
-: v.0.704
-: v.0.711
-: v.0.731
-: v.0.750
-: v.0.808
-: v.0.894
-: v.0.903
-: v.0.960
-: v.1.006 (Napoleonic Wars)
-: v.1.010
-: v.1.134  (Warband)
-: v.1.143 (Fire And Sword)
-: v.1.143 (Warband)
-: v.1.153 (Warband)

Other
-: Banner Template (Sancak)
-: Salt Mine (Tuz Madeni) Scenes
-: Undead Pack
-: Sea Battles Scenes
-: Module_scene.py

Not: Eğer derslerinin buraya eklenmesini istemeyen kişiler var ise, bana PM'den ulaşabilirler.
Dipnot: Arkadaşlar lütfen emeğe saygı, aşağıda bir çok arkadaşın (bende dahil) kodları bulunacak, lütfen işinize yarayan bir kod olduğunda kodun yanındaki isime PM ile teşekkür ederseniz emeğe saygı göstermiş olursunuz.
 
Bence mount&blade'deki en büyük eksiklerden biri...

Öncelikle module skins.py dosyasını açıyoruz. Açtığımızda CTRL+F yaparak woman_face_keys yazıp aratıyoruz. Eğer bunu bulamıyorsa, chin_size = 0 kısmını bulup hemen üzerine bunu yapıştırıyoruz.

Code:
woman_face_keys = [
(230,0,0.8,-1.0, "Chin Size"), 
(220,0,-1.0,1.0, "Chin Shape"), 
(10,0,-1.2,1.0, "Chin Forward"),
(20,0, -0.6, 0.8, "Jaw Width"), 
(40,0,-0.7,1.0, "Jaw Position"),
(270,0,0.8,-0.6, "Mouth-Nose Distance"),
(30,0,-0.5,0.6, "Mouth Width"),
(50,0,0.0,1.0, "Cheeks"),

(60,0,-0.5,1.0, "Nose Height"),
(70,0,-0.5,1.1, "Nose Width"),
(80,0,1.5,-0.3, "Nose Size"),
(240,0,-1.0,0.8, "Nose Shape"),
(90,0,0.0,1.1, "Nose Bridge"),

(100,0,-0.5,1.5, "Cheek Bones"),
(150,0,-0.4,0.2, "Eye Width"),
(110,0,0.6,0.3, "Eye to Eye Dist"),
(120,0,-0.2,1.0, "Eye Shape"),
(130,0,-0.1,1.6, "Eye Depth"),
(140,0,-0.2,1.0, "Eyelids"),


(160,0,-0.2,1.2, "Eyebrow Position"),
(170,0,-0.2,0.7, "Eyebrow Height"),
(250,0,-0.4,0.9, "Eyebrow Depth"),
(180,0,-1.5,1.2, "Eyebrow Shape"),
(260,0,1.0,0.0, "Temple Width"),

(200,0,-0.5,0.8, "Face Depth"),
(210,0,-0.3,0.3, "Face Ratio"),
(190,0,-0.1,0.3, "Face Width"),

(280,0,0.0,1.0, "Post-Edit"),
]

Sonra aynı dosya içerisinde "woman", skf_use_morph_key_10, bunu arıyoruz. Eğer bulamaz ise skins = [ kısmının hemen altına şunu ekliyoruz;

Code:
  (
    "woman", skf_use_morph_key_10,
    "woman_body",  "woman_calf_l", "f_handL",
    "female_head", woman_face_keys,
    ["woman_hair_p","woman_hair_n","woman_hair_o","woman_hair_q","woman_hair_r","woman_hair_t","woman_hair_s"], #woman_hair_meshes
#    ["woman_hair_a","woman_hair_b","woman_hair_c","woman_hair_d","woman_hair_e","woman_hair_f","woman_hair_g"], #woman_hair_meshes
    [],
    ["hair_blonde", "hair_red", "hair_brunette", "hair_black", "hair_white"], #hair textures
    [],
    [("womanface_young",0xffe3e8ef,["hair_blonde"],[0xffffffff, 0xffb04717, 0xff502a19, 0xff19100c]),
     ("womanface_b",0xffdfdfdf,["hair_blonde"],[0xffa5481f, 0xff502a19, 0xff19100c, 0xff0c0d19]),
     ("womanface_a",0xffe8dfe5,["hair_blonde"],[0xff502a19, 0xff19100c, 0xff0c0d19]),
     ("womanface_brown",0xffaf9f7e,["hair_blonde"],[0xff19100c, 0xff0c0d19, 0xff007080c]),
     ("womanface_african",0xff808080,["hair_blonde"],[0xff120808, 0xff007080c]),
#     ("womanface_midage",0xffe5eaf0,["hair_black","hair_brunette","hair_red","hair_white"],[0xffffcded, 0xffbbcded, 0xff99eebb]),
     ],#woman_face_textures
    [(voice_die,"snd_woman_die"),(voice_hit,"snd_woman_hit"),(voice_yell,"snd_woman_yell")], #voice sounds
    "skel_human", 1.0,
    psys_game_blood,psys_game_blood_2,
  ),

Sonra buradaki işlemimiz tamam, kaydedip çıkıyoruz.  Şimdi sıra module_troops.py dosyasında. Dosyamızı açıp şunu arayalım; woman_face_1

Eğer alttaki sonucu bulabiliyorsanız,
Code:
woman_face_1    = 0x0000000000000001000000000000000000000000001c00000000000000000000
woman_face_2    = 0x00000003bf0030067ff7fbffefff6dff00000000001f6dbf0000000000000000

sorun yok demektir. Dosyanızı kapatıp diğer adıma geçebilirsiniz. Fakat bulamıyorsanız merchant_face_2    = man_face_older_2 bunu bulup hemen altına

Code:
woman_face_1    = 0x0000000000000001000000000000000000000000001c00000000000000000000
woman_face_2    = 0x00000003bf0030067ff7fbffefff6dff00000000001f6dbf0000000000000000

ekleyiniz. Bu dosyadaki işlemimizde tamamdır, kaydedip çıkıyoruz.
Şimdi sıra header_troops.py de. Dosyamızı açtıktan sonra bu kısmı buluyoruz;

Code:
tf_male           = 0
tf_female         = 1
tf_undead         = 2

Eğer burada tf_female eksik ise tf_female = 1 ekliyoruz. Fakat eğer burada "1"e uyarlanmış herhangi bir tf bulunuyorsa, bunu kendimize göre "2" veya "3" gibide ayarlayabiliriz.

Bu dosyadaki işlemimizde bitti, şimdi kaydedip çıkalım. İşin uzun kısmına geldik, şimdi module_game_menus.py dosyasını açıyoruz ve şu kısmı buluyoruz. (Muhtemelen en üsttedir.)

Code:
game_menus = [
  ("start_game_0",menu_text_color(0xFF000000)|mnf_disable_all_keys,"Welcome, adventurer, to Mount and Blade: With Fire and Sword. Before beginning your journey, you must create your character and set the game's difficulty.",
    "none",
    [
		(assign,"$current_string_reg",10),
		(assign, "$g_tutoral_mission_done", 0),
           #(troop_set_type,"trp_player",0),
           #(assign,"$character_gender",tf_male),
           (set_show_messages, 0),
           (troop_raise_skill, "trp_player","skl_power_draw",1),
           (troop_raise_skill, "trp_player","skl_tracking",1),
           (troop_raise_skill, "trp_player","skl_spotting",1),
           (troop_raise_skill, "trp_player","skl_athletics",1),
           (troop_raise_skill, "trp_player","skl_weapon_master",2),
           (troop_raise_skill, "trp_player","skl_power_strike",1),
           (troop_raise_skill, "trp_player","skl_power_throw",1),
           (troop_raise_skill, "trp_player","skl_prisoner_management",1),
           (troop_raise_proficiency, "trp_player", 0, 10),
           (troop_raise_proficiency, "trp_player", 1, 10),
           (troop_raise_proficiency, "trp_player", 2, 10),
           (troop_raise_proficiency, "trp_player", 3, 10),
           (troop_raise_proficiency, "trp_player", 4, 10),
           (troop_raise_proficiency, "trp_player", 5, 10),
           (troop_raise_proficiency, "trp_player", 6, 10),
		   (troop_raise_attribute, "trp_player", ca_strength, 2),
		   (troop_raise_attribute, "trp_player", ca_agility, 2),
		   (troop_raise_attribute, "trp_player", ca_charisma, 2),
		   (troop_raise_attribute, "trp_player", ca_intelligence, 2),
		   
		   
		   
	       #samopal
		   #(troop_add_item, "trp_player","itm_sablya_pure_c", 0),
		   (troop_add_item, "trp_player", "itm_bolts",0),
		   #(troop_add_item, "trp_player", "itm_samopal",0),
		   (store_random_in_range, ":rand", 0, 4),
		   (try_begin), 
				(eq, ":rand", 0), 
				(troop_add_item, "trp_player","itm_ukraine_svitka_a",0),
		   (else_try),
				(eq, ":rand", 1), 
				(troop_add_item, "trp_player","itm_poland_svitka_a",0),
		   (else_try),
				(eq, ":rand", 2), 
				(troop_add_item, "trp_player","itm_evropa_odejda_sela_b",0),
		   (else_try),
				(eq, ":rand", 3), 		   
				(troop_add_item, "trp_player","itm_tatar_halat_pure_b",0),
		   (else_try),
				(troop_add_item, "trp_player","itm_streletzkiy_mundir_spear",0),
		   (try_end), 
           #(troop_add_item, "trp_player","itm_ukraine_svitka_a",0),
           (troop_add_item, "trp_player","itm_selo_boots",0),
           #(troop_add_item, "trp_player","itm_sumpter_horse",imod_heavy),
           (troop_add_item, "trp_player","itm_dried_meat",0),
		   (troop_add_item, "trp_player","itm_bread",0),
		   (troop_add_item, "trp_player","itm_bread",0),		   
           (troop_add_item, "trp_player","itm_dried_meat",0),
			(try_begin), 	   
				(eq, debug_mode, 1), 		   
				(troop_add_item, "trp_player","itm_granata",0),
				(troop_add_item, "trp_player","itm_granata",0),
				(troop_add_item, "trp_player","itm_granata",0),
				(troop_add_item, "trp_player","itm_granata",0),
				(troop_add_item, "trp_player","itm_zakaz_pistol1"),
				(troop_add_item, "trp_player","itm_zakaz_pistol2"),
				(troop_add_item, "trp_player","itm_zakaz_2stwol_koleso2"),
				(troop_add_item, "trp_player","itm_zakaz_2stwol_koleso"),
				(troop_add_item, "trp_player","itm_zakaz_2stwol_udar1"),
				(troop_add_item, "trp_player","itm_zakaz_2stwol_udar2"),
            (end_try), 
           
           (troop_raise_skill, "trp_player","skl_leadership",3),
           (troop_raise_skill, "trp_player","skl_riding",2),			
		   
		   (troop_equip_items, "trp_player"),	
		   (set_show_messages, 1),		
	],
    [
      ("start_easy",[],"Easy",
       [
			(options_set_damage_to_player, 0),  #    = 261 # (options_set_damage_to_player, <value>), #0 = %25, 1 = %50, 2 = %100
			(options_set_damage_to_friends, 0), #    = 263 # (options_set_damage_to_friends, <value>), #0 = %50, 1 = %75, 2 = %100
			(options_set_combat_ai, 2),         #    = 265 # (options_set_combat_ai, <value>), #0 = good, 1 = average, 2 = poor
			(options_set_campaign_ai, 2),       #    = 267 # (options_set_campaign_ai, <value>), #0 = good, 1 = average, 2 = poor
			(options_set_combat_speed, 0),      #    = 269 # (options_set_combat_speed, <value>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
		    (change_screen_return, 0),	
        ]
       ),
	   
      ("start_normal",[],"Normal",
       [
		   (options_set_damage_to_player, 1),  #    = 261 # (options_set_damage_to_player, <value>), #0 = 1/4, 1 = 1/2, 2 = 1/1
		   (options_set_damage_to_friends, 1), #    = 263 # (options_set_damage_to_friends, <value>), #0 = 1/2, 1 = 3/4, 2 = 1/1
		   (options_set_combat_ai, 1),         #    = 265 # (options_set_combat_ai, <value>), #0 = good, 1 = average, 2 = poor
		   (options_set_campaign_ai, 1),       #    = 267 # (options_set_campaign_ai, <value>), #0 = good, 1 = average, 2 = poor
		   (options_set_combat_speed, 2),      #    = 269 # (options_set_combat_speed, <value>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
		   (change_screen_return, 0),	
        ]
       ),

      ("start_hard",[],"Hard",
       [
		    (options_set_damage_to_player, 2),  #    = 261 # (options_set_damage_to_player, <value>), #0 = 1/4, 1 = 1/2, 2 = 1/1
		    (options_set_damage_to_friends, 2), #    = 263 # (options_set_damage_to_friends, <value>), #0 = 1/2, 1 = 3/4, 2 = 1/1
		    (options_set_combat_ai, 0),         #    = 265 # (options_set_combat_ai, <value>), #0 = good, 1 = average, 2 = poor
		    (options_set_campaign_ai, 0),       #    = 267 # (options_set_campaign_ai, <value>), #0 = good, 1 = average, 2 = poor
		    (options_set_combat_speed, 4),      #    = 269 # (options_set_combat_speed, <value>), #0 = slowest, 1 = slower, 2 = normal, 3 = faster, 4 = fastest
			(change_screen_return, 0),	   
        ]
       ),

      ("go_back_dot",[],"Go back.",
       [(change_screen_quit),
    ]
  ),
      ]
  ),

Burada görüyorsunuz ki start_easy, start_normal ve start_hard kısımları (change_screen_return, 0), ile bitiyor. Bu döngü burada, Skill ayar bölümüne geçiş döngüsü oluyor. Biz bu döngüleri şununla değiştiriyoruz;
Code:
(jump_to_menu, "mnu_start_game_select_your_sex"), # Burada ben start_game_select_your_sex adı verdim menüme, siz kendinize göre değişirsiniz.

Şimdi sıra geldi start_game_select_your_sex menüsüne, Üstteki koddan hemen sonra şunu ekliyoruz;
("start_game_select_your_sex",menu_text_color(0xFF000000)|mnf_disable_all_keys,"Select your character's gender.",
    "none",
    [],
    [
      ("start_male_2",[],"Male",
      [
        (troop_set_type,"trp_player",0),
        (assign,"$character_gender",tf_male),
(change_screen_return, 0),
        ]
      ),
      ("start_female",[],"Female",
      [
        (troop_set_type, "trp_player", 1),
        (assign, "$character_gender", tf_female),
(change_screen_return, 0),
      ]
      ),
  ("go_back",[],"Go back",
      [
    (jump_to_menu,"mnu_start_game_0"),
      ]),
    ]
  ),

Burada kalın olarak belirttiğim noktalar, cinsiyetten sonra artık skill seçimine gidelim anlamına gelen return döngüsü, az önce deaktif etmiştik.

Dikkat: Üstte mavi ile belirttiğim 1 kısmını tf_female numarası olarak yazacaksınız. Yani siz eğer header_troops.py dosyasında tf_female = 3 yapmışsanız 1 yerine 3 yazacaksınız.

Bunuda bitirdikten sonra dosyayı kaydedip çıkıyoruz. Build_module.bat dosyasını çalıştırıyoruz. Ve oyuna girip yeniden başlayıp keyfimize bakıyoruz :p
 
Arkadaşlar bu başlıkla alakalı konu varmı bilmiyorum ama size yardımım dokunsun dedim eğer varsa affedin .
İlk önce oyunun languages klasörüne giriyoruz orada hangi dilde kullanıyorsanız oraya girip şunları yapın ;

yenibitelemresmio.png


Sonra bunu ;
yenibitelemresmi2s.png


Şehir/Kale/köy ismi değiştirme ; 
yenibitelemresmi3i.png


Lord/kral/leydi ismini değiştirme (Lord/Kral/Leydi ismini değiştirdikden sonra yeni oyun başlatın aynı oyunda devam ederseniz haritada yine eski ismi görünür);
yenibitelemresmi4w.png


Npc/asker ismi değiştirme ;
yenibitelemresmi5w.png


Krallık ismi değiştirme;
yenibitelemresmi6o.png


Krallık ismi değiştirdikten sonra ise;
yenibitelemresmi7r.png


Haydut , kervan vb. isim deiştirme ;
yenibitelemresmi9.png
 
Edit modu açamayanlar bilmeyenler var bayağı çok kişi soruyodu bende resimli anlatım yapayım dedim daha önce hiç edit mod anlatımı görmedim forumda onun için varsa söyleyin konuyu kilitleyeyim

rkpwjq.jpg

io1bmb.jpg

2dl87q8.jpg

2mey4x5.jpg

30sx2le.jpg

28sx9c1.jpg

28i3ms3.jpg

2pts7z6.jpg


ÖNEMLİ NOT:Eklediğiniz nesneleri t,g,z,x,y tuşlarıyla hareket ettirebilirsiniz
 
Bir çok arkadaşın modül sistemini kurmada sıkıntı çektiğini gördüm ve bununla ilgili resimli bir ders hazırladım.

Modul Sistemi Python scriptlerinden oluşur, bu yüzden onlarla calışabilmek için sisteminizde Python'un yuklu olması gerekir. Python.org'un download sayfasından Python'u edinebilirsiniz:
http://www.python.org/download/
İlgili sayfada bir çok download linki olsa da, sizin ihtiyaç duyacağınız tek şey en güncel Windows Installer.

Python'u download edip sisteminize kurduktan sonra, aynı zamanda Python'u kendi ortam degişkeni tanımlamanıza/lokasyonunuza (path environment variable) eklemeniz gerekir. Bu kısım önemli olduğu için devam etmeden önce düzgün olarak ayarlama yaptığınızdan emin olun.

21o3hp1.jpg

Bilgisayarım simgesine sağ tıklayıp özellikleri şeçiyoruz

24q4k68.jpg

Gelişmiş> Ortam seçenekleri  ne geliyoruz.

2zptedi.jpg

Buradan patc değişkenini buluyoruz ve değişken yerine pythonu kurduğunuz dizini adresini yazın buraya dikkat resimdekini değil kendi kurduğunuz yerin adresini yazıyoruz Değişiklikleri kaydedip buradan çıkıyoruz.
 
Bu derse geçmeden önce Python kurulumunu yapmış olmanız gerekmektedir.

Dosyalar ilk mesajdadır.

Modül sistemine modumuzu tanıtmak için ise önce C:\Program Files\Mount&Blade (Sürüm)\Modules [Buradaki sürüm sizin mount&blade sürümünüzü temsil eder, örnek vermek gerekirse "Mount&Blade Warband"] adresine gidip Yeni Bir klasör açıyoruz. O klasör sizin modunuzun ismi olacaktır. Mesela ben Native 2 koydum. Daha sonra oynanmamış Native klasörüne girip ctrl+a yapıp kopyalıyoruz kendi modumuza.

Daha sonra indirdiğimiz dosyayı bir yere çıkarıyoruz ve içindeki module_info.py dosyasına sağ tıklayıp Edit with IDLE ye basıyoruz.

Code:
export_dir =

ile başlayan kısmı şöyle yapıyoruz;

Code:
export_dir = "C:/Program Files/Mount&Blade (Sürüm)/Modules/(ModülAdı)/"

#Örneğin;
#export_dir = "C:/Program Files/Mount&Blade Warband/Modules/Native2/"

Steam için;
Code:
export_dir = "C://programfiles/steam/steamapps/cammon/(sürüm)/modules/(modüladı)/"

#Örneğin;
#export_dir = "C://programfiles/steam/steamapps/cammon/warband/modules/Native2/"
önemli olan nokta slashlara dikkat etmek. (/) böyle olacak (\) böyle değil. Ayrıca sonunada slash koymayı unutmuyoruz.

Eğer buraya kadar her şeyi doğru yaptıysak şöyle bir şey çıkacaktır build_module.bat'a tıkladığımzıda;
Code:
Initializing...
Compiling all global variables...
Exporting strings...
Exporting skills...
Exporting tracks...
Exporting animations...
Exporting meshes...
Exporting sounds...
Exporting skins...
Exporting map icons...
Creating new tag_uses.txt file...
Creating new quick_strings.txt file...
Exporting faction data...
Exporting item data...
Exporting scene data...
Exporting troops data
Exporting particle data...
Exporting scene props...
Exporting tableau materials data...
Exporting presentations...
Exporting party_template data...
Exporting parties
Exporting quest data...
Exporting scripts...
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
exporting triggers...
exporting dialogs...
Checking global variable usages...

______________________________

Script processing has ended.
Press any key to exit. . .

Artık her şey kurulmuştur.
 
Not: Değişik olan oyuncular için farklı şekilde düzenleme yapılmıştır. (Porshy)

Oyunun Tarihini Değiştirmek
Arkadaşar  şimdi  oyundaki tarihi değiştirmeyi göstereceğim. Yani ay ve günü değiştirmek. Öncelikle scripts dosyasını açıyoruz ve şu kısmı buluyoruz. Scripts dosyası normal şartlarda C:/program files/Mount&blade/Modules/Native içinde bulunur. Tabi diğer modlardada kullanabilirsiniz.

game_get_date_text -1 kodunun hemen altındaki;
85 22 1 1224979098644774912 2123 3 1224979098644774913 1224979098644774912 24 2120 3 1224979098644774914 1224979098644774913 23 2133 2 1224979098644774915 3 2133 2 1224979098644774916 1655 2133 2 1224979098644774917 99999 6 3 1224979098644774918 0 1224979098644774917 4 0 1073741855 2 1224979098644774915 1 1073741855 2 1224979098644774915 3 1073741855 2 1224979098644774915 5 1073741855 2 1224979098644774915 7 1073741855 2 1224979098644774915 8 1073741855 2 1224979098644774915 10 31 2 1224979098644774915 12 2133 2 1224979098644774919 31 5 0 1073741855 2 1224979098644774915 4 1073741855 2 1224979098644774915 6 1073741855 2 1224979098644774915 9 31 2 1224979098644774915 11 2133 2 1224979098644774919 30 5 0 4 0 2123 3 1224979098644774920 1224979098644774916 4 2107 2 1224979098644774920 4 31 2 1224979098644774920 1224979098644774916 2133 2 1224979098644774919 29 5 0 2133 2 1224979098644774919 28 3 0 3 0 4 0 32 2 1224979098644774914 1224979098644774919 2106 2 1224979098644774914 1224979098644774919 2105 2 1224979098644774915 1 4 0 32 2 1224979098644774915 12 2106 2 1224979098644774915 12 2105 2 1224979098644774916 1 3 0 5 0 2133 2 1224979098644774917 0 3 0 3 0 2133 2 72057594037927937 1224979098644774914 2133 2 72057594037927938 1224979098644774916 4 0 31 2 1224979098644774915 1 2320 2 1 216172782113783931 5 0 31 2 1224979098644774915 2 2320 2 1 216172782113783932 5 0 31 2 1224979098644774915 3 2320 2 1 216172782113783933 5 0 31 2 1224979098644774915 4 2320 2 1 216172782113783934 5 0 31 2 1224979098644774915 5 2320 2 1 216172782113783935 5 0 31 2 1224979098644774915 6 2320 2 1 216172782113783936 5 0 31 2 1224979098644774915 7 2320 2 1 216172782113783937 5 0 31 2 1224979098644774915 8 2320 2 1 216172782113783938 5 0 31 2 1224979098644774915 9 2320 2 1 216172782113783939 5 0 31 2 1224979098644774915 10 2320 2 1 216172782113783940 5 0 31 2 1224979098644774915 11 2320 2 1 216172782113783941 5 0 31 2 1224979098644774915 12 2320 2 1 216172782113783942 3 0 60 1 1

Burada
Kırmızı ile gösterilen 23 oyunun günü.
Turuncu ile gösterilen 3 oyunun ayı.
Yeşil ile gösterilen 1655 ise oyunun yılıdır.

Örnek olarak bir değişikli yapalım
85 22 1 1224979098644774912 2123 3 1224979098644774913 1224979098644774912 24 2120 3 1224979098644774914 1224979098644774913 29 2133 2 1224979098644774915 12 2133 2 1224979098644774916 1457 2133 2 1224979098644774917 99999 6 3 1224979098644774918 0 1224979098644774917 4 0 1073741855 2 1224979098644774915 1 1073741855 2 1224979098644774915 3 1073741855 2 1224979098644774915 5 1073741855 2 1224979098644774915 7 1073741855 2 1224979098644774915 8 1073741855 2 1224979098644774915 10 31 2 1224979098644774915 12 2133 2 1224979098644774919 31 5 0 1073741855 2 1224979098644774915 4 1073741855 2 1224979098644774915 6 1073741855 2 1224979098644774915 9 31 2 1224979098644774915 11 2133 2 1224979098644774919 30 5 0 4 0 2123 3 1224979098644774920 1224979098644774916 4 2107 2 1224979098644774920 4 31 2 1224979098644774920 1224979098644774916 2133 2 1224979098644774919 29 5 0 2133 2 1224979098644774919 28 3 0 3 0 4 0 32 2 1224979098644774914 1224979098644774919 2106 2 1224979098644774914 1224979098644774919 2105 2 1224979098644774915 1 4 0 32 2 1224979098644774915 12 2106 2 1224979098644774915 12 2105 2 1224979098644774916 1 3 0 5 0 2133 2 1224979098644774917 0 3 0 3 0 2133 2 72057594037927937 1224979098644774914 2133 2 72057594037927938 1224979098644774916 4 0 31 2 1224979098644774915 1 2320 2 1 216172782113783931 5 0 31 2 1224979098644774915 2 2320 2 1 216172782113783932 5 0 31 2 1224979098644774915 3 2320 2 1 216172782113783933 5 0 31 2 1224979098644774915 4 2320 2 1 216172782113783934 5 0 31 2 1224979098644774915 5 2320 2 1 216172782113783935 5 0 31 2 1224979098644774915 6 2320 2 1 216172782113783936 5 0 31 2 1224979098644774915 7 2320 2 1 216172782113783937 5 0 31 2 1224979098644774915 8 2320 2 1 216172782113783938 5 0 31 2 1224979098644774915 9 2320 2 1 216172782113783939 5 0 31 2 1224979098644774915 10 2320 2 1 216172782113783940 5 0 31 2 1224979098644774915 11 2320 2 1 216172782113783941 5 0 31 2 1224979098644774915 12 2320 2 1 216172782113783942 3 0 60 1 1
görüldüğü gibi tarihi 29.12.1457'e aldık. Dosyayı kaydedip yeni oyun açtığımızda oluşan görüntü

mb2r.png
 
Code:
RENK                          | RENK KODU
                              |
AQUA                          | 0x00FFFF
SİYAH                         | 0x000000 
MAVİ                          | 0x0000FF
FUCHSIA                       | 0xFF00FF
GRİ                           | 0x808080
YEŞİL                         | 0x008000
LIME                          | 0x00FF00
MAROON                        | 0x800000
NAVY                          | 0x000080
ZEYTİN                        | 0x808000
MOR                           | 0x800080 
KIRMIZI                       | 0xFF0000
GÜMÜŞ                         | 0xC0C0C0
TEAL                          | 0x008080
BEYAZ                         | 0xFFFFFF 
SARI                          | 0xFFFF00
ALICEBLUE                     | 0xEFF7FF
BLANCHEDALMOND                | 0xFEE8C6
BLUEVIOLET                    | 0x7931DF
KAHVERENGİ                    | 0x980516
BURLYWOOD                     | 0xEABE83
CADETBLUE                     | 0x578693
CORNFLOWERBLUE                | 0x151B8D
CORNSILK                      | 0xFFF7D7
CRIMSON                       | 0xE41B17
CYAN                          | 0x00FFFF
KOYU MAVİ                     | 0x2F2F4F
DARKCYAN                      | 0x57FEFF
DARKGOLDENROD                 | 0xAF7817
KOYU GRİ                      | 0x7A7777
KOYU YEŞİL                    | 0x254117
DARKKHAKI                     | 0xB7AD59
DARKMAGENTA                   | 0xF43EFF
GAINSBORO                     | 0xD8D9D7
GHOSTWHITE                    | 0xF7F7FF
ALTIN                         | 0xD4A017
GOLDENROD                     | 0xEDDA74
YEŞİLİMSİ SARI                | 0xB1FB17
HONEYDEW                      | 0xF0FEEE
INDIAN KIRMIZISI              | 0x5E2217
INDIGO                        | 0x307D7E
IVORY                         | 0xFFFFEE
KHAKI                         | 0xADA96E
LAWNGREEN                     | 0x87F717
LEMONCHIFFON                  | 0xFFF8C6
AÇIK MAVİ                     | 0xADDFFF
LIGHTCORAL                    | 0xE77471
LIGHTCYAN                     | 0xE0FFFF
LIGHTGOLDENRODYELLOW          | 0xFAF8CC
AÇIK YEŞİL                    | 0xCCFFCC
AÇIK PEMBE                    | 0xFAAFBA
LIGHTSALMON                   | 0xF9966B
LIGHTSLATEGRAY                | 0x6D7B8D
LIGHTSTEELBLUE                | 0x728FCE
AÇIK SARI                     | 0xFFFEDC
LIMEGREEN                     | 0x41A317
LINEN                         | 0xF9EEE2
MAGENTA                       | 0xFF00FF
MEDIUMAQUAMARINE              | 0x348781
MEDIUMBLUE                    | 0x152DC6
OLDLACE                       | 0xFCF3E2
OLIVEDRAB                     | 0x658017
TURUNCU                       | 0xF87A17
ORANGERED                     | 0xF63817
ORCHID                        | 0xE57DED
PEACHPUFF                     | 0xFCD5B0
PERU                          | 0xC57726 
PEMBE                         | 0xFAAFBE
PLUM                          | 0xB93B8F
POWDERBLUE                    | 0xADDCE3
THISTLE                       | 0xD2B9D3
DOMATES                       | 0xF75431
TURKUAZ                       | 0x43C6DB
VIOLET                        | 0x8D38C9
WHEAT                         | 0xF3DAA9
WHITESMOKE                    | 0xFFFFFF
 
Şimdi arkadaşlar size Yeni bir krallık kurmayı öğreteceğim.
Dikkat:Bu döküman Fire&Sword içindir, diğer sürümlerde sorun çıkarabilir.

Öncelikle module_factions.py dosyamızı açalım ve faction'umuzu oluşturmaya başlayalım.

Code:
("culture_5",  "culture_5", 0, 0.9, [], []),
kodunu bulup hemen altına
Code:
("culture_6",  "culture_6", 0, 0.9, [], []),
ekleyelim.

Sonra aynı dosya içerisinde
Code:
  ("kingdom_5",  "Cossack Hetmanate",  0, 0.9, [("outlaws",-0.05),("peasant_rebels", -0.1),("deserters", -0.02),("mountain_bandits", -0.05),("forest_bandits", -0.05)], [], 0xd76363),
bulalım ve hemen altına ekleyelim.
Code:
  ("kingdom_6",  "Benim Kralligim",  0, 0.9, [("outlaws",-0.05),("peasant_rebels", -0.1),("deserters", -0.02),("mountain_bandits", -0.05),("forest_bandits", -0.05)], [], 0xF75431),

Açıklayalım;
Kingdom_6 = Bizim bu factionu belirtmek için kullanacağımız id (fac_kingdom_6)
Benim Kralligim = Burası bizim oyunda gözükecek olan krallık adımız (Türkçe karakter kullanmayınız.)
[("outlaws",-0.05)] = Bu bölüm krallığımızın diğer factionlar ile arkadaşlığı.
0xF75431 = Bu bölüm ise krallığımızın rengi (Ben Turuncu Seçtim. Renkleri Renkler konusundan öğrenebilirsiniz.)
Buradaki işlemimiz bitti. Şimdi dosyayı kaydedip çıkalım.

Sıradaki dosyamız module_troops.py

Öncelikle bize kalemizde kullanacağımız bir birlik lazım.

Code:
  
  ["benim_messenger", "Messenger","Messengers",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_gloves|tf_guarantee_horse|tf_guarantee_ranged|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_old_cavalry_boots,itm_saddle_horse_c,itm_poland_svitka_a,itm_poland_svitka_b,itm_poland_shapka,itm_poland_mehova_shapka,itm_sablya_b,itm_sablya_c],
   def_attrib|agi_21|level(25),wp(130),knows_common|knows_riding_7|knows_horse_archery_5,swadian_face_middle_1, swadian_face_old_2],
  ["benim_deserter", "Deserter","Deserters",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_deserters,
   [itm_selo_boots,itm_sapogi,itm_poland_svitka_a,itm_poland_svitka_b,itm_poland_shapka,itm_poland_mehova_shapka,itm_poland_army_hat_a,itm_poland_army_hat_b,
    itm_sablya_pure_c,itm_sablya_pure_b,itm_old_musket,itm_old_musket_b,itm_cartridges,itm_pistol],
   def_attrib|level(10),wp(80),knows_common|knows_riding_2|knows_ironflesh_1,swadian_face_middle_1, swadian_face_old_2],
  ["benim_prison_guard", "Prison Guard","Prison Guards",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_sapogi,itm_poland_pikiner_uniform,itm_poland_mehova_shapka,itm_poland_army_hat_a,itm_poland_army_hat_b,itm_sablya_b],
   def_attrib|level(20),wp(100),knows_common|knows_shield_3|knows_ironflesh_3|knows_power_strike_3,swadian_face_middle_1, swadian_face_old_2],
  ["benim_castle_guard", "Guard","Guards",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_botinki,itm_poland_uniforma_german_line,itm_morion,itm_alebarda],
   def_attrib|level(25),wp(150),knows_common|knows_shield_3|knows_ironflesh_3|knows_power_strike_3,swadian_face_middle_1, swadian_face_old_2],

Açıklayalım;
benim_messenger = Burada biz kendimize göre bir ulak yaptık. Ben adını benim koydum siz krallığınıza göre değişebilirsiniz. (ÖR: turkiye_messenger)
tf_guarantee_boots = Her zaman ayaklık giyecek.
tf_guarantee_armor = Her zaman zırh giyecek.
tf_guarantee_gloves = Her zaman eldiven giyecek
tf_guarantee_horse = Her zaman at üstünde
tf_guarantee_helmet = Her zaman miğfer giyecek.
Not: Eğer askerin itemlerinde, eksik bir şey varsa giymez. (Örneğin; miğfer itemi olmayan bir asker, guarantee_helmet yazsa bile giyemez, fakat eğer savaş kazanırlar ve item kazanırsa onu giyecektir.)
fac_kingdom_6 = Buraya dikkat. Burada sizin kingdomunuz yazması gerek, bu eğer 1,2 vs olursa sizin askeriniz olarak görmeyecektir ve sorun verebilir.
[itm_...] = Askerin eşyaları.
agi_21 = Buradaki "21" askerin çeviklik derecesidir.
level(25) = Askerin leveli.
knows_riding_7 = Buradaki "7" askerin biniciliğidir.
knows_horse_archery_5= Buradaki "5" askerin atlı okculuğudur.

Diğer askerlerde aynı şekilde.
Bundan sonra krallığımızın seneschal'ini ayarlayalım;

Alttaki kodu buluyoruz;
Code:
  ["town_18_seneschal", "Town 18 Seneschal","Town 18 Seneschal", tf_hero|tf_is_merchant, 0,reserved,  fac_neutral,[itm_sapogi, itm_tatar_halat_pure_a,itm_tatar_man_hat],     def_attrib|level(2),wp(20),knows_common, 0x000000000004728b01c293c694944b05],

Altına ekliyoruz;
Code:
  ["town_19_seneschal", "Town 19 Seneschal","Town 19 Seneschal", tf_hero|tf_is_merchant, 0,reserved,  fac_neutral,[itm_sapogi, itm_tatar_halat_pure_a,itm_tatar_man_hat],     def_attrib|level(2),wp(20),knows_common, 0x000000000004728b01c293c694944b05],

Bunu ekledikten sonra şimdi krallığımızın esas askerlerini yapalım.
Code:
  ["benim_askerim", "Benim Askerim","Benim Askerim",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_kopyo,itm_poland_shapka,itm_poland_army_hat_simple,itm_poland_mehova_shapka,itm_poland_svitka_a,itm_poland_svitka_b,itm_poland_svitka_c,itm_poland_svitka_d,itm_selo_boots],
   str_8|agi_7|level(7),wp_melee(75),knows_common|knows_athletics_3|knows_ironflesh_3,swadian_face_middle_1, swadian_face_older_2],
  ["benim_askerim_x", "Benim Bilgili Askerim","Benim Bilgili Askerim",tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_kopyo,itm_poland_shapka,itm_poland_army_hat_simple,itm_poland_mehova_shapka,itm_poland_svitka_a,itm_poland_svitka_b,itm_poland_svitka_c,itm_poland_svitka_d,itm_selo_boots],
   str_14|agi_12|level(15),wp_melee(100),knows_common|knows_athletics_5|knows_ironflesh_5,swadian_face_middle_1, swadian_face_older_2],
  ["benim_sovalyem", "Benim Sovalyem","Benim Sovalyem",tf_mounted|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet|tf_guarantee_horse,0,0,fac_kingdom_6,
   [itm_gusar_lanza,itm_gusar_lanza_b,itm_poland_gusar_panzer,itm_poland_gusar_panzer_bez_kril,itm_good_cavalry_boots,itm_poland_gusar_helmet,itm_hunter],
   str_15|agi_12|level(21),wp_melee(180),knows_common|knows_riding_6|knows_ironflesh_4|knows_power_strike_2|knows_weapon_master_5,swadian_face_middle_1, swadian_face_old_2],
  ["benim_okcum", "Benim Okcum","Benim Okcum",tf_guarantee_ranged|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_sablya_pure_a,itm_sablya_pure_b,itm_sablya_pure_c,itm_sablya_pure_d,itm_musket,itm_bolts,
    itm_poland_musketer_uniform,itm_sapogi,itm_poland_army_hat_simple],
   str_8|agi_7|level(6),wp_melee(60)|wp_crossbow(100),knows_common|knows_athletics_3|knows_weapon_master_1,swadian_face_middle_1, swadian_face_old_2],
  ["benim_okcum_x", "Benim Bilgili Okcum","Benim Bilgili Okcum",tf_guarantee_ranged|tf_guarantee_boots|tf_guarantee_armor|tf_guarantee_helmet,0,0,fac_kingdom_6,
   [itm_sablya_pure_a,itm_sablya_pure_b,itm_sablya_pure_c,itm_sablya_pure_d,itm_musket,itm_bolts,
    itm_poland_musketer_uniform,itm_sapogi,itm_poland_army_hat_simple],
   str_18|agi_15|level(16),wp_melee(80)|wp_crossbow(125),knows_common|knows_athletics_4|knows_weapon_master_1,swadian_face_middle_1, swadian_face_old_2],

Bunlarda bizim askerlerimiz. Tabi siz istediğiniz gibi ayarlarsınız ID'leri. Sadece ilk satırın sonundaki fac_kingdom_6 doğru olmalı.

Şimdi bu askerler nasıl upgrade edilir. Hemen module_troops.py dosyasının en altına inip şunu ekliyoruz.
Code:
upgrade(troops,"benim_askerim","benim_askerim_x")
upgrade(troops,"benim_askerim_x","benim_sovalyem")
upgrade(troops,"benim_okcum","benim_okcum_x")

Evet krallığımızın askerleri tamam. Şimdi Kral ve Lordlarımızı yapalım.

Şimdi öncelikle şunu buluyoruz;
Code:
  ["kingdom_5_lord", "Hetman Bogdan Hmelnitski","Kingdom 5 Lord",  tf_hero, 0,reserved,  fac_kingdom_5,[itm_rich_horse,  itm_kozak_civil_jupan_a,             itm_good_sapogi,              itm_good_sapogi,   itm_kolchuga,    itm_kozak_shapka_d,    itm_pernach],         knight_attrib_5,wp(220),knight_skills_5, 0x0000000df50c554426fa123f8fc0767200000000001d530c0000000000000000],

Hemen altına;
Code:
  ["kingdom_6_lord", "Kral Adiniz","Kingdom 6 Lord",  tf_hero, 0,reserved,  fac_kingdom_6,[itm_rich_horse,  itm_kozak_civil_jupan_a,             itm_good_sapogi,              itm_good_sapogi,   itm_kolchuga,    itm_kozak_shapka_d,    itm_pernach],         knight_attrib_5,wp(220),knight_skills_5, 0x0000000df50c554426fa123f8fc0767200000000001d530c0000000000000000],

Açıklayalım;
kingdom_6_lord = Bu bizim kralımızın ID'si olacak.
Kral Adiniz = Bu bizim kralımızın adı olacak. (Örneğin; Kral Hamit)
Kingdom 6 Lord = Oyunda görünmeyecek isim.
tf_hero = Evet burası önemli, bu bir askeri ölümsüz ve lord yapar. Yani Hani lordları yenince Lord bilmemne kaçtı diyor ya, işte bunun sayesinde oluyor.
fac_kingdom_6 = Burası her zamanki gibi.
[itm_...] = Kralımızın giyecekleri.
0x0000000df50c554426fa123f8fc0767200000000001d530c0000000000000000 = Kralımızın yüz kodu. Bunu oyuncu yüzü yaratırken ve edit modu açıkken CTRL + E ye basarak alabilirsiniz.

Evet şimdi Kralımızıda yaptık. Gelelim Lordlara;

Code:
  ["knight_6_1", "Benim Lordum 1","knight 6 1", tf_hero, 0, reserved,  fac_kingdom_6, [itm_kozak_civil_jupan_a,   itm_kolchuga,       itm_kozak_boots,    itm_kozak_boots,     itm_pernach,  itm_kozak_shapka_c, itm_kozak_shapka_c, itm_turk_musket_b, itm_steel_bolts],     knight_attrib_4,wp(200),knight_skills_4, 0x0000000e6d0836d5148471c75a91b91a00000000000998e20000000000000000], #!
  ["knight_6_2", "Benim Lordum 2","knight 6 2", tf_hero, 0, reserved,  fac_kingdom_6, [itm_rich_horse_b,    itm_kozak_civil_jupan_a,       itm_kolchuga,    itm_kozak_boots,    itm_kozak_boots,    itm_kozacka_shapka_s_misurkoy, itm_pernach],     knight_attrib_3,wp(200),knight_skills_3, 0x0000000e4910414c36e44d96d279b763000000000007469a0000000000000000], #!
  ["knight_6_3", "Benim Lordum 3","knight 6 3", tf_hero, 0, reserved,  fac_kingdom_6, [itm_rich_horse,     itm_kozak_civil_jupan_b,  itm_serduk_jupan,     itm_cavalry_boots,      itm_cavalry_boots,  itm_kozak_shapka_d, itm_pernach],    knight_attrib_5,wp(200),knight_skills_5, 0x0000000d830801d038938cc4b339d759000000000006369a0000000000000000], #!
  ["knight_6_4", "Benim Lordum 4","knight 6 4", tf_hero, 0, reserved,  fac_kingdom_6, [itm_hunter,     itm_kozak_civil_jupan_a,     itm_kolchuga,       itm_cavalry_boots,      itm_cavalry_boots,    itm_poland_mehova_shapka_s_perom, itm_pernach],    knight_attrib_5,wp(300),knight_skills_5, 0x0000000d9b0461d35ada985b24364b2d0000000000113c880000000000000000], #!

Siz istediğiniz kadar çoğaltırsınız.

Açıklayalım;
knight_6_1 = İlk lordumuzun ID'si.
Benim Lordum 1 = Oyundaki ismi.
knight 6 1 = Oyunda gözükmeyen ismi.
tf_hero = Lord tagı.
fac_kingdom_6 = Faction'u.
0x000.... = Yüz kodları.

Ve son olarak tah talibini de belirleyip bitirelim buradaki işimizi...

Code:
  ["kingdom_5_pretender", "Ivan Barabash","Kingdom 5 Lord",  tf_hero|tf_unmoveable_in_party_window, 0,reserved,  fac_kingdom_5,[itm_warhorse,  itm_kozak_civil_jupan_b,             itm_kozak_boots,              itm_kozak_boots,   itm_kozak_jupan_na_kolchuge,           itm_pernach,         itm_reestr_shapka],         lord_attrib,wp(175),knows_lord_1, 0x0000000dc01010523b1349e6dbc6a69b00000000001e26c90000000000000000],

bulup hemen altına

Code:
  ["kingdom_6_pretender", "Benim Tahtimin Talibi","Kingdom 6 Lord",  tf_hero|tf_unmoveable_in_party_window, 0,reserved,  fac_kingdom_6,[itm_warhorse,  itm_kozak_civil_jupan_b,             itm_kozak_boots,              itm_kozak_boots,   itm_kozak_jupan_na_kolchuge,           itm_pernach,         itm_reestr_shapka],         lord_attrib,wp(175),knows_lord_1, 0x0000000dc01010523b1349e6dbc6a69b00000000001e26c90000000000000000],

Açıklayalım;
kingdom_6_pretender = Bizim tahtımızın talibinin ID'si.
Benim Tahtimin Talibi = Taht talibimizin ismi.
Kindom 6 Lord = Oyunda gözükmeyen ismi.
tf_hero = Lord tagı.
tf_unmoveable_in_party_window = Bu tag oyuncunun kaleye, şehire vs. koyulmasını önler.
fac_kingdom_6 = Talibimizin faction'u. Yine kendi factionumuzu yazıyoruz.
0x0000... = Yüz kodu.

Evet son olarak ise kurduğumuz faction'un ofis askerini koyalım, (Çok önemli)
alttaki kodu buluyoruz.

Code:
	["ms_ai_officer_fac5", "{!}Do not translate","{!}Do not translate",tf_hero|tf_inactive|tf_randomize_face, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],

hemen altına;
Code:
	["ms_ai_officer_fac6", "{!}Do not translate","{!}Do not translate",tf_hero|tf_inactive|tf_randomize_face, 0,reserved,  fac_neutral,[],def_attrib|level(18),wp(60),knows_common, 0],
ekliyoruz.

Açıklayalım;
ms_ai_officer_fac6 = Burası bizim ofis askerlerimizin kodu. Scripts modülünde kullanacağız. Gerisine ellemeye gerek yok.

Şimdi çalışanları ekleyelim :smile:
Alttakini buluyoruz;
Code:
  ["town_18_arena_master", "Tournament Master","Tournament Master",tf_hero|tf_randomize_face, scn_town_18_arena|entry(52),reserved,  fac_commoners,[    ],    def_attrib|level(2),wp(20),knows_common,man_face_middle_1, man_face_older_2],

Altına ekliyoruz;
Code:
  ["town_19_arena_master", "Tournament Master","Tournament Master",tf_hero|tf_randomize_face, scn_town_19_arena|entry(52),reserved,  fac_commoners,[    ],    def_attrib|level(2),wp(20),knows_common,man_face_middle_1, man_face_older_2],

Açıklayalım;
town_19_arena_master = Arena sorumlumuzun ID'si.
Tournament Master = Arena sorumlumuzun ismi.
scn_town_19_arena = Spawn noktası.

Alttakini buluyoruz;
Code:
  ["town_18_armorer", "Armorer","Armorer",  tf_hero|tf_randomize_face|tf_is_merchant, 0, 0, fac_commoners,[ itm_kozak_boots, itm_ttr_civil_a, itm_tatar_nogay_hat],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Altına ekliyoruz;
Code:
  ["town_19_armorer", "Armorer","Armorer",  tf_hero|tf_randomize_face|tf_is_merchant, 0, 0, fac_commoners,[ itm_kozak_boots, itm_ttr_civil_a, itm_tatar_nogay_hat],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Alttakini buluyoruz;
Code:
  ["town_18_weaponsmith", "Weaponsmith","Weaponsmith",tf_hero|tf_randomize_face|          tf_is_merchant, 0, 0, fac_commoners,[itm_kozak_boots, itm_tatar_halat_pure_b,itm_tatar_nogay_hat],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Altına ekliyoruz;
Code:
  ["town_19_weaponsmith", "Weaponsmith","Weaponsmith",tf_hero|tf_randomize_face|          tf_is_merchant, 0, 0, fac_commoners,[itm_kozak_boots, itm_tatar_halat_pure_b,itm_tatar_nogay_hat],def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Alttakini buluyoruz;
Code:
  ["town_18_tavernkeeper", "Tavern Keeper","Tavern Keeper",tf_hero|tf_randomize_face,           scn_town_18_tavern|entry(9),0,  fac_commoners,[itm_kozak_boots, itm_tatar_halat_pure_b],def_attrib|level(2),wp(20),knows_common, mercenary_face_1, mercenary_face_2],

Altına ekliyoruz;
Code:
  ["town_19_tavernkeeper", "Tavern Keeper","Tavern Keeper",tf_hero|tf_randomize_face,           scn_town_19_tavern|entry(9),0,  fac_commoners,[itm_kozak_boots, itm_tatar_halat_pure_b],def_attrib|level(2),wp(20),knows_common, mercenary_face_1, mercenary_face_2],

Alttakini buluyoruz;
Code:
  ["town_18_merchant", "Merchant","Merchant",          tf_hero|tf_randomize_face|tf_is_merchant, scn_town_18_store|entry(9),0, fac_commoners,    [itm_good_sapogi, itm_tatar_halat_pure_b, itm_tatar_bayrak_hat],def_attrib|level(2),wp(20),knows_inventory_management_10, man_face_young_1, man_face_older_2],

Altına ekliyoruz;
Code:
  ["town_19_merchant", "Merchant","Merchant",          tf_hero|tf_randomize_face|tf_is_merchant, scn_town_19_store|entry(9),0, fac_commoners,    [itm_good_sapogi, itm_tatar_halat_pure_b, itm_tatar_bayrak_hat],def_attrib|level(2),wp(20),knows_inventory_management_10, man_face_young_1, man_face_older_2],

Alttakini buluyoruz;
Code:
  ["town_18_horse_merchant", "Horse Merchant","Town 18 Horse Merchant",tf_hero|tf_randomize_face|tf_is_merchant,  0, 0, fac_commoners,[ itm_kozak_boots,itm_tatar_halat_pure_b,itm_tatar_man_hat],     def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Altına ekliyoruz;
Code:
  ["town_19_horse_merchant", "Horse Merchant","Town 19 Horse Merchant",tf_hero|tf_randomize_face|tf_is_merchant,  0, 0, fac_commoners,[ itm_kozak_boots,itm_tatar_halat_pure_b,itm_tatar_man_hat],     def_attrib|level(5),wp(20),knows_inventory_management_10, mercenary_face_1, mercenary_face_2],

Alttakini buluyoruz;
Code:
  ["town_18_mayor", "Mayor","Mayor", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[ itm_sapogi, itm_ttr_civil_a,  itm_tatar_bayrak_hat],     def_attrib|level(2),wp(20),knows_common,  man_face_middle_1, mercenary_face_2],

Altına ekliyoruz;
Code:
  ["town_19_mayor", "Mayor","Mayor", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[ itm_sapogi, itm_ttr_civil_a,  itm_tatar_bayrak_hat],     def_attrib|level(2),wp(20),knows_common,  man_face_middle_1, mercenary_face_2],

Alttakini buluyoruz;
Code:
  ["town_18_trade_guild_master", "Trade Guild Master","Trade Guild Master", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[itm_sapogi, itm_tatar_halat_pure_a,itm_tatar_man_hat],     def_attrib|level(2),wp(20),knows_common, 0x000000000004728b01c293c694944b05],

Altına ekliyoruz;
Code:
  ["town_19_trade_guild_master", "Trade Guild Master","Trade Guild Master", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[itm_sapogi, itm_tatar_halat_pure_a,itm_tatar_man_hat],     def_attrib|level(2),wp(20),knows_common, 0x000000000004728b01c293c694944b05],

Alttakini buluyoruz;
Code:
  ["town_18_garrison_officer", "Garrison Commander","Garrison Commander", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[itm_kalmyk_boots, itm_tatar_kolcha, itm_tatar_misurka_rich,itm_sablya_tatar_a],     def_attrib|level(20),wp(200),knows_common, 0x000000000004728b01c293c694944b05],

Altına ekliyoruz;
Code:
  ["town_19_garrison_officer", "Garrison Commander","Garrison Commander", tf_hero|tf_randomize_face, 0,reserved,  fac_neutral,[itm_kalmyk_boots, itm_tatar_kolcha, itm_tatar_misurka_rich,itm_sablya_tatar_a],     def_attrib|level(20),wp(200),knows_common, 0x000000000004728b01c293c694944b05],

Evet artık buradaki işlemimizde bitti. Kaydedip çıkalım.

Şimdi işin en kolay kısmı olan module_party_templates.py dosyasını açalım.

Bunu bulalım;
Code:
  ("kingdom_5_reinforcements_a", "kingdom 5 reinforcements a", 0, 0, fac_commoners, 0, [(trp_rhodok_spearman,1,5),(trp_rhodok_tribesman,3,8)]),
  ("kingdom_5_reinforcements_b", "kingdom 5 reinforcements b", 0, 0, fac_commoners, 0, [(trp_rhodok_spearman,8,16),(trp_rhodok_trained_spearman,2,5)]),
  ("kingdom_5_reinforcements_c", "kingdom 5 reinforcements c", 0, 0, fac_commoners, 0, [(trp_rhodok_sergeant,6,12),(trp_rhodok_trained_crossbowman,1,3),(trp_rhodok_crossbowman,1,4)]),

altına ekleyelim;

Code:
  ("kingdom_6_reinforcements_a", "kingdom 6 reinforcements a", 0, 0, fac_commoners, 0, [(trp_benim_askerim,1,5),(trp_benim_askerim_x,3,8)]),
  ("kingdom_6_reinforcements_b", "kingdom 6 reinforcements b", 0, 0, fac_commoners, 0, [(trp_benim_okcum,8,16),(trp_benim_okcum_x,2,5)]),
  ("kingdom_6_reinforcements_c", "kingdom 6 reinforcements c", 0, 0, fac_commoners, 0, [(trp_benim_sovalyem,6,12),(trp_benim_okcum_x,1,3),(trp_benim_askerim_x,1,4)]),

Açıklayalım;
kingdom_6_reinforcements_a = Bu bizim birazdan script içinde kullanacağımız trp ID'miz.
kingdom 6 reinforcements a = Burayı istediğiniz gibi ayarlayın, yeter ki türkçe karakter kullanmayın.
fac_commoners = Burasını ellemeyin.
(trp_benim_askerim,1,5) Burası bizim oluşturduğumuz askerin ID numarası. Siz kendinize göre ayarlayacaksınız. (1 en az, 5 en fazla kaç asker olacağıdır.)

Bu dosyadaki işimizde bitti kaydedip, çıkalım.

Evet şimdi öncelikle taht talibimizi yerleştirelim,
module_triggers.py dosyasını açıyoruz ve alttaki satırı buluyoruz.

Code:
		  (else_try), 
			(eq, ":pretender", "trp_kingdom_5_pretender"), 
			(check_quest_active, "qst_oim_getman_main"),
			(call_script, "script_cf_select_random_town_with_faction", "fac_kingdom_1"), 
			(assign, ":town_no", reg0), 
				(try_begin), 
					(lt, ":town_no", 0), 
					(assign, ":town_no", "p_town_7"), 
				(end_try),

Bunun hemen altına şunu ekliyoruz;

Code:
		  (else_try), 
			(eq, ":pretender", "trp_kingdom_6_pretender"), 
			(check_quest_active, "qst_oim_getman_main"),
			(call_script, "script_cf_select_random_town_with_faction", "fac_kingdom_5"), 
			(assign, ":town_no", reg0), 
				(try_begin), 
					(lt, ":town_no", 0), 
					(assign, ":town_no", "p_town_11"), 
				(end_try),

Evet şimdi buradada taht talibimizi yerleştirdik.

Açıklayalım;
trp_kingdom_6_pretender = Taht talibimizin ID'si.
fac_kingdom_5 = Burası taht talibinin dolanacağı şehirler hangi krallıkta olsun belirliyoruz. Ben 5. krallığı seçtim, kazakları yani.
p_town_11 = Eğer bu kalelerden birine girmezse nere gitsin buradan ayarlarsınız ben 11. şehiri seçtim.

Evet buradaki işimizde bitti, kaydedelim ve çıkalım.

Şimdi script modülüne geçmeden önce şehirimizi yapalım,
module_parties.py dosyasını açalım ve şu satırı bulalım.

Code:
  ("town_18", "Kyzykermen", icon_town_steppe|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(30.95, -71.87),[], 135),

hemen altına yeni şehrimizi ekleyelim;

Code:
  ("town_19", "Benim Sehrim", icon_town_steppe|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-7.79,77.57),[], 135),

Açıklayalım;
town_19 = Şehrimizin ID'si.
Benim Sehrim = Şehrimizin ismi.
icon_town_steppe = Şehrimizin görünümü.
pf_town = Şehir tagı.
(-7.79,77.57) = Şehrimizin kordinatları.

Evet bu dosyadada işimiz bitti, kaydedip çıkabiliriz.

Şimdi yaptığımız şehri düzenleyelim. Bu şehre bir han, bir kale ve benzeri şeyler gerekli.
Sıradaki dosyamız olan module_scenes.py dosyasını açalım.

Alttaki satırı bulalım;
Code:
  ("town_18_center",sf_generate,"none", "none",(0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",
    [],[],"outer_terrain_steppe"),

altına ekleyelim;

Code:
  ("town_19_center",sf_generate,"none", "none",(0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",
    [],[],"outer_terrain_steppe"),

Açıklayalım;
town_19_center = Bu bizim şehrimizin sokağı. Ben burayı 7. şehirden kopya aldım. Eğer profesyonel değilseniz sizde kopya alın derim.
0x00000... Kısmı bizim edit mod ile oluşturduğumuz alan kodudur. Fakat açıkcası kopya almanızı öneririm. Bu yine 7. şehrin kopyasıdır.

Şimdi diğer alanlarımızı yapalım;
Dikkat: town_19_center'in arazi kodunu hangi şehirden almışsanız bundan sonrasını ona göre düzenleyiniz. Ben 7. şehre göre gideceğim.

Alttaki satırı buluyoruz;
Code:
  ("town_18_castle",sf_indoors, "oim_interier_ttr_zal", "bo_oim_interier_ukr_zal", (-100,-100),(100,100),-100,"0",
    ["exit"],["town_18_seneschal"]),

altına ekliyoruz;
Code:
  ("town_19_castle",sf_indoors,"oim_interier_evro_zal", "bo_oim_interier_evro_zal", (-100,-100),(100,100),-100,"0",
    ["exit"],["town_19_seneschal"]),

Kalemiz tamam, devam edelim.
Alttaki satırı buluyoruz;
Code:
  ("town_18_tavern",sf_indoors, "interior_town_house_steppe_c", "bo_interior_town_house_steppe_c", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

hemen altına ekliyoruz;
Code:
  ("town_19_tavern",sf_indoors,"oim_interier_evro_tavern", "bo_oim_interier_evro_tavern", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

Hanımızda tamam, devam edelim.
Alttaki satırı buluyoruz,
Code:
  ("town_18_store",sf_indoors, "interior_town_house_steppe_d", "bo_interior_town_house_steppe_d", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

altına ekliyoruz;
Code:
  ("town_19_store",sf_indoors, "interior_house_a", "bo_interior_house_a", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

Store'umuzda tamam devam edelim.
Alttaki satırı buluyoruz;
Code:
  ("town_18_arena",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",
    [],[],"outer_terrain_steppe"),

altına ekliyoruz;
Code:
  ("town_19_arena",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",
    [],[],"outer_terrain_plain"),

Arena'mızda tamam devam edelim, az kaldı.
Alttaki satırı buluyoruz;
Code:
  ("town_18_prison",sf_indoors,"interior_prison_o", "bo_interior_prison_o", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

altına ekliyoruz;
Code:
  ("town_19_prison",sf_indoors,"interior_prison_i", "bo_interior_prison_i", (-100,-100),(100,100),-100,"0",
    ["exit"],[]),

Nezarethane'mizide yaptık, şimdi surlara geçelim.
Alttaki satırı buluyoruz;
Code:
  ("town_18_walls",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",
    [],[],"outer_terrain_steppe"),

Hemen altına ekliyoruz;
Code:
  ("town_19_walls",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",
    [],[],"outer_terrain_plain"),

Buda bitti devam edelim,
Alttaki satırı buluyoruz;
Code:
  ("town_18_alley",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",
    [],[],"outer_terrain_steppe"),

altına ekliyoruz;
Code:
  ("town_19_alley",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",
    [],[],"outer_terrain_plain"),

Şimdi saldırı anlarını yapalım;
Alttaki satırı buluyoruz;
Code:
  ("town_18_destroyed_walls",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",[],[],"outer_terrain_steppe"),

altına ekliyoruz;
Code:
  ("town_19_destroyed_walls",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",[],[],"outer_terrain_steppe"),

Evet son 1 tane kaldı.
Alttakini buluyoruz;
Code:
  ("town_18_interrior_assault",sf_generate,"none", "none", (0,0),(100,100),-100,"0x000000002000050000070dc80000267b00002b1a000075be",[],[],"outer_terrain_steppe"),

ve altına ekliyoruz.
Code:
  ("town_19_interrior_assault",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005000006ada80000202c00007f6400004a32",[],[],"outer_terrain_steppe"),

Ve artık buradaki işimiz bitti. Kaydedip çıkıyoruz.
Ve kelime sınırına takıldığımız için hemen 2.Kısım'a geçiyoruz.
 
Bir mesaja karakter sınırından dolayı sığmadığı için, kısımlara ayrılmıştır. Kusura bakmayınız.

Evet son ve uzun bölüme geldik :smile:
module_scripts.py dosyasını açıyoruz.

Kralımızı tanımlayalım artık :smile:
Alttakini buluyoruz;
Code:
      (faction_set_slot, "fac_kingdom_5",  slot_faction_culture, "fac_culture_5"),
      (faction_set_slot, "fac_kingdom_5",  slot_faction_leader, "trp_kingdom_5_lord"),
	  (troop_set_slot, "trp_kingdom_5_lord", slot_troop_renown, 1200),

altına ekliyoruz;
Code:
      (faction_set_slot, "fac_kingdom_6",  slot_faction_culture, "fac_culture_6"),
      (faction_set_slot, "fac_kingdom_6",  slot_faction_leader, "trp_kingdom_6_lord"),
	  (troop_set_slot, "trp_kingdom_6_lord", slot_troop_renown, 1200),

Açıklayalım;
fac_kingdom_6 = Bizim krallığımızın ID'si.
fac_culture_6 = Kültürümüzün ID'si.
trp_kingdom_6_lord = Kralımızın ID'si.

Şimdi kültürümüzü oluşturalım.
Alttakini buluyoruz;
Code:
        (else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_5"),
      
          (faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_rhodok_deserter"),
          (faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_rhodok_veteran_spearman"),
          (faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_rhodok_messenger"),
          (faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_rhodok_prison_guard"),
          (faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_rhodok_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_5_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_5_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_5_reinforcements_c"),

altına ekliyoruz;
Code:
        (else_try),
          (faction_slot_eq, ":faction_no", slot_faction_culture, "fac_culture_6"),
      
          (faction_set_slot, ":faction_no", slot_faction_deserter_troop, "trp_benim_deserter"),
          (faction_set_slot, ":faction_no", slot_faction_guard_troop, "trp_benim_sovalyem"),
          (faction_set_slot, ":faction_no", slot_faction_messenger_troop, "trp_benim_messenger"),
          (faction_set_slot, ":faction_no", slot_faction_prison_guard_troop, "trp_benim_prison_guard"),
          (faction_set_slot, ":faction_no", slot_faction_castle_guard_troop, "trp_benim_castle_guard"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_a, "pt_kingdom_6_reinforcements_a"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_b, "pt_kingdom_6_reinforcements_b"),
          (faction_set_slot, ":faction_no",  slot_faction_reinforcements_c, "pt_kingdom_6_reinforcements_c"),

Açıklayalım;
fac_culture_6 = Bizim kültürümüzün ID'si.
trp_benim_deserter = İlk başta oluşturduğumuz deserter.
trp_benim_messenger = İlk başta oluşturduğumuz ulağımız.
trp_benim_sovalyem = Kale gardiyanlarımız.
trp_benim_prison_guard = Gardiyanımız.
trp_benim_castle_guard = Kale savunucularımız.
pt_kingdom_6_reinforcements_a = Party_template içinde oluşturduğumuz birliklerimiz.

Şimdi şehrimizi bir ticaret şehrine döndürelim;
Alttakini buluyoruz;
Code:
      (call_script, "script_set_trade_route_between_centers", "p_town_17", "p_town_18"), #Akkerman - Kyzykermen

Altına ekliyoruz;
Code:
      (call_script, "script_set_trade_route_between_centers", "p_town_19", "p_town_9"), #Benim Sehrim - Pskov
      (call_script, "script_set_trade_route_between_centers", "p_town_19", "p_town_4"), #Benim Sehrim - Vilna
      (call_script, "script_set_trade_route_between_centers", "p_town_19", "p_town_12"), #Benim Sehrim - Riga

Açıklayalım;
p_town_19 = Şehrimizin ID'si.
p_town_9 = Ticaret yapılacak şehir.

Evet şimdi şehrimize ticarette bağladık.
Şimdi şehrimizin ticaret mallarına bir göz atalım;

Alttakini buluyoruz;
Code:
	  #Kyzykermen
      (party_set_slot,"p_town_18", slot_town_arena_melee_1_num_teams,   2),
      (party_set_slot,"p_town_18", slot_town_arena_melee_1_team_size,   4),
      (party_set_slot,"p_town_18", slot_town_arena_melee_2_num_teams,   2),
      (party_set_slot,"p_town_18", slot_town_arena_melee_2_team_size,   5),
      (party_set_slot,"p_town_18", slot_town_arena_melee_3_num_teams,   2),
      (party_set_slot,"p_town_18", slot_town_arena_melee_3_team_size,   6),
      (call_script, "script_center_change_trade_good_production", "p_town_18", "itm_leatherwork", 120, 0), #primary production
	  (call_script, "script_center_change_trade_good_production", "p_town_18", "itm_spice", 30, 0), #secondary production
	  (call_script, "script_center_change_trade_good_production", "p_town_18", "itm_dried_meat", 160, 0), #third production
	  (call_script, "script_center_change_trade_good_production", "p_town_18", "itm_pottery", 80, 0), #from Bakhchisaray primary
	  (call_script, "script_center_change_trade_good_production", "p_town_18", "itm_salt", 50, 0), #from Akkerman primary

altına ekliyoruz.
Code:
      (party_set_slot,"p_town_19", slot_town_arena_melee_1_num_teams,   2),
      (party_set_slot,"p_town_19", slot_town_arena_melee_1_team_size,   4),
      (party_set_slot,"p_town_19", slot_town_arena_melee_2_num_teams,   2),
      (party_set_slot,"p_town_19", slot_town_arena_melee_2_team_size,   5),
      (party_set_slot,"p_town_19", slot_town_arena_melee_3_num_teams,   2),
      (party_set_slot,"p_town_19", slot_town_arena_melee_3_team_size,   6),
      (call_script, "script_center_change_trade_good_production", "p_town_19", "itm_leatherwork", 120, 0), #primary production
	  (call_script, "script_center_change_trade_good_production", "p_town_19", "itm_raw_dyes", 30, 0), #secondary production
	  (call_script, "script_center_change_trade_good_production", "p_town_19", "itm_cheese", 160, 0), #third production
	  (call_script, "script_center_change_trade_good_production", "p_town_19", "itm_flour", 80, 0), #from Bakhchisaray primary
	  (call_script, "script_center_change_trade_good_production", "p_town_19", "itm_oil", 50, 0), #from Akkerman primary

Açıklayalım;
p_town_19 = Şehrimizin ID'si.
itm_... = Ticaret yapılacak eşyalar.

Evet ticaret mallarımızıda ekledik.
Şimdi kalemizi krala teslim edelim;

Alttaki kodu buluyoruz;
Code:
      (call_script, "script_give_center_to_lord", "p_town_18", "trp_knight_3_9", 0),

Altına ekliyoruz;
Code:
      (call_script, "script_give_center_to_lord", "p_town_19", "trp_kingdom_6_lord", 0),

Açıklayalım;
p_town_19 = Şehrimizin ID'si.
trp_kingdom_6_lord = Kralımızın ID'si.

Evet şimdi Krallığımızın diplomatik ilişkilerine bakalım;
Alttaki kodu buluyoruz;
Code:
	  (call_script, "script_oim_diplomacy_start_war_between_kingdoms", "fac_kingdom_3", "fac_kingdom_5", 1),

Altına ekliyoruz;
Code:
          (call_script, "script_oim_diplomacy_start_peace_between_kingdoms", "fac_kingdom_6", "fac_kingdom_2", 1),
          (call_script, "script_oim_diplomacy_start_peace_between_kingdoms", "fac_kingdom_6", "fac_kingdom_4", 1),
          (call_script, "script_oim_diplomacy_start_peace_between_kingdoms", "fac_kingdom_6", "fac_kingdom_1", 1),
          (call_script, "script_oim_diplomacy_start_war_between_kingdoms", "fac_kingdom_6", "fac_kingdom_5", 1),
          (call_script, "script_oim_diplomacy_start_war_between_kingdoms", "fac_kingdom_6", "fac_kingdom_3", 1),

Açıklayalım;
script_oim_diplomacy_start_peace_between_kingdoms = Barış antlaşması olan krallıklar.
fac_kingdom_6 = Bizim krallığımız.
fac_kingdom_1 = Lehistan
fac_kingdom_2 = Rus Çarlığı
fac_kingdom_4 = İsveç
script_oim_diplomacy_start_war_between_kingdoms = Savaş halinde olan krallıklar.
fac_kingdom_5 = Kazak Atamanlığı
fac_kingdom_3 = Kırım Hanlığı

Ben burada Kırım ve Kazaklarla savaş ayarı yaptım. Siz kendiniz düzenlersiniz. Ama taht talibinizi savaştığınız krallıklardan birine koymayı unutmayınız.

Köylerdeki askerlerimizi ayarlayalım şimdi;
Alttakini buluyoruz;
Code:
       (faction_set_slot, "fac_kingdom_5", slot_faction_tier_1_troop, "trp_rhodok_tribesman"),

Altına ekliyoruz;
Code:
       (faction_set_slot, "fac_kingdom_6", slot_faction_tier_1_troop, "trp_benim_askerim_x"),

Açıklayalım;
fac_kingdom_6 = Krallık ID'miz.
trp_benim_askerim_x = Krallığımızın askeri.

Alttakini buluyoruz;
Code:
	 (else_try),
	   (eq, ":faction", "fac_kingdom_5"), 
	   (faction_get_slot, ":volunteer_troop", "fac_kingdom_5", slot_faction_tier_1_troop),

altına ekliyoruz;
Code:
	 (else_try),
	   (eq, ":faction", "fac_kingdom_6"), 
	   (faction_get_slot, ":volunteer_troop", "fac_kingdom_6", slot_faction_tier_1_troop),

Açıklayalım;
fac_kingdom_6 = Krallığımızın ID'si.

Buda tamam.
Şimdi gelelim taht talibimize;
Alttakini buluyoruz;
Code:
        (troop_set_slot, "trp_kingdom_5_pretender",  slot_troop_original_faction, "fac_kingdom_5"),

altına ekliyoruz;
Code:
        (troop_set_slot, "trp_kingdom_6_pretender",  slot_troop_original_faction, "fac_kingdom_6"),

Açıklayalım;
trp_kingdom_6_pretender = Taht talibimizin ID'si.
fac_kingdom_6 = Krallığımızın ID'si.

Alttakini buluyoruz;
Code:
        (troop_set_slot, "trp_kingdom_5_pretender", slot_troop_support_base,     "p_town_3"), #veluca

altına ekliyoruz;
Code:
        (troop_set_slot, "trp_kingdom_6_pretender", slot_troop_support_base,     "p_town_19"),

Açıklayalım;
trp_kingdom_6_pretender = Taht talibimizin ID'si.
p_town_19 = Krallığımızın baş kenti.

Şimdi kültürü tanımlayalım.
Alttakini buluyoruz;
Code:
      (else_try),
        (eq, ":faction_no", "fac_kingdom_5"),
        (assign, ":result", mtf_culture_5),

altına ekliyoruz;
Code:
      (else_try),
        (eq, ":faction_no", "fac_kingdom_6"),
        (assign, ":result", mtf_culture_6),

Açıklayalım;
fac_kingdom_6 = Krallık ID'miz.
mtf_culture_6 = Kültürümüz.

Ünite tiplerimize geldik.
Alttakini buluyoruz;
Code:
		(else_try), 
			(eq, ":faction_no", "fac_kingdom_5"), 
			(try_begin), 
				(eq, ":unit_type", 1), #pikeman
				(assign, ":result", "trp_rhodok_spearman"), 
			(else_try), 
				(eq, ":unit_type", 2), #mushketman
				(assign, ":result", "trp_rhodok_sergeant"), 
			(else_try), 
				(eq, ":unit_type", 3), #dragoon
				(assign, ":result", "trp_rhodok_crossbowman"), 
			(else_try), 
				(eq, ":unit_type", 4), #heavy cavalry
				(assign, ":result", "trp_rhodok_veteran_crossbowman"), 
			(try_end),

altına ekliyoruz;
Code:
		(else_try), 
			(eq, ":faction_no", "fac_kingdom_6"), 
			(try_begin), 
				(eq, ":unit_type", 1), #pikeman
				(assign, ":result", "trp_benim_askerim"), 
			(else_try), 
				(eq, ":unit_type", 2), #mushketman
				(assign, ":result", "trp_benim_askerim_x"), 
			(else_try), 
				(eq, ":unit_type", 3), #dragoon
				(assign, ":result", "trp_benim_okcum"), 
			(else_try), 
				(eq, ":unit_type", 4), #heavy cavalry
				(assign, ":result", "trp_benim_okcum_x"), 
			(try_end),

Açıklayalım;
fac_kingdom_6 = Krallık ID'miz.
trp_... = Bunlar bizim başta yarattığımız krallık askerlerimiz.

Şimdi artık ofis askerlerimizi belirleyelim. (Dikkat: Eğer burası yapılmazsa oyunu oynayamazsınız.)
Alttakini buluyoruz;
Code:
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_inf_limit, -1),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_kav_limit, 2),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_elit_limit, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_merc_limit, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_inf_chance_factor, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_cav_chance_factor, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_elit_chance_factor, 3),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_merc_chance_factor, 2),
		(troop_set_slot, "trp_ms_ai_officer_fac5", slot_ms_officer_troops_start, ms_flag_troop_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 9, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 10, "trp_rhodok_sergeant"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 11, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 12, "trp_rhodok_trained_crossbowman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 13, 5),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 14, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 15, 0),	

		(troop_set_slot, "trp_ms_ai_officer_fac5", 16, ms_flag_troop_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 17, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 18, "trp_rhodok_spearman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 19, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 20, "trp_ukr_golota"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 21, 20),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 22, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 23, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 24, ms_flag_troop_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 25, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 26, "trp_rhodok_trained_spearman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 27, 27),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 28, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 29, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 30, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 31, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 32, ms_flag_troop_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 33, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 34, "trp_rhodok_crossbowman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 35, 12),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 36, "trp_ukr_storoja"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 37, 12),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 38, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 39, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 40, ms_flag_troop_elite_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 41, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 42, "trp_rhodok_veteran_spearman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 43, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 44, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 45, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 46, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 47, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 48, ms_flag_troop_elite_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 49, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 50, "trp_rhodok_veteran_crossbowman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 51, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 52, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 53, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 54, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 55, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 56, ms_flag_troop_mercenary_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 57, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 58, "trp_gorod_kozak"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 59, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 60, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 61, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 62, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 63, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 64, ms_flag_troop_mercenary_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 65, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 66, "trp_reestrovuy_kozak"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 67, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 68, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 69, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 70, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 71, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 72, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 73, "trp_kingdom_5_lord"),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 74, "trp_rhodok_veteran_spearman"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 75, 50),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 76, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 77, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 78, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 79, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 80, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 81, "trp_knight_5_8"),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 82, "trp_reestrovuy_kozak"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 83, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 84, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 85, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 86, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 87, 0),	

		(troop_set_slot, "trp_ms_ai_officer_fac5", 88, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 89, "trp_knight_5_5"),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 90, "trp_reestrovuy_kozak"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 91, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 92, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 93, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 94, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 95, 0),		

		(troop_set_slot, "trp_ms_ai_officer_fac5", 96, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 97, "trp_knight_5_6"),	
		(troop_set_slot, "trp_ms_ai_officer_fac5", 98, "trp_reestrovuy_kozak"),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 99, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 100, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 101, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac5", 102, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac5", 103, 0),

altına ekliyoruz;
Code:
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_inf_limit, -1),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_kav_limit, 2),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_elit_limit, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_merc_limit, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_inf_chance_factor, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_cav_chance_factor, 1),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_elit_chance_factor, 3),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_merc_chance_factor, 2),
		(troop_set_slot, "trp_ms_ai_officer_fac6", slot_ms_officer_troops_start, ms_flag_troop_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 9, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 10, "trp_benim_askerim"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 11, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 12, "trp_benim_askerim_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 13, 5),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 14, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 15, 0),	

		(troop_set_slot, "trp_ms_ai_officer_fac6", 16, ms_flag_troop_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 17, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 18, "trp_benim_okcum"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 19, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 20, "trp_benim_okcum_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 21, 20),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 22, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 23, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 24, ms_flag_troop_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 25, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 26, "trp_benim_askerim_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 27, 27),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 28, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 29, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 30, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 31, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 32, ms_flag_troop_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 33, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 34, "trp_benim_okcum"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 35, 12),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 36, "trp_benim_sovalyem"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 37, 12),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 38, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 39, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 40, ms_flag_troop_elite_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 41, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 42, "trp_benim_askerim_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 43, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 44, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 45, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 46, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 47, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 48, ms_flag_troop_elite_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 49, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 50, "trp_benim_sovalyem"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 51, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 52, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 53, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 54, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 55, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 56, ms_flag_troop_mercenary_infantry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 57, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 58, "trp_benim_okcum_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 59, 30),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 60, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 61, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 62, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 63, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 64, ms_flag_troop_mercenary_cavalry),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 65, 0),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 66, "trp_benim_askerim"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 67, 25),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 68, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 69, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 70, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 71, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 72, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 73, "trp_kingdom_6_lord"),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 74, "trp_benim_sovalyem"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 75, 50),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 76, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 77, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 78, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 79, 0),		
		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 80, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 81, "trp_knight_6_8"),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 82, "trp_benim_sovalyem"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 83, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 84, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 85, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 86, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 87, 0),	

		(troop_set_slot, "trp_ms_ai_officer_fac6", 88, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 89, "trp_knight_6_5"),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 90, "trp_benim_okcum_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 91, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 92, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 93, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 94, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 95, 0),		

		(troop_set_slot, "trp_ms_ai_officer_fac6", 96, ms_flag_troop_uniq),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 97, "trp_knight_6_6"),	
		(troop_set_slot, "trp_ms_ai_officer_fac6", 98, "trp_benim_askerim_x"),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 99, 40),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 100, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 101, 0),		
		(troop_set_slot, "trp_ms_ai_officer_fac6", 102, 0),
		(troop_set_slot, "trp_ms_ai_officer_fac6", 103, 0),

Şimdi recruitment'imizi ayarlayalım;
Alttakini buluyoruz;
Code:
	   (call_script, "script_ms_init_recruitment_system", "p_town_18", 2),

Altına ekliyoruz;
Code:
      	   (call_script, "script_ms_init_recruitment_system", "p_town_19", 2),

Şimdi savaş anını ayarlayalım;
Alttakini buluyoruz;
Code:
		(else_try),
			(eq, ":party_no", "p_town_18"),
			(assign, reg0, "scn_town_18_destroyed_walls"),

altına ekliyoruz;
Code:
		(else_try),
			(eq, ":party_no", "p_town_19"),
			(assign, reg0, "scn_town_19_destroyed_walls"),

Alttakini buluyoruz;
Code:
		(else_try),
			(eq, ":party_no", "p_town_18"),
			(assign, reg0, "scn_town_18_interrior_assault"),

altına ekliyoruz;
Code:
		(else_try),
			(eq, ":party_no", "p_town_19"),
			(assign, reg0, "scn_town_19_interrior_assault"),

Alttakini buluyoruz;
Code:
		(party_set_slot,"p_town_18", slot_party_ladders_count, 2),

altına ekliyoruz;
Code:
		(party_set_slot,"p_town_19", slot_party_ladders_count, 2),

Ohh, buda bitti. Artık bunuda kaydedip çıkabilir ve build_module.bat dosyamızı çalıştırabiliriz.

Ama işimiz henüz bitmedi;
Şimdi Mount&Blade Wiht Fire And Sword oyunumuzun bulunduğu klasöre giriyoruz,
Modules>Modülünüz>SceneOBJ klasörüne girerek alttaki işlemleri uyguluyoruz.

scn_town_19_alley.sco
scn_town_19_arena.sco
scn_town_19_castle.sco
scn_town_19_destroyed_walls.sco
scn_town_19_center.sco
scn_town_19_interrior_assault.sco
scn_town_19_prison.sco
scn_town_19_store.sco
scn_town_19_tavern.sco
scn_town_19_walls.sco

dosyalarını silip, bizim daha önce arazi kodunu kullandığımız (Hani ben 7. şehrin kodunu kullanmıştım) şehrin dosyalarını kopyalayıp isimlerini 19 olarak değişiyoruz. Mesela ben 7. şehrin almıştım ya

scn_town_7_alley.sco
scn_town_7_arena.sco
scn_town_7_castle.sco
scn_town_7_destroyed_walls.sco
scn_town_7_center.sco
scn_town_7_interrior_assault.sco
scn_town_7_prison.sco
scn_town_7_store.sco
scn_town_7_tavern.sco
scn_town_7_walls.sco

bu dosyaları kopyalayıp isimlerini;

scn_town_19_alley.sco
scn_town_19_arena.sco
scn_town_19_castle.sco
scn_town_19_destroyed_walls.sco
scn_town_19_center.sco
scn_town_19_interrior_assault.sco
scn_town_19_prison.sco
scn_town_19_store.sco
scn_town_19_tavern.sco
scn_town_19_walls.sco

olarak değiştim. Şimdi artık şehrimin görüntüsünü 7. şehir ile aynı yaptım.

NOT: Bir çok dosyayı değiştiğimiz için ilk defa build_module.bat kullanıldığı zaman hatalar verecektir, bitmesini bekleyip tekrardan kullanınız. İkinci seferde faction ve troopslar tanımlanmış olacağından hata mesajı almayacaksınız.
Artık oyunumuza girerek keyifle oynayabiliriz.
İyi oyunlar.
Porshy.
 
Biliyorsunuz ki mount&blade 1.000 serisinden sonra tuz madenini oyundan kaldırdı. Şimdi onu tekrardan oyuna ekleyelim;

Öncelikle module_troops.py dosyamızı açıyoruz ve şunu aratıyoruz.
Code:
  ["salt_mine_merchant", "Barezan","Barezan",                tf_hero|tf_is_merchant, scn_salt_mine|entry(1),0, fac_commoners,        [ ],def_attrib|level(2),wp(20),knows_inventory_management_10, 0x00000000000c528601ea69b6e46dbdb6],

şununla değiştiriyoruz;
Code:
  ["salt_mine_merchant", "Barezan","Barezan",                tf_hero|tf_is_merchant, scn_salt_mine|entry(1),0, fac_commoners,        [itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt, itm_salt],def_attrib|level(2),wp(20),knows_inventory_management_10, 0x00000000000c528601ea69b6e46dbdb6],

Açıklayalım;
salt_mine_merchant = Tüccarın ID'si.
Barezan = Oyunda gözüken ismi.
tf_hero = Ölümsüz.
tf_is_merchant = Tüccar.
scn_salt_mine_entry(1) = Senaryoya giriş noktası.
[itm_salt, ...] = Satacağı itemler.

Evet merchantımız hazır şimdi dosyamızı kaydedip çıkalım. Sırada köyümüz var.

module_parties.py dosyasını açıp şunu buluyoruz;
Code:
  ("salt_mine", "Salt Mine", icon_village_a|pf_disable|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(99.66, -80.8),[]),

Bununla değiştiriyoruz;
Code:
  ("salt_mine", "Salt Mine", icon_village_a|pf_is_static|pf_always_visible|pf_hide_defenders, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(99.66, -80.8),[]),

Açıklayalım;
salt_mine = Tuz madeninin ID'si.
Salt Mine = Oyundaki adı.
icon_village_a = Şekli.
pf_is_static = Sabit.
pf_always_visible = Her zaman görülebilir.
(99.66, -80.:cool: = Kordinatları. (Kırım hanlığının AZAK şehrinin altındaki dağdadır. Bence yeri iyi.)

Evet şehrimizde tamam zaten şehrimizin giriş vb. kodları ayarlı. Şimdi bu dosyayı kaydedip, çıktıktan sonra, bize sadece merchant dialogu lazım.

Hemen module_dialogs.py dosyasını açıyoruz ve şunu arıyoruz;
Code:
#Goods Merchants

hemen altına şunu ekliyoruz;
Code:
  #Salt merchant by Porshy.
  [trp_salt_mine_merchant,"start", [], "Hello my {sir/madam}.", "salt_mine_merchant_talk", []],
  [trp_salt_mine_merchant|plyr, "salt_mine_merchant_talk", [], "Hello.", "salt_mine_merchant_talk2", []],
  [trp_salt_mine_merchant,"salt_mine_merchant_talk2", [], "How can i help you?", "salt_mine_merchant_talk3", []],

  #This is trade window.
  [trp_salt_mine_merchant|plyr,"salt_mine_merchant_talk3", [], "I need some salt", "salt_mine_merchant_talk4", []],
  [trp_salt_mine_merchant,"salt_mine_merchant_talk4", [], "Sure, sure... Here, have a look at my stock...", "salt_mine_merchant_talk4_c", [[change_screen_trade]]],
  [trp_salt_mine_merchant,"salt_mine_merchant_talk4_c", [], "Anything else {sir/madam}?", "salt_mine_merchant_talk3", []],

  #This is stupid window :p
  [trp_salt_mine_merchant|plyr,"salt_mine_merchant_talk3", [], "What do you sell here?", "salt_mine_merchant_talk5", []],
  [trp_salt_mine_merchant,"salt_mine_merchant_talk5", [], "We sell only salt here my {sir/madam}.", "salt_mine_merchant_talk6", []],
  [trp_salt_mine_merchant|plyr,"salt_mine_merchant_talk6", [], "Okey.", "salt_mine_merchant_talk6_c", []],
  [trp_salt_mine_merchant,"salt_mine_merchant_talk6_c", [], "Anything else {sir/madam}?", "salt_mine_merchant_talk3", []],

  #This is cancel window :)
  [trp_salt_mine_merchant|plyr,"salt_mine_merchant_talk3", [], "Nothing", "close_window", []],

Şimdi ise, itemlerin her hafta otomatik güncellenmesini ayarlayalım. module_triggers.py dosyasını açıyoruz.

Bunu buluyoruz;
Code:
      (call_script, "script_refresh_center_inventories"),
      (call_script, "script_refresh_center_armories"),
      (call_script, "script_refresh_center_stables"),
      (call_script, "script_refresh_center_weaponsmiths"),

Altına ekliyoruz;
Code:
        (call_script, "script_refresh_salt_mine_merchant"),

Burada her hafta güncellenen şehir ve kale vendorları ile birlikte tuz madeninindeki vendorumuzunda güncellenmesini sağlıyoruz. Sonraki adım "script"i tanıtmak. module_scripts.py dosyasını açıyoruz;

Bunu buluyoruz;
Code:
  ("troop_add_gold",
    [(store_script_param, ":troop_no", 1),
      (store_script_param, ":amount", 2),
      (troop_add_gold, ":troop_no", ":amount"),
      (try_begin),
        (eq, ":troop_no", "trp_player"),
        (play_sound, "snd_money_received"),
      (try_end),
     ]),

Altına bunu ekliyoruz;
Code:
    ("troop_add_items",
    [
        (store_script_param, ":troop_name", 1),
        (store_script_param, ":item", 2),
        (store_script_param, ":amount", 3),
        (troop_add_items, ":troop_name", ":item", ":amount"),
     ]), 

Burada vendora item aktarımı yapacağız. Kullanımı; "(call_script, "troop_add_items", ITEM IDsi, Miktar)," Son olarak yenileme kodumuzu tanımlayacağız;

Bunu bulunuyoruz;
Code:
  # script_refresh_center_stables

Üstüne ekliyoruz;
Code:
  # script_refresh_salt_mine_merchant
  ("refresh_salt_mine_merchant",
  [
        (troop_clear_inventory, "trp_salt_mine_merchant"),
        (store_random_in_range, ":new_gold", 250 300),
        (call_script, "script_troop_add_gold", "trp_salt_mine_merchant", ":new_gold"),
        (store_random_in_range, ":new_item", 7, 14),
        (call_script, "script_troop_add_items", "trp_salt_mine_merchant", "itm_salt", ":new_item"),
  ]),

Buradaki işlemimizde bitti.

Açıklayalım;
troop_clear_inventory = Eşyasındaki tüm eşyaların silinmesini sağlar. Bunu yapmamızın nedeni eğer silmezsek her hafta item ekleyeceği için bir süre sonra çanta dolacak ve taşacaktır, eğer engellemezsek buga sebep verebilir C# hatası alabilirsiniz.
store_random_in_range = Bu function 2 sayı arasından rastgele bir rakamı seçer. Biz burada 250 ile 300'ü seçtik. (Limit koymadım, bir ara ayarlayacağım.
call_script, "script_troop_add_gold" = Belirlenen altını adamımıza veriyoruz.

Son olarak artık bizim yarattığımız NPC'nin bir tüccar olmadığını belirteceğiz. module_constants.py dosyasını açıyoruz.

Alttakini buluyoruz;
Code:
goods_merchants_begin  = "trp_town_1_merchant"
goods_merchants_end    = "trp_town_1_horse_merchant"

Bununla değiştiriyoruz;
Code:
goods_merchants_begin  = "trp_town_1_merchant"
goods_merchants_end    = "trp_salt_mine_merchant"

salt_mine_merchants_begin = "trp_salt_mine_merchant"
salt_mine_merchants_end   = "trp_town_1_horse_merchant"

Şimdi artık herşey hazır. Bu dosyayıda kaydedip kapatıyoruz.
build_module.bat dosyasını çalıştırıp sistemimizi yüklüyoruz.

Şimdi türkçeleştirelim;
Modules>modülünüz>language>tr
dosyasına girelim ve dialogs.csv dosyasını txt olarak açalım. En alta şunu ekleyelim;
Code:
dlga_start:salt_mine_merchant_talk|Merhaba {beyim/hanımım}.
dlga_salt_mine_merchant_talk:salt_mine_merchant_talk2|Merhaba.
dlga_salt_mine_merchant_talk2:salt_mine_merchant_talk3|Size nasıl yardımcı olabilirim?
dlga_salt_mine_merchant_talk3:salt_mine_merchant_talk4|Biraz tuz almak istiyorum
dlga_salt_mine_merchant_talk4:salt_mine_merchant_talk4_c|Tabii, tabii... Buyrun elimdekilere bir bakın...
dlga_salt_mine_merchant_talk4_c:salt_mine_merchant_talk3|Başka bir şey {beyim/hanımım}?
dlga_salt_mine_merchant_talk3:salt_mine_merchant_talk5|Burada ne satıyorsunuz?
dlga_salt_mine_merchant_talk5:salt_mine_merchant_talk6|Burada tuz satıyoruz {beyim/hanımım}.
dlga_salt_mine_merchant_talk6:salt_mine_merchant_talk6_c|Peki.
dlga_salt_mine_merchant_talk6_c:salt_mine_merchant_talk3|Başka bir şey {beyim/hanımım}?
dlga_salt_mine_merchant_talk3:close_window|Güle güle

Son olarak Tuz Madeni Scene Dosyaları dosyasını indirip,
module>modülünüz>sceneobj
dosyasının içine atalım.

ve artık işimiz bitti. Oyuna girip keyfini çıkaralım :p
 
Evet arkadaşlar, bu dersimizde bir krallığın rengini ve ismini kendimiz ayarlamayı öğreneceğiz.

Bu derste değiştirilecek dosyalar şunlardır; (Yedeklemenizi öneririm)
Code:
module_game_menus.py
module_presentations.py
module_strings.py

Öncelikle ilerde kullanacağımız stringlerimizi ayarlayalım.
module_strings.py dosyasını açıp alttakini bulalım;
Code:
  ("name_kingdom_text", "What will be the name of your kingdom?"),

şununla değiştirelim;
Code:
  ("name_kingdom_text", "What will be the name of your {s7} kingdom?"),
  ("color_kingdom_text", "Which color will be the color of your {s7} kingdom?"),
  ("my_kingdom_tag", "King {playername}"), # Warning: It isn't good enought! Dont change :)

  # Color Names by Porshy;
  ("clrn_lred", "Light Red"),
  ("clrn_red", "Red"),
  ("clrn_dred", "Dark Red"),
  ("clrn_yellow", "Yellow"),
  ("clrn_lblue", "Light Blue"),
  ("clrn_blue", "Blue"),
  ("clrn_dblue", "Dark Blue"),
  ("clrn_vlgreen", "Very Light Green"),
  ("clrn_lgreen", "Light Green"),
  ("clrn_green", "Green"),
  ("clrn_dgreen", "Dark Green"),
  ("clrn_lorange", "Light Orange"),
  ("clrn_orange", "Orange"),
  ("clrn_dorange", "Dark Orange"), #Same Tomato.
  ("clrn_tomato", "Dark Orange"),  #Same Dark Orange.
  ("clrn_purple", "Purple"),
  ("clrn_white", "White"),
  ("clrn_black", "Black"),
  ("clrn_gold", "Gold"),
  # Color Names End!

Açıklayalım;
name_kingdom_text = İsim textimizin ID'si.
What will...? = Krallığın adını soran text.
color_kingdom_text = Renk textimizin ID'si.
Which color ...? = Hangi rengi seçeceğimizi soran yazı.
my_kingdom_tag = Benim denemelerimden biri sadece, ilerde güncellemelerde kullanabilirim, kalsın.
clrn_* = Renklerin isimleri, türkçeleştirirken str_clrn_red|Kırmızı şeklinde yapacağız.

Bu koddaki işimiz bitti. Kaydedip çıkıyoruz.

Şimdi menümüzü ayarlayalım;
module_game_menus.py dosyasını açıyoruz ve şunu buluyoruz;
Code:
      ("action_read_book",[],"Select a book to read.",
       [(jump_to_menu, "mnu_camp_action_read_book"),
        ]
       ),

Bu bizim kamptaki kitap okuma dialogumuz, şimdi hemen altına şunu ekleyelim;
Code:
      ("action_change_kingdom_name", [(eq, "$players_kingdom_name_set", 1)], "{!}Change your kingdom name",
       [(str_store_faction_name, s7, "fac_player_supporters_faction"),(start_presentation, "prsnt_name_kingdom"),
        ]
       ),
      ("action_change_kingdom_color", [(eq, "$players_kingdom_color_set", 1)], "{!}Change your kingdom color",
       [(str_store_faction_name, s7, "fac_player_supporters_faction"),(start_presentation, "prsnt_color_kingdom"),
        ]
       ),

Açıklayalım;
action_change_kingdom_name = Aksiyonumuzun ID'si.
(eq, "$players_kingdom_name_set", 1) = Burada ben Krallığa sahip olup olmadığınızı sorgulattım, eğer sahip değilseniz text gözükmeyecek.
(eq, "$players_kingdom_color_set", 1) = Burada ben Krallığınıza herhangi bir renk seçip, seçmediğinizi sorgulattım, aynı şekilde renk seçmemişseniz bu dialog gözükmez.
fac_player_supporters_faction = Bizim faction'umuz.
prsnt_*_kingdom = Bunlar bizim az sonra hazırlayacağımız menüler.

Şimdi savaştan sonra Krallığımızın adını soracağı dialogu ayarlayalım.
Alttakini buluyoruz;
Code:
("continue",[],"Continue...",
       [         
		(try_begin),
			(eq, "$spawn_enemies_true", 1),
			(call_script, "script_spawn_enemies_as_deserters"),
			(assign, "$spawn_enemies_true", 0),
		(try_end),
		(try_begin),
			(eq, "$spawn_prisioners_true", 1),
			(call_script, "script_spawn_prisioners_as_deserters"),
			(assign, "$spawn_prisioners_true", 0),
		(try_end),
		(try_begin),
			(eq, "$capture_prisioners_true", 1),
			(call_script, "script_capture_as_guards"),
			(assign, "$capture_prisioners_true", 0),
		(try_end),
		#(try_begin), 
		#	(quest_slot_eq, "qst_oim_potop_main", slot_quest_current_state, 12),
		#	(assign, "$g_center_to_give_to_player", "$current_town"),
		#	(quest_set_slot, "qst_oim_potop_main", slot_quest_current_state, 13),
		#	(call_script, "script_succeed_quest", "qst_oim_potop_capture_city"),
		#	(jump_to_menu, "mnu_requested_castle_granted_to_player"), 
		#(try_end),	
		#(try_begin), 
		#	(check_quest_active, "qst_oim_alevtina_hanum"),
		#	(neg|check_quest_succeeded, "qst_oim_alevtina_hanum"),
		#	(neg|check_quest_finished,"qst_oim_alevtina_hanum"),
		#	#(quest_slot_ge, "qst_oim_alevtina_hanum", slot_quest_current_state, 1),
		#	(quest_slot_eq, "qst_oim_alevtina_hanum", slot_quest_target_center, "$g_encountered_party"),
		#	#code
		#	
		#	(assign, "$oim_auto_talk_troop", "trp_alevtina"), 
		#	(jump_to_menu, "mnu_oim_auto_talk_menu"),
		#	(finish_mission),

			
			#(modify_visitors_at_site,"scn_meeting_scene_plain_forest"),
			#(reset_visitors),
			#(set_visitor,0,"trp_player"),
			#(set_visitor,17,"trp_alevtina"),
			#(jump_to_scene,"scn_meeting_scene_plain_forest"),
			#(change_screen_map_conversation, "trp_alevtina"),         
		#(else_try),
         (assign, "$auto_enter_town", "$g_encountered_party"),                  
         (change_screen_return),
		#(end_try), 	
        ]),

alttaki ile değiştiriyoruz;
Code:
("continue",[],"Continue...",
       [         
		(try_begin),
			(eq, "$spawn_enemies_true", 1),
			(call_script, "script_spawn_enemies_as_deserters"),
			(assign, "$spawn_enemies_true", 0),
		(try_end),
		(try_begin),
			(eq, "$spawn_prisioners_true", 1),
			(call_script, "script_spawn_prisioners_as_deserters"),
			(assign, "$spawn_prisioners_true", 0),
		(try_end),
		(try_begin),
			(eq, "$capture_prisioners_true", 1),
			(call_script, "script_capture_as_guards"),
			(assign, "$capture_prisioners_true", 0),
		(try_end),
		#(try_begin), 
		#	(quest_slot_eq, "qst_oim_potop_main", slot_quest_current_state, 12),
		#	(assign, "$g_center_to_give_to_player", "$current_town"),
		#	(quest_set_slot, "qst_oim_potop_main", slot_quest_current_state, 13),
		#	(call_script, "script_succeed_quest", "qst_oim_potop_capture_city"),
		#	(jump_to_menu, "mnu_requested_castle_granted_to_player"), 
		#(try_end),	
		#(try_begin), 
		#	(check_quest_active, "qst_oim_alevtina_hanum"),
		#	(neg|check_quest_succeeded, "qst_oim_alevtina_hanum"),
		#	(neg|check_quest_finished,"qst_oim_alevtina_hanum"),
		#	#(quest_slot_ge, "qst_oim_alevtina_hanum", slot_quest_current_state, 1),
		#	(quest_slot_eq, "qst_oim_alevtina_hanum", slot_quest_target_center, "$g_encountered_party"),
		#	#code
		#	
		#	(assign, "$oim_auto_talk_troop", "trp_alevtina"), 
		#	(jump_to_menu, "mnu_oim_auto_talk_menu"),
		#	(finish_mission),

			
			#(modify_visitors_at_site,"scn_meeting_scene_plain_forest"),
			#(reset_visitors),
			#(set_visitor,0,"trp_player"),
			#(set_visitor,17,"trp_alevtina"),
			#(jump_to_scene,"scn_meeting_scene_plain_forest"),
			#(change_screen_map_conversation, "trp_alevtina"),         
		#(else_try),
         (assign, "$auto_enter_town", "$g_encountered_party"),                  
         #(change_screen_return),
         (try_begin),
           (eq, "$players_kingdom_name_set", 0),
           (str_store_faction_name, s7, "fac_player_supporters_faction"),
           #(troop_set_name, "trp_player", "str_my_kingdom_tag"), ## This is not good enought! Don't open "#" ... (Porshy)
           (start_presentation, "prsnt_name_kingdom"),
         (else_try),
           (eq, "$players_kingdom_name_set", 1),
           (change_screen_return),
         (try_end),
		#(end_try), 	
        ]),

Ve artık burdaki işlemimizde tamam, şimdi menüleride yapalım.

Şimdi module_presentations.py dosyasını açıp şunu bulalım;
Code:
  ("name_kingdom",0,mesh_load_window,[
      (ti_on_presentation_load,
       [(set_fixed_point_multiplier, 1000),
        (str_store_string, s1, "str_name_kingdom_text"),
        (create_text_overlay, reg1, s1, tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 500),
        (overlay_set_position, reg1, pos1),
        (overlay_set_text, reg1, s1),
        (create_simple_text_box_overlay, "$g_presentation_obj_name_kingdom_1"),
        (position_set_x, pos1, 400),
        (position_set_y, pos1, 400),
        (overlay_set_position, "$g_presentation_obj_name_kingdom_1", pos1),
        (try_begin),
          (eq, "$players_kingdom_name_set", 1),
          (str_store_faction_name, s7, "fac_player_supporters_faction"),
          (overlay_set_text, "$g_presentation_obj_name_kingdom_1", s7),
        (else_try),
          (str_store_troop_name, s0, "trp_player"),
          (overlay_set_text, "$g_presentation_obj_name_kingdom_1", "str_default_kingdom_name"),
          (str_store_string, s7, "str_default_kingdom_name"),
        (try_end),
        
        (create_button_overlay, "$g_presentation_obj_name_kingdom_2", "@Continue...", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 300),
        (overlay_set_position, "$g_presentation_obj_name_kingdom_2", pos1),
        (presentation_set_duration, 999999),
        ]),
      (ti_on_presentation_event_state_change,
       [(store_trigger_param_1, ":object"),
        (try_begin),
          (eq, ":object", "$g_presentation_obj_name_kingdom_1"),
          (str_store_string, s7, s0),
        (else_try),
          (eq, ":object", "$g_presentation_obj_name_kingdom_2"),
          (faction_set_name, "fac_player_supporters_faction", s7),
          (faction_set_color, "fac_player_supporters_faction", 0xFF0000),
          (assign, "$players_kingdom_name_set", 1),
          (presentation_set_duration, 0),
        (try_end),
        ]),
      ]),

Şununla değiştirelim;
Code:
  ("name_kingdom",0,mesh_load_window,[
      (ti_on_presentation_load,
       [(set_fixed_point_multiplier, 1000),
        (str_store_string, s1, "str_name_kingdom_text"),
        (create_text_overlay, reg1, s1, tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 500),
        (overlay_set_position, reg1, pos1),
        (overlay_set_text, reg1, s1),
        (create_simple_text_box_overlay, "$g_presentation_obj_name_kingdom_1"),
        (position_set_x, pos1, 400),
        (position_set_y, pos1, 400),
        (overlay_set_position, "$g_presentation_obj_name_kingdom_1", pos1),
        (try_begin),
          (eq, "$players_kingdom_name_set", 1),
          (str_store_faction_name, s7, "fac_player_supporters_faction"),
          (overlay_set_text, "$g_presentation_obj_name_kingdom_1", s7),
        (else_try),
          (str_store_troop_name, s0, "trp_player"),
          (overlay_set_text, "$g_presentation_obj_name_kingdom_1", "str_default_kingdom_name"),
          (str_store_string, s7, "str_default_kingdom_name"),
        (try_end),
        
        (create_button_overlay, "$g_presentation_obj_name_kingdom_2", "@Continue...", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 300),
        (overlay_set_position, "$g_presentation_obj_name_kingdom_2", pos1),
        (presentation_set_duration, 999999),
        ]),
      (ti_on_presentation_event_state_change,
       [(store_trigger_param_1, ":object"),
        (try_begin),
          (eq, ":object", "$g_presentation_obj_name_kingdom_1"),
          (str_store_string, s7, s0),
        (else_try),
          (eq, ":object", "$g_presentation_obj_name_kingdom_2"),

          (try_begin),
            (eq, "$players_kingdom_color_set", 0),
            (faction_set_name, "fac_player_supporters_faction", s7),
            (assign, "$players_kingdom_name_set", 1),
            #(faction_set_color, "fac_player_supporters_faction", 0xFF0000),
            (start_presentation, "prsnt_color_kingdom"),
          (else_try),
            (eq, "$players_kingdom_color_set", 1),
            (faction_set_name, "fac_player_supporters_faction", s7),
            (assign, "$players_kingdom_name_set", 1),
            (presentation_set_duration, 0),
          (try_end),
        (try_end),
        ]),
      ]),

  ("color_kingdom",0,mesh_load_window,[
      (ti_on_presentation_load,
       [(set_fixed_point_multiplier, 1000),
        (str_store_string, s1, "str_color_kingdom_text"),
        (create_text_overlay, reg1, s1, tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 700),
        (overlay_set_position, reg1, pos1),
        (overlay_set_text, reg1, s1),
       
        (create_button_overlay, "$g_presentation_obj_color_kingdom_1", "str_clrn_red", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 300),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_1", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_2", "str_clrn_lgreen", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 325),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_2", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_3", "str_clrn_tomato", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 350),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_3", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_4", "str_clrn_orange", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 375),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_4", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_5", "str_clrn_vlgreen", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 400),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_5", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_6", "str_clrn_blue", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 425),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_6", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_7", "str_clrn_lred", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 450),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_7", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_8", "str_clrn_black", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 475),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_8", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_9", "str_clrn_white", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 500),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_9", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_10", "str_clrn_lorange", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 275),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_10", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_11", "str_clrn_green", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 250),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_11", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_12", "str_clrn_purple", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 225),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_12", pos1),

        (create_button_overlay, "$g_presentation_obj_color_kingdom_13", "str_clrn_yellow", tf_center_justify),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 200),
        (overlay_set_position, "$g_presentation_obj_color_kingdom_13", pos1),

        (presentation_set_duration, 999999),
        ]),
      (ti_on_presentation_event_state_change,
       [(store_trigger_param_1, ":object"),
         (try_begin),
           (eq, ":object", "$g_presentation_obj_color_kingdom_1"),
           (faction_set_color, "fac_player_supporters_faction", 0xFF0000),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_2"),
           (faction_set_color, "fac_player_supporters_faction", 0x54bf7c),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_3"),
           (faction_set_color, "fac_player_supporters_faction", 0xF75431),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_4"),
           (faction_set_color, "fac_player_supporters_faction", 0xe6bf61),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_5"),
           (faction_set_color, "fac_player_supporters_faction", 0xadd451),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_6"),
           (faction_set_color, "fac_player_supporters_faction", 0x75bbd2),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_7"),
           (faction_set_color, "fac_player_supporters_faction", 0xd76363),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_8"),
           (faction_set_color, "fac_player_supporters_faction", 0x000000),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_9"),
           (faction_set_color, "fac_player_supporters_faction", 0xFFFFFF),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_10"),
           (faction_set_color, "fac_player_supporters_faction", 0xDD8844),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_11"),
           (faction_set_color, "fac_player_supporters_faction", 0x33DD33),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_12"),
           (faction_set_color, "fac_player_supporters_faction", 0xCC99FF),
           (assign, "$players_kingdom_color_set", 1),
         (else_try),
           (eq, ":object", "$g_presentation_obj_color_kingdom_13"),
           (faction_set_color, "fac_player_supporters_faction", 0xDDDD33),
           (assign, "$players_kingdom_color_set", 1),
         (try_end),
         (presentation_set_duration, 0),
         (change_screen_return),
       ]),
     ]),

Şimdi burdaki işimizde bitti, kaydedip çıkıyoruz.
Ve artık build_module.bat dosyasını çalıştırıyoruz.

Şimdi türkçeleştirelim;
languages>tr>game_strings.csv
Code:
str_clrn_lred|Açık Kırmızı
str_clrn_red|Kırmızı
str_clrn_dred|Koyu Kırmızı
str_clrn_yellow|Sarı
str_clrn_lblue|Açık Mavi
str_clrn_blue|Mavi
str_clrn_dblue|Koyu Mavi
str_clrn_vlgreen|Sarımtırak Yeşil
str_clrn_lgreen|Açık Yeşil
str_clrn_green|Yeşil
str_clrn_dgreen|Koyu Yeşil
str_clrn_lorange|Açık Turuncu
str_clrn_orange|Turuncu
str_clrn_dorange|Koyu Turuncu
str_clrn_tomato|Koyu Turuncu
str_clrn_purple|Mor
str_clrn_black|Siyah
str_clrn_white|Beyaz
str_clrn_gold|Altın
str_color_kingdom_text|Hangi renk sizin {s7} krallığınızın rengi olsun?
str_name_kingdom_text|{s7} krallığının yeni ismi ne olsun?
str_my_kingdom_tag|Kral {playername}

languages>tr>game_menus.csv
Code:
mno_action_change_kingdom_name|Krallığının ismini değiş.
mno_action_change_kingdom_color|Krallığının rengini değiş.

Ve dersimizin sonuna geldik...
 
Bu dersimizde köy eklemeyi öğreneceğiz.

Bu dersimizde değiştireceğimiz dosyalar;
Code:
module_troops.py
module_scenes.py
module_parties.py
module_scripts.py

Dersimizde başlamadan önce, dosyalarınızı yedeklemenizi öneririm.

İlk olarak module_troops.py dosyamızı açalım.
Alttakini buluyoruz;
Code:
  ["village_90_elder", "Village Elder","village 1 elder",tf_hero|tf_randomize_face|tf_is_merchant, 0,0, fac_commoners,[itm_selo_boots,itm_prostoy_jupan_b,itm_ukrine_prosta_shapka],def_attrib|level(2),wp(20),knows_inventory_management_10,                              man_face_old_1, man_face_older_2],

altına ekliyoruz;
Code:
  ["village_91_elder", "Village Elder","village 91 elder",tf_hero|tf_randomize_face|tf_is_merchant, 0,0, fac_commoners,[itm_selo_boots,itm_prostoy_jupan_b,itm_ukrine_prosta_shapka],def_attrib|level(2),wp(20),knows_inventory_management_10,                              man_face_old_1, man_face_older_2],

Açıklayalım;
village_91_elder = Köyümüzün muhtarının ID'si.
Village Elder = İsmi.
tf_hero = Hero.
tf_randomize_face = Rastgele yüz.
tf_is_merchant = Tüccar.
[itm...] = Eşyaları.

Bu dosyayı kaydedip, çıkıyoruz.

Şimdi sahnelerimizi ekleyelim. module_scenes.py dosyasını açalım ve bunu bulalım;
Code:
  ("village_90",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005004005fd770000296c0000472e00000139",
    [],[],"outer_terrain_plain"),

altına ekliyoruz;
Code:
  ("village_91",sf_generate,"none", "none", (0,0),(100,100),-100,"0x00000000300005004005fd770000296c0000472e00000139",
    [],[],"outer_terrain_plain"),

Açıklayalım;
village_91 = Köyümüzün ID'si.
0x00000... = Köyümüzün arazi kodu. (Ben burda 90. köyün arazisini kullandım.)

Şimdi bu dosyadaki işimizde bitti, kaydedip çıkalım.

Şimdi köyümüzü ekleyelim artık.
module_parties.py dosyamızı açalım ve şunu bulalım;
Code:
  ("village_90", "Kolomak", icon_village_ukr_a|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(55.33, -17.31),[], 40),

altına ekliyoruz;
Code:
  ("village_91", "Köyünüzün İsmi", icon_village_swed_a|pf_village, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(21.79,83.57),[], 40),

Açıklayalım;
village_91 = Köyümüzün ID'si.
Köyünüzün İsmi = Köyümüze verdiğimiz isim.
icon_village_swed_a = Köy görünümü.
pf_village = Köy.
21.79,83.57 = Kordinatlar.

Ve buda bitti, artık son işlemimize geçelim.

Son işlemimiz olan module_scripts.py dosyasını açalım.
Bunu bulalım;
Code:
        (party_set_slot, "p_village_54", slot_village_bound_center, "p_castle_20"),
        (store_faction_of_party, ":town_faction", "p_castle_20"),
        (call_script, "script_give_center_to_faction_aux", "p_village_54", ":town_faction"),

altına ekleyelim;
Code:
        (party_set_slot, "p_village_91", slot_village_bound_center, "p_town_1"),
        (store_faction_of_party, ":town_faction", "p_town_1"),
        (call_script, "script_give_center_to_faction_aux", "p_village_91", ":town_faction"),

Açıklayalım;
p_village_91 = Köyümüzün ID'si.
p_town_1 = Buraya, köyün ait olduğu şehri/kaleyi yazıyoruz.

Evet bu dersimizinde sonuna geldik.
Kolay Gelsin.
 
Back
Top Bottom