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

Ответ #375 10 Июня, 2012, 15:07
0
Кстати про погоду в мульте: с ченджлог'е 153 версии (или 150 какой-то)  было написано, что при измемении погоды на карте сервера, измемения будут видны всем игрокам, в отличии от предыдущих версий, когда погода всегда была одинаковой (солнечно, 3 часа дня, на небе облака).


Random rain and fog amounts have been removed in multiplayer. All players now see the same weather.

Версия 1.151. Кажется, наоборот, вообще убрали возможность. Не знаю, как потестить.
Ответ #376 10 Июня, 2012, 15:17
0
Там написано: Рандомные дождь и туман были удалены. Все игроки теперь будут видеть одну и ту же погоду.
 

Добавлено: 10 Июня, 2012, 15:33

ну я это понял как
Кстати про погоду в мульте: с ченджлог'е 153 версии (или 150 какой-то)  было написано, что при измемении погоды на карте сервера, измемения будут видны всем игрокам, в отличии от предыдущих версий, когда погода всегда была одинаковой (солнечно, 3 часа дня, на небе облака).
« Последнее редактирование: 10 Июня, 2012, 15:33 от ValerBOSS »
Ответ #377 11 Июня, 2012, 14:04
+1
Во-первых, меня живо зацепила идея более узкой специализации воина на поле боя, как. например, в Руси 13 веке. Кроме разбивки по классам, этому способствует приятная особенность выпадания копий и больших двуручей при попытке закрепить их за спину в бою, что сразу повышает тактическую состовляющую боя, убирая универсалов с металками, копьями, двуручами и щитами одновременно.

В связи с этим, меня интересует скрипт-система для этой фичи. Примерно алгоритм я себе представляю, но моего опыта в Питоне и знаний МС не хватает. Вижу два варианта проверок

1. Грубый, через get_item_type, если двуруч или древковое, то попадает под категорию выбрасываемых на землю.

2. Более элегантный, через get_weapon_length в WSE.

Делал проверку на оружие как раз через get_type, так как wse тогда не был прикручен.

Как дальше выглядит скрипт, я не знаю. То ли это должно запускаться при проигрывании анимации, на серверной или клиентской стороне - непонятно.

Скрипт у меня сидит в mission_templates. Так что тут с сервером и клиентом конкретно не нужно заморачиваться.

Когда я писал этот скрипт, не было прекрасных триггеров ti_on_item_wielded и ti_on_item_unwielded, поэтому там использовалось три слота и самих триггеров было два штука. А вот у Штурмфогеля как раз используются эти триггеры для достижения аналогичной цели.

Предполагаю такую основную структуру триггера:
В триггере ti_on_item_unwielded проверяем, какое оружие у нас убирается из рук.
Если длинное - спауним перед игроком, затем удаляем его.

В процессе теста триггера обычно набегает ещё куча всяких поправок, поэтому полностью описать всё я не сумею.

 

Добавлено: 11 Июня, 2012, 14:07

Кстати про погоду в мульте: с ченджлог'е 153 версии (или 150 какой-то)  было написано, что при измемении погоды на карте сервера, измемения будут видны всем игрокам, в отличии от предыдущих версий, когда погода всегда была одинаковой (солнечно, 3 часа дня, на небе облака).
А про туман есть что? А то было весело, когда выяснилось, что с DX7 туман не отображается.
Ответ #378 11 Июня, 2012, 14:14
0
А про туман есть что?
Видимо, туман не убирали, просто теперь нельзя выставить для него рандомное значение, собственно, как и для дождя.
Ответ #379 11 Июня, 2012, 21:22
0
Спасибо, Unknown!

 
А вот у Штурмфогеля


Кто это? :)

Предполагаю такую основную структуру триггера:В триггере ti_on_item_unwielded проверяем, какое оружие у нас убирается из рук.Если длинное - спауним перед игроком, затем удаляем его.В процессе теста триггера обычно набегает ещё куча всяких поправок, поэтому полностью описать всё я не сумею.


Попробую как только дойду до этого момента. Куча всяких поправок это случайно не выпадение оружия ниже уровня земли?
Ответ #380 11 Июня, 2012, 21:26
0
Watakushi, Штурфогель() сюда ещё не заглядывал, он один из Рыцарей мода Крестоносцы :)
Ответ #381 12 Июня, 2012, 16:51
0
Фиговый я скриптер. Как и советовалось, положил этот код вниз module_templates.

  (ti_on_item_unwielded, 0, 0,  [],
   [
   
    (assign, ":item_unw_type", 1),
# (assign, ":agent_unwielding", 0),
# (assign, ":item_unwielding", 0),

    (store_trigger_param_1, ":agent_unwielding"),
    (store_trigger_param_2, ":item_unwielding"),

(item_get_type, ":item_unw_type", ":item_unwielding"),

(try_begin),
  (this_or_next|eq, ":item_unw_type", itp_type_two_handed_wpn),
  (eq, ":item_unw_type", itp_type_polearm),
  (player_set_score,":agent_unwielding", 20),
(try_end),

    ]),

