Голосование

Кто круче?














Оформление



Пользователей
  • Всего: 28891
  • Последний: Narek2011
Сейчас на форуме
Пользователи: 1
Гостей: 427
Всего: 428

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

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

  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #525 : 01 Ноября, 2012, 22:41 »
Есть ли в M&B Script какой-нить триггер или условие или ещё что, которое отвечало бы за нажатие определённой клавиши?
Смотрите header_triggers.py, там все возможные флаги тригеров. Для отслеживания нажатия клавиши используются проверки key_is_down, key_clickedgame_key_is_down и game_key_clicked
После этой проверки пишите всё, что заблагорассудится, в рамках ограничений движка конечно.
Есть ли какая-нибудь команда выхода из цикла?
Если под циклом вы имеете в виду операцию try_for_range, то прервать цикл нельзя. для того, чтобы не выполнять весь цикл дальше в полном объёме при достижении нужного результата, обычно используют вот такую штукуПеред запуском цикла объявлейм любую переменную со значением
(assign, ":end", 0),
Запускаем цикл
(try_for_range, ":test", 0, 10),
Проверяем значение переменной
(eq, ":end", 0),
....
....
Дальше нужные нам действия и проверки

И в момент, когда нужное сделано и можно прекратить выполнение цикла, присваиваем нашей переменной другое значение
(assign, ":end", 1),

(try_end),
Таким образом цикл продолжит работу, но не уже не будет выполнять все действия, а просто быстро переберёт остаток интервала
  • Фракция: Наемники
  • Сообщений: 43
    • Просмотр профиля
0
« Ответ #526 : 01 Ноября, 2012, 22:48 »
uhanich, а для (try_for_agents) такое тоже прокатит?
  • Фракция: Свады
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #527 : 01 Ноября, 2012, 22:49 »
для любой try_for_
  • Фракция: Наемники
  • Сообщений: 43
    • Просмотр профиля
0
« Ответ #528 : 01 Ноября, 2012, 22:53 »
Я наверное уже достал вас своими нубскими вопросами, но у меня появляются постоянно новые.

Реально ли это
Цитировать (выделенное)
а один (любой) из противников станет союзником.
Как это реализовать я приблизительно знаю, но вот есть сомнения по поводу того, станет ли он действительно союзником и пойдёт ли рубить своих ? :D
 

Добавлено: 01 Ноября, 2012, 23:05

2. Есть ли функция рандома? (Типа: rand(1,5); - выдаст число в диапазоне от одного до пяти)
« Последнее редактирование: 01 Ноября, 2012, 23:05 от Saturn35 »
  • Фракция: Свады
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #529 : 02 Ноября, 2012, 00:27 »
Как это реализовать я приблизительно знаю, но вот есть сомнения по поводу того, станет ли он действительно союзником и пойдёт ли рубить своих ? :D
Должен. Возможно только после смены отношений придётся ещё сделать  agent_force_rethink

2. Есть ли функция рандома? (Типа: rand(1,5); - выдаст число в диапазоне от одного до пяти)
store_random_in_range

Я наверное уже достал вас своими нубскими вопросами, но у меня появляются постоянно новые.
Напрягает, что это становиться состоянием души. Тот же store_random_in_range можно было найти прямым поиском по header_operations.py
  • Сообщений: 7578
  • За наиболее важные для развития сайта идеи За особо выдающиеся авторские тексты За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
0
« Ответ #530 : 02 Ноября, 2012, 00:34 »
Saturn35, Вы наверно что бы не напрягать людей, прото потратьте часть времени от спасение мира. на простое чтение модульки если не понятен хейдер в большинстве случаев его можно понять воспользовавшись поиском по модульке и увидев его применение, реально каждую операцию вам пояснять скоро устанут, так как вы ленитесь сами их поискать
Моя конфигурация:
Нормальная, мне хватает.
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #531 : 02 Ноября, 2012, 00:51 »
Чисто теоретически...Создать два невидимых неподвижных отряда на карте (первый будет преградой) и тригером с определённой частотой проверять расстояние от него до отряда игрока. При расстоянии меньше определённого "отбрасывать" игрока ко второму отряду (есть такая операция party_relocate_near_party).  В теории должно работать. Не проверял.
можно записывать с определенной частотой фрейма (зависит от того куда скинуть нужно) позицию партии игрока. потом скидывать партию при определенных условиях.  можно натыкать тупо мостов по полосе и сделать невидимыми задав флаг.
а вот со скидкой партии могут быть траблы. она не останавливается а тупо прет на указанную перед этим мышкой позицию.
я ее ставил на отдых. по другому че-то никак 
« Последнее редактирование: 02 Ноября, 2012, 00:54 от Легионер »
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #532 : 02 Ноября, 2012, 01:10 »
я ее ставил на отдых. по другому че-то никак
А если подряд применить:
(rest_for_hours, 1, 0, 0), #начать ожидание
(rest_for_hours, 0, 0, 0), #остановить ожидание
?
Теоретически две эти операции выполненные последовательно должны мгновенно остановить отряд. Завтра попробую.
  • Фракция: Наемники
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #533 : 02 Ноября, 2012, 01:22 »
Можешь не проверять работает. :)
только лучше
         (rest_for_hours_interactive,1 , 0,0),
         (rest_for_hours_interactive,0 , 0, 0),
чтобы партия не пропадала с карты
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #534 : 02 Ноября, 2012, 01:25 »
Не утерпел и проверил сразу)))
Действительно последовательное выполнение этих операций фактически идентично нажатию клавиши пробел на глобальной карте :) Так что отряд можно мгновенно остановить без особых проблем.
 

Добавлено: 02 Ноября, 2012, 01:26

чтобы партия не пропадала с карты
А ну да. Само собой :)
  • Фракция: Наемники
  • Сообщений: 43
    • Просмотр профиля
0
« Ответ #535 : 02 Ноября, 2012, 09:39 »
Почему в консоли, на операциях сравнения, появляется сообщение "'tuple' object is not callable" ?
Везде всё объявлено.

Цитировать (выделенное)
(0,20,5,[(key_is_down,0x14)],
      [
         (get_player_agent_no,":player_agent"),
         (set_rain,1,100),
         (set_fog_distance, 100, [0xFF000000]),
         (assign, ":end", 0),
         (try_for_agents,":agents")
            (eq, ":end", 0),
            (neq,":agents",":player_agent"),
            (agent_set_team  , ":agents", 1),
            (agent_force_rethink, ":agents"),
            (assign, ":end", 1),
         (try_end)
      ])


Добавлено: 02 Ноября, 2012, 09:41

название переменной изменял, несколько раз build_module запускал, даже удалял всё и после каждой написаной строчки модуль строил, всё-равно на сравнениях ошибка вылезает.
« Последнее редактирование: 02 Ноября, 2012, 09:43 от Saturn35 »
  • Фракция: Свады
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
+1
« Ответ #536 : 02 Ноября, 2012, 09:50 »
Запятую забыли после  (try_for_agents,":agents")
Обычная синтаксическая ошибка :)
и в конце тоже, после (try_end)

При возникновении проблем с компиляцией, в первую очередь проверяйте синтаксис. 90% ошибок просто от невнимательности.

 А зачем, есть же форум где скажут, это ж проще чем выискивать самому))))
« Последнее редактирование: 02 Ноября, 2012, 11:38 от HunterWolf »
  • Фракция: Наемники
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #537 : 04 Ноября, 2012, 10:49 »
Просто чтоб удостовериться.
Точно нельзя вытащить в переменную пункт назначения партии игрока (если цель партия - её id, если просто место на карте - его координаты) на глобальной карте (место, куда кликнула мышка)?
Операции get_party_ai_object и party_get_ai_target_position не работают применительно к p_main_party, ровно как и slot_party_ai_object ей тоже не присваивается.
Вдруг я что-то упустил.
  • Фракция: Наемники
  • Сообщений: 43
    • Просмотр профиля
0
« Ответ #538 : 04 Ноября, 2012, 15:57 »
Вопрос: Написал я диалоги, построил мод, всё нормально, в консоли никаких ошибок. При запуске игры вылетает ошибка, что файл неожиданно закончился.
Цитировать (выделенное)
Unexpected End of File while reading file: Modules\Sword of Truth\conversation.txt

Почему такое происходит? (Почему может быть неожиданное окончание, и как с этим бороться?)
  • Фракция: Свады
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #539 : 06 Ноября, 2012, 15:10 »
Unexpected End of File while reading file
Удалите все сейвы и файлы экспорта персонажей.
  • Фракция: Наемники
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #540 : 07 Ноября, 2012, 01:42 »
Почему такое происходит? (Почему может быть неожиданное окончание, и как с этим бороться?)
Ошибка сборки мода.

Либо, если действительно
в консоли никаких ошибок.
запускаемый и собираемый мод не совпадают. 
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #541 : 07 Ноября, 2012, 01:52 »
Не обязательно.
По какой то причине у меня названия всех файлы эпрорта персонажей сменили кодировку. В названиях кракозябры. Ничего не трогал 100%
При запуске игры получал эту ошибку, хотя сборка происходила без ошибок.
Удалил файлы экспорта, всё заработало.
Такое впечатление, что кроме основных файлов игры, экспрорты тоже проверяются.
На тайлвудсе об этом тоже где то было упоминание.
  • Фракция: Наемники
  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
0
« Ответ #542 : 07 Ноября, 2012, 02:13 »
для меня это самая страшная ошибка, ибо вылазит на большие по размеру быстрые стринги.
не всегда, не часто, иногда даже переписав полностью диалог не лечится. иногда лечится изменением мест условных переносов текста ..
сегодня вылезло с жалобой на скрипт.тхт хотя не работал в нем. работал в презентации с запуском из первого игрового меню. 4 перезагрузки дата файла. перезапустил игру чтоб не грузить оперативу пятым - выскочило. перекомпилировал - пропало :-\

Удалил файлы экспорта, всё заработало.
надо будет попробывать..
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #543 : 07 Ноября, 2012, 02:30 »
Такое впечатление, что кроме основных файлов игры, экспрорты тоже проверяются.
Чудные дела твои, Господи.

Есть, кстати, ещё причины. В процессе сборки при обработке большого числа чего-то может запросто произойти переполнение. И итоги там такие же — недописанные файлы и т.п.

перекомпилировал - пропало :-\
Возможно, стоит удалять txt перед сборкой. Processes сканируют (если есть) quick_strings.txt, variabies.txt и возможно ещё какие-то (на самом деле известно, что сканируются ID_, созданные на предыдущем этапе, и, если пересобирать несколько раз, результаты могут несколько меняться).
« Последнее редактирование: 07 Ноября, 2012, 02:34 от Rongar »
  • Сообщений: 43
    • Просмотр профиля
0
« Ответ #544 : 07 Ноября, 2012, 20:16 »
А номер агента изменяемый или нет? Т.е. Если я в самом начале игры (в стартовой миссии) дам значение агента ГГ например глобальной переменной, я смогу пользоваться глоб.переменной до самого окончания игры?
  • Фракция: Свады
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #545 : 07 Ноября, 2012, 20:27 »
Не сможешь использовать, номер агента игрока меняется от миссии к миссии.
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #546 : 07 Ноября, 2012, 20:28 »
Кто нибудь сталкивался с некорректной работой операции troop_set_plural_name при использовании русификации?
Проблема в том, что последствия этой операции никак не отражаются в игре, игра продолжает брать оригинальное название из файла русификации.
Причём операция всё же работает, т.к. если сохраниться после применения этой операции, и запустить английскую версию игры, то все изменения видны.
Фигня какая-то :-\
  • Фракция: Наемники
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #547 : 07 Ноября, 2012, 20:30 »
А с самой русификацией точно всё в порядке?

Что устанавливается в качестве нового имени? qstr_, str_, или строка введённая игроком?
« Последнее редактирование: 07 Ноября, 2012, 20:33 от Rongar »
  • Сообщений: 350
  • За создание технических проектов различного характера
    • Просмотр профиля
0
« Ответ #548 : 07 Ноября, 2012, 20:51 »
1. А что с ней может быть не так?
2. пробовал и qstr_ и str_. А как это "строка введённая игроком"?
  • Фракция: Наемники
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
0
« Ответ #549 : 07 Ноября, 2012, 21:08 »
1. А что с ней может быть не так?

Отсутствуют, неправильные соответствующие qstr, str в русификации.

2. пробовал и qstr_ и str_. А как это "строка введённая игроком"?

e.g.
http://forums.taleworlds.com/index.php/topic,57775.msg1493989.html

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


Powered by SMF 2.0 | SMF © Simple Machines LLC