Всадники Кальрадии

Модификации => Обмен опытом: Mount&Blade => Обмен опытом (в помощь мододелу) => Вопросы и ответы по модостроению => Тема начата: lutar от 06 Мая, 2012, 12:18

Название: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 06 Мая, 2012, 12:18
Отказывается  работать  скрипт  потери  крови  в  сражении.

Ссылка  на  оригинал  - 

Ставится  все  довольно просто 

### constants ###


module_scripts.py


module_mission_templates.py



# add triggers to all mission templates


Вопрос  ,Что  здесь  нужно  уточнить  для  правильной  работы  кода  ?   
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: FinGall от 06 Мая, 2012, 14:24
Там в у автора в скриптах есть ещё внизу:
scripts.extend(bloodScripts)
Может из-за этого? =/

А вообще, зачем такие сложности. Дополнительные слоты. Эти переливания крови вряд ли кто заметит.
В Дипломатии есть небольшой скрипт уменьшающий скорость коней от ранений. Может и здесь сделать так же. (Кстати, эта фишка на скорость агента вроде не влияет, а должна бы.)


Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 06 Мая, 2012, 20:00

В  Brytenwalda  именно  этот скрипт и  довольно хорошо  работает там  все .   Что там  есть в Дипломатии не важно,  нужен именно  этот скрипт  потери  крови в бою со  всеми слотами,  которые  заметны , кто играл.


Там в у автора в скриптах есть ещё внизу:
scripts.extend(bloodScripts)
Может из-за этого?

У  автора  есть еще  внизу 

   template[-1].append    -   Гадать  не имеет  смысла.   Нужен  кодер  для  разрешения  вопроса,а  не для  утешения .  Можно без скриптов  вообще обойтись но  мне нужен  именно  этот. :)
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: Leon473 от 06 Мая, 2012, 21:15
В module_scripts.py

в module_mission_templates.py


Сам код я не менял, подправил лишь питоновские функции. Если проблема заключалась в том, что он скрипт вообще не работал, то может поможет. Сам не тестировал, если кто-то протестит, то, пожалуйста, отпишитесь здесь.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 06 Мая, 2012, 21:59
Вопрос  - куда  прописывать  это  - 


for template in mission_templates:
    template[5].append(monitor_health)
    template[5].append(bleed)

Я  эту  часть  не  ставил  ,так как  с ней  вылезают  ошибки   при  компиляции  . В  mission_templates   добавлял  как  обычно  с  нужные сцены  monitor_health  и  bleed .

Еще  -  в  скрипт  прописывал   не  bloodScripts = [   - как   в оригинале,а     с  #bloodScripts = [ ......      Иначе  ошибки вылезают.

Как  правильно  надо  ?
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: Leon473 от 06 Мая, 2012, 22:05
Именно тот код что я запостил вставляй в сами концы файлов, после последних закрывающих скобок.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 06 Мая, 2012, 22:41
Естественно  не  работает  и  ошибки именно   с  этими  в конце  добавлениями.. Этот код  не такой  уж большой и сложный,его можно  опробовать  у себя  для эксперимента  вначале .
Синтаксическая ошибка  постоянно  при  компиляции.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: Leon473 от 06 Мая, 2012, 23:17
Я еще когда предыдущий пост писал проверил работает ли оно, и у меня все компилируется нормально и без каких либо ошибок.
А если убрать те добавления в конце, то код вообще не добавится, так как при компиляции в текстовик будет просто проигнорирован.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 06 Мая, 2012, 23:35
Вас понял.  Прием. )  Вероятно  мне надо  на  чистой версии  попробовать, может быть  что то дублируется  из за  прошлых  попыток  поставить  этот скрипт.

Значит ,я  ставлю  это в  константы 

А  потом  вот  это 
 
В module_scripts.py

в module_mission_templates.py




Причем  эта  часть  .....        (try_end),
    ]),
]
 
scripts.extend(bloodScripts)
попадает   в  самый  конец  всех  строк  module_scripts.py

Надеюсь  получится..

##############################################

Name ` bloodScripts  ` is not  defined ...   :blink:

В  чем же  проблема  ?   Наверно  не  в  ту  часть  вставка  блоков  у меня  ? 
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: FinGall от 07 Мая, 2012, 06:10
Я всё-таки не понимаю. Зачем делат новые скрипты отдельным списком, а потом прибавлять его к списку scripts. Разве не проще, сразу добавить эти скрипты в список scripts.

И в module_mission_templates.py примерно то же самое. Можно ведь и без путоновских функций. В начале файла самому создать список template (или с другим именем).
Получится где-то так:

А потом надо добавить template во все батальные сцены.
В конце. Между последними "]" и ")".
Вот так:
  ]
  +template,
),


Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 07 Мая, 2012, 09:28
ОК !  Попробуем  так  с  миссион _.

Но  скрипт  нужно  так  добавить  как  он есть или  по другому  ? 
Попробую. Все дело в  том, что при компиляции не принимаются  строки  после  ]  в самом конце
 
scripts.extend(bloodScripts)
  и  в  скрипте   bloodScripts = [  в самом начале

Есть еще немного отличающийся  вариант  ,который  нашел у китайцев  http://www.mountblade.com.cn/html/72/t-81672.html
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: FinGall от 07 Мая, 2012, 11:38
Скрипты просто добавляются в module_scripts перед последней "]". Как обычно.

Все, что между  #debug start  #debug end - это вывод данных на экран.
Думаю, потом это можно будет удалить. (Кстати, китайцы так и сделали).
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 07 Мая, 2012, 13:03
Скрипты просто добавляются в module_scripts перед последней "]". Как обычно.

Все, что между  #debug start  #debug end - это вывод данных на экран.
Думаю, потом это можно будет удалить. (Кстати, китайцы так и сделали).



Вывод  данных  на  экран  желательно  сделать  более   "красноречивым" -  Blood  loss  - 1 например ..  Этот скрипт  заставляет  рассчитывать силы  ,отводить  некоторые  войска  с поля  боя  ,экономить  время  ...  В  Brytenwalda  наблюдать интересно  как  валятся   раненые  в конце концов  ,  спешишь  закончить  все  в  свою  пользу  пока не потеряны  войска   и  т.п.

  Вопрос  с  этим  .Если  последние  скобки  вот  так  ],),   то   добавлять  следует  ], +template,
  ),
      или все же   ] + template,
  ),  - убирая  запятую . ?  Имеет  это  значение   ?   

Все  расписал  как  указано    этот  раз  ,ошибок  компиляции  нет  ,но и  работы  скрипта  не  заметил  отчего то  пока.. :blink:
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: FinGall от 07 Мая, 2012, 14:44
Цитировать (выделенное)
Вопрос  с  этим  .Если  последние  скобки  вот  так  ],),   то   добавлять  следует  ], +template,
  ),      или все же   ] + template,
  ),  - убирая  запятую . ?  Имеет  это  значение   ?

Это последние скобки в сцене. Я всегда запятую убираю, когда добавляю с плюсом. После template вроде тоже нет запятой. (это я там ошибся).
]
 + template
),
 Вроде всегда срабатывало. (Но точно не знаю, как правельнее.)

Например, турнир записан вот так:
    ],
    tournament_triggers
  ),
Здесь без "+", но с ",".

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

Мне ещё непонятно:
# Agent slots, make sure these slots are not used for something else
slot_agent_bleed = 8
slot_agent_rate  = 9    # rate of blood loss
slot_agent_hp    = 12
Это ведь новые слоты для агентов, но слоты 8,9,12 уже заняты другими. Их наверно надо соответственно добвить после:
slot_agent_walker_occupation      = 25

slot_agent_bleed = 26
slot_agent_rate  = 27    # rate of blood loss
slot_agent_hp    = 28

И перед каждой сценой их надо заряжать.
Это если я правильно понял их назначение.  :blink:
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: lutar от 07 Мая, 2012, 15:24
Замечательно  ,Все  заработало.  :thumbup:

Константы не изменял.

Спасибо   вам ,    FinGall   и  Leon473   за  помощь .

Теперь  осталось  поправить только  вывод  данных  на  экран.а  то  эти    "имя пользователя  _  bleeding  horce  HP "  выглядит  странновато  ..  Лучше  просто  "... конь  теряет  кровь"    .или   " Герой  теряет  силы  ".. . А так  отлично  все.

Без  этого скрипта  реализма  меньше на мой взгляд.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: Leon473 от 07 Мая, 2012, 20:01
Я всё-таки не понимаю. Зачем делат новые скрипты отдельным списком, а потом прибавлять его к списку scripts. Разве не проще, сразу добавить эти скрипты в список scripts.
Смысла в добавлении скриптов в module_scripts с помощью питоновских функций я тоже не вижу, но для mission_templates польза большая, так как не нужно самому вручную добавлять триггеры, можно просто добавить их автоматически во все миссии, с помощью одной простой функции, что намного проще и быстрее.
Название: Re: Скрипт потери сил в бою (blood loss)
Отправлено: HunterWolf от 07 Мая, 2012, 20:03
Теперь  осталось  поправить только  вывод  данных  на  экран
Не ещё тему нормально оформить и всё подробно расписать, для чайников и переехать в раздел ОСП ;)