При компиляции вылетает ошибка без указания причины в этом триггере, и за ней ошибки во всех данных Mission_template. Грешил на синтаксис, но вроде все перепроверил. После этого блока лежит только закрывающий ]
Ответ #382 12 Июня, 2012, 18:37
0
Watakushi, а почему вниз?
либо в интересующую тебя миссию ( а синтаксис триггера говорит об этом) либо же по аналогии в самом начале файла- и прописать название уже нужной миссии
Ответ #383 12 Июня, 2012, 18:44
0
На вскидку.
(store_trigger_param_1, ":agent_unwielding"),
(store_trigger_param_2, ":item_unwielding"),
Пишутся сразу после "[". Это данные которые передаёшь из других скриптов. (Если такие имеются.)

А вообще, если пропишешь в самом начале файла, компилятор это, скорее всего, проглотит. Если там нет  других ошибок. Только, чтобы триггер заработал его надо вставлять не в конец module_mission_templates, а в нужную сцену module_mission_templates. Список всех сцен можно посмотреть в ID_mission_templates.
Ответ #384 12 Июня, 2012, 19:21
0
Я на процессе починки триггера, и напишу здесь подводные камни, чтобы другие не спотыкались. Во-первых, спасибо господам Легионер и FinGall, эта модульная система и ее структура выедает мне мозги, очень и очень непривычно.

Действительно, стоило положить код в пределах, допустим, multiplayer_dm, как в этом режиме начал наблюдаться эффект.

Из ошибок:

Долго не мог понять, почему troop_remove_item не работает,  потом дошло, что для игры troop_id и agent_id это совершенно разные переменные. Нашел функцию agent_unequip_item, и передвинул запись параметров триггера чуть повыше. В итоге, среди триггеров дезматча появилось рабочее выпадение оружия (пока без спауна)

Выглядит так.

    (ti_on_item_unwielded, 0, 0,  [],
   [
   
    (store_trigger_param_1, ":agent_unwielding"),
    (store_trigger_param_2, ":item_unwielding"),

    (assign, ":item_unw_type", 1),
# (assign, ":agent_unwielding", 0),
# (assign, ":item_unwielding", 0),


(item_get_type, ":item_unw_type", ":item_unwielding"),

(try_begin),
  (this_or_next|eq, ":item_unw_type", itp_type_two_handed_wpn),
  (eq, ":item_unw_type", itp_type_polearm),
  (agent_unequip_item, ":agent_unwielding", ":item_unwielding"),
(try_end),

    ]),


Пока что проблема остается в том, что в Нейтиве, в отличие от Руси, можно купить два и более двуручей/древковых, и если даже одно в руках, второе будет за спиной. Если я правильно понимаю, придется делать проверку на спауне всех слотов (или нет?), и если двуруч или полеарм не в руках, то удалять и спаунить на землю.
« Последнее редактирование: 12 Июня, 2012, 19:27 от Watakushi »
Ответ #385 13 Июня, 2012, 16:30
0
Фиговый я скриптер. Как и советовалось, положил этот код вниз module_templates.
эээ... прямо вниз файла что ли? надо ж не так :)
Погляди на триггер, например, multiplayer_server_spawn_bots, где и как он приводится впервые и как потом на него делают ссылки в режимах игры.

Попробую как только дойду до этого момента. Куча всяких поправок это случайно не выпадение оружия ниже уровня земли?
почти, нужно будет указывать координаты точки спавна. Но это лишь одна правка из возможных. Поскольку я с этим триггером не работал, как уже говорил, то не могу точно сказать, какими будут другие. Например, может появится дублирование оружия :)
Ответ #386 13 Июня, 2012, 18:48
0
Да-да, я уже понял суть mission_templates. В итоге, рабочий и, наверное, безбажный триггер падающего слишком длинного оружия выглядит так:

    (ti_on_item_unwielded, 0, 0,  [],
   [
   
    (store_trigger_param_1, ":agent_unwielding"),
    (store_trigger_param_2, ":item_unwielding"),

    (assign, ":item_unw_type", 1),


(item_get_type, ":item_unw_type", ":item_unwielding"),

(try_begin),
  (this_or_next|eq, ":item_unw_type", itp_type_two_handed_wpn),
  (eq, ":item_unw_type", itp_type_polearm),
  (agent_unequip_item, ":agent_unwielding", ":item_unwielding"),
  (assign, ":drop_place", 0),
  (agent_get_position, ":drop_place", ":agent_unwielding"),

  (position_move_z, ":drop_place", 15,0),    # Increazing Height of the spawn point (15 cms) to avoid weapon spawning under the ground
  (set_spawn_position, ":drop_place"),
  (spawn_item, ":item_unwielding", 0, 180),  # 3  minutes before dissapear
(try_end),

    ]),

Но в Нейтиве есть проблема, если купить несколько двуручей и/или копий, то хоть одно из них и берется в руки, другие закрепляются на спину, не вызывая эффекта _on_unwielded. Я хотел было запустить проверку на спауне по слотам, но потом решил, что такая полумера это неплохой компромисс между Русевским хардкором, когда выпадает вообще все, и Нейтивом, где можно закреплять двухметровые пики за доли секунд.

По реалистичности, можно это представить как процесс подготовки к битве, когда пехотинцам на спину закрепляют специально копья, чтобы их можно было единожды снять и использовать в бою. Хотя на самом деле, мне лень тратить еще один день на проверку всех слотов.

Пусть этот триггер валяется тут, кому нужен, сейчас же меня интересует вопрос физике в warband. Сложно ли она меняется, и нужно ли это вообще?
Ответ #387 13 Июня, 2012, 19:17
0
вопрос физике в warband

На сколько мне известно, были люди (забыл кто), которые пытались подчинить все игровые объекты физике, и вроде бы небезуспешно.
Ответ #388 13 Июня, 2012, 22:54
0
Watakushi,
Пусть этот триггер валяется тут

Лучше тут http://rusmnb.ru/index.php?topic=6857.0 , если не сложно, с неким пояснением что это за тригер.
сейчас же меня интересует вопрос физике в warband.

Ан о чём конкретно? Так сказать, ското точно вешать в граммах
Ответ #389 14 Июня, 2012, 05:49
0
И снова у меня вопрос=) : как читать этот отчет по ошибке
То что проблема в диалоге я уже понял, но не уверен правильно ли понял о строке... :embarrassed:

по ходу подозреваю проблему в написании (store_faction_of_party,reg(4),reg(3)), этого фрагмента... подскажите пожалуйста=)

если читать хэдер оператион то получается опкод 1320 это try_for_parties,
исходя из этого в блоке ID  ищем где может быть 2595... только странно в партиес ИД этого нет... есть в стрингс

[вложение удалено Администратором]

[вложение удалено Администратором]

[вложение удалено Администратором]
« Последнее редактирование: 14 Июня, 2012, 06:18 от Dantares »
Ответ #390 14 Июня, 2012, 18:29
0
1. не уверен, что проблема именно с этой частью диалога. Это вообще весь диалог по найму или есть ещё строки?

2. 2595 - это ID какой-то мобильной партии, число которых жёстко не задано; им ID присваиваются динамически, в порядке "вылупления" на свет

3. Я бы написал короче, используя имеющуюся в игре глобалку
Ответ #391 14 Июня, 2012, 20:09
0

если читать хэдер оператион то получается опкод 1320 это try_for_parties,
исходя из этого в блоке ID  ищем где может быть 2595... только странно в партиес ИД этого нет... есть в стрингс
Так между прочим
1320 - change_screen_buy_mercenaries
$tavernkeeper_party проинициализирована какой-то фигней, точнее числом 2595
Ответ #392 14 Июня, 2012, 20:16
0
Низкий поклон мастерам! Так и есть, скрипт рекрутирование в таверне у владельца таверны... взял отсюда Сейчас пытаюсь понять за что отвечают [reg] и как решить эту задачу... я так понял да и опробовал... нанимаются караванщик, стражники из мерков и сарранидская ветка, вместо этого были беженка крестьянин и горожанин, которые тоже прописаны в мерках

Самое смешное, что я уже понимаю что то что годилось для 0.808, для 1.153 не катит... теперь сравниваю и пытаю... но опыт пока не способстует за отсутствием оного=)
Ответ #393 14 Июня, 2012, 20:53
0
Dantares, ты сократил код
по не очевидной мне причине, как минимум это приводит к тому, что источник для наёмников не обновляется при путешествиях из города в город.

reg - это просто переменные.
Ответ #394 14 Июня, 2012, 21:01
0
Признаю, но в диалогс пи две части и вторая именно как в примере что ты привел... а первая... мда первая прописана кажется криво... и самое смешное, на первый взгляд там ничего что относилось бы к гнайму... только к повышению морали ящиком пива=)
упрощение при проверке на отношения... нда выглядит супер... и как вы это делаете=) :embarrassed:
Извините если туплю.. за полные сутки устал как...

так правильно?

Извините засыпаю на ходу... спасибо за все утром буду думать и править да проверять.... :embarrassed:

П.с за мной долг :thumbup:!

Поторопился, один раз сработало потом опять сказка началась  facepalm Внимательность однако нужна как воздух=)
 

Добавлено: 15 Июня, 2012, 12:19

то есть если reg 2, и  reg (2) в чем тут разница? Не могу никак понять, то вылезает опять та же ошибка, то перестает... (устал бетатестить старт игры...=) переодически вместо наемников выползает иконка моего перса но без возможности нанять=)

выходит ошибка все же где-то в диалог пи... ищем дальше...

 



И так ли надо добавлять вот этот блок?
Ведь если я равильно прочел там только все что касается повышения морали, Так?
 

Добавлено: 15 Июня, 2012, 15:32

 В общем основной ворос что в данном скрипте должно отвечать за ID parties или за Id troops?

это скрипт по отсекам
« Последнее редактирование: 15 Июня, 2012, 19:49 от Dantares »
Ответ #395 16 Июня, 2012, 00:26
0
На сколько мне известно, были люди (забыл кто), которые пытались подчинить все игровые объекты физике, и вроде бы небезуспешно.


Нет, я именно про (мне кажется) другую физику ударов в, например, Руси, Викинге и Бритенвальде. Если с полетом стрел все ясно - надо править projectiles, то с ближним боем непонятно.

ты чего на ЛС не отвечаешь?


Просмотрел как-то. Вот все прочитал и пока ничего не могу никому сказать.


Нужно ли оно вообще с этим заморачиваться? Нейтив довольно условен, аркаден, что ли.
Watakushi,
Пусть этот триггер валяется тут

Лучше тут http://rusmnb.ru/index.php?topic=6857.0 , если не сложно, с неким пояснением что это за тригер.
сейчас же меня интересует вопрос физике в warband.

Ан о чём конкретно? Так сказать, ското точно вешать в граммах

Ответ #396 16 Июня, 2012, 00:29
0
Нет, я именно про (мне кажется) другую физику ударов в, например, Руси, Викинге и Бритенвальде. Если с полетом стрел все ясно - надо править projectiles, то с ближним боем непонятно.
Так ты про анимацию что ли или именно про саму схему\формулу: получения урона, нанесения урона, защиты
 

Добавлено: 16 Июня, 2012, 00:30

Нужно ли оно вообще с этим заморачиваться? Нейтив довольно условен, аркаден, что ли.
Вот это к чему? в смысле?
Ответ #397 16 Июня, 2012, 00:56
0
Нет, я именно про (мне кажется) другую физику ударов в, например, Руси, Викинге и Бритенвальде.
Да, как и сказал Хантер, там всего лишь анимации новые вставлены. Наверно, ты имел ввиду "механика" а не физика? Если да, то поспешу огорчить - она в движке и с ней ничего не поделать.
Просмотрел как-то. Вот все прочитал и пока ничего не могу никому сказать.
Ну хорошо, если надумаешь - пиши. Жду  :)
Ответ #398 16 Июня, 2012, 14:20
0
Наверно, ты имел ввиду "механика" а не физика? Если да, то поспешу огорчить - она в движке и с ней ничего не поделать.

Видимо, меня конкретно приглючило. Всегда казалось, что в Руси физика ударов, особенно топорами и клинками. совершенно иная, будто резче и "тяжелее" как-то, с инерцией.

Вот это к чему? в смысле?

Я про ковыряние основ боя. Например, бесконечные блоки двуручей с помощью легких ятаганов меня тоже не устраивают. Модульная система тем плоха, что довольно сложно реализовать, например, шанс пробития блока более тяжелым оружем, высчитываемый по разница веса блокируемого и блокирующего оружий.

P.S. Даже банальный верхний удар копьем приходится выковыривать из сторонних модов, хотя в модульной системе он якобы уже есть. В Викингре этим ударом попросту заменили атаку lance'ами, т.к. у викингов такой конницы не было. В Нейтиве такое не прокатит.
Ответ #399 20 Июня, 2012, 21:10
0
Здравствуйте!
У меня следующая проблема: Я успешно настроил модульную систему, ошибок не было найдено. Дальше, когда я попробовал создать новый город, а именно создал такой значок в файле module_map_icon- ("new_icon",0,"map_town_a", 5.0,0),  и такой отряд в module_parties-  ("new_town", "Mod_Town", icon_new_icon|pf_town, no_menu, pt_none, fac_neutral,0,ai_bhvr_hold,0,(-1, -1),[], 170), после чего в игре новый город должен был появиться в центре карты. Но городом и не пахнет, а build_module не выявил ошибок. Правда я делаю мод для огнем и мечом, но и модулька тоже для неё.
Что делать, скажите плз.

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

Теги: