Тема: Модульная система. Вопросы и ответы.  (Прочитано 338471 раз)

Ответ #1050 16 Марта, 2017, 12:30
0
(agent_is_human, ":cur_agent"),
Это лишнее .

(is_between, ":hp", 0, 1),
Я не уверен, но наверное лучше все же написать просто
Если можно сделать проще - лучше сделать проще. Мало ли..

(assign, ":cur_agent_new", ":cur_agent"),
Подожди, зачем создавать новую переменную? Если условие с 0 здоровья выполняется, все действия и так можно выполнять на ":cur_agent". Может я что-то не углядел, но как я понимаю, новая переменная тут лишняя. Во всяком случае, когда я делал триггер на постепенную регенерацию, я обошелся без новой переменной. Как по мне, чем меньше лишнего в коде - тем лучше. Вот мой код; может, поможет :

(agent_get_position, pos2, ":cur_agent_new"),
Я не спец в модульной системе (и вообще полез сюда только ради картоделания), но на всякий случай я бы посоветовал написать какой-нибудь pos30 вместо pos2. Просто потому, что у меня в одном скрипте на движение объект при активации двигался к pos1, где находилась точка спауна игроков. Когда я поставил pos30, все исправилось и объект начал двигаться в обозначенную мною точку.

(store_random_in_range, ":chislo", 0, 65),
64 и 65 - точки спауна флагов в режиме захвата флага. Я бы поставил до 63....

(agent_set_slot, ":cur_agent_new", slot_agent_spawn_entry_point, ":chislo"),
Ты уверен, что этот слот прописан в module_constants? И зачем тебе тут слоты в этом коде нужны?
Ответ #1051 16 Марта, 2017, 13:58
0
Привет, Луций.

Спасибо за столь быстрый ответ.  ;) У меня есть несколько вопросов по твоему сообщению. Начну по порядку  :)

1.
Цитировать (выделенное)
(agent_is_human, ":cur_agent"),
Это лишнее .

Почему проверка на то что агент является человеком лишняя?  :blink:

2.
Цитировать (выделенное)
Я не уверен, но наверное лучше все же написать просто (lt, ":hp", 1),
Если можно сделать проще - лучше сделать проще. Мало ли..

Написал так как ты говорил, плюс ко всему попробовал убрать новую переменную и изменить условие (store_random_in_range, ":chislo", 0, 65), на (store_random_in_range, ":chislo", 0, 63), номер позиции в операции
(agent_get_position, pos2, ":cur_agent_new"), тоже изменил, но из этого роя, не вышло ничего абсолютно. Проверял на себе)) Мой персонаж после смерти так и продолжает появляться где попало.  >:(

Цитировать (выделенное)
(agent_set_slot, ":cur_agent_new", slot_agent_spawn_entry_point, ":chislo"),

Такой слот точно есть)) Я его брал как раз-таки из файла module_constants  8-) Я решил использовать слот по той причине чтобы операция возрождения игрока была применена для всех агентов на сцене, удовлетворяющих данным условиям.
Кстати, на форуме taleworlds.com мне посоветовали использовать операцию в триггере ti_on_agent_killed_or_wounded и (set_spawn_position, <position>), для появления игрока, но пока либо я туп и не все понял  :D, либо надо использовать другие команды и условия  8-)
Ответ #1052 16 Марта, 2017, 19:08
0
Привет.

Почему проверка на то что агент является человеком лишняя? 
Потому что лошадь все равно не будет спауниться на Entry Point'ах, созданных для игроков. Ну впрочем, оставляй - компьютер чуть быстрее будет обрабатывать всех агентов если исключит лошадей. Это не принципиально.

Написал так как ты говорил, плюс ко всему попробовал убрать новую переменную и изменить условие (store_random_in_range, ":chislo", 0, 65), на (store_random_in_range, ":chislo", 0, 63), номер позиции в операции
(agent_get_position, pos2, ":cur_agent_new"), тоже изменил, но из этого роя, не вышло ничего абсолютно. Проверял на себе)) Мой персонаж после смерти так и продолжает появляться где попало. 
Гхм, я тут подумал. Раз агент помер, значит он уже не _alive, да? Он может быть еще _active некоторое время после смерти, но точно уже не _alive ))

