Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
Сейчас на форуме
Пользователи: 1
Гостей: 475
Всего: 476

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

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

  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1000 : 16 Октября, 2016, 13:17 »
Спасибо по item_has_property работает правильно, по imodbits_cloth проверю, отпишусь.
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1001 : 19 Октября, 2016, 13:57 »
Парни, всем привет  :)
Прошу помощи у знающих людей. Хочу сделать маленький скрипт по следующему принципу: на карте есть стойло где спавнятся лошади и там же расположены стога с сеном. Я хочу чтобы когда у игрока лошадь повреждена можно было подойти к сену и ее ХП восстанавливалось до полного. Написал триггер в mission temlates, но он нифига не работает, весь мозг сломал  :( :( :( В скриптовании я нуб, так что сильно не пинайтесь...

« Последнее редактирование: 20 Октября, 2016, 16:55 от Valerian60 »
  • Фракция: Свады
  • Сообщений: 75
    • Просмотр профиля
0
« Ответ #1002 : 20 Октября, 2016, 17:58 »
Valerian60,
Я полагаю, что код не работает из-за команды lt, ":hp", 1 (это условие подтверждает что ":hp" меньше одной единицы) после которой команда перестает выполняться, потому что кол-во ХП живой лошади вроде не может быть меньше одного.
И еще советую вместо нулей вначале (вот этих: 0, 0, 0, []) поставить какие-нибудь значения, например 0.5, 0.5, 0, [], чтобы сценарий срабатывал каждые полсекунды, например.
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1003 : 20 Октября, 2016, 22:05 »
Спасибо. Попробовал сейчас внести твои исправления, но, по прежнему, ничего не работает  :( Может ещё есть какие мысли?
« Последнее редактирование: 21 Октября, 2016, 10:06 от Valerian60 »
  • Фракция: Свады
  • Сообщений: 75
    • Просмотр профиля
0
« Ответ #1004 : 20 Октября, 2016, 23:26 »
Valerian60,
Не забыли ли вы добавить написанный триггер в нужную миссию?
Почему используете get_sq_distance_between_positions, а не get_distance_between_positions? Я не знаю чем они отличаются, поэтому прошу попробовать без sq.
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1005 : 21 Октября, 2016, 08:13 »
Цитировать (выделенное)
Не забыли ли вы добавить написанный триггер в нужную миссию?
Почему используете get_sq_distance_between_positions, а не get_distance_between_positions? Я не знаю чем они отличаются, поэтому прошу попробовать без sq.

В общем, нифига не вышло.... :( Триггер добавлен в миссию "Бой до смерти". Использовал и get_sq_distance_between_positions, и get_distance_between_positions, нихрена не выходит, лошадь не лечится.... Ладно, спасибо за подсказки, буду дальше экспериментировать  8-) Если выйдет что путнее, напишу  ;)
  • Фракция: Свады
  • Сообщений: 892
  • За создание крупных модов и других особо сложных проектов За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1006 : 21 Октября, 2016, 12:28 »
Valerian60
я для сетевой игры ничего не писал и могу ошибаться, но по моему у тебя в конце двух   (try_end), не хватает. У тебя цикл  (try_for_range, ":cur_straw_b", 0, ":count_of_straw_b")  не закрыт ну и бегин первый.
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1007 : 21 Октября, 2016, 13:37 »
У тебя цикл  (try_for_range, ":cur_straw_b", 0, ":count_of_straw_b")  не закрыт ну и бегин первый.

Цикл закрыл, но нифига... Видимо чего-то еще не хватает, либо я супер нуб  :D :D Есть у меня подозрение, что я неправильно инициализировал лошадь как агента, но операция (agent_get_horse, ":horse", ":cur_agent"), вроде верная... :)
  • Фракция: Свады
  • Сообщений: 30
    • Просмотр профиля
+2
« Ответ #1008 : 21 Октября, 2016, 14:42 »
Все, проблема решилась, огромное спасибо человеку под ником Зюзя  :thumbup: :thumbup: :thumbup: Как и обещал, вот рабочий скрипт на исцеление лошади:
  • Фракция: Свады
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1009 : 26 Октября, 2016, 11:01 »
Парни, хай всем  :)

Есть еще один вопрос, может кто знает. Какая функция в модульной системе может отследить был ли совершен удар игроком (агентом) по какому-либо предмету (scene_props) расположенному на сцене?  :embarrassed:
  • Фракция: Свады
  • Сообщений: 17
    • Просмотр профиля
+1
« Ответ #1010 : 26 Октября, 2016, 23:26 »
В module_scene_props есть триггер ti_on_scene_prop_hit.
Для удобства приведу цитату из header_triggers:

ti_on_scene_prop_hit     = -42.0 #can only be used in module_scene_props triggers
# Trigger Param 1: prop instance number (номер пропса)
# Trigger Param 2: hit damage (повреждение, если разрушаемое)
# Position Register 1: Hit Position (позиция удара)
# Position Register 2: x holds attacker agent id (координата х pos2 содержит ид атаковавшего)

Следовательно, чтобы узнать, кто нанес удар, нужно использовать операцию

(position_get_x,<destination_fixed_point>,<position_no>),

По сути, должно сработать. Однако нужно проверять, так как я давно работал с module_scene_props.
Совет: для примера можно найти разрушаемые объекты и посмотреть, как там реализован этот триггер.
  • Сообщений: 2
    • Просмотр профиля
0
« Ответ #1011 : 08 Ноября, 2016, 14:26 »
Как убрать модульную систему ???? Обратно файлы были txt ?
Vanok (Старший администратор)Я сильно сомневаюсь, что Вы получите ответ на свой вопрос в такой его формулировке.
  • Фракция: Норды
  • Сообщений: 142
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1012 : 11 Ноября, 2016, 19:47 »
Уважаемые знатоки модостроения, прошу помощи!

Сломал себе мозг по поводу точки входа ГГ в таверне.  :-\
Если я правильно понимаю в module_mission_templates  первый блок
mission_templates = [
  (
    "town_default",0,-1,
    "Default town visit",
    [(0,mtef_scene_source|mtef_team_0,af_override_horse,0,1,pilgrim_disguise),
(там после определения точек входа, определяются условия по пьянице и убийце)

Нулевая точка входа должна относится к ГГ, но добавляя к af_override_horse другие флаги, на ГГ это никак не отражается.   :(
Если я ошибаюсь, подскажите пожалуйста эту заветную точку  :), очень хочется сбросить с ГГ половину снаряги при входе в таверну.
« Последнее редактирование: 12 Ноября, 2016, 08:14 от Ториер »
  • Фракция: Норды
  • Сообщений: 17
    • Просмотр профиля
0
« Ответ #1013 : 12 Ноября, 2016, 16:00 »
Цитировать (выделенное)
Сломал себе мозг по поводу точки входа ГГ в таверне.

Собственно говоря, вы правильно все делали, но, к сожалению (в данной ситуации), в модульной системе есть скрипт, который прописывает для точки входа флаг. Вам нужно зайти в module_game_menus и найти "town_tavern". Немного ниже будут следующие строки:


Привел большой кусок кода только потому, что это все взаимосвязанные элементы, а точнее - скрипт спауна игрока. Для вашей задачи требуется только одна строка:
(mission_tpl_entry_set_override_flags, "mt_town_default", 0, af_override_horse),
Самый простой способ - удалить ее, тогда все, что вы изменили в module_mission_templates должно сработать. Правда, если в module_mission_templates  после не убрать или изменить pilgrim_disguise, то, если вы удалите какой-то предмет одежды, его должна заменить часть одежды пилигрима.

И напоследок совет: если есть какие-то проблемы с появлением агентов, а в module_mission_templates все правильно - ищите скрипт, который вызывает их появление. То есть, если сцена и агент появляются после нажатия кнопки меню - ищите эту кнопку. Если после диалога - ищите диалог. И так далее. Скорее всего, ответ будет там.
  • Сообщений: 142
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1014 : 12 Ноября, 2016, 23:03 »
Зюзя низкий поклон за столь развернутый, а самое главное, понятный ответ  :)

Жаль, что вернусь к компу с модулькой и питоном только через пару дней, жуть как чешется добро творить на право и налево для ГГ моего сына  :D

И раз пошла такая пьянка, может вы подскажите еще по одному вопросику  :)

Захотелось мне в своем моде тоже завесть зависимость скила мощный выстрел от того, что на руки одето.
На просторах форума отсылка -делай как с книгами. Там основное зерно - это изменить маленький скрипт "game_get_skill_modifier_for_troop" под свои нужды.
Модифицировал
Результат половинчатый, скил мощный выстрел в характеристиках ГГ и непесей меняется четко - на руках mail_mittens скил 0.
Да только игре пофиг, ГГ и непесь как мог взять и стрелять из требовательного лука, так и дальше может.  :blink:

Чисто для проверки  в module_constants.py
reference_books_end   = trade_goods_begin  заменил  на reference_books_end   = "itm_wrapping_boots" дабы включить рукавицы в книги, однако результат прежний :(
« Последнее редактирование: 13 Ноября, 2016, 08:06 от Ториер »
  • Фракция: Норды
  • Сообщений: 17
    • Просмотр профиля
0
« Ответ #1015 : 14 Ноября, 2016, 03:22 »
Цитировать (выделенное)
Да только игре пофиг, ГГ и непесь как мог взять и стрелять из требовательного лука, так и дальше может.

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

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

К слову, можно задействовать два пути: пойти через troops или через module_mission_templates. Если первый вариант, то нужно у каждого troop проверять навык, и для каждого слота оружия и каждого типа оружия с ограничением писать перемещение в инвентарь (а точнее, сначала удалять, а потом такое же оружие с таким же модификатором добавлять). Не говоря уже о том, когда активировать скрипт, чтобы игрок не мог его обойти. Так что такой способ невероятно сложен, зато честно предупреждает игрока, что в грядущем сражении у него не будет того или иного оружия.

Второй способ гораздо проще: у каждого агента в каждой mission_templates проверять право на владение оружием и, если он не может... удалять. Это очень жестоко по отношению к игроку (раз - и неожиданно оказался без любимого лука, а кругом десятки врагов), и вызовет справедливую неприязнь. Но навскидку, этот способ проще раз в десять реализовать.

Возможно, я как-нибудь напишу скрипт для такой задачи, но не знаю, когда.
  • Сообщений: 142
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1016 : 14 Ноября, 2016, 16:27 »
Насколько я помню, нельзя брать вещь, если не хватает навыка. Точно не знаю, могу с уверенностью сказать, что с атрибутами так. Другое дело, что если уже надето, сам предмет не снимается, даже если не хватает навыка

В моем случае ГГ и непись - одевает(берет)  и снимает длинный лук с требованием сильного выстрела 3, в кольчужных рукавицах, которые изменили скил на 0. А самое обидное одевая кожаные перчатки увеличивающие скил на +1, ГГ и непись не может взять лук с большим требованием на 1, чем его реальный скил.

Сейчас проверил, на сцене и в инвентаре при проверке возможности взять лук используется базовая характеристика скила. Где же эта собака(проверка) зарыта?  >:(

Хотя изменение скила перчатками-рукавицами в игре тоже отражается: соответственно сразу меняется наносимый урон и процесс прицеливания тоже.  :-\ 

Сама идея ограничения была увидена в моде Русь 13 век, там ели на ГГ был требовательный лук, и и одев рукавицы решил воспользоваться, то лук просто скидывается на землю.





   
« Последнее редактирование: 14 Ноября, 2016, 16:38 от Ториер »
  • Фракция: Норды
  • Сообщений: 17
    • Просмотр профиля
0
« Ответ #1017 : 14 Ноября, 2016, 17:37 »
Цитировать (выделенное)
А самое обидное одевая кожаные перчатки увеличивающие скил на +1, ГГ и непись не может взять лук с большим требованием на 1, чем его реальный скил.

Здесь ничто не поможет, похоже, это движок игры.

Цитировать (выделенное)
Где же эта собака(проверка) зарыта?


Насколько помню, проверка на сцене и в инвентаре тоже происходит в движке. Модульная система здесь не поможет.

Цитировать (выделенное)
Сама идея ограничения была увидена в моде Русь 13 век, там ели на ГГ был требовательный лук, и и одев рукавицы решил воспользоваться, то лук просто скидывается на землю.

Мне так обидно. Я же это и предлагал!

Попробуйте написать триггер в mission_templates, который будет осуществлять свою проверку и удалять оружие, если оно не подходит.
« Последнее редактирование: 14 Ноября, 2016, 17:41 от Зюзя »
  • Сообщений: 142
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #1018 : 16 Ноября, 2016, 19:26 »
Уважаемый Зюзя, прошу прощения за несколько поздний ответ (благо работы подвалило :)

Цитировать (выделенное)
Мне так обидно. Я же это и предлагал!
И уж тем более никого не хотелось обидеть  :)

Цитировать (выделенное)
Попробуйте написать триггер в mission_templates, который будет осуществлять свою проверку и удалять оружие, если оно не подходит.
Для меня это означает разбирательством с новым пластом модульки (тригеры для агентов в сценах). И похоже Банерлорд выйдет раньше чем я сыграю хоть разок в свой мод facepalm

В соседней теме вы давали советы про огнестрел и сбивание с ног, попробую для себя что то выжать  :crazy:
  • Фракция: Норды
  • Сообщений: 138
    • Просмотр профиля
0
« Ответ #1019 : 17 Ноября, 2016, 22:11 »
Уважаемые господа,нужна ваша помощь
Добавил новую фракцию в мультиплеер. играть за фракцию можно,боты есть и классы тоже,но для покупки брони доступная только стандартная(их нетива) новые вещи не видны вообще,хотя я их добавил на покупку
Подскажите пожалуйста как добавить модовые вещи
 

Добавлено: 17 Ноября, 2016, 22:58

Уже разобрался,я забыл новой броне слоты приписать в мульте
« Последнее редактирование: 17 Ноября, 2016, 22:58 от Rekruttt »
  • Сообщений: 35
    • Просмотр профиля
0
« Ответ #1020 : 21 Ноября, 2016, 20:11 »
Я сделал спавнящихся воинов как в начале было показано. Короче тупо копировал)) Но мне модулька пишет ошибку "Tupe Error:'tuple' objekt is not callable что это за черт, я же тупо копировал?
  • Фракция: Свады
  • Сообщений: 17
    • Просмотр профиля
0
« Ответ #1021 : 22 Ноября, 2016, 15:35 »
Но мне модулька пишет ошибку "Tupe Error:'tuple' objekt is not callable

Данная ошибка выдается, если у переменной не проставлен префикс. Не совсем понятно, о каком коде вы спрашиваете (надо было дать его цитатой), но если это тот, который на самой первой странице, то попробуйте заменить vaegir_knight на trp_vaegir_knight.
  • Сообщений: 79
    • Просмотр профиля
0
« Ответ #1022 : 26 Ноября, 2016, 16:53 »
Чтобы правильно установить питон, ему надо прописать путь.
Но у меня в системных переменных не активна нужна кнопка "изменить". Права администратора есть. Почему так?

  • Ник в M&B: Pretty_cool_lad_Ripararien
  • Фракция: Наемники
  • Сообщений: 30
    • Просмотр профиля
0
« Ответ #1023 : 05 Декабря, 2016, 10:58 »
Но мне модулька пишет ошибку "Tupe Error:'tuple' objekt is not callable что это за черт, я же тупо копировал?

Похоже что у вас где-то пропущена запятая. Ошибка говорит об этом  8-) Проверьте код повнимательнее  ;)
  • Фракция: Свады
  • Сообщений: 30
    • Просмотр профиля
+1
« Ответ #1024 : 05 Декабря, 2016, 11:01 »
Чтобы правильно установить питон, ему надо прописать путь.
Но у меня в системных переменных не активна нужна кнопка "изменить". Права администратора есть. Почему так

Я вообще скрипты пишу в текстовом редакторе, (открываю ру файлы прогой Notepad++) а не в питоне)) А компилирую все bat файлом. Так что по сути этот питон нафиг не нужен... :)
« Последнее редактирование: 06 Декабря, 2016, 13:33 от Valerian60 »
  • Фракция: Свады

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC