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

Users who are viewing this thread

Türküm:D said:
Hyper hocam isyan eklenebilirmi
Yeni değişikliğini destekliyorum ne derler balık veme balık tutmayı öğret bence konu sabitlenmeli :grin:
İsyan kodumun bitmesine ramak var.
Sadece,istediğim partinin biryere sürekli saldırması gerek.AI yı ayarlayan o kod gerek.O kadar.

Daha çeviri yok arkadaşlar :smile:

doclcok4715 said:
Gerçekten Çok Yararlı Bir Konu.

Teşekkür ederim :smile:
 
Black Dead said:
Bunların arasında 2 adet bilmediğim çıktı hyper beyciğim beğenirse atları falan biraz daha yazabilirim.(İyi kötü?)

Selamlar.Module_items kısmının bir nevi neye yaradığını ve nasıl kullanıldığını anlatmaya çalışacağım.

İlk önce en aşağılardan almış olduğum örnek bir kodu inceleyelim.

["rabati", "Rabati", [("rabati",0)], itp_type_head_armor  ,0, 278 , weight(2)|abundance(100)|head_armor(20)|body_armor(0)|leg_armor(0) ,imodbits_cloth ],

İlk önce kod başlamadan önce "[" işareti koyulur ve "]." "]" gibi şekiller ile biter.

"rabati" kısımı itm_rabati olarak kabul edilir yani aynı itm_semsir gibi.Bu oyunda genel olarak kabul edilecektir.
(Türkçe karakter işi bozar.)

module_items'da boşluk "," olarak belirtilir örnek "bllblbl . asaksa" gibi.

İkinci olarak "Rabati" görüyoruz bu oyundaki isimidir Türkçe karakter kullanmaksızın değiştirebilirsiniz.

[("rabati".0)]'nin anlamı oyunda görüleceği biçimdir yani oyunda rabati olarak gözükecek onun bir nevi resmidir.Anladınız siz.

"itp_type_head_armor"  ise hangi slota geleceğini belirtir. "itp_type_body_armor" yazarsanız rabati'yi göğsünüze giyebilirsiniz. :smile:

.0.278 kısımı büyük ihtimalle yanlış bilgi vermek istemem ama burası alış ve satış fiyatlarının farkı oluyor sanırım.(Biri düzeltirse sevinirim)

geri kalan kısımlar iteme verebileceğiniz özellikler bacak zırhına ne kadar verir kafa zırhına falan.Ama bu her itemde yok Atlarda daha değişiktir.

En sondaki kodu merak ederseniz itemin ne olduğunu belirtiyordu.(Düzeltin lütfen.)

Aynı şu şekil. ; imodbits_polearm , imodbits_none , imodbits_shield , imodbits_colth gibi gibi.

(Türkçe:weight=Ağırlık , abundance=Bolluk,servet,bereket , Armor=Zırh , head=Kafa , body=Vücut , Leg=Bacak.

Hyper beyciğim beğenirse devamını yazarım anlatım falan iyimi bilmiyorum siz karar verin. :smile:

Güzel.Ezbere kodlar yapıştırma işini hiç desteklemiyorum en azından acemi modcuya nereyi değiştirirsen ne oluru anlatabilirsek kendisi uğraşıp,üretip yaratacaktır tabi işin içinden hatasız çıkmak hayli zor tek boşluk hatasına bile modül sistem hata veriyor.
 
Black Dead said:
Bunların arasında 2 adet bilmediğim çıktı hyper beyciğim beğenirse atları falan biraz daha yazabilirim.(İyi kötü?)

Selamlar.Module_items kısmının bir nevi neye yaradığını ve nasıl kullanıldığını anlatmaya çalışacağım.

İlk önce en aşağılardan almış olduğum örnek bir kodu inceleyelim.

["rabati", "Rabati", [("rabati",0)], itp_type_head_armor  ,0, 278 , weight(2)|abundance(100)|head_armor(20)|body_armor(0)|leg_armor(0) ,imodbits_cloth ],

İlk önce kod başlamadan önce "[" işareti koyulur ve "]." "]" gibi şekiller ile biter.

"rabati" kısımı itm_rabati olarak kabul edilir yani aynı itm_semsir gibi.Bu oyunda genel olarak kabul edilecektir.
(Türkçe karakter işi bozar.)

module_items'da boşluk "," olarak belirtilir örnek "bllblbl . asaksa" gibi.

İkinci olarak "Rabati" görüyoruz bu oyundaki isimidir Türkçe karakter kullanmaksızın değiştirebilirsiniz.

[("rabati".0)]'nin anlamı oyunda görüleceği biçimdir yani oyunda rabati olarak gözükecek onun bir nevi resmidir.Anladınız siz.

"itp_type_head_armor"  ise hangi slota geleceğini belirtir. "itp_type_body_armor" yazarsanız rabati'yi göğsünüze giyebilirsiniz. :smile:

.0.278 kısımı büyük ihtimalle yanlış bilgi vermek istemem ama burası alış ve satış fiyatlarının farkı oluyor sanırım.(Biri düzeltirse sevinirim)

geri kalan kısımlar iteme verebileceğiniz özellikler bacak zırhına ne kadar verir kafa zırhına falan.Ama bu her itemde yok Atlarda daha değişiktir.

En sondaki kodu merak ederseniz itemin ne olduğunu belirtiyordu.(Düzeltin lütfen.)

Aynı şu şekil. ; imodbits_polearm , imodbits_none , imodbits_shield , imodbits_colth gibi gibi.

İtemlere verilebilecek değerler , ne oldukları ve ne kazandırdıkları ;

imodbits_none = 0
imodbits_horse_basic = imodbit_swaybacked|imodbit_lame|imodbit_spirited|imodbit_heavy|imodbit_stubborn
imodbits_cloth  = imodbit_tattered | imodbit_ragged | imodbit_sturdy | imodbit_thick | imodbit_hardened
imodbits_armor  = imodbit_rusty | imodbit_battered | imodbit_crude | imodbit_thick | imodbit_reinforced |imodbit_lordly
imodbits_plate  = imodbit_cracked | imodbit_rusty | imodbit_battered | imodbit_crude | imodbit_thick | imodbit_reinforced |imodbit_lordly
imodbits_polearm = imodbit_cracked | imodbit_bent | imodbit_balanced
imodbits_shield  = imodbit_cracked | imodbit_battered |imodbit_thick | imodbit_reinforced
imodbits_sword  = imodbit_rusty | imodbit_chipped | imodbit_balanced |imodbit_tempered
imodbits_sword_high  = imodbit_rusty | imodbit_chipped | imodbit_balanced |imodbit_tempered|imodbit_masterwork
imodbits_axe  = imodbit_rusty | imodbit_chipped | imodbit_heavy
imodbits_mace  = imodbit_rusty | imodbit_chipped | imodbit_heavy
imodbits_pick  = imodbit_rusty | imodbit_chipped | imodbit_balanced | imodbit_heavy
imodbits_bow = imodbit_cracked | imodbit_bent | imodbit_strong |imodbit_masterwork
imodbits_crossbow = imodbit_cracked | imodbit_bent | imodbit_masterwork
imodbits_missile  = imodbit_bent | imodbit_large_bag
imodbits_thrown  = imodbit_bent | imodbit_heavy| imodbit_balanced| imodbit_large_bag
imodbits_thrown_minus_heavy = imodbit_bent | imodbit_balanced| imodbit_large_bag

(Türkçe:weight=Ağırlık , abundance=Bolluk,servet,bereket , Armor=Zırh , head=Kafa , body=Vücut , Leg=Bacak.

Hyper beyciğim beğenirse devamını yazarım anlatım falan iyimi bilmiyorum siz karar verin. :smile:

Örnek yazılmış kılıç kodu:

["kralsword","Kralin Kilici", [("kralsword",0)], itp_type_one_handed_wpn|itp_primary|itp_secondary|itp_wooden_parry|itp_wooden_attack, itc_longsword, 3,weight(1.5)|spd_rtng(103)|weapon_length(90)|swing_damage(22,blunt)|thrust_damage(20,blunt),imodbits_none],

Hataların var.İzninle,düzeltip yazabilirim :smile: Ayrıca o itemlere verilebilecek değerlerin ne işe yaradığını da söylerim.
İyi.Az daha detay olsa iyi olurmuş :smile:
Yarın,Header_ Dosyalarının ne işe yaradığını göreceksiniz :smile: Belki de bu gündür ? :smile:
 
EmrehaN said:
Eğer Module System üzerine bir anlatım yapma kararı aldıysan yeni bir konu açman ya da bu işi iyi bir düzene sokman konusunda bir tavsiyem olsun. Ana konuya bir liste çıkartıp sıra sıra Module System'in Gizemleri şeklinde ders serisi başlatabilirsin. Ama işin karışık olmaması ve planlı ilerlemesi önemli kanımca. Kolay gelsin.
Ana sayfaya bir düzen düşünüyorum.Mesela,Anasayfada yazılı olan tüm kodları konuda ki bazı yorumlarıma koyar,Modül sistem derslerini de linklerini de o boş yere koyarım.Ama biraz zaman alacağa benziyor :smile:

tlgklz said:
1.160, 1.158 modülü ile çalışmıyor mu?

1.160'a sadece steamworkshop desteği geldi.Yani oyun aynı oyun.Modül ile ilgili bir değişiklik olmadı.Bu da 1.158 e yapılan modun 1.160 a da olabiliyor demek oluyor.
 
Aynen yeni konu açacaksan daha düzenli yapıver mesela benim rehber konusuna girdiğimde ilk bakacağım şey istediğim kodun(olayın) başlıkta olup olmadığı başlıkları büyük ya da kırmızı yaparsan dikkat çeker ayrıca tavsiyem rehbere başlamadan bu rehberi okuduğunuzda şu şu şu işleri yapabileceksiniz dediğinde en azından ne diyor bu çocuk soru işareti başar malum herkes okumayı sevmiyor :razz:
 
EmrehaN said:
Öyle yapman daha doğru olur, hem daha rahat ulaşılır hemde görüntü kirliliği oluşmaz. Bence ana konuyu tamamen düzenle ve üzerinde hiçbir ders bırakma, doğrudan URL ile belirt.
Aklımı okuyorsun :smile:

Sakallı said:
Aynen yeni konu açacaksan daha düzenli yapıver mesela benim rehber konusuna girdiğimde ilk bakacağım şey istediğim kodun(olayın) başlıkta olup olmadığı başlıkları büyük ya da kırmızı yaparsan dikkat çeker ayrıca tavsiyem rehbere başlamadan bu rehberi okuduğunuzda şu şu şu işleri yapabileceksiniz dediğinde en azından ne diyor bu çocuk soru işareti başar malum herkes okumayı sevmiyor :razz:
Merak etme.Başlık da değişecek.
Hele şu altyapıyı tamamlıyayım :smile:
 
Black Dead said:
@Hyper

Biraz daha detay kazandırdım sanırım daha iyi oldu ha?

Ben onu yarın düzenlediğimde birazdaha iyi olacak.Ama gerçekten eksiği ve bir iki hatası var.İlkine göre güzel :smile:

Henüz anasayfaya eklemiyeceğim.Hatalarını düzeltince eklerim :smile:(Dersin sahipleri dersin yanına yazılıyor,yazılacaktır.)
 
HyperCharge said:
Anasayfaya yeni bir kategori açayım ozaman :grin:

Evet.Bu gün,modül sistem e giriş yapıyoruz. :smile:
Bu derslerde,farklı kaynaklardan da yararlanacağım.Örneğin vikipedi vb.

-Modül sistem nedir ?
+Modül sistem,mount&Blade'in,kaynak kodlarının yani oyunu oluşturan,şekillendiren kodların bulunduğu bir sistemdir.Bununla istediğinizi yapabilirsiniz.Troller eklemek mi dersiniz,uçan kuşlar mı dersiniz,Co-op yapmaya çalışan bile oldu :grin:

-Neye yarar ?
+üzerinde yapılan değişiklikler sayesinde,oyuna yeni yeni özellikler eklersiniz.

-Nasıl kurulur ?
+Bunu,bu dersimizde anlatacağım.Kurulumu kimisi için bir kabus,kimisi için de bebek oyuncağıdır.Yani,biraz araştırma isteği,azim ve sabrınız var ise,siz bu işi yapabilirsiniz.

-Dili nedir ?
+Dili,Python dilidir.Nesne yönelimli,yorumlanabilen,birimsel (modüler) ve etkileşimli bir programlama dilidir.
Vikipedi den;
Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır.

Modüler yapısı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen her türlü platformda çalışabilir. (Unix , Linux, Mac, Windows, Amiga, Symbian). Python ile sistem programlama, kullanıcı arabirimi programlama, ağ programlama, uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir.

Evet.İlk önce,Python'un sitesinden,şunu indirin;
32 bit olanlar için;
https://www.python.org/ftp/python/2.7.7/python-2.7.7.msi

64 bit olanlar için;
https://www.python.org/ftp/python/2.7.7/python-2.7.7.amd64.msi

İndirdikten sonra,Setup'u açın.Karşınıza şunun gelmesi gerek;
aPYpd2.png

Next diyoruz;
REDN8G.png

Devam ediyoruz;
72DdZv.png

Ve...;
kZ6pRm.png

Finish..;
zQML1D.png



Şimdi,ortam değişkenlerini ayarlamaya geldi sıra.
Bilgisayarım'a sağ tıklayın,özellikler değin.Daha sonra..;
pvnkaL.png

küçük bir pencere açılacak.Ortam değişkenlerine tıklayın;
PvDNVN.png

Burası biraz karışık gelebilir.İlk önce,az aşağı inip,Path ı arayın;
jz6pMn.png

Düzenle dedikten sonra;
pvnkJ0.png

Sonuç olarak şöyle gözükmeli ortam değişkenleri;
aPYpbz.png



Şimdi ise,Modül sistemi indirmemiz ve kendimize yeni bir modül yapmamız gerek.
Oyununuzun dosyasına gelin;
mqopQZ.png

Modules'e girdikten sonra,Orada Native'yi göreceksiniz.Native'nin kopyasını alın,aynı yere yapıştırın.Adını mesela Project yapın.Asla Türkçe harf kullanmayın.İleride sorun çıkartacak.;
AZzPQz.png

Şimdi.burayla işimiz bitti.Daha çok var :grin: ;

Şimdi,Taleworlds'un Web sitesinden 1.158 Modül sistemini indiriyoruz
UYARI!!!
Modül sistem versionu ile Sizin oyununuzun versionu aynı olmak zorunda!

İndirdikten sonra,bir rar da iki dosya olacak.Onları bir klasöre çıkartın.
Klasöre çıkarttıktan sonra;
rY1pla.png

Karşınıza koccaman kodlarla dolu dosyalar gelecek.Siz,Module_info'yu aratın;
M9D4l7.png

Bulunca,Ona sağ tıklayıp edit with idle değin;
72DZom.png

Sona yaklaştık;
REDRYG.png

Sondan bir önce ki adım;
d4BEGD.png

Bu üsttekini yaptıktan sonra,Kaydedip çıkıyoruz.Ardından,Een yukarıda build_module var.Onu açın.Karşınıza şöyle ekran gelmesi gerekiyor eğer dediklerim hatasız bir şekilde yapıldıysa;
JdDBQ5.png

Eğer böyle ise,Tebrikler!!! Hem modül sistemi hemde Pythonu kurdunuz! Bir daha ki dersimizde,o modül sistemin için de ki dosyaların ne işe yaradığını öğreneceğiz.İyi günler :smile:
İnfodaki yeri düzeltmelisin bence steam kullanmayanlarda var :razz:
 

Module_items'in açıklaması :

Module_İtems Nedir?

Öncelikle herkese merhabalar.Dersimiz module_troops olacaktır.Selamlar.Module_items kısmının bir nevi neye yaradığını ve nasıl kullanıldığını anlatmaya çalışacağım.Module_items tüm itemlerin yani oyundaki tüm eşyaların tutulduğu yerdir.Yazdığınız bir kod var ise
items_end yazısının yani en aşağıdaki yazı.Üzerine ekliyoruz.Artık oyuna eklemiş bulunmaktayız.Cheatmenu açarak en son sayfadan bakabiliriz.Eğer İngilizce dilini iyi biliyorsanız başka eşyaların kodlarını incelerken neyin ne olduğunu anlayabilirsiniz.


Başlamadan önce bilinecekler

Module_items'da boşluk,gerçi hepsinde öyle ama :smile: "_" olarak belirtilir.Örneğin "selam_canim_ben_amcanim" gibidir.
Module_items ile uğraşırken başında "#" olan kodları değiştirmeyin veya başındaki işareti silmeyin.



İtem Kodu nasıl yazılır?

Code:
["rabati", "Rabati", [("rabati",0)], itp_type_head_armor   ,0, 278 , weight(2)|abundance(100)|head_armor(20)|body_armor(0)|leg_armor(0) ,imodbits_cloth ],

İlk olarak "rabati" kısımı itm_rabati olarak kabul edilir yani aynı itm_semsir gibi.Bu oyunda genel olarak kabul edilecektir.
(Türkçe karakter işi bozar.)

"Rabati" görüyoruz bu oyundaki isimidir Türkçe karakter kullanmaksızın değiştirebilirsiniz.

[("rabati".0)]'nin anlamı,oyunda ki modelin brf de ki kaplamasıdır.Bu brf işini,NegatrmB. Ye sorarsanız daha iyi olur.BRF ler hakkında bilgi sahibidir.

.0.278 kısımı büyük ihtimalle yanlış bilgi vermek istemem ama burası alış ve satış fiyatlarının farkı oluyor sanırım.(veya mesh ile alakalı bir şey.)

Geri kalan kısımlar iteme verebileceğiniz özelliklerdir.Lütfen itemlerin ayrıntılı özellikleri için Header_items'e bakın.HyperCharge daha dersini vermedi onların.Neyse.Mesela bir kılıç iteminden;;
weight(1.5)|difficulty(0)|spd_rtng(9:cool: | weapon_length(105)|swing_damage(28 , cut) | thrust_damage(19 ,  pierce),imodbits_sword_high ],

Burada,weight yani ağırlığı 1.5 kilo dur.
burada,difficulty yani,bizden istediği güç tür.Mesela oraya 7 yazarsanız karakterinizde 7 güç olması gerekir.Yoksa giyemezsiniz itemi.
burada,spd_rtng yani silah erimi,sanırım silah ile vurur iken ne kadar hızlı vuracağımızı gösterir.Bunu,102 ile 90 arasında tutun kılıçlar için :smile: .
burada,weapon_length yani silahın uzunluğu dur.Bu,genellikle 105-120 civarında dır.Bu civarlarda olursa ekleyeceğiniz kılıç,sağlıklı bir şekilde eklemiş olursunuz.
burada,swing damage yani verdiği hasarı gösterir.Burada,keyfiniz devreye girer.Eğer gerçekçi olsun istiyorsanız 28 ila 41 arasında kalsın bu değer.
Burada,thrust damage sanırım vurduğunuz zaman verdiği ekstra hasar.

(O iteme verilen değerlerin türkçesi.Sakın ha Aynı burada ki gibi yapmaya kalkışmayın.Hata verecektir.)
(Türkçe : weight=Ağırlık , abundance=Bolluk,servet,bereket , Armor=Zırh , head=Başlık , body=Vücut , Leg=Bacak.)

En sondaki kod,itemin türünü belirler.

Aynı şu şekil. ; imodbits_polearm , imodbits_none , imodbits_shield , imodbits_colth gibi gibi.

Polearm = Mızrak None=Hiç Birşey Shield = Kalkan Cloth = Kıyafet (Eğer bir iteme bu flag'i koyarsanız kalkan gibi savunma yapacaktır.ama,bir nevi 2 elli silah olacaktır elinizde. :smile:)



Örnek yazılmış kılıç kodumuz ;

Code:
["kingsword","Kralin Kilici",[("kingsword",0)],itp_type_one_handed_wpn|itp_primary|itp_secondary|itp_wooden_parry|itp_wooden_attack, itc_longsword, 3,weight(1.5)|spd_rtng(103)|weapon_length(90)|swing_damage(22,blunt)|thrust_damage(20,blunt),imodbits_none],

"kingsword" itemin modül sistemde ki adı.

"Kralin Kilici" itemin,oyun da kullanınan adıdır.Burada,türkçe kullanamazsınız.Ama modunuzun langaunges dosyasına girip orada ki tr dosyasına;

itm_kingsword|Kralın kılıcı

Yazabilirsiniz.Böylece,item oyunda türkçeleşmiş olur.
[("kingsword")] itemin oyunda ki modelinin kaplamasıdır.

itp_type_one_handed_wpn tek elli olduğunu belirtir.

Slot değerleri ;

Code:
itp_type_one_handed_wpn = Tek elli kılıç
itp_type_two_handed_wpn = Çift elli kılıç
itp_type_polearm = Mızrak
itp_type_shield = Kalkan
itp_type_bow = Yay
itp_type_pistol = Tabanca
itp_type_head_armor = Kafa Zırhı
itp_type_body_armor = Vücut Zırhı
itp_type_foot_armor = Ayak Zırhı
itp_type_arrows = Ok
itp_type_horse = At
itp_type_crossbow = Kundaklı yay , arbalet


Dersimiz bu kadardır işinize yaradıysa ne mutlu bana :smile:
 
Modül sistemin içine;

Merhaba.Bu dersimizde,Modül sistem dosyalarının ne olduğuna,neye yarayacağına bakacağız.

4 tane dosya türü vardır modül sistem de.Bunlar;

Header_

ID_

Module_

Process_

Dir.

-Ne işe yarar bunlar ?
+Bu dosyalarda,kimisinde kod yazmak için gereken komutlar vardır.Kimisinde,yapılan komutları,kod yazmak için kullanılan dosyalar vardır,kimisinde de,Oyuna aktarması için gereken komutlar-dizilimler vardır.

-Bir kodcu olabilmek için,Hangi tür dosyadan başlamak gerek ?
+Header_ dosyalarından başlanması gerekir.Zaten,Header_ dosyalarını kavradımmı,geriye biraz mantık kalıyor.Onu da,öğrenci yavaş yavaş kavrıyor.

Gelelim bunların ne işe yaradığına.

Header_ dosyaları,Yazılan-yazılacak kodlar için temel bir işlev görürler.

Mesela,Oyuna başlar iken asker ile başlamak istiyorsunuz.
Örnek kod dan yola çıkalım;
Code:
(party_add_members, "p_main_party", "trp_khergit_lancer", 50),

Burada,gereken komut "(party_add_members," dir.Yani,Header_ dosyalarının içinde,bu komut var ki siz oyuna bu komut ile yanınızda asker ile başlıyorsunuz.eğer,o komut olmasaydı,belki de askerler ile başlama diye bir kavram olamazdı.

-Peki Header_ dosyalarını genişleten yani daha çok komut daha çok fonksiyon ve kavram ekleyen bir değişiklik varmıdır ?
+Evet var.Warband Script Enhancer dır kendileri.Büyük bir değişikliktir.Ateşli ok kavramı'nı eklemiştir mesela.

-Header_ larda ne komutları var ? mesela Header_operations Gözüme çarptı.Orada ne var ? mesela header_music gözüme çarptı.Onda ne var ?
Header_operations'da,Neredeyse yazılmış olan tüm kodların temelleri var.

Mesela bir kod örneği ile devam edelim;

En basitinden;
Code:
call_script       = 1 # (call_script,<script_id>),

Burada ki call_script module_scripts de ki belirttiğiniz kodu çalıştırır.Yani,eğer bir menüyü tıkladığınızda bir krallıkla diğerinin savaş başlatmasını istiyorsanız,orada ki koddan yazmanız gerekecek.Mesela;

Code:
(call_script, "script_diplomacy_start_war_between_kingdoms","$Global Variable",":local variable"),

Gibi birşey olması gerek.

Burada ki global ve local variable'lar,değişkenler dir.Değişkenlerin ne olduğunu anlamak için;
Artizan said:
Değişkenler

Yerel değişkenler - ": variable " -:sad:iki nokta üst üste) ile başlayan değişkenler, yerel değişkenlerdir. Bu değişkenler sadece belirtildikleri kod bloğunda(tuple) yer alır ve diğer kod bloklarında refere edilemezler. Öncelikle değişkenler kendileri daha önceden bir değer taşıyabilecekleri için bunlara 0 ya da başka bir değer verilmelidir. Alıntı(denden) işaretiyle kapatılırlar. Örn: “:agent_id”

Genel değişkenler - "$variable" - $(soru işareti) ile başlayan değişkenler, genel değişkenlerdir. Herhangi bir modül_x’in içerisinde refere edilebilirler. Varsayılan değerleri 0’dır. . Alıntı(denden) işaretiyle kapatılırlar. Örn: "$g_talk_troop"
Artizan'a Teşekkür ederim(z) sayesinde mancınık kodumun hatalarını biraz daha düzelttim. :grin:

Anlıyacağınız,Header_ dosyaları,yapılacak kodlar için gereken fonksiyonları içerir.Orta-yüksek seviyeli kodcular değişim yapabilir üzerinde.Acemi ler için Önerilmez!

Öneri!!!

Yabancı forumda, Lav adlı üyenin yaptığı bir rehber var.Oyunda ki neredeyse tüm kodların komutlarını kapsayan header_operations'da ki komutların ne işe yaradığını açıklayan bir rehberi var.Eğer gerçekten kodcu olmak istiyorsanız,İngilizcenizin iyi olması gerekir!

İşte rehber;
http://forums.taleworlds.com/index.php/topic,213060.0.html

Size,bu rehberi indirmenizi şiddetle tavsiye ederim.Bir kod yazacağınız zaman bunların aklınızda kalması gerekir. :smile:

Module_ dosyaları,Header_ dosyalarında yazılan komutların burada test edilmesi gibi biryerdir.Yani,bir çeşit laboratuar gibi düşünün.Yaptığınız şeyi,burada deniyorsunuz.Bu dosyalarda,header da eklenmiş olan fonksiyonlar eklenir.

Mesela;

("spawn_cannon",
  [
    (store_script_param, ":position", 1),
    (store_script_param, ":team", 2),
    (store_script_param, ":prop", 3),

    (try_begin),
    (eq,":prop","spr_art_mangonel"),
    (copy_position,pos52,":position"),
    (call_script,"script_get_next_unused_instance",":prop"),

kırmızı olan,Script'in adıdır.Bunu,başka module_ dosyalarında yaptığınız değişikleri çağırmak için kullanacaksınız.Yani aktive etmek için.

Yeşil,Header_operations'da eklenen bir komuttur.gördüğünüz üzere,"denenen komutlardır" dediğimde yalan dememişim :grin:

Kahverengi,Bir sıranın başlangıcı dır.
Mesela;
Code:
(try_begin),
	      (store_div, ":castle_prosperity", ":total_prosperity", ":total_villages"),
	    (else_try),  
	      (assign, ":castle_prosperity", 50),
	    (try_end),

Burada ki (try_begin), bir sıra başlatır.Altta belirttiği komutu yapmasını ister.
else diye bir konu da vardır python da.Eğer o olmazsa anlamında dır.
Orada ki (else_try), da,eğer üstünde ki kod bozulur-çalışmazsa diye,alternatif eklenen bir komut dizisidir.
(try_end), ise,o komut dizisinin bittiğini gösterir.yani anlıyacağınız,burada ki try_begin,bir cümleye başlarken ki büyük harf,else_try,devam eden cümlenin virgülü,try_end ise de nokta işlevi görür.

Burada söylediğim tüm komutlar,Header_operations'da mevcuttur.Size verdiğim linkte ki rehberi incelemiş iseniz daha çabuk kavramışsınızdır.

ID_ ler.Bunlar,biraz karışıklar.Silerseniz,modül sistem hata verir.Ancak bunları yeniden yazar.Burada,kullanılan-yaratılan tüüm kodların-bunlara verilen isimlerin-bunlara verilen terimlerin,kimlikleri vardır.sıra ile devam ederler.0 dan başlayarak,sonsuza kadar uzanabilirler.Ayrıca,bazı yerlerde script_<script_id> veya itm_<item_id> gibi şeyler oluyor.O baştaki etiketler,onların türlerini söyler.Buna fazla takılmayalım.İleride anlatacağım.
Örneğin module_animations ile ID_animations a bir göz atalım;
Module animations'un başında şu animasyon var;
Code:
["stand", 0, amf_client_prediction,
#   [3.0, "myanim", 0, 50, arf_cyclic|arf_loop_pos_0_25],
   [3.0, "anim_human", 50, 52, arf_use_stand_progress|arf_cyclic, 0, (0, 0, 0), 0.25],
   [3.0, "anim_human", 60, 62, arf_use_stand_progress|arf_cyclic, 0, (0, 0, 0), 0.75],
   [3.0, "anim_human", 70, 72, arf_use_stand_progress|arf_cyclic, 0, (0, 0, 0), 0.25],
   [3.0, "anim_human", 80, 82, arf_use_stand_progress|arf_cyclic|arf_two_handed_blade, 0, (0, 0, 0), 0.5],
##   [35.0, "stand_woman", 0, 1059, arf_use_stand_progress|arf_cyclic|arf_two_handed_blade, 0, (0, 0, 0), 0.5],
##   [43.0, "stand_woman_public", 0, 1313, arf_use_stand_progress|arf_cyclic|arf_two_handed_blade, 0, (0, 0, 0), 0.5],
#  [35.0, "tavern_stand", 0, 472, arf_cyclic|arf_loop_pos_0_25],
 ],

Orada başta ki ["stand", yazısına dikkat edin.ve ID_Animations'a bakalım;
Code:
anim_stand = 0

gördüğünüz gibi,başta anim stand animasyonu var.Tıpkı module_animations da başta olan o stand animasyonu gibi.

burada,gözünüze karışık gelen birşey var. :grin:
-Burada ki bazı dosyaları açtım,kimisinde script_blabla kimisinde mt_blabla kimisinde snd_blabla var.Bunlar ne oluyor ?
+bunlar,o yazılan kodların sınıflarını gösterir.Mesela,snd olan,sesler sınıfında,mst olan mission template sınıfında dır.Bunların açıklamaları için Artizan'a bir kez daha teşekkür ederim!;
Artizan said:
Module System Ön ekleri
 
Modül sistem içerisinde(örn; module_mission_templates), bir koda veya diğer modül dosyalarında bulunan bilgilere kodun önüne, ön ek(prefix) koyarak çağırılabilir.
  • module_animations: "anim_"
  • module_factions: "fac_"
  • module_info_pages: "ip_"
  • module_items: "itm_"
  • module_map_icons: "icon_"
  • module_game_menus: "menu_"
  • module_meshes: "mesh_"
  • module_mission_templates: "mst_"
  • module_particle_systems: "psys_"
  • module_parties: "p_"
  • module_party_templates: "pt_"
  • module_pstfx_params: "pfx_"
  • module_presentations: "prsnt_"
  • module_quests: "qst_"
  • module_scene_props: "spr_"
  • module_scenes: "scn_"
  • module_scripts: "script_"
  • module_skills: "skl_"
  • module_sounds: "snd_"
  • module_strings: "str_"
  • module_tableau_materials: "tableau_"
  • module_troops: "trp_"
Bu yukarıda kiler,ID_ dosyalarında yine module_ dosyalarında kullandığınız kodun türünü belirlemek için varlardır.
Yani itm_ yi silerseniz,modül sistemin temelini bunu yok sayacak şekilde değiştirmezseniz,o itm_ yi eklemediğiniz için cmd ekranında hata deniziyle baş başa kalırsınız :smile:
Son olarak,Geldik Process_ dosyalarına.

Process_dosyaları,kesinlikle ve kesinlikle Usta kodcular için düzenlenmeye açıktır.Tamamıyla gerçek bir python dilinden yazılmıştır.isterse,usta bir kodcu bu modül sistem dilini şaşırtabilir.Mesela warning vermemesi için variable_uses gibi şeyleri dikkatlice silebilir.Böylece hem warning vermez,hemde işi kolaylaşır düşüncesindeyim.Ayrıca,Usta kodcular isterse farklı python dosyalarını,gereken module_ dosyalarına ,importlayabilirler.Böylece module_ dosyalarına şunu şuraya ekleyecem de çok uzun sürecek derdi olmaz.Yani,mod birleştirme(modmerger) deniyor buna.Yabancı forumda araştırırsanız daha iyi bir kaynaktan yardım alırsınız o konuda :smile: bir kodu siz manuel olarak eklemek istemiyorsanız ne yaparsınız ? ben şahsen ayrı bir modül dosya türü yapıp,ait olması gereken yere importlarım.böylece kısa yoldan oyuna özellik eklemiş olurum.

Neyse.Nerede kalmıştık,evet.Bu dosyalar gerçek python ile yazılmıştır.
Mesela;
Code:
print "Exporting scripts..."
save_python_header()
variable_uses = []
variables = load_variables(export_dir, variable_uses)

Burada,
print,build module ye tıkladığımızda,herşeyi hatasız yaparsak gelen şeydir.exporting scripts der.Bunu türkçe harf kullanmama şartına bağlı kalarak çevirebilirsiniz türkçeye.Mesela "Script ler Ihrac ediliyor..." gibi olması gerek.

save_python_header() hiç bir fikrim yok.
variables = load_variables(export_dir, variable_uses) demiştim ya usta bir kodcu isterse değişkenleri modüle tanıttırmayabilir diye.Sanırım o buradan yapılıyor.Onun da yabancı forumda konusu var.Belendor'un yabancı forumda ki mod dersleri linkine bakarsanız "Engine" kısmında,bulabilirsiniz.

bu process de,birçok şey yapılabilir.ama,bu bizim modülde yaptığımız değişiklikleri eski txt dosyalarının üzerine yenilerini kaydetmesi için sınırlandırılmıştır.Bana göre :grin:

Okuduğunuz için teşekkür ederim.Hatalarım var ise düzeltmem gereken yerleri kibar bir şekilde belirtiniz.
 
HyperCharge said:
Lt.Ghost said:
İsyan eklenebilir mi? :twisted:
İlk olarak,Belendor'un istila sisteminin bir değişiğini yapmak gerekir.Mesela,1 defada olmak üzere,bir zamanda ortaya çıkacak partiler.Gösterdiğimiz şehri işgal ederler.Ama o partiler bize de düşman olmalı.Eğer onları durduracaksak.Neyse.Sonra,o partilerden kaçtane olması gerektiğini yapman gerek.Yani,100 tane yapacaksan,ki bence oyunun içine eder :grin:,en az 10 tane yeter.Neyse.Daha sonra,AI yı ayarlamak gerek onların hep oraya saldırması için.Ama bir sorun daha var.Adamlar ya düşman ülkenin lordlarını görüpte ya kaçarsa veya kovalarsa ? orası sorun işte.

Biraz geçmiş ama yeni gördüm.
Aslında module factions dosyasından isyancıların kimle dost kimle düşman olacağı ayarlanamaz mı?
(Aslında ayarlanır ama kafadan bunu söuylemek istemedim.)
 
Tüfekçi Başı said:
HyperCharge said:
Herseyini yaptim onun.sadece,o yaptigim partileri bir yere saldirtmam gerek.onun nasil olacagini bilmiyorum.

party template'lerini partylere saldırtacaksın ha.

Hmmm bir bakayım ama şimdi bir şey bulamayabilirim. :smile:
Yabanci forumda simple triggers ile yapilir dediler.acaba lordlarinkine behzer birsey mi eklemem gerek..bunu yaparsam etrafta kamp kurmuş bekleyen ordu kampları olacak :smile:
 
Back
Top Bottom