Такой слот точно есть)) Я его брал как раз-таки из файла module_constants   Я решил использовать слот по той причине чтобы операция возрождения игрока была применена для всех агентов на сцене, удовлетворяющих данным условиям.
Не знаю насчет этой темы, т.к. я сам работаю с модульной системой Napoleonic Wars и там этого слота нет. Так что ничего не могу на этот счет сказать)



ti_on_agent_killed_or_wounded и (set_spawn_position, <position>)
Все правильно, я вспомнил как это делается. Вместо первого нолика своего триггера вписывай ti_on_agent_killed_or_wounded...

Ладно, мне лень объяснять, лучше код попробую сам написать.

Кстати, вместо проверки по уровню здоровья можно использовать
(neg|agent_is_alive, ":cur_agent"),.


Скорее всего это будет выглядеть примерно так:

Кстати, я нашел скрипт в module_scripts, на который отсылаются триггеры 'ti_on_agent_killed_or_wounded' из mission_templates. Он называется 'multiplayer_server_on_agent_killed_or_wounded_common'. Там как раз есть код проверки агента на смерть и.т.д...  Если что - найди его и посмотри, как там сделано...
« Последнее редактирование: 16 Марта, 2017, 19:14 от Луций »
Ответ #1053 18 Марта, 2017, 10:40
0
В продолжении моего вопроса, касаемо, появления игрока на месте своего трупа  :D
Попробовал я разные варианты написания кода с разными условиями и событиями, но так нифига путнего из этого не вышло. Зато, было установлено, что в файле mission_templates.py в любой миссии, например, deathmatch за появление игрока отвечает триггер такого типа:
Особенно строки выделенные жирным шрифтом. Так вот точка появления игрока случайна и заносится в регистр reg0 в строке (player_spawn_new_agent, ":player_no", reg0), Я пробовал заменить параметр reg0 на цифру 2. Это привело к тому, что я всегда появлялся в одном и том же месте, в точке entry_point = 2. Тогда у меня возник вопрос, как в значение этого регистра reg0 записать позицию, на которой я окочурился в бою?
« Последнее редактирование: 18 Марта, 2017, 10:44 от Valerian60 »
Ответ #1054 15 Мая, 2017, 22:08
0
Нужна подсказка, надеюсь что кто-нибудь мне поможет или натолкнет на правильный ход мыслей. Вопрос вот в чем. У меня есть два триггера. Первый срабатывает по событию ti_killed_or_wanted, а второй по событию ti_on_agent_spawn. В первом триггере отслеживается место на котором погиб игрок. В этой позиции генерируется новая entry_point и второй триггер телепортирует игрока на эту точку. Должен сказать, что все работает прекрасно когда игрок только один на сервере, но когда игроков много алгоритм сбивается. Происходит следующее: допустим у нас есть 2 игрока. Первый умирает и первый триггер фиксирует место его смерти. Пусть это будет позиция А. Пока первый умерший игрок не возродился, умирает второй и первый триггер перезаписывает позицию А в позицию Б. Таким образом, второй триггер, срабатывающий после спавна агента, поместит первого игрока, так как он умер раньше в позицию Б, т.е. в место смерти второго игрока.
Так вот, вопрос вот в чём, как мне привязать эту позицию смерти к конкретному игроку? Может есть ещё дополнительные условия... Я думал разные варианты, но в голову пока так ничего и не пришло.... :(
Буду рад любым подсказкам.
  Можно так:  в триггере ti_agent_killed_or_wounded запишите в слот к отдавшему Богу душу агенту (добавьте слот или задействуйте неиспользуемый в ваших условиях) координаты смерти (можно непосредственно из регистра позиций pos(x)), в другой слот время до респавна в виде кол-ва тактов триггера, который будете использовать для спавна. Далее делаете триггер (для спавна) с проверкой на живость агента, ежели агент - труп, то уменьшаем значение в слоте с временем респавна на единицу, и ежели после сего в таковом слоте значение осталось менее единицы, то берём из слота в, каковой записали позицию смерти, координаты и там спавним.
Ответ #1056 17 Мая, 2017, 13:32
0
Можно так:  в триггере ti_agent_killed_or_wounded запишите в слот к отдавшему Богу душу агенту (добавьте слот или задействуйте неиспользуемый в ваших условиях) координаты смерти (можно непосредственно из регистра позиций pos(x))

Дикий-дикий повар, огромное спасибо Вам за вашу подсказку насчет слотов  :thumbup: Все получилось в лучшем виде)) Еще немного протестирую конечно скрипт, но по игре в течение часа все работает просто супер  :D
Ответ #1057 26 Мая, 2017, 17:22
0
Вроде угадал с темой, но не уверен... Простите, если что - заплутал на форуме конкретно.  :crazy:


Сколько ни качал, а никак не было, чтобы у меня работали: Варбэнд, WSE и модулька. Модулька писала ошибку про отсутствие файла "*.рус"... WSE, буду честным, нафиг мне не сдался. Но вот модулька.... Скиньте пожалуйста ссылку на игру и модульку рабочие? (Тут качал на 1.153 - не работает, на 1.60 не нашёл) Версия не принципиальна, но желательно от 1.153. Заранее спасибо!  :embarrassed:
  Вряд-ли модулька не рабочая, скорее неправильно указан путь до установленого питона в переменной окружения. Или можно попробовать дописать его (путь до питона) в батник, который запускает сборку модуля (вроде, там перед каждым process* дописывается в виде "C:\Program files\python 2.6.6\python.exe"). Лучше правильно перепишите значение для переменной окружения, в теме даже сказано как.
Ответ #1059 27 Мая, 2017, 13:17
0
скорее неправильно указан путь до установленого питона
Всё делал по этой самой теме. Ошибки подобной нигде не видел... Хотя попробую конечно еще раз, может и правда заработает. Если так, то заранее спасибо.)
Ответ #1060 01 Июня, 2017, 09:52
0
Вряд-ли модулька не рабочая, скорее неправильно указан путь до установленого питона в переменной окружения. Или можно попробовать дописать его (путь до питона) в батник, который запускает сборку модуля (вроде, там перед каждым process* дописывается в виде "C:\Program files\python 2.6.6\python.exe"). Лучше правильно перепишите значение для переменной окружения, в теме даже сказано как.

Всё делал по этой самой теме. Ошибки подобной нигде не видел... Хотя попробую конечно еще раз, может и правда заработает. Если так, то заранее спасибо.)

Да нафиг Вам сдался этот Питон, один геммор с его установкой, то версия не подходит, то еще какой-то бред напишет... Скачайте как я текстовый редактор типа Notepad++ там все есть и синтаксис питоновского языка подсвечивается и плагинов всяких море и мозг не выносит. А компилировать будете также двойным кликом по файлу build_module.bat Единственное конечно, что путь в файле module_info.py все-таки придется прописать. У меня написано так: export_dir = "C:/Users/vvs/Desktop/My_server_test/Modules/Native/"
Все, больше проблем нет  8-)
Ответ #1061 02 Июня, 2017, 20:34
0
   (2, 0, 0, [(multiplayer_is_server),], ####assassin even securety AI check agr and kill players   
      [
   (try_for_agents,":bot_s"),
      (agent_is_active,":bot_s"),
      (agent_is_non_player,":bot_s"),
      (agent_is_human,":bot_s"),(gt,":bot_s",-1),
      (agent_is_alive,":bot_s"),
      (agent_get_troop_id,":troop_id",":bot_s"),(gt,":troop_id",-1),
       (this_or_next|eq,":troop_id","$npc_weapon"),(eq,":troop_id","$npc_armor"),
      (agent_get_position,pos1,":bot_s"),
      (try_begin), (this_or_next|eq,":troop_id","$npc_weapon"),(eq,":troop_id","$npc_armor"),(agent_set_no_death_knock_down_only, ":bot_s", 1),(agent_set_damage_modifier, ":bot_s", 200),(try_end),
      (try_for_agents,":agent_no"),
         (agent_is_active,":agent_no"),(agent_is_alive, ":agent_no"),
         (agent_is_human,":agent_no"),(gt,":agent_no",-1),
         (agent_get_position,pos2,":agent_no"),
         (get_distance_between_positions,":dist",pos1,pos2),
         (try_begin),(agent_get_player_id,":player_no",":agent_no"),(gt,":player_no",-1),
         (try_end),
         (agent_get_wielded_item,":item_equip_r",":agent_no",0), #0-R 1-L
         (try_begin),(neg|agent_is_non_player, ":agent_no"),(is_between,":dist",0,1500),(le,":item_equip_r",-1),
            (try_begin),(this_or_next|eq,":troop_id","$npc_weapon"),(eq,":troop_id","$npc_armor"),(is_between,":dist",0,150), #shop npc
               (try_begin),(eq,":troop_id","$npc_armor"),
                  (call_script,"script_assassin_event_armor",":agent_no"),
               (else_try),(eq,":troop_id","$npc_weapon"),
                  (call_script,"script_assassin_event_weapon",":agent_no"),
               (try_end),
         (else_try),(neg|agent_is_non_player, ":agent_no"),(is_between,":dist",0,1500),  #
            (try_begin),(is_between,":dist",0,199),(gt,":item_equip_r",-1),
            (else_try),(this_or_next|gt,":item_equip_r",-1), #check player
               (agent_set_scripted_destination, ":bot_s", pos2, 1),
            (try_end),
         (else_try),(agent_is_non_player, ":agent_no"),
               (agent_add_relation_with_agent,":bot_s",":agent_no", 1), # #-1 = enemy, 0 = neutral (no friendly fire at all), 1 = ally
               (agent_add_relation_with_agent,":agent_no",":bot_s", 1), # #-1 = enemy, 0 = neutral (no friendly fire at all), 1 = ally
         (try_end),
      (try_end), 
   (try_end),
      ]),


где я ошибся? при компиляции все отлично идет, но в сервере при подходе к боту он смертный и не выдает вещи
Да нафиг Вам сдался этот Питон

Valerian60-чудак-человек, ежели модулька (в process_* файлы загляни и узри) написана на Python (есть ещё на C++), то он тебе для сборки модуля необходим.
Скачайте как я текстовый редактор типа Notepad++ там все есть и синтаксис питоновского языка подсвечивается и плагинов всяких море

Здесь уже кому-что, текстовых редакторов существует немало и подсветка много где есть (и не обязательно питоновскую тебе module_* ковырять).
один геммор с его установкой, то версия не подходит, то еще какой-то бред напишет

Тем не менее ты его либо установил, либо он уж был у тебя в системе. А без "геммора" никуда, проще только ничего не делать, как-то так вот.

ARIMA, про смертность, может ещё стоит проверить содержимое переменных "$npc_weapon" и "$npc_armor", более ничего конкретного сказать не могу, т. к. мало описания того, что должен делать триггер, а непосредственно выдача предметов у вас описана в другом месте. Небольшие правки прилагаю:
   (2, 0, 0, [(multiplayer_is_server),], ####assassin even securety AI check agr and kill players   
      [
   (try_for_agents,":bot_s"), # 1 cicle begin
#      (agent_is_active,":bot_s"), # not need?
      (gt,":bot_s",-1),
      (agent_is_non_player,":bot_s"),
      (agent_is_human,":bot_s"),
#      (gt,":bot_s",-1), # above now
      (agent_is_alive,":bot_s"),
      (agent_get_troop_id,":troop_id",":bot_s"),
#      (gt,":troop_id",-1), # equivalent to (agent_is_human,":bot_s"), (used above)
      (this_or_next|eq,":troop_id","$npc_weapon"),
      (eq,":troop_id","$npc_armor"),
      (agent_get_position,pos1,":bot_s"),
      (try_begin),
         (this_or_next|eq,":troop_id","$npc_weapon"),
         (eq,":troop_id","$npc_armor"),
         (agent_set_no_death_knock_down_only, ":bot_s", 1),
         (agent_set_damage_modifier, ":bot_s", 200),
      (try_end),
      (try_for_agents,":agent_no"), # 2 cicle begin
#         (agent_is_active,":agent_no"),
         (gt,":agent_no",-1),
         (agent_is_alive, ":agent_no"),
         (agent_is_human,":agent_no"),
#         (gt,":agent_no",-1),
         (agent_get_position,pos2,":agent_no"),
         (get_distance_between_positions,":dist",pos1,pos2),
#         (try_begin),
#            (agent_get_player_id,":player_no",":agent_no"),
#            (gt,":player_no",-1),
#            end what now?
#         (try_end),
         (agent_get_wielded_item,":item_equip_r",":agent_no",0), #0-R 1-L
         (try_begin), # 1 block begin
            (neg|agent_is_non_player, ":agent_no"),
            (is_between,":dist",0,1500),
#            (le,":item_equip_r",-1),
            (eq,":item_equip_r",-1), # that enough
            (try_begin), # 2 block begin
               (this_or_next|eq,":troop_id","$npc_weapon"),
               (eq,":troop_id","$npc_armor"),
               (is_between,":dist",0,250), # 150 - isn't too close?
               (try_begin), # 3 block begin
                  (eq,":troop_id","$npc_armor"),
                  (call_script,"script_assassin_event_armor",":agent_no"),
               (else_try),
                  (eq,":troop_id","$npc_weapon"),
                  (call_script,"script_assassin_event_weapon",":agent_no"),
               (try_end), # 3 block end
            (else_try),
#               (neg|agent_is_non_player, ":agent_no"), # don't need (used above)
#               (is_between,":dist",0,1500), # don't need (used above)
            (try_begin), # 2 block end
            (is_between,":dist",0,199),
#            (gt,":item_equip_r",-1), # 0 - is "invalid_item"
            (gt,":item_equip_r",0),
         (else_try),
# distantion and is_plyer check is need there?
            (this_or_next|gt,":item_equip_r",0), #check player
            (agent_set_scripted_destination, ":bot_s", pos2, 1),
         (try_end), # 1 block end
      (else_try),
         (agent_is_non_player, ":agent_no"),
         (agent_add_relation_with_agent,":bot_s",":agent_no", 1), # #-1 = enemy, 0 = neutral (no friendly fire at all), 1 = ally
         (agent_add_relation_with_agent,":agent_no",":bot_s", 1), # #-1 = enemy, 0 = neutral (no friendly fire at all), 1 = ally
      (try_end), # 2 cicle end
   (try_end), # 1 cicle end
#   (try_end), # it's from whence?
      ]),
