[WB]Modül Sistem Platformu [Krallık ekleme dersi yenilendi!]

Users who are viewing this thread

---------Deniz Ticareti'nde-----



Code:
 "script_cf_select_most_profitable_town_at_peace_with_faction_in_trade_route", ":cur_center", ":merchant_faction"),

Yazıyor.Ve module.bat çalıştığı zaman:

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 info_page data...
Exporting scripts...
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
Error: Unable to find object:script_cf_select_most_profitable_coastal_town_at_pe
ace_with_faction_in_trade_route
ERROR: Illegal Identifier:script_cf_select_most_profitable_coastal_town_at_peace
_with_faction_in_trade_route
exporting triggers...
exporting dialogs...
Checking global variable usages...
WARNING: Global variable never used: battle_won
WARNING: Global variable never used: g_presentation_battle_active
Imported 26 global variables for saved-game compatability that are not used.
Exporting postfx_params...

______________________________

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


Doğal bir hata mı?

Bu arada alttaki Global veriable hataları deniz savaşlarından geliyor.
 
KhergitKhan said:
---------Deniz Ticareti'nde-----



Code:
 "script_cf_select_most_profitable_town_at_peace_with_faction_in_trade_route", ":cur_center", ":merchant_faction"),

Yazıyor.Ve module.bat çalıştığı zaman:

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 info_page data...
Exporting scripts...
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
Error: Unable to find object:script_cf_select_most_profitable_coastal_town_at_pe
ace_with_faction_in_trade_route
ERROR: Illegal Identifier:script_cf_select_most_profitable_coastal_town_at_peace
_with_faction_in_trade_route
exporting triggers...
exporting dialogs...
Checking global variable usages...
WARNING: Global variable never used: battle_won
WARNING: Global variable never used: g_presentation_battle_active
Imported 26 global variables for saved-game compatability that are not used.
Exporting postfx_params...

______________________________

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


Doğal bir hata mı?

Bu arada alttaki Global veriable hataları deniz savaşlarından geliyor.
Hata değil o.Sadece,savaş bitmeden savaş kazanıldı yazısını çıkartan bi bug.
Modül sisteminin içindeki variables.txt dosyasını açıp en alta iki nokta dan sonra dediği iki şeyi yaz,gidecektir.
 
KhergitKhan said:
---------Deniz Ticareti'nde-----



Code:
 "script_cf_select_most_profitable_town_at_peace_with_faction_in_trade_route", ":cur_center", ":merchant_faction"),

Yazıyor.Ve module.bat çalıştığı zaman:

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 info_page data...
Exporting scripts...
Exporting mission_template data...
Exporting game menus data...
exporting simple triggers...
Error: Unable to find object:script_cf_select_most_profitable_coastal_town_at_pe
ace_with_faction_in_trade_route
ERROR: Illegal Identifier:script_cf_select_most_profitable_coastal_town_at_peace
_with_faction_in_trade_route
exporting triggers...
exporting dialogs...
Checking global variable usages...
WARNING: Global variable never used: battle_won
WARNING: Global variable never used: g_presentation_battle_active
Imported 26 global variables for saved-game compatability that are not used.
Exporting postfx_params...

______________________________

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


Doğal bir hata mı?

Bu arada alttaki Global veriable hataları deniz savaşlarından geliyor.

o scripti silmiş olabilirsin.Ondan veriyordur.

O variable ları variables.txt dosyasına yazarsan giderler.
 
Yeni Ders;

Modül sistem de sık karşılaşılan hatalar.

Merhaba.Uzun bir aradan sonra yeni bir ders ile karşınızdayım.

Bu derste,modül sistem de sık karşılaşılan hatalardan bahsedeceğiz.

Syntax Error:

Vyjy6P.png

Eğer kodun başında,ortasında veya sonunda bir kareli parantez veya virgül,veyahutta parantez yoksa gelir bu hata.Aynı zamanda;

şöyle birşey olması gerekirken;

(assign, ":blabla", 1),

böyle olursa da syntax hatasını verir;

(assign ":blabla", 1),

farkettiyseniz 2. komutta virgül yok.İlkinde var.Sanki bir cümle yazarken virgül koymanız gereken yere koymamanız ve cümlenin anlamının bozulması gibi bişey bu.  :smile:

Pekala.Şimdi.Hatayı Söylediği yere gidelim;

XYZY67.png
Burada,hatadaki satır ile eksik veya fazla olan satır farklı olabilir.Çünkü birine uymaz ise,hiçbirine uymaz.O yüzden,O ihtimali de düşünerek hareket etmeniz gerekir.
Daha sonra;

ozJzVm.png

Eğer anlamadıysanız,Burada gösterdiğim yazım kuralı,diğer module dosyalarında da geçerli olmayabilir.Onları da göreceğiz.

sonuç olarak;

lzAzqX.png

Module_bats'da;

JEjEWQ.png

Error;Object is not defined:

Bu,En küçük detaylardan çıkabiliyor.Mesela,bir kodu en sondaki "]" dan sonrasına eklediyseniz,modül sistem onu görmez.Çünkü o modül dosyasının içindeki kodlara son noktayı koyar.O noktadan sonrasını görmez modül sistem.

En basiti,birşeyi eklemeyi unutmuş olmanız dır.O söylediği şeyi bulur,ve eklersiniz.

En sinir bozucu olanı ise,kodun orada bulunması ama diğer modül dosyasının onu görememesi.

Bunun için,O kodun bulunduğu kaynak module dosyasını,o kaynağı kullandığımız diğer module dosyasına aktarmamız gerek.Bunun için,mesela ben denize gelince gemi olmasını istiyorum partimin,Şöyle bir komut yapıyorum module_triggers'a;
Code:
(0,1, 0 , 0, [
(party_get_current_terrain,":terrain","p_main_party"),
(eq,":terrain", rt_bridge),
(party_set_icon,"p_main_party", "icon_ship"),]),

Burada,üzerinden geçilebilen tek deniz tipi olan bridge i kullandım.Module_bats'da rt_bridge is not defined diyip module_triggers'ı gösterecek.Çünkü,O bitki örtüsünün kaynağı olan header_terrain_types'i module_triggers'a aktarmadık.Onun için,module_triggers'ın başına şunu eklememiz gerekir;

from header_terrain_types import*

Ve böylece,bu header dosyasının içinde ki rt_bridge komutu,module_triggers tarafından hem tanınmış hem de kullanılmaya açık hale gelecektir.

'tuple' is not callable;

Bu,daha çok kodların birbirine bağlı olup olmadığından kaynaklanır.Veya yine noktalama işaretlerine uyulmadığı için.

Bunun çözümünü tam olarak bilmiyorum.Fakat karşılaştığım her not callable hatasında bu 2 yöntemi uygulayıp o hatayı gideriyordum.

Ancak,bir ihtimal daha var. Mesela bir menü yazıyorsunuz,Menünüz diğerlerine uygun bir biçimde değil.Ve diğer modül dosyalarından çağrıldığında,çağrılabilir değil hatası geliyor.Buradan yola çıkarak noktalama işaretlerinde bir hata olduğunu görebilirsiniz.Veya bir eksik olduğunu.

Usage of unassigned local variable;

Bu tam bir baş belasıdır.Ancak,şu komut ile aşılabilir;

(assign, <değişken> <değer>),

Burada,Bir değişkene bir değer atamamızı gösterdim.Hata da ise,atanmamış bir yerel değişken,kullanılmış diyor.Yani,assign komutunu kullanmamız gerek.

O söylediği değişkeni bulun ve o değişkene değer atayın.Mesela;

(assign, ":num_other_cannons", 1),

Bu assign komutu,türlü türlü amaçlar için kullanılabilir.Mesela,bir kodun çalışması için ona koşul verdiniz.Bu assign komutu,eğer o koşulu sağlıyorsa o koşula "doğru,işlemi uygula" emrini verebilir.

Mesela;

(eq, "$religion" 1),

Burada, "$religion" adlı değişkenin 1 olup olmadığını soran bir şey var.Bu koşuldur.Daha sonra,bu koşulu doğrulamak için başka bir yere assign komutu eklenebilir.

Mesela,game_start scriptine;

("game_stat",
[
  (assign, "$religion" 1),
..blablbalba..

]),

Gördüğünüz gibi,oyun başında iken bu değişkeni tetikledim,ve o da içerdiği kodu çalıştırmış oldu.Eğer 1 yapmasaydım,o kod asla çalıştırılmamış olurdu.

Global variable is not used;

Bu,fazla önemli olmayan bir şey.Fakat oyunu çıkmaza sokabiliyor bazı durumlarda.

Bunun için,modül sisteminizin variables.txt dosyasına,o söylediği değişkeni yazarsanız bu şey gider.

local variable is not used;

Bu hatayı gidermek için ise, Değer verme komutunu kullanmamız gerekecek.

Mesela,

Ben bir değer atamış isem,ve onu kullanmamış isem,bu hatayı verdi.

Bunun için;

(val_add, <variable> <value>),

Kullanılır.

Örnek olarak;

(val_add, "$valuable_item", 1),

bunu,o kodun bulunduğu dizinde kullanabilirsiniz.Başka dizinlerde kullanılabilir mi bilmiyorum.Fakat,ait olduğu yerde dursa,daha düzenli olur diye düşünüyorum.


Eğer sık karşılaştığınız modül sistem hataları var ise,buraya yazın,bu rehberi zenginleştirelim.  :smile: Ben sadece,sık gördüğüm-insanların sık gördükleri hataların çözümünü yazdım.
 
HyperCharge said:
Arkadaşlar gecikmeden dolayı özür dilerim.Bu siteye bağlanma da bir sorun yaşadım(yaşanıyor).Çünkü hem kendi ağımdan,hemde başkasının ağından bağlanamadım.Bu yüzden telafi olarak 2 ders vereceğim.
Yeni ders
İtem ekleme;
Gecikmeden dolayı özür dilerim.Siteye bir türlü bağlanılamıyordu.İnternet kafe den denedim,olmadı,komşudan denedim olmadı kendimde hele hiç olmadı :S


Merhaba arkadaşlar! Bu derste Modül sistem ile item eklemeyi öğreneceğiz!

Hadi başlıyalım;

İlk olarak aşağıdaki linkte ki Kılıcı indirin(OSP dir ve izinlidir.)

http://www.mediafire.com/download/rz1fo6jt8ydsfi4/mongolsword.rar



Daha sonra BRF olanı modunuzun resource dosyasına,textures te ki dds dosyalarını ise modunuzun textures dosyasına atın.

Ondan sonra,Modunuzun dosyasındaki Module.ini dosyasına(load resource nin en altına eklerseniz daha sağlıklı olur.)şunu yazın;

load_mod_resource = mongolsword

Yukarıda eklediğimiz şey itemi oyun açılırken tanımasına yardım etmemiz oldu.Ama daha bunun bi başka tarafı var;;


Module_items'i açın.Ve şu alttakini arayıp bulup,kopyalayın;

Code:
["sword_khergit_4", "Heavy Sabre", [("khergit_sword_d",0),("khergit_sword_d_scabbard", ixmesh_carry)], itp_type_one_handed_wpn|itp_merchandise|itp_primary, itc_scimitar|itcf_carry_sword_left_hip|itcf_show_holster_when_drawn,
 384 , weight(1.75)|difficulty(0)|spd_rtng(98) | weapon_length(96)|swing_damage(33 , cut),imodbits_sword_high ],



Ben üstte,Ağır kergit kılıcının iteminin kodunu aldım.Siz herhangi bir itemin kini alabilirsiniz.Fakat mutlaka ekliyeceğiniz item ile aynı türde olmalı.

Şimdi.O üstteki kopyaladığınızı module_items'in en altına ekleyin.Şöyle gözükmeli;

...blabla
...blabla


["sword_khergit_4", "Heavy Sabre", [("Khergit_sword_d",0),("Khergit_sword_d_scabbard", ixmesh_carry)], itp_type_one_handed_wpn|itp_merchandise|itp_primary, itc_scimitar|itcf_carry_sword_left_hip|itcf_show_holster_when_drawn,
384 , weight(1.75)|difficulty(0)|spd_rtng(9:cool: | weapon_length(96)|swing_damage(33 , cut),imodbits_sword_high ],

["items_end", "Items End", [("shield_round_a",0)], 0, 0, 1, 0, 0],
]



Şimdi.Asıl macera burada başlıyor;

Şu kırmızılı Khergit sword'u gördünüz mü.Onu modunuzun resource kısmına attığınız mongol_swordun içinde(brf edit bir zahmet :S) "monsword" diye bir item var.Onu onunla değiştirin.

Ondan sonra brf yi açın(brf edit e ihtiyacınız var.).Ve orada 4-5 tane item gibi birşey görceksiniz.Siz,Mavi tarafına şunu yapın;
orada en sonuncu yani"mon_with_scab"diye birşey göreceksiniz.Ona tıklayın,sağında "material" "texture" gibi birşey göreceksiniz.Muhtemelen ikisi de aynı olacaktır.Sizde orada ne yazıyorsa onu alın maviye yapıştırın.Yani "mongolwithcab".Çünkü o itemi giymediğimiz zaman öyle gözükecek.Ve o itemin kınında iken nasıl gözükmesi gerektiğini sağlayacak.Aynı işlem ile başka itemler de ekleyebilirsiniz.

Bu işlemleri yaptıktan sonra itemin şekli şöyle olmalı;
Code:
["mongol_kilici", "Mogol Kilici", [("monsword",0),("monsword_with_scab", ixmesh_carry)], itp_type_one_handed_wpn|itp_merchandise|itp_primary, itc_scimitar|itcf_carry_sword_left_hip|itcf_show_holster_when_drawn,
 384 , weight(1.75)|difficulty(0)|spd_rtng(98) | weapon_length(96)|swing_damage(33 , cut),imodbits_sword_high ],

Gördüğünüz gibi.Ben ismini Mogol Kilici diye değiştirdim.Türkçe kullanmayın,hata verir.O monsword'u yazmazsanız elinizde gözükmez kılıç.

Kaydedip kapatın,Module_bats'ı çalıştırın.Hata vermezse,Bravo! oyuna item eklediniz!
Eğer hatalarınız varsa buraya yazın,gerekirse resimli anlatırım.
İşte kanıtları;
http://i.hizliresim.com/7mJRXv.jpg
http://i.hizliresim.com/XWGOq6.jpg
http://i.hizliresim.com/0VXONW.jpg

Dediklerinin aynısını yaptım en son kontrolde ettim bi error vermedi oyuna normal girdim yükleme ekranındayken hata verdi

http://i.hizliresim.com/kYoOkA.png
 
module.ini ye load_mod_resource=brf dosyanın ismi diye yaz isimler aynı olacak buyuk kucuk harfte.
edit:dosyanın ismini yaz oraya örnek load_mod_resorce=kilic  ve türkçe karakter kullanma, .brf isimli dosyan içinde kullanma.
 
module_scripste böyledir:
Code:
#Now give towns to great lords
      (call_script, "script_give_center_to_lord", "p_town_1",  "trp_kingdom_4_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_2",  "trp_knight_4_1", 0),
      (call_script, "script_give_center_to_lord", "p_town_3",  "trp_knight_5_1", 0),
      (call_script, "script_give_center_to_lord", "p_town_4",  "trp_knight_1_1", 0),
      (call_script, "script_give_center_to_lord", "p_town_5",  "trp_kingdom_5_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_6",  "trp_kingdom_1_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_7",  "trp_knight_1_2", 0),
      
      (call_script, "script_give_center_to_lord", "p_town_8",  "trp_kingdom_2_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_9",  "trp_knight_2_1", 0),
      (call_script, "script_give_center_to_lord", "p_town_10", "trp_kingdom_3_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_11", "trp_knight_2_2", 0),
      (call_script, "script_give_center_to_lord", "p_town_12", "trp_kingdom_7_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_13", "trp_knight_2_3", 0),
      (call_script, "script_give_center_to_lord", "p_town_14", "trp_knight_3_1", 0),

      (call_script, "script_give_center_to_lord", "p_town_15", "trp_knight_5_2", 0),
      (call_script, "script_give_center_to_lord", "p_town_16", "trp_knight_1_4", 0), #changed from 1_3
      (call_script, "script_give_center_to_lord", "p_town_17", "trp_knight_3_2", 0),
      (call_script, "script_give_center_to_lord", "p_town_18", "trp_knight_3_3", 0),	  
	  
      (call_script, "script_give_center_to_lord", "p_town_19", "trp_kingdom_6_lord", 0),
      (call_script, "script_give_center_to_lord", "p_town_20", "trp_knight_6_1", 0), 
      (call_script, "script_give_center_to_lord", "p_town_21", "trp_knight_6_2", 0),
      (call_script, "script_give_center_to_lord", "p_town_22", "trp_knight_6_3", 0),
	  #PORTS
      (call_script, "script_give_center_to_lord", "p_castle_10", "trp_player", 0),
      (call_script, "script_give_center_to_lord", "p_village_36", "trp_knight_7_1", 0),
      (call_script, "script_give_center_to_lord", "p_castle_3", "trp_outlaws_lord", 0),
      (call_script, "script_give_center_to_lord", "p_village_87", "trp_knight_8_1", 0),
      (call_script, "script_give_center_to_lord", "p_castle_25", "trp_ormanci_lord", 0),
ama texte karşılıgı farkıdır.
örneğin script_give_to_lord un karsılıgı 45632 0 234 gibi birşeydir.
o yüzden bulmakta zorluk çekeceksin.
 
bu sayılar bazı harflere denk geliyor.Ne tür bir kodlama bilemiyorum.Ama modül sistem onları anlaşılamayan bir sayı dizimine çeviriyor.

O dediğinin yeri game_start scriptinde.
 
eğilme için,modunun içindeki module.ini dosyasını aç ve an altta can_crouch diye bişey olması gerek.O sıfır.Bir yap,kaydet ve oyuna gir.Z ye basarak eğilebilirsin.

Siyasi harita:

http://forums.taleworlds.com/index.php/topic,251355.0.html
 
Back
Top Bottom