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

Users who are viewing this thread

Ortadan değilde tam module_info yazısının üstüne basmayı denesene bir. :grin: Salladım şuan ama denemeye değer.
 
KhergitKhan said:
Özellikler de. Dosya Türünün altında  birlikte aç bölümü var. Değiştir orayı istediğin program yap.

Hocam ne demek istedinz tam anlamadım ama ben mesela module infoyu yada item tools u masa üstüne atıp ancak o şekilde IDLE ve Notepad ++ ile düzenleyebiliyorum yoksa sadece aç sil vs vardı birazdan da item eklemeyi öğrenmeye çalışacağım  :grin:
 
2 tane oluşturduğum devriyeyi nasıl birbirine düşman edebilirim?
 
CavalryMan said:
HyperCharge ;

Hem o Mongol Swordu hem kendime ait bir kılıcı ekledim Build_Moduleyiçalışıtırdım böyle bir hata verdi nedir sebebi

itemi yanlış yere eklemişsin, eklediğin yerin resmini atarsan yardımcı olabilirim.
 
Merhaba, uzun bir aradan sonra, modül sistemde önemli işler için olmazsa olmazlarından birini, pozisyonları öğreneceğiz. Pozisyonlar oyunun 3 boyutlu matematik işlemleridir. Eğer ki bir scene prop'u hareket ettirmek istiyorsanız bunu pozisyon operasyonlarıyla yapmanız gerekiyor. Veyahut bir top kodu, mancınık yazacaksanız projektillerin nasıl gideceğini pozisyonlar sayesinde sağlayabilirsiniz.

Pozisyonlar 3 bölüme ayrılır; koordinatlar, döndürme işlemleri ve büyültme-küçültme işlemleri.

Koordinatlar 3  rakamlıdır. X,Y,Z.

Code:
(position_set_x, <position>, <value_fixed_point>),
Pozisyonun belirtilen uzunlukta, X açısındaki halini veriyor.

Code:
(position_set_y, <position>, <value_fixed_point>),
Pozisyonun belirtilen uzunlukta, Y açısındaki halini veriyor.

Code:
(position_set_z, <position>, <value_fixed_point>),
Pozisyonun belirtilen uzunlukta, Z açısındaki halini veriyor.

mesela;

Code:
(init_position, <pozisyon>),

Bu, belirlenen pozisyonun sahnedeki yerini rotasyonu ve büyüklüğüne bakmadan direk olarak X,Y,Z ile belirtiyor. Lakin bunlar kafa karışıklığına neden olmaması için pos1, pos2 gibi registerlara atanır. Ayrıca, destination_fixed_point gibi şeyler, yani çözümlenmiş nokta değeri, pozisyonun hangi uzunluk biriminde işleme sokulacağını yazar. temel birim metredir. 100 yaparsanız santimetre, 1000 yaparsanız milimetre olur, vesaire vesaire.


Döndürme işlemleri ise, yine X,Y,Z ile;

Code:
(position_rotate_x, <pozisyon>, <açı>),

bulunduğu pozisyona X açısında eğim yapar, yani ileri-geri şeklinde.

Code:
(position_rotate_y, <pozisyon>, <açı>),

Bulunduğu pozisyona Y açısında eğim yapar, yukarı-aşağı yani.

Code:
(position_rotate_z, <pozisyon>, <açı>, [global_z_axis]),

Bulunduğu pozisyonu Z açısında döndürür, sağa-sola doğru.

Son olarak da, büyültme küçültme işlemleri var;

Code:
(position_set_scale_x, <pozisyon>, <çözümlenmiş nokta değeri>),

verdiğiniz değer ile O pozisyonu X açısında büyütür. yani ileri-geri.

Code:
(position_set_scale_y, <pozisyon>, <çözümlenmiş nokta değeri>),

verdiğiniz değer ile O pozisyonu Y açısında büyütür. yani yukarı-aşağı.

Code:
(position_set_scale_z, <pozisyon>, <çözümlenmiş nokta değeri>),

verdiğiniz değer ile O pozisyonu Z açısında büyütür. yani sağa-sola.

Şimdi, tüm pozisyon operasyonlarını öğrenmemiz gerekiyor, çünkü bunlar yetmez.

Code:
(copy_position, <hedef pozisyon>, <kaynak pozisyon>),

kaynak pozisyonunu hedef pozisyonuna kopyalıyor, bir nevi kaynak pozisyonunun kopyası oluyor hedef pozisyon.

Code:
(position_copy_origin, <hedef pozisyon>, <kaynak pozisyon>),

kaynak pozisyonunun koordinatlarını hedef pozisyona atıyor, hiçbir rotasyon ve boy değişikliği olmadan.

Code:
(position_copy_rotation, <hedef pozisyon>, <kaynak pozisyon>),

Kaynak pozisyonun rotasyon değerlerini hedef pozisyona atar, rotasyonu değiştirmeden ve boy değişikliği yapmadan.

Code:
(position_transform_position_to_parent, <position_dest>, <position_anchor>, <position_relative_to_anchor>),

bu biraz karmaşık. yerel koordinatları parent koordinata çeviriyor. diğer bir değişle, eğer sahneye koyduğunuz pozisyonlarınız varsa, ve yerlerini de buraya yazmış iseniz, o sondaki position_relative_to_anchor'a X,Y,Z açılarıyla değer verip pozisyonu ileri geri, sağa sola, yukarı aşağı hareket ettirebiliyorsunuz.

Code:
(position_transform_position_to_local, <position_dest>, <position_anchor>, <position_source>),

Üsttekine karşılık, bunda position_anchor'un yerini bilebiliyorsunuz. Yani position_anchor'a bir agent atarsınız, position_source'a da oyuncuyu atarsınız, position_dest'e vereceğiniz poslar ile de bir koşul sonuç yapabilirsiniz. Mesela agent'ın oyuncunun arkasında olup olmadığını kontrol edersiniz.

Code:
(position_get_x, <çözümlenmiş nokta değeri>, <pozisyon>),

verdiğiniz değer ile pozisyonun x açısındaki, yani sağ yönündeki koordinatını bulur.

Code:
(position_get_y, <çözümlenmiş nokta değeri>, <pozisyon>),

verdiğiniz değer ile pozisyonun y açısındaki, yani ileri yönündeki koordinatını bulur.

Code:
(position_get_z, <çözümlenmiş nokta değeri>, <pozisyon>),

verdiğiniz değer ile pozisyonun z açısındaki, yani yukarı yönündeki koordinatını bulur.

Code:
(position_move_x, <position>, <movement>, [value]),

pozisyonu x açısında hareket ettirir. Hareketin uzunluğu santimetredir. opsiyonel bir değer daha vardır sonda, isterseniz hiç bir şey yazmazsınız isterseniz 0 veya 1 atarsınız, 0 atayınca yerel, 1 atayınca genel X açısında ayarlıyor işlemi. Yani yerelde sağa sola ise globalde doğu-batı şeklinde olacak.

Code:
(position_move_y, <position>, <movement>,[value]),


pozisyonu y açısında hareket ettirir. Hareketin uzunluğu santimetredir. opsiyonel bir değer daha vardır sonda, isterseniz hiç bir şey yazmazsınız isterseniz 0 veya 1 atarsınız, 0 atayınca yerel, 1 atayınca genel Y açısında ayarlıyor işlemi. Yani yerelde ileri-geri ise globalde kuzey-güney şeklinde olacak.

Code:
(position_move_z, <position>, <movement>,[value]),

pozisyonu z açısında hareket ettirir. Hareketin uzunluğu santimetredir. opsiyonel bir değer daha vardır sonda, isterseniz hiç bir şey yazmazsınız isterseniz 0 veya 1 atarsınız, 0 atayınca yerel, 1 atayınca genel Z açısında ayarlıyor işlemi. Yani yerelde yukarı-aşağı ise yine globalde yukarı-aşağı şeklinde olacak, lakin globalde yukarı-aşağı hareketi eğim ile olacak.

Code:
(position_set_z_to_ground_level, <position>),

Bu, Z koordinatını getiriyor, bu yüzden yer seviyesine dayanıyor. Bundan örnekle yola çıkarsak, mesela bir agent bu pozisyonun üzerinde durabilir. Bu ayrıca scene prop'ları da, collisionlarını da kapsıyor. Sadece misyon sırasında çalışır.

Code:
(position_get_distance_to_terrain, <destination>, <position>),

bu, verdiğiniz değişkene, belirlediğiniz pozisyonun araziye olan uzaklığını atıyor, aradaki hiçbir öge, scene prop, collision mesh'i bu mesafeye etki etmeden. sadece misyonlarda çalışır, dünya haritasında çalışmaz.

Code:
(position_get_distance_to_ground_level, <destination>, <position>),

üsttekine karşılık, aradaki ögeler de dikkate alınarak pozisyonun yer yüzüne olan uzaklığı verilen değişkene atanıyor, aynı şekilde dünya haritasında çalışmaz, sadece misyonda çalışır.

Code:
(position_has_line_of_sight_to_position, <position_no_1>, <position_no_2>),

bu, çok işinize yarar, ilk pozisyona sizin pozisyonunuz, ikinciye de objenin pozisyonunu verirsiniz. Sizin baktığınız tarafın 2. pozisyon olup olmadığını sorar. Her saniye bunu trigger ile sordurabilirsiniz.

Code:
(get_distance_between_positions, <destination>, <position_no_1>, <position_no_2>),

iki pozisyon arası uzaklığı santimetre olarak verdiğiniz değişkene atıyor.

Code:
(get_distance_between_positions_in_meters, <destination>, <position_no_1>, <position_no_2>),

yukardakinin aynısı fakat değişkene atanan uzunluk değeri metre oluyor.

Code:
(get_sq_distance_between_positions, <destination>, <position_no_1>, <position_no_2>),

iki pozisyon arası uzaklığı santimetre olarak verdiğiniz değişkene atıyor fakat bunda karesini alıyor o uzaklığın sanırım.

Code:
(get_sq_distance_between_positions_in_meters, <destination>, <position_no_1>, <position_no_2>),

iki pozisyon arası uzaklığı metre olarak verdiğiniz değişkene atıyor, dediğim gibi karesini alıyor olabilir.

Code:
(position_is_behind_position, <position_base>, <position_to_check>),

önceden de dediğim gibi, agent'ın oyuncunun arkasında olup olmadığını bu kontrol ettiriyor. İkinci pozisyonun ilk pozisyonun arkasında olup olmadığını soruyor...

Code:
(get_sq_distance_between_position_heights, <destination>, <position_no_1>, <position_no_2>),

iki pozisyon arası uzaklığı yükseklik olarak santimetre uzunluğunda veriyor, karesini alıyor olabilir.

Code:
(position_get_screen_projection, <position_screen>, <position_world>),

ekranın koordinatlarını algılayıp, position screen'e, X ve Y açısından atıyor.

Code:
(map_get_random_position_around_position, <dest_position_no>, <source_position_no>, <radius>),

nasıl çalışıyor bilmiyorum.

Code:
(map_get_land_position_around_position, <dest_position_no>, <source_position_no>, <radius>),

verilen iki pozisyon arasında dünya haritasında yürünebilecek yer olup olmadığını soruyor.

Code:
(map_get_water_position_around_position, <dest_position_no>, <source_position_no>, <radius>),

verilen iki pozisyon arasında dünya haritasında deniz olup olmadığını soruyor.

Bir dahaki dersimizde görüşmek üzere...  :smile:
 
Hyper, jacobhinds krallık eklemeyle ilgili ayrıntılı bir ders yapmış, yani diğer krallıklar gibi orjinal krallık ekliyoruz :grin:
Senden ricam o dersi çevirip buraya eklemen.
http://forums.taleworlds.com/index.php/topic,334271.0.html
 
frozenpainter said:
Hyper, jacobhinds krallık eklemeyle ilgili ayrıntılı bir ders yapmış, yani diğer krallıklar gibi orjinal krallık ekliyoruz :grin:
Senden ricam o dersi çevirip buraya eklemen.
http://forums.taleworlds.com/index.php/topic,334271.0.html

Aslında aile sorununu ve bayrak sorununu düzeltmem gerek benim de, sadece gerekenleri çevirip ekleyeceğim.
 
Son hazırladığın rehberi baştan hazırlasaydın hiç tatsızlıklar falan çıkmayacaktı aramızda aslında. Yanlış anlaşılmasın, okuma ihtiyacı duymadım. Devamını bekleyeceklerini düşünüyorum, eline sağlık.
 
Modumuza av sistemini ekledik şimdi ama biz istiyoruz ki ava girdiği anda asla at olmasın elinde sadece yay ve ok olsun ve üzerinde cheat menudeki pelt coit denen av tuniği olsun istiyoruz bunu nasıl yaparız kod verebilir misin şarz kardeş  :grin: ?
 
  (
    "deer_hunting",mtf_battle_mode,-1,
    "You lead your deers to battle.",
    [
    (1,mtef_team_0|mtef_leader_only,af_override_all,aif_start_alarmed,12,[itm_practice_bow,itm_practice_arrows,itm_practice_horse,itm_arena_tunic_red, itm_red_tourney_helmet]),
    (4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
    ],
    [
      (ti_tab_pressed, 0, 0, [
          (change_screen_map)
        ], []), #leaving area
     
      (0, 0, ti_once, [ #spawing deers
    (party_count_members_of_type,":num_deers","$g_encountered_party","trp_deer"),
    (val_sub,":num_deers",1),
    (ge,":num_deers",0),
                    (assign,"$num_deers_killed",0),
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (set_spawn_position, pos1),
                    (spawn_horse, "itm_deer"),
    (assign,"$leading_deer",reg0),
    (try_for_range,":unused",0,":num_deers"),
                      (init_position, pos1),
      (store_random_in_range,":mad:_pos_add",0,1000),
      (store_random_in_range,":y_pos_add",0,1000),
      (val_add,":mad:_pos_add",":mad:_pos"),
      (val_add,":y_pos_add",":y_pos"),
      (position_set_x,pos1,":mad:_pos_add"),
      (position_set_y,pos1,":y_pos_add"),
      (position_set_z,pos1,10000),
      (position_set_z_to_ground_level,pos1),
      (set_spawn_position, pos1),
                      (spawn_horse, "itm_deer"),
    (try_end),
                ], []),
      (1,0,0,[], #wounded deers move slower
      [(try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
      (eq,reg(2),"itm_deer"),
      (store_agent_hit_points,reg(2),reg(1)),
      (store_mul,reg(3),20,reg(2)),
      (val_div,reg(3),40),
      (agent_set_speed_limit,reg(1),reg(3)),
      (try_end),
      ]),
      (5,0,0,
      [
      (neg|agent_is_alive,"$leading_deer"),
      ],
      [
      (try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(assign,"$leading_deer",reg(1)),
      (try_end),
      ]),
      (1,0,0,[],
      [
              (assign,":num_kills",0),
      (try_for_agents,reg(1)),
        (agent_get_item_id,reg(2),reg(1)),
        (eq,reg(2),"itm_deer"),
                (store_agent_hit_points,reg(2),reg(1)),
(eq,reg(2),0),
(val_add,":num_kills",1),
      (try_end),   
      (gt,":num_kills","$num_deers_killed"),      
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (agent_set_scripted_destination,"$leading_deer",pos1),
            (assign,"$num_deers_killed",":num_kills"),
      ]),
      (5,0,0,[],
      [
      (agent_get_position,pos1,"$leading_deer"),
      (position_get_x,":mad:_pos",pos1),
      (position_get_y,":y_pos",pos1),
      (this_or_next|le,":mad:_pos",5000),
      (this_or_next|le,":y_pos",5000),
      (this_or_next|ge,":mad:_pos",38000),
      (ge,":y_pos",38000),
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (agent_set_scripted_destination,"$leading_deer",pos1),
      ]),
      (1,0,0,[],
      [
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
        (agent_get_position,pos1,reg(1)),
        (position_get_x,":mad:_pos",pos1),
(position_get_y,":y_pos",pos1),
        (store_random_in_range,":mad:_pos_add",0,1000),
        (store_random_in_range,":y_pos_add",0,1000),
(val_add,":mad:_pos",":mad:_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":mad:_pos"),
(position_set_y,pos1,":y_pos"),
        (agent_set_scripted_destination,reg(1),pos1),
      (try_end),
      ]),
      (0.5,0,0, #deer travelling
      [],
      [
      (get_player_agent_no,reg(1)),
      (agent_get_position,pos1,reg(1)),
      (agent_get_position,pos4,"$leading_deer"),
      (position_get_x,":mad:_pos",pos4),
      (position_get_y,":y_pos",pos4),
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
        (agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
        (position_get_x,":pos_x",pos2),
        (position_get_x,":pos_y",pos2),
    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
(this_or_next|gt,":pos_x",":scene_max_x"),
(this_or_next|lt,":pos_x",":scene_min_x"),
(this_or_next|gt,":pos_y",":scene_max_y"),
(lt,":pos_y",":scene_min_y"),
(store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                (init_position, pos1),
(position_set_x,pos1,":mad:_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
                (agent_set_scripted_destination,reg(1),pos1),
(else_try),
(le,reg(3),2500),
(position_get_x,reg(4),pos1),
(position_get_x,reg(5),pos2),
(store_sub,":mad:_dist",reg(5),reg(4)),
(val_mul,":mad:_dist",10),
(position_get_y,reg(6),pos1),
(position_get_y,reg(7),pos2),
(store_sub,":y_dist",reg(7),reg(6)),
(val_mul,":y_dist",10),
(init_position,pos3),
(val_add,":mad:_dist",reg(5)),
(val_add,":y_dist",reg(7)),
(position_set_x,pos3,":mad:_dist"),
(position_set_y,pos3,":y_dist"),
        (position_set_z,pos3,10000),
        (position_set_z_to_ground_level,pos3),
(agent_set_scripted_destination,reg(1),pos3),
(else_try),
(get_distance_between_positions,reg(3),pos4,pos2),
(ge,reg(3),2000),
                      (init_position, pos6),
      (store_random_in_range,":mad:_pos_add",0,1000),
      (store_random_in_range,":y_pos_add",0,1000),
      (val_add,":mad:_pos_add",":mad:_pos"),
      (val_add,":y_pos_add",":y_pos"),
      (position_set_x,pos6,":mad:_pos_add"),
      (position_set_y,pos6,":y_pos_add"),
      (position_set_z,pos6,10000),
      (position_set_z_to_ground_level,pos6),
      (agent_set_scripted_destination,reg(1),pos6),
(try_end),
      (try_end),
      ]),
    ]),

   
  (
    "boar_hunting",mtf_battle_mode,-1,
    "You lead your boars to battle.",
    [
    (1,mtef_team_0|mtef_leader_only,0,aif_start_alarmed,12,[]),
    (4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
    ],
    [
      (ti_tab_pressed, 0, 0, [
          (change_screen_map)
          #(set_trigger_result,1)
        ], []), #leaving area
      (0, 0, ti_once, [ #spawing boars
    (party_count_members_of_type,":num_boars","$g_encountered_party","trp_boar"),
    (val_sub,":num_boars",1),
    (ge,":num_boars",0),
                    (assign,"$num_boars_killed",0),
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (set_spawn_position, pos1),
                    (spawn_horse, "itm_boar"),
    (assign,"$leading_boar",reg0),
    (try_for_range,":unused",0,":num_boars"),
                      (init_position, pos1),
      (store_random_in_range,":mad:_pos_add",0,1000),
      (store_random_in_range,":y_pos_add",0,1000),
      (val_add,":mad:_pos_add",":mad:_pos"),
      (val_add,":y_pos_add",":y_pos"),
      (position_set_x,pos1,":mad:_pos_add"),
      (position_set_y,pos1,":y_pos_add"),
      (position_set_z,pos1,10000),
      (position_set_z_to_ground_level,pos1),
      (set_spawn_position, pos1),
                      (spawn_horse, "itm_boar"),
    (try_end),
                ], []),
      (1,0,0,[], #wounded boars move slower
      [(try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
      (eq,reg(2),"itm_boar"),
      (store_agent_hit_points,reg(2),reg(1)),
      (store_mul,reg(3),20,reg(2)),
      (val_div,reg(3),100),
      (agent_set_speed_limit,reg(1),reg(3)),
      (try_end),
      ]),
      (5,0,0,
      [
      (neg|agent_is_alive,"$leading_boar"),
      ],
      [
      (try_for_agents,reg(1)),
      (agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(assign,"$leading_boar",reg(1)),
      (try_end),
      ]),
      (1,0,0,[],
      [
              (assign,":num_kills",0),
      (try_for_agents,reg(1)),
        (agent_get_item_id,reg(2),reg(1)),
        (eq,reg(2),"itm_boar"),
                (store_agent_hit_points,reg(2),reg(1)),
(eq,reg(2),0),
(val_add,":num_kills",1),
      (try_end),   
      (gt,":num_kills","$num_boars_killed"),      
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (agent_set_scripted_destination,"$leading_boar",pos1),
            (assign,"$num_boars_killed",":num_kills"),
      ]),
      (5,0,0,[],
      [
      (agent_get_position,pos1,"$leading_boar"),
      (position_get_x,":mad:_pos",pos1),
      (position_get_y,":y_pos",pos1),
      (this_or_next|le,":mad:_pos",5000),
      (this_or_next|le,":y_pos",5000),
      (this_or_next|ge,":mad:_pos",38000),
      (ge,":y_pos",38000),
                    (get_scene_boundaries, pos10,pos11),
                    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
    (store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
    (store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                    (init_position, pos1),
    (position_set_x,pos1,":mad:_pos"),
    (position_set_y,pos1,":y_pos"),
    (position_set_z,pos1,10000),
    (position_set_z_to_ground_level,pos1),
                    (agent_set_scripted_destination,"$leading_boar",pos1),
      ]),
      (1,0,0,[],
      [
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
        (agent_get_position,pos1,reg(1)),
        (position_get_x,":mad:_pos",pos1),
(position_get_y,":y_pos",pos1),
        (store_random_in_range,":mad:_pos_add",0,1000),
        (store_random_in_range,":y_pos_add",0,1000),
(val_add,":mad:_pos",":mad:_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":mad:_pos"),
(position_set_y,pos1,":y_pos"),
        (agent_set_scripted_destination,reg(1),pos1),
      (try_end),
      ]),
      (0.5,0,0, #boar travelling
      [],
      [
      (get_player_agent_no,reg(1)),
      (agent_get_position,pos1,reg(1)),
      (agent_get_position,pos4,"$leading_boar"),
      (position_get_x,":mad:_pos",pos4),
      (position_get_y,":y_pos",pos4),
      (try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
        (agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
        (position_get_x,":pos_x",pos2),
        (position_get_x,":pos_y",pos2),
    (position_get_x, ":scene_min_x", pos10),
                    (position_get_x, ":scene_max_x", pos11),
                    (position_get_y, ":scene_min_y", pos10),
                    (position_get_y, ":scene_max_y", pos11),
    (store_div,":border_x",":scene_max_x",10),
    (val_add,":scene_min_x",":border_x"),
    (val_sub,":scene_max_x",":border_x"),
    (store_div,":border_y",":scene_max_y",10),
    (val_add,":scene_min_y",":border_y"),
    (val_sub,":scene_max_y",":border_y"),
(this_or_next|gt,":pos_x",":scene_max_x"),
(this_or_next|lt,":pos_x",":scene_min_x"),
(this_or_next|gt,":pos_y",":scene_max_y"),
(lt,":pos_y",":scene_min_y"),
(store_random_in_range,":mad:_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
                (init_position, pos1),
(position_set_x,pos1,":mad:_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
                (agent_set_scripted_destination,reg(1),pos1),
(else_try),
(le,reg(3),2500),
(position_get_x,reg(4),pos1),
(position_get_x,reg(5),pos2),
(store_sub,":mad:_dist",reg(5),reg(4)),
(val_mul,":mad:_dist",10),
(position_get_y,reg(6),pos1),
(position_get_y,reg(7),pos2),
(store_sub,":y_dist",reg(7),reg(6)),
(val_mul,":y_dist",10),
(init_position,pos3),
(val_add,":mad:_dist",reg(5)),
(val_add,":y_dist",reg(7)),
(position_set_x,pos3,":mad:_dist"),
(position_set_y,pos3,":y_dist"),
        (position_set_z,pos3,10000),
        (position_set_z_to_ground_level,pos3),
(agent_set_scripted_destination,reg(1),pos3),
(else_try),
(get_distance_between_positions,reg(3),pos4,pos2),
(ge,reg(3),2000),
                      (init_position, pos6),
      (store_random_in_range,":mad:_pos_add",0,1000),
      (store_random_in_range,":y_pos_add",0,1000),
      (val_add,":mad:_pos_add",":mad:_pos"),
      (val_add,":y_pos_add",":y_pos"),
      (position_set_x,pos6,":mad:_pos_add"),
      (position_set_y,pos6,":y_pos_add"),
      (position_set_z,pos6,10000),
      (position_set_z_to_ground_level,pos6),
      (agent_set_scripted_destination,reg(1),pos6),
(try_end),
      (try_end),
      ]),
    ]),

Kırmızıya istediğin itemleri yaz. af_override_all galiba üstündeki tüm itemleri çıkartıyor(eğer kendi istediğin itemleri vermek istiyorsan bunu yapmalısın), sadece at'ı çıkartmak istiyorsan af_override_horse yazarsın oraya.
 
Back
Top Bottom