Ответ #1063 04 Июня, 2017, 11:47
0
спаунится бот по пропу с серверной стороны, мульт, когда бьешь по нему то он за золото продавал наемников, есть ли ошибки какие при декомпиляции гладко?
###constans
slot_agent_is_chat_bot            = 32
slot_agent_is_mercenary_owner     = 33


### trigger

agent_hit_trigger = (ti_on_agent_hit, 0, 0, [
  (multiplayer_is_server),
  ],
   [
        (store_trigger_param_1, ":damage_agent_no"),
        (store_trigger_param_2, ":attacker_agent_no"),
        (store_trigger_param_3, ":damage"),

(agent_get_position, pos1, ":damage_agent_no"),

(scene_prop_get_num_instances, ":object_max", "spr_potlamp"),
(try_begin),
            (ge, ":object_max", 1),
            (try_for_range, ":object_cur", 0, ":object_max"),
                (scene_prop_get_instance, ":instance", "spr_potlamp", ":object_cur"),
(prop_instance_get_variation_id_2, ":variation_id", ":instance"),
(gt, ":variation_id", 0),
(val_mul, ":variation_id", 100),
                (prop_instance_get_position, pos3, ":instance"),
(get_distance_between_positions, ":distance", pos1, pos3),
(le, ":distance", ":variation_id"),
(assign, ":damage", 0),
(set_trigger_result, ":damage"),
(assign, ":object_max", 0),
            (try_end),
  (agent_is_non_player, ":damage_agent_no"),
  (try_begin),
    (agent_slot_eq, ":damage_agent_no", slot_agent_is_chat_bot, 1),
(agent_get_player_id, ":attacker_player_id", ":attacker_agent_no"),
        (player_is_active, ":attacker_player_id"),
  (try_end),
(try_end),


        (assign, "$g_process_interrupter", 1),
        (call_script, "script_cf_mt_neo_agent_hit", ":damage_agent_no", ":attacker_agent_no", ":damage"),
   ])
   
   
   
chat_bot_spawn = (10, 0, ti_once, [
  (multiplayer_is_server),
],
  [
    (scene_prop_get_num_instances, ":instances_number", scene_prop_for_spawn_agent),
    (try_for_range, ":instance_index", 0, ":instances_number"),
  (scene_prop_get_instance, ":instance_no", scene_prop_for_spawn_agent, ":instance_index"),
  (prop_instance_is_valid, ":instance_no"),

  (prop_instance_get_variation_id, ":troop_no", ":instance_no"),
      (is_between, ":troop_type", 1, 15),
  (assign, reg3, ":troop_type"),
  (call_script, "script_get_troop_for_spawn_agent_with_scene_props", ":troop_type"),
 
      (prop_instance_get_position, pos3, ":instance_no"),
  (set_spawn_position, pos3),
  (spawn_agent, ":troop_no"),
  (assign, ":agent_no", reg0),

 
      (agent_set_slot, ":agent_no", slot_agent_is_chat_bot, 1),
  (agent_set_no_death_knock_down_only, ":agent_no", 1),
 
      (try_begin),
  (agent_is_active,":agent_id"),
  (agent_is_alive,":agent_id"),
  (agent_get_player_id, ":player_id", ":agent_id"),
  (player_is_active,":player_id"),
  (player_get_gold, ":player_gold", ":player_id"),
      (prop_instance_get_variation_id_2, reg0, ":instance_no"),
  (val_mul, reg0, 100),
  (try_begin),
  (ge, ":player_gold", reg0),
  (try_begin),
  (prop_instance_get_variation_id, ":troop_type", ":instance_no"),

  (assign, ":troop_id", 0),
  (try_begin),
  (eq, ":troop_type", 1),
  (assign, ":troop_id", "trp_swadian_crossbowman_multiplayer_ai"),
  (else_try),
  (eq, ":troop_type", 2),
  (assign, ":troop_id", "trp_nord_veteran_multiplayer_ai"),
  (try_end),
 
  (gt, ":troop_id", 0),
 
  (val_sub, ":player_gold", reg0),
  (player_set_gold, ":player_id", ":player_gold", multi_max_gold_that_can_be_stored),
 
  (agent_get_position,pos1,":agent_id"),
  (position_move_x, pos1, 150),
      (set_spawn_position, pos1),
      (spawn_agent,":troop_id"),
  (assign, ":mercenary_agent_id", reg0),
  (agent_set_slot, ":mercenary_agent_id", slot_agent_is_mercenary_owner, ":player_id"),
  (call_script, "script_agent_set_relation_with_agent", ":agent_id", ":mercenary_agent_id", 1),
  (agent_set_group, ":mercenary_agent_id", ":player_id"),
  (agent_set_is_alarmed, ":mercenary_agent_id", 1),
 
  (try_for_agents, ":cur_agent"),
  (agent_is_active, ":cur_agent"),
  (agent_is_alive, ":cur_agent"),
  (agent_is_human, ":cur_agent"),
  (agent_slot_eq, ":cur_agent", slot_agent_is_mercenary_owner, ":player_id"),
  (call_script, "script_agent_set_relation_with_agent", ":mercenary_agent_id", ":cur_agent", 1),
  (try_end),

  (call_script, "script_agent_make_neutral_all", ":agent_no"), 
(try_end), 
  (str_store_string, s0, "@You hired mercenary"),
  (multiplayer_send_string_to_player, ":player_id", multiplayer_event_show_server_message, s0),
 
  (try_end),
  (else_try),
      (str_store_string, s0, "@Mercenary cost - {reg0} gold"),
              (multiplayer_send_string_to_player, ":player_id", multiplayer_event_show_server_message, s0),
      (try_end),
  (try_end),
   ])
Vanok (Старший администратор)Большие куски кода вставляются через тег code, либо прячутся под спойлер.
« Последнее редактирование: 04 Июня, 2017, 21:28 от Vanok »
Ответ #1064 04 Июня, 2017, 15:21
0
Дикий-дикий повар,  спасибо я подругому все сделал) все работает
 
