(Дрожащим голосом) Это работает? Это правда работает? И надо ли что-то менять в скриптах или триггерах? Только миссион_темплэйтс?В мишин_темплейтз надо в конце кажной миссии (там где тригеры перечисляются) указать тригер new_anim_start.
брутальный рыцарский коняга
itm_knight_horse Knigt_Horse Knigt_Horse 1 charger 0 65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 60 0 0 180 1
0
Специально для тех кто на дух не переносит модулькунадо в доработку напильником,все же не соответствие с названием темы.
брутальный рыцарский коняга
itm_knight_horse Knigt_Horse Knigt_Horse 1 charger 0 65537 0 10000 110595670016 0.000000 200 0 80 0 0 1350 45 60 0 0 180 1
0
Вопрос, в чём заключается его брутальность? :)
Unknown, а насколько сложно создать скрипт, который при загрузке сцены (например таверны или замка) убирал бы какой-нибудь из объектов (определённый)?объектов сцены? Да несложно, на самом деле. Варианты: заменить на другой, переместить, вроде можно сделать невидимым.
Unknown, не против если я у себя буду использовать твои коды с ловушками?А зачем я их выложил? :) Если не работает - скажи, тем более, что код можно несколько изменить.
КАК прописать только для штурмов?тригер прописывается в начале module_mission_templates, а потом добавляется в конец нужной миссии в данном случае какой-то из
цикл перебирающий всех юнитов на сцене-ну и что?Искать будет по предмету=itm_coulivrine или "пушкарей"как-то прописывать?ищем по предмету да, но чтобы узнать какой предмет в руках надо сперва узнать у кого он в руках, а потом этому (и не какому другому) товарищу прописать аниму.
перебираем возможные действия и выставляем соответсвующие анимы-какие и для кого?анимы:
(agent_set_animation, ":agent_no", "anim_ready_cannon"),"),скобка и запятая лишние :)
добро вставляем в module_mission_templates в конце каждой миссии(поясните нубу:где искать эти концы миссий?)
Ненене. Что бы проверить, что пушка именно в руках игрока/бота, а не в инвентаре/слотах, надо не agent_has_item_equipped, а agent_get_wielded_item!!!Сорри, совсем забыл :)
Давно пробовал сочинить простенький скрипт ловушки какой-нибудь, в голову пришла идея с кольями из-под земли. Испытания прошли успешно, но вот фантазии применить это где-то у меня не хватило. Не в курсе, есть ли что-то подобное, но выложу всё равно, авось кому пригодится. ;)
Проверял на предварительно подготовленной карте "Руины"(в мульте). Поместил точки(entry point) с номерами 88 и 89 так, что бы координаты Х и Y точки 89 были больше, чем у точки 88. Между ними воткнул колья(spike). В mission_templates в код детматча после триггера ti_after_mission_start поместил следующее:
Acharon, Вы интересовались этим?
Вот немного моих работ по практиклам.Тоесть сам эффект огня и летающих стрел, модель факела из Hunt Mod.
Video
[url]http://www.youtube.com/watch?v=bCNukfXlLN8&feature=player_embedded[/url]
[url]http://www.youtube.com/watch?v=4mBqQmZJNeI&feature=player_embedded[/url]
смертник, даже без огня красная.Это зависит как хочешь настроить, можно и так и сяк.это плохо ,также как в моде про горящие стрелы.
Acharon, Вы интересовались этим?
Вот немного моих работ по практиклам.Тоесть сам эффект огня и летающих стрел, модель факела из Hunt Mod.
Video
[url]http://www.youtube.com/watch?v=bCNukfXlLN8&feature=player_embedded[/url]
[url]http://www.youtube.com/watch?v=4mBqQmZJNeI&feature=player_embedded[/url]
Отлично, если бы вы написали подробней, как вставить это в игру - цены б этому скрипту не было)) У меня вопрос, есть ли где-нить в интернете уроки по питону (всмысле не модульке, а самому языку)
Заранне благодарен !
о чём здесь идёт речь я не понял,ну совсем непонял.
можно ли описать по яснее, и картинки поменьше вставить а то грузятся по полчаса
И тeбе и коду :DСпасибо :)
Unknown, а в сингплеерный мод кто-нибудь переностные лестницы запихивал? Это вообще насколько просто/сложно реализуется?Да без разницы, какой режим. Рулят тут триггеры из миссион_темплатес, так что если запихнуть их в сингловые режимы осады, например, а перед этим в магазины добавить лестницы или респаунить их прямо на карте, то можно двигать и в сингле.
Unknown, спасибо! Особенно порадовало утопление - достали уже подводные прогулки. Ещё бы и плавание...брать нельзя, но можно модернизировать код и это будет можно.
Кстати, можно ли "брать" такие лестницы после использования?
Unknown ,скажи это надо вписывать в module_triggers.py ? и где именно ? или не имеет разницы=)
ну и так, вдогонку, триггер утопления:
Ункловнычь, я тут просмотрел твой код, ты наверное забыл в туторе про магию, стрингс добавить. :)да, а ещё забыл добавить константу в триггер утопления. Я посчитал, что если кто-то код вставить сможет, то и такую мелочь сам наверняка сделает. :)
(neg|scene_prop_has_agent_on_it,":wall_instance",":agent"),
т.е. игрок может встать на лестницу и летать на ней двигая ее по карте, движение происходит вертикально.а можно ли сделать что бы в сцене было ну очень очень темно? :-\ Чтобы факелФакел не свети, по крайне мере тот, что в руках. Поэтому он не пригождается.наконец то пригодился, кроме поджигания домов в Vikingr...
underwater = (1, 0, 0, [],[ # underwater
(multiplayer_is_server),
(try_for_agents,":agent"),
(agent_get_position,pos1,":agent"),
(position_get_z, ":z", pos1),
(try_begin),
(le, ":z", -150),
(agent_get_slot, ":time",":agent", slot_agent_underwater),
(display_message, "str_underwater"),
(store_add, ":down", ":time", 1),
(agent_set_slot, ":agent", slot_agent_underwater, ":down"),
(agent_get_slot, ":time_is_up",":agent", slot_agent_underwater),
(ge, ":time_is_up", 10),
(agent_deliver_damage_to_agent, ":agent",":agent"),
(else_try),
(gt, ":z", -200),
(agent_set_slot, ":agent", slot_agent_underwater, 0),
(try_end),
(try_end),
])
Как ты думаешь, что нужно сделать, чтобы это сообщение показывалось только тому кто тонет?Вариант первый. послать сообщение игроку типа multiplayer_send_string_to_player и обработать его в script_game_receive_network_message
underwater_client = (1, 0, 0, [],[ # underwater
(multiplayer_get_my_player, ":player"),
(this_or_next|gt, ":player", 0),
(neg|multiplayer_is_dedicated_server),
(ge, ":player", 0),
(player_get_agent_id, ":agent", ":player"),
(ge, ":agent", 0),
(agent_is_active, ":agent"),
(agent_is_alive,":agent"),
(agent_get_position,pos1,":agent"),
(position_get_z, ":z", pos1),
(try_begin),
(le, ":z", -150),
(display_message, "str_underwater"),
(try_end),
])
Кстати, обьясни пожалуйста, зачем даются два значения z? Я так понял первое должно быть обязательно больше второго, но в чем тогда заключается функция второго? Или для того чтобы задать условие должно быть именно два значения?Первое определяет, когда игрок оказался под водой. Второе, когда он вылез из воды. Хотя я бы значения переставил и зазор поуменьшил бы.
underwater = (1, 0, 0, [],[ # underwater
(multiplayer_is_server),
(try_for_agents,":agent"),
(agent_get_position,pos1,":agent"),
(position_get_z, ":z", pos1),
(try_begin),
(le, ":z", -200),
(agent_get_slot, ":time",":agent", slot_agent_underwater),
(store_add, ":down", ":time", 1),
(agent_set_slot, ":agent", slot_agent_underwater, ":down"),
(agent_get_slot, ":time_is_up",":agent", slot_agent_underwater),
(ge, ":time_is_up", 5),
(agent_deliver_damage_to_agent, ":agent",":agent"),
(else_try),
(gt, ":z", -185),
(agent_set_slot, ":agent", slot_agent_underwater, 0),
(try_end),
(try_end),
])
#Crouch Down
new_anim_start = (0, 0, 0, [(key_is_down, key_z)],[
(get_player_agent_no,":agent_no"),
(agent_get_animation, ":cur_anim", ":agent_no", 0),
(try_begin),
(eq, ":cur_anim", "anim_crouch_down"),
(agent_set_animation, ":agent_no", "anim_stand_from_crouch"),
(else_try),
(agent_set_animation, ":agent_no", "anim_crouch_down"),
(try_end),
])
Подскажите пожалуйста, как правильно прописать условие не позволяющее приседать верхом на коне.условие не позволяющее приседать верхом на коне
(get_player_agent_no,":agent_no"),
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",0),
добавлять условие с одной частьюЧто есть часть условия?
Что есть часть условия?Прости за невнятную формулировку, я имел ввиду примерно это: во всех скриптах которые я видел раньше было по нескольку условий например так:
(try_begin),
(this_or_next|agent_has_item_equipped,":agent_no",itm_angel_wings),
(agent_has_item_equipped,":agent_no",itm_daemon_wings),
(agent_set_animation, ":agent_no", "anim_angel_fly"),
а как сделать одно условие до меня не дошло :((get_player_agent_no,":agent_no"),то предположим приседание можно было бы использовать только находясь в седле?
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",1),
Кстати еще один вопросик, если бы код выглядел так:Не совсем.Цитировать (выделенное)(get_player_agent_no,":agent_no"),то предположим приседание можно было бы использовать только находясь в седле?
(agent_get_horse,":horse",":agent_no"),
(lt,":horse",1),
#Warcry
new_anim_start = (0, 0, 0, [(key_clicked, key_c)],[
(get_player_agent_no,":agent_no"),
(play_sound,"snd_warcry"),
(agent_set_animation, ":agent_no", "anim_cheer"),
])
Подскажите пожалуйста как его усовершенствовать :)
Кстати, а как назначить "агентов" сразу для всех игроков и ботов (причем из той же команды) на каком-то расстоянии от "агента" который например играет на флейте или издает боевой клич?Что значит "назначить"?
А как выглядят команды изменяющие характеристики?Характеристики чего? Статы агентов? Никак. Статы можно менять только у troops. Ну и ботов можно замедлять.
И еще один вопрос: как правильно задать таймер, и чтоб от него зависили вышеуказанные действия?По аналогии с утоплением. Раз в секунду слот увеличивать/уменьшать на единичку, проверять не перешло ли допустимый порог.
Подскажите пожалуйста как его усовершенствоватьВместо
ВместоА в чем будет разница? У меня вроде и так работал..
(play_sound,"snd_warcry"),
поставить
(agent_play_sound, ":agent_no", "snd_warcry"),
А в чем будет разница? У меня вроде и так работал..Естественно работало. Это усовершенствование, в результате которого источником звука будет агент трубящий.
Вобщем я хотел бы сделать скрипт в котором после издания боевого клича у дружественных войнов в некотором радиусе от командира появлялся какой нибудь бонус (есть ли другие способы кроме повышения статов?)Выбор агентов в радиусе
(agent_get_position,pos0,":agent_no"), #трубящий
(agent_get_team,":based_team",":agent_no"),
(try_for_agents,":effected_agent"),
(agent_is_active,":effected_agent"),
(agent_is_alive,":effected_agent"),
(agent_is_human,":effected_agent"), #не лошадь.
(agent_get_team,":effected_agent_team",":effected_agent"),
(eq,":effected_agent_team", ":based_team"), # или (neq,":effected_agent_team", ":based_team") для отрицательных эффектов на врагов
(agent_get_position,pos1,":effected_agen"), #трубящий
(get_distance_between_positions_in_meters,":dist",pos1,pos0),
(le,":dist",25), #25 метров
место для эффекта
(try_end),
код писал на коленках. Так что могут быть ашипки.Менять экипировку (сделать дубли для предметов, подменять временно на модифицированные). Не спрашивайте меня как.да, код, который писал я для этого, получился шестоким. С кучей пересылок инфы на агентов и сервер...
Менять экипировку (сделать дубли для предметов, подменять временно на модифицированные). Не спрашивайте меня как.А нельзя ли сделать что то подобное сделать со статами персанажа? То есть на какое-то время заменять профиль обычного мультиплеерного, на например enspired_warrior у которого статы будут в любом случае лучше чем у любого обычного мультиплеерного солдата?
Спасибо за гранаты. Ограничить дальность, полагаю, можно понизив параметр Shot Speed.spd_rtng(50) можно поменять на spd_rtng(35), меньше не стоит, уж больно долго идёт замах.
Господа, прошу прощения, существует ли команда модульной, которая переносит agent'a, конкретно, игрока, в другую координату? Например, для сценовых объектов такая команда выглядит так: (prop_instance_animate_to_position, <scene_prop_id>, position, <time>), есть ли что-то похожее для агентов?
(agent_set_position,<agent_id>,<position_no>),
Переносит его на другую позицию, но не анимированно.
но не анимированно.Это означает, что перемещение агента будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?
Это означает, что перемещение агента будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?Да. Агент просто моментально окажется на заданной позиции, без визуального перемещения. Какой то команды, которая будет визуально перемещать агента нет, но Хайлендер в своем моде (http://rusmnb.ru/forum/index.php?topic=10837.0) показал, что возможно агента анимированно перемещать, только такой скрипт сделать сложно. =/
Leon473, спасибо.Оторвать камеру.Цитировать (выделенное)но не анимированно.Это означает, что перемещение агента будет зрительно не заметно? То есть анимированного перемещения для агентов не существует?
Ну, ещё можно извратиться с помощью командам, меняющих глобальную систему координат в локальную и наоборот, и просто прибавлять координаты каждые 0.05 секунды...А игрок будет бежать в обратную сторону усиленно сопротивляясь перемещению =)
я уже прочел про магию но мнеб хотелось шоб мана была развиваить магию можно было....Мана с точки зрения игры --- это число. Развитие магии --- набор условий.
З.Ы А какой командой в mission_templates задается проверка класса войск? То есть как поставить условие, что-бы оно выполнялось только если игрок в мультиплеере игпает за кокой-либо определенный "трупс"?(player_get_troop_id,":troop",":player"),
(assign, reg1, ":proprosperity"),
(str_store_string, s50, "@{reg1}"),
Но я не уверен заработает ли.
(party_get_slot,reg1, ":center_no", slot_town_prosperity),
(str_store_string, s50, "@ {reg1}%)"),
("get_prosperity_text_to_s50",
[(store_script_param, ":center_no", 1),
(party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
(val_div, ":prosperity", 20),
(try_begin),
(eq, ":prosperity", 0), #0..19
(party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Very Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 1), #20..39
(party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 2), #40..59
(party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Average ({reg1}%)"),
(else_try),
(eq, ":prosperity", 3), #60..79
(party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Rich ({reg1}%)"),
(else_try),
(party_get_slot,reg1, ":center_no", slot_town_prosperity),(str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
(try_end),
]),
("get_prosperity_text_to_s50",
[(store_script_param, ":center_no", 1),
(party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
(val_div, ":prosperity", 20),
(assign, reg1, ":prosperity"),
(try_begin),
(eq, ":prosperity", 0), #0..19
(str_store_string, s50, "@Very Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 1), #20..39
(str_store_string, s50, "@Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 2), #40..59
(str_store_string, s50, "@Average ({reg1}%)"),
(else_try),
(eq, ":prosperity", 3), #60..79
(str_store_string, s50, "@Rich ({reg1}%)"),
(else_try),
(str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
(try_end),
]),
Не может быть. Ты, надеюсь, написал reg1, а не regl ?Я не писал, я вообще скопировал... Ну сейчас попробую еще раз...
Я проверил, работает. Компилировал дважды (второй раз скобки добавлял).
Так было бы лучше, но что-то мне подсказывает (ковыряние с другой презентацией), что презентация запомнит этот регистр и будет применять для всех деревень, в итоге процент и у богатых и у нищих будет один и тот же. Ты пробовал в игре свой вариант?В игре не пробовал, но этой проблемы быть не должно, ибо скрипт обрабатывает только одну партию, и записывает ее благосостояние в reg1. Для другой партии, этот скрипт опять выполнится сначала, и опять запишет в reg1 уровень благосостояния партии.
("get_prosperity_text_to_s50",
[(store_script_param, ":center_no", 1),
(party_get_slot,":prosperity", ":center_no", slot_town_prosperity),
(assign, reg1, ":prosperity"),
(val_div, ":prosperity", 20),
(try_begin),
(eq, ":prosperity", 0), #0..19
(str_store_string, s50, "@Very Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 1), #20..39
(str_store_string, s50, "@Poor ({reg1}%)"),
(else_try),
(eq, ":prosperity", 2), #40..59
(str_store_string, s50, "@Average ({reg1}%)"),
(else_try),
(eq, ":prosperity", 3), #60..79
(str_store_string, s50, "@Rich ({reg1}%)"),
(else_try),
(str_store_string, s50, "@Very Rich ({reg1}%)"), #80..99
(try_end),
]),
Проверено на деле:(party_get_slot,reg1, ":center_no", slot_town_prosperity),
(store_div, ":prosperity", reg1, 20),
Нет.Обратный процесс, в принципе, невозможен. То есть, имея готовый мод, полностью извлечь его исходники невозможно.Процесс возможен. Это несложно при должном уровне понимания питона. Когда-то даже для .903 Инвиктус извратился и сделал бэктранслятор для scripts. Проблема в том, что это всё крайне муторно, и для некоторых файлов неэффективно (для mission_templates например).
Я просто подумал, что если сначала понять питон, то с модульной системой будет куда проще. Исходник не закодирован ведь, а в открытом виде. Значит понять что там чего делает очень просто.Это заблуждение. Питон используется для трансляции МС. МС — написана на самостоятельном предметно-ориентированный язык программирования. Хорошее знание питон лишь позволит делать некоторые дополнительные трюки, несколько сокращающие объём кода.
МС — написана на самостоятельном предметно-ориентированный язык программирования.Ну теперь все стало понятно...
И еще вопрос:Повсюду. Ищи "str_". Может быть по-разному. Но обычно схема следующая, вызвать скрипт, взять str_, запихнуть в s0, вернуться из скрипта, использовать s0.
Где находятся скрипты, которые командуют выводом строк из strings.txt?
Просто в scripts.txt нашел только для quick_strings.txt.
(scene_set_day_time, 15),
(store_random_in_range, "$day_time", 7,22),
(scene_set_day_time, "$day_time"),
some_anim= (1, 0, 0, [(key_is_down,key_q)],[
#(multiplayer_is_dedicated_server),/(multiplayer_is_server),
(get_player_agent_no,":agent_no"),
(agent_set_animation,":agent_no","anim_some_anim"),
]),
Не у кого не завалялся скрипт яда ил кровотечения, в общем, чтобы объект под его воздействием терял определенное количество здоровья в течение определенного периода времени?
Скрипт в mission templates для восполнения ХП лошади когда она приближается к стогам сена, расположенным на карте. :)
Пытался сделать отряды для лордов на нативе как показал tehnik.
Ребят, кто-то знает скрипт для сетевой игры, чтобы оружие, которые я кину на карту (для сервера), можно было поднимать?
Нужен скрипт, чтобы поднимались оружия, разбросанные на карте(скрипт для сервера).
Буду очень благодарен за помощь!