[Açık Kaynak][Kod] Bağış

Users who are viewing this thread

Tüfekçi Başı

Grandmaster Knight
Merhaba arkadaşlar. Uluslararası forumda da paylaştım. Kod ile köy menüsüne bağış yapma seçeneği ekleniyor.

Fazla büyük bir kod olmasa da kullanmak isteyen olabilir.

Hata görürseniz veya geliştirmek için fikir vermek isterseniz lütfen yazın.

module_constants

Ateş ve Kılıç için

Bunu bulun:
Code:
slot_center_last_recruting_time	= 345

Altına bunu ekleyin:
Code:
slot_donate_village= 346

Warband için

Bunu bulun:
Code:
slot_center_last_reconnoitered_by_faction_time 				= 350

Altına bunu ekleyin:
Code:
slot_donate_village = 351



module_game_menus

Bunu bulun:
Code:
      ("village_hostile_action",[(party_slot_eq, "$current_town", slot_village_state, 0),
                                 (neg|party_slot_ge, "$current_town", slot_village_infested_by_bandits, 1),],"Take a hostile action.",
       [(jump_to_menu,"mnu_village_hostile_action"),
           ]),

Altına bunu ekleyin:
Code:
       ("village_donation",[
(party_slot_eq, "$current_town", slot_village_state, 0),
                                 (neg|party_slot_ge, "$current_town", slot_village_infested_by_bandits, 1),],"Make a donation(2000 Thaler).",
       [
        (party_get_slot, ":prosperity", "$current_town", slot_town_prosperity), # prosperity lines 1/2
		(store_troop_gold, ":gold", "trp_player"),
		(store_random_in_range, ":zero_one", 0,2),
		(store_random_in_range, ":one_two", 1,3),
		(store_random_in_range, ":two_three", 2,4),
		(try_begin),
			(neg|party_slot_eq, "$current_town", slot_donate_village, 1),
			(try_begin),
				(ge, ":gold", 2000), ## donation is 2000 Thaler, you can easily change this.
				(troop_remove_gold, "trp_player", 2000),
				(try_begin),
					(is_between, ":prosperity", 0, 20),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":two_three"),
					(val_add, ":prosperity", ":two_three"),
				(else_try),
					(is_between, ":prosperity", 20, 40),
					(call_script, "script_change_player_relation_with_center", "$current_town", 2),
					(val_add, ":prosperity", 2),
				(else_try),
					(is_between, ":prosperity", 40, 60),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":one_two"),
					(val_add, ":prosperity", ":one_two"),
				(else_try),
					(is_between, ":prosperity", 60, 80),
					(call_script, "script_change_player_relation_with_center", "$current_town", 1),
					(val_add, ":prosperity", 1),
				(else_try),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":zero_one"),
					(val_add, ":prosperity", ":zero_one"),
			    (try_end),
				(display_message,"@You donated 2000 Thaler.",0xFFFF00), # Yellow. You can change the colour what you want.
				(party_set_slot, "$current_town", slot_donate_village, 1),
			(else_try),
				(display_message,"@You don't have enough money to donate.",0x888888), # Gray. You can change the colour what you want.
			(try_end),
		(else_try),
			(display_message,"@They didn't accept your donation. You can ask them after one week.",0xAA0000), #I said "one week". This is controlling by a simple trigger. You must match words with digits. Simple trigger has given at bottom of codes. # Dark red. You can change the colour what you want.
		(try_end),   
]),



module_simple_triggers

Kodların sonuna gidin ve son ] işaretini bulun.

Aşağıdaki kodu onun üzerine ekleyin.
Code:
 (24*7, # 24*7 means one week. I said at bit top. You must match words with digits for your mods health.
   [
		(try_for_parties, ":party"),
			(party_slot_eq, ":party", slot_donate_village, 1),
			(party_set_slot, ":party", slot_donate_village, 0),
		(try_end),
   ]),



Alıntı yapıp yapmamayı size bırakıyorum. Alıntı yapacaksanız da başa GrandTURK veya GrandTÜRK eklemeyi unutmayın. :smile:
Eğer alıntı yapacaksanız ve kodu kendinize göre değiştirecekseniz -ki bunu yapabilirsiniz benim için hiç sorun yok- modunuzun ana sayfasında bu sayfaya yönlendirme yapmalısınız veya mdounuzun sayfasında bu kodda değişiklik yaptığınızı söyelemelisiniz.
 
şu kısım niye var

(party_set_slot, "$current_town", slot_yeni_bagis_yapilan_koy, 1),

Kırmızı içinde yazdığım yeri constanta eklememiz gerekmiyor mu yada orayı

Code:
slot_donate_village

çevirmem yeterli olur mu
 
Bu koda özellik olarak şunlar eklenebilir.
-Bağış yaptığımız için ilişkinin yanında onurda artar.
-Onurlu olduğumuz için her bağıştan sonra 5-10 arası köylü gönüllü olarak bize katılabilir.
-Baış yaptığımızda o köy artık bizi tanıyacaktır, dolayısyla köyde "burda biraz bekle" seçeneği çıkıp ücretsiz dinlenebilmeliyiz.
-Bağış yaptığımız için köylüler yoluuk olarak bize balık, ekmek verebilir.
 
Uzun uzun yazdım ama forumun bakımına kurban gitti yazdıklarım.  :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil: :evil:

Hepinize teşekkürler desteğiniz için.

2 satırlık bir refah seviyesi kodu ekledim. uluslararası forumdan bir arkadaş önermişti.

@fp
Dediğin kodları eklerim yalnız refah seviyesi koduna göre daha ayrıntılı kodlar. Uzun uzun yazdım ama işte forum yüzünden gitti.  :facepalm:
 
Kodu yükselttim. Yaptığınız bağış köyün refah seviyesine göre etkili olacak. Fakir bir köye yaptığınız bağış daha çok değerliyken, zengin bir köye yaptığınız bağış aynı oranda değerli olmayacak. İşte yapılan yükseltme bu. :smile:


EK:

Geçen yazamadığım mesajı yazıyorum. Hatta biraz daha ayrıntılandırdım. Aslında yeni ileti olarak atacaktım ama 3 mesaj üst üste olursa çok olur.

-Bağış yaptığımız için ilişkinin yanında onurda artar.
-Onurlu olduğumuz için her bağıştan sonra 5-10 arası köylü gönüllü olarak bize katılabilir.
-Baış yaptığımızda o köy artık bizi tanıyacaktır, dolayısyla köyde "burda biraz bekle" seçeneği çıkıp ücretsiz dinlenebilmeliyiz.
-Bağış yaptığımız için köylüler yoluuk olarak bize balık, ekmek verebilir.

1- Ben onurla bağış yapmayı pek bağdaştıramıyorum. Aslında olur ama çok derin şartlar koymak lazım. Hatta belki bunun için görevler falan yazmak lazım. Mesela paranız çok azken bağış yaparsanız onur artabilir. Ama yine para kazanırsınız. Aslında bağış yaptıktan sonra kazandığınız para hesaplanıp onur artışı olabilir. İflasta olan birinin son parasını aç köylülere vermesi elbette onurlu bir davranıştır.
2- Olabilir yalnız bunu günüllü alma seçeneğinde kullanmak daha mantıklı geliyor. Bağışla doğrudan değil de dolaylı olarak ilişkilendirilebilir.
3- Bu da olabilir. Aynı şekilde köyde kalma seçeneği de bağış ile dolaylı ilişki içinde olur.
4- Mümkün yalnız köylülün kendine yiyeceği yoksa bağış yapan birine yiyecek vermesi ne kadar uygun olur bilemiyorum. Bu koda bir süs olarak eklenebilir. Belki görev şekline de dönüşebilir. Bunun bağış işini ticarete döndürme ihtimali var.


EK 2:
Kodları şehir ve kaleler için de ayarladım. Çevirene kadar uluslararası konusundan bakabilirsiniz.
https://forums.taleworlds.com/index.php/topic,351819.0.html

Anketi de yazayım. 4 oy şehirlere bağış eklensin, 2 oy eklenmesin. Kodu yazınca anketi kısa tutmak zorunda kaldım..
 
Tamam. İyi yapmışsın. Ama şehir için olanını ben yapmıştım da uluslararası forumdaki başlıkta yayınlamıştım.

Şöyle buraya da yazalım. Tamamını çevirmedim. İsteyen sorabilir.

module_game_menus

Find this:
Code:
      ("trade_with_merchants",
       [
           (party_slot_eq,"$current_town",slot_party_type, spt_town)
        ],"Go to the marketplace.",
         [
           (try_begin),
             (call_script, "script_cf_enter_center_location_bandit_check"),
           (else_try),
             (jump_to_menu,"mnu_town_trade"),
           (try_end),
          ]),

After add this:
Code:
   (
    "town_donation",mnf_disable_all_keys," ",
    "none",
    [],
    [
      ("village_donation_inside",[
                                 (neg|party_slot_eq, "$current_town", slot_village_state, svs_under_siege), # Disabling donation if there is siege.
								 ],"Make a donation(10000 Thaler).",
       [
        (party_get_slot, ":prosperity", "$current_town", slot_town_prosperity), 
		(store_troop_gold, ":gold", "trp_player"),
		(store_random_in_range, ":zero_one", 0,2),
		(store_random_in_range, ":one_two", 1,3),
		(store_random_in_range, ":two_three", 2,4),
		(try_begin),
			(neg|party_slot_eq, "$current_town", slot_donate_party, 1),
			(try_begin),
				(ge, ":gold", 10000), ## donation is 10000 Thaler, you can easily change this.
				(troop_remove_gold, "trp_player", 10000),
				(try_begin),
					(is_between, ":prosperity", 0, 20),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":two_three"),
					(val_add, ":prosperity", ":two_three"), 
				(else_try),
					(is_between, ":prosperity", 20, 40),
					(call_script, "script_change_player_relation_with_center", "$current_town", 2),
					(val_add, ":prosperity", 2),
				(else_try),
					(is_between, ":prosperity", 40, 60),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":one_two"),
					(val_add, ":prosperity", ":one_two"), 
				(else_try),
					(is_between, ":prosperity", 60, 80),
					(call_script, "script_change_player_relation_with_center", "$current_town", 1),
					(val_add, ":prosperity", 1), 
				(else_try),
					(call_script, "script_change_player_relation_with_center", "$current_town", ":zero_one"),
					(val_add, ":prosperity", ":zero_one"), 
			    (try_end),
				(display_message,"@You donated 10000 Thaler.",0xFFFF00), # Yellow. You can change the colour what you want.
				(party_set_slot, "$current_town", slot_donate_party, 1),
			(else_try),
				(display_message,"@You don't have enough money to donate.",0x888888), # Gray. You can change the colour what you want.
			(try_end),
		(else_try),
			(display_message,"@They didn't accept your donation. You can ask them after one month.",0xAA0000), #I said "one month". This is controlling by a simple trigger. You must match words with digits. Simple trigger has given at bottom of codes. # Dark red. You can change the colour what you want.
		(try_end),   
]),
    ]
  ),



module_simple_triggers

Go to end of codes and find the last ] sign.

Add this to the top of last ] sign :
Code:
 (24*30, # 24*30 means one month. I said at a bit top. You must match words with digits for your mods health.
   [
		(try_for_parties, ":party"),
			(party_slot_eq, ":party", slot_donate_party, 1),
			(party_set_slot, ":party", slot_donate_party, 0),
		(try_end),
   ]),

module_constants

For WFaS

Find this:
Code:
slot_center_last_recruting_time	= 345

After add this:
Code:
slot_donate_party= 346

For Warband

Find this:
Code:
slot_center_last_reconnoitered_by_faction_time 				= 350

After add this:
Code:
slot_donate_party = 351
 
yanlız module_game_menus kısmından

baştaki bunu
  (
    "village_donation",mnf_disable_all_keys," ",
    "none",
    [],
    [
      ("village_donation_inside",[


bide sondaki bunu

    ]
  ),


silebilirsin,boşuna error çıkartıyor ve işe yaramıyor :smile:

Edit:
Ben teşekkür ederim, ben kendi moduma eklerken düzelttim zaten ama kodlamaya yeni başlayanlar varsa anlayamayabilirler bu yüzden söyledim :smile:

Bu arada, bağış yapınca refah artıyordu, değil mi? Ben bir değişiklik göremedim de, ve artan refah miktarını değiştirmem mümkün mü?
Şimdiden teşekkürler.
 
Normal menü gibi kodlamışım. Oysa ki alt menü. Üzerinde değişiklik yapınca bu tip hatalar olabiliyor. Hata düzeltildi. Ama yine de deneyebilirsiniz. Teşekkürler.
 
Geç olacak ama ellerine sağlık. Kırım,İsveç tahtına çıkma kodlamalarını da paylaşacak mısın?
 
Tüfekçi Başı said:
Kullandıktan sonra paylaşabilirim. Onu mod yapma ihtimalim yüksek. En yüksek ihtimal de Battal Gazi modu içinde olması.

Daha öncede söylemiştim ama sanırım görmedin, Native üzerinde Kırım ve İsveç tahtına çıkma özelliğini eklesen mod çıkana kadar onu oynardık.
 
Sanırım mod çıktıktan sonra modun içinde bunu yapabilirsiniz. Şimdi çıkarsam o modu hevesleri bitecek insanların. En doğru yolu Battal Gazi modunun içinde olması bence.
 
Ne desem erteliyorum. Hedefim mart ayı.

Anlayış için teşekkürler. :smile:

Yalnız mod 2 seçenekli olacağı için Battal Gazi olmayan karakterle ayrı bir mod gibi oynayabileceksiniz. Onda Kırım senaryosu, belki İsveç senaryosu da olur.
 
Tüfekçi Başı said:
Ne desem erteliyorum. Hedefim mart ayı.

Anlayış için teşekkürler. :smile:

Yalnız mod 2 seçenekli olacağı için Battal Gazi olmayan karakterle ayrı bir mod gibi oynayabileceksiniz. Onda Kırım senaryosu, belki İsveç senaryosu da olur.

Hadi hayırlısı yıllardır bu modu bekliyorum, umudum büyük.
 
Back
Top Bottom