Ответ #1065 17 Июля, 2017, 15:50
0
Цитировать (выделенное)
Valerian60-чудак-человек, ежели модулька (в process_* файлы загляни и узри) написана на Python (есть ещё на C++), то он тебе для сборки модуля необходим.

Почему-то у меня все компилируется бат-файлом, а скрипты  пишутся в текстовом редакторе и все компилируется без проблем. Хотя может и был установлен когда-то... точно не скажу... 8-)
Ответ #1066 18 Июля, 2017, 14:09
0
Парни, есть вопрос)) Допустим, мы имеем какую-то сцену (scene_props), на ней находится бот. Как сделать так, чтобы игрок не мог к нему подойти? Чтобы, например, меня откидывало от него на определенное расстояние назад при приближении к боту или чтобы я упирался словно в невидимую стену...  8-)
Ответ #1067 19 Июля, 2017, 13:11
0
Valerian60, барьеры поставь :laught:
Ответ #1068 19 Июля, 2017, 13:40
0
Valerian60, барьеры поставь :laught:


Смешно.... :crazy: А по существу?
Ответ #1069 19 Июля, 2017, 17:44
0
Кстати, может кто подскажет, есть ли в модульке возможность из фиксированного ряда случайных чисел (например 2, 15, 7, 32) определить минимальное? Такой функции я не нашел, но может кто знает как тут можно схитрить  :)
Почему-то у меня все компилируется бат-файлом, а скрипты  пишутся в текстовом редакторе и все компилируется без проблем. Хотя может и был установлен когда-то... точно не скажу...
  Батник только указывает process_* файлы которые нужно выполнить, которые написаны на python.

  Под барьерами подразумевались scene_props'ы без графики (чисто collision mesh). Невидимые плоские стенки и др. уже входят в состав nativ'а (посмотри props'ы со словом barrier).
может кто подскажет, есть ли в модульке возможность из фиксированного ряда случайных чисел (например 2, 15, 7, 32) определить минимальное?
  Хитрить не обязательно, достаточно пройтись циклом по всем числам в списке, например, поиск наименьшего значения по слотам агента:
...
(assign, ":min_value", 2**31),
(try_for_range, ":slot", 0, ":num_slots"),
  (agent_get_slot, ":cur_value", ":agent", ":slot"),
  (lt, ":cur_value", ":min_value"),
  (assign, ":min_value", ":cur_value"),
(try_end),
...
Ответ #1071 01 Августа, 2017, 19:33
0
Господа и дамы, я просто задолбался.

Для своей модификации хочу добавить городов, замков и прочих населенных пунктов на уже сделанную карту. Так на англоязычных одни аутдэйтэд инструкции, вообще к 0.7 или 0.8 версии ( а на русских самая ранняя из англоязычных))

Вопрос такой:
Кто может перечислить файлы модульки, которые надо редактировать в 1.011, чтобы добавить город?

А то уже по 3 мануалам пытался добавить город - ни черта. И ведь что обидно - манулов нет, а в куче модов города понадобавляли.

вроде module_parties, module_scenes, трупс для сенешалей и прочи.. А еще?
« Последнее редактирование: 01 Августа, 2017, 19:51 от MasterLichLord »
Ответ #1072 02 Августа, 2017, 11:15
0
всем привет, хочу написать скрипт на набор пленных в варбанд и добавить в список существующих но нет ни знаний ни инструментов

Попробовал через декомпилятор, но чтобы скомпилировать все обратно нужно запускать какие то несуществующие файлы.

Кто подскажет как сделать?
« Последнее редактирование: 02 Августа, 2017, 11:23 от trader4444 »
Ответ #1073 02 Августа, 2017, 14:38
+1
А еще?
module_scripts
важно что-бы город в константы попадал типа towns_begin, towns_end и пр. т.е. правильно расположить в партиес
Ответ #1074 02 Августа, 2017, 15:27
0
Пасиб. Я сегодня на работе разобрался:) Вместо работы создал полнофункциоальные поселения всех трех типов:) Ошибка была в аренном скрипте и сенешалею

0 Пользователей и 1 Гость просматривают эту тему.

Теги: