Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросник
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
SAG19330184
кто нибудь знает как считывать/записать random seed? Ибо, актуально smile.gif
Aнгeл
Установить Random Seed. Можно попробовать и получить.
Код
!!VR:R$/0;
Миханик
наоборот вроде -
Код
!!VR:R/$;
насчёт считывания в справке не было ничего написано. более того - это функция для мультиплеера, и она устанавливает все рэндом сидс в одно значение. значит, архитектура слишком сложная для непредусмотренного получения.
Aнгeл
Например, Virtual Pascal хранит seed в integer, и использует его для генерации новых псевдослучайных чисел. Более чем уверен, что в Героях так же. Кому нужно - проверит.
sergroj
Цитата(Миханик @ 07 Nov 2008, 19:42)
наоборот вроде -
Код
!!VR:R/$;

да, так.

Цитата(Миханик @ 07 Nov 2008, 19:42)
насчёт считывания в справке не было ничего написано. более того - это функция для мультиплеера, и она устанавливает все рэндом сидс в одно значение. значит, архитектура слишком сложная для непредусмотренного получения.

Нет, для данного компьютера. Взять Random Seed в 3.58 и ТЕ невозможно через ЕРМ, даже через UN:C, но в коде сделать легко.
SAG19330184
в принципе наверно random seed уже не понадобится. Он ведь по идее в сейве автоматически сохраняется? Можно ли заставить игру сохраниться например перед началом битвы? Я хотел бы попробовать написать скрипт сохранения в битве.
SAG19330184
и еще вопрос по ERM: сейчас можно сохранять только строки в файл? или любые данные?
hippocamus
Ну, в виде строк можно ведь любые данные сохранять...
Там по-моему поддержка ini-интерфейса Windows
Aнгeл
SAG19330184, ты для ТЕ кодить собрался?
SAG19330184
только под ТЕ. И не собрался а уже давно пописываю, правда сейчас времени побольше стало smile.gif мои скрипты есть на Бае, ну и тут выложу на днях
Aнгeл
Похвально. Кстати, Хорн с Демом всегда охотно берут скриптописцев в команду. Правда, не очень много желающих.
SAG19330184
жаль что я ассемблера не знаю. В ERM куда ни сунься везде ограничения, много чего реализовать невозможно
Хмм..
например?
Aнгeл
SAG, никогда не поздно узнать. Платные консультации у Flashback
SAG19330184
я уже писал в ветке про новые команды ERM.
- правильный триггер CM для области вокруг миникарты
- правильная отработка триггера CM3 в области нажатия на кнопку OK (область # 30720) - когда закрываешь окошко этой кнопкой, триггер не отрабатывает...
- возможность динамического изменения картинок как на карте (нужны новые нажимаемые кнопки, в область вокруг миникарты), так и в диалогах
- возможность создавать/разрушать объекты на карте, которые видны только владельцу (по типу следов пути). Нужно например для "автодвижения".
- возможность перемещать героя с посещением (пока герой перемещается без посещения объекта. Я хотел бы сделать "автопосещение" всяких мельниц и садиков на 1й день, когда там обновляется содержимое)
- возможность управлять строкой чата (новые триггер и ресивер на входящее и исходящее сообщение)
- возможность расширить набор диалоговых картинок (в частности нужны маленькие встроенные картинки вторичных скиллов, а пока в диалогах есть только такие же, но большие)
- операции с файловой системой (побайтная запись/чтение файлов, переименование файлов, создание папок). Нужно для шифрования сейвов и для удобного встроенного Автосейвера.

это далеко не все smile.gif
Aнгeл
Многое будет в Era. Доступ к DLL, возможно сразу со стандартным набором АПИ, в том числе и для файлов. Загрузка и сохранение, запись своих данных в сейвы, новые триггеры на Экран Героя, на командную строку, на выбор хода очередного юнита, ну и на некоторые другие. Также команды вроде универсальных абилок монстров тоже планируются.
Правда, я думаю, Хорну и КО. нужно сперва поговорить с Сергеем, если КореВог согласится снабжать ТЕ билдами и обеспечить потребности ТЕ (помню в списке было: триггер на окно героя, абилки существ, снятие защиты и т.д....), то стоит, конечно, придерживаться курса до 3.59.
Шифрование сейвов не выйдет. Тут не ЕРМ нужен, а хук на GZRead с последующей расшифровкой (и GZWrite с зашифровкой) + нужно ключ внеурочно вбить в сейв, короче не ахти. Хотя, если статический пас и шифрованием XOR-ом, то можно. Но также элементарно и чуть изменить ехе, чтобы он перестал шифровать, а только расшифровывал.
SAG19330184
можно поподробнее про Era и CoreWOG? Явки, пароли smile.gif ну, вебсайты, контакты?
hippocamus
SAG19330184,
ну ты и конспиролог!
Ну зачем тебе отключать процессы и шифровать сейвы? Проще дисквалифицировать нарушителей, и всё. Твои методы похожи на такое: на спортивных соревнованиях всем заклеить рот и связать руки, чтобы не могли принять допинг biggrin.gif
Кроме раздражения это ничего не вызовет у участников.
SAG19330184
дисквалифицировать нарушителей за что? как поймать читера? если он читит подсматривая сейв
Aнгeл
Цитата
можно поподробнее про Era и CoreWOG?

Билд CoreWog v.01 распространяется только внутри команды, если что - спроси Сергроя. Там исправлены некоторые баги ЕРМ, введена поддержка Луа (над ЕРМ, но почти автономен) и всякие примочки, правда некоторые (как 32-битный оконнный режим) ещё глючат и нуждаются в доработке.

Про Эру кратко я писал тут. Можно скачать по ссылке в посте демо и проверить кое-какие фичи уже на живом примере. В частности, взаимодействие с DLL, новые события(триггеры, используется !?SN + ID события) и функции сохранения карты, записи своих данных в сейв и т.д. Это была сама первая демка, сейчас всё координально перерабатывается.
hippocamus
Цитата(SAG19330184 @ 10 Nov 2008, 16:54)
дисквалифицировать нарушителей за что? как поймать читера? если он читит подсматривая сейв

у тебя есть просмотрщик сэйвов?
Чтобы ещё одну копию игры не запустил - это проще сделать. А вообще герои и так имхо не дают это сделать.
SAG19330184
у многих игроков сетки - домашний комп плюс ноутбук. Сейв (если не шифровать) легко открыть на ноутбуке, а играть на компе. Плюс сейчас ТЕ позволяет играть несколько игр одновременно на одном ПК. Если убрать возможность запускать несколько копий, то проблема останется (передача сейва по сетке), зато будет невозможно играть 2 партии одновременно (интересная фишка, я пока не выяснил сколько времени экономит).
Поэтому поймать читера, который не добавляет себе никаких бонусов, крайно сложно. А вообще - это оффтоп, лучше пусть модератор перенесет в другую ветку или удалит. Спасибо за инфу про Era и CoreWOG, посмотрю на досуге
Aleee
Что значит "временная переменная"? В справочном List of Claimed есть такие (они указаны в скобках).
Может ли кто-нибудь подробнее рассказать, используются ли они в воговских скриптах и можно ли их использовать, если отключить скрипты, которыми они используются. Ё-моё. Если непонятно - перечитайте еще раз, мне помогло.
Aнгeл
Переменная, которая заюзана для временных нужд, как 'y', например. Можно юзать в любое время, но в одном триггере и не полагаться на входящее значение.
Aleee
А если я ее зарегистрирую инструкцией, каковы шансы на то, что она во время игры (или с воговскими скриптами, или без) "собьется"?
Aнгeл
Для тебя шансы должны быть равны 100%.
Aleee
Уже не смешно, но тем не менее: 100% в какую сторону и что значит "для меня"?
MasterOfPuppets
Не, однозначно временные переменные лучше в инструкции не ставить. Только неиспользованные глобальные.
Aleee
Если мне не изменяет память, то z-переменные могут быть от 1 до 999. А если так, то мне просто не хватает свободных.
gamecreator
Цитата(Aleee @ 28 Dec 2008, 18:02)
Уже не смешно, но тем не менее: 100% в какую сторону и что значит "для меня"?

100% того, что она собъется.
и не только для тебя, а для всех
Хмм..
Цитата(Aleee @ 28 Dec 2008, 19:54)
Если мне не изменяет память, то z-переменные могут быть от 1 до 999. А если так, то мне просто не хватает свободных.

Пользуйся Эрой и выделяй столько переменных сколько нужно
Aleee
Какой именно: "нашей" или "до нашей"?
Пошел курить форум.

Добавлено ([mergetime]1230492499[/mergetime]):
Блин, а если я все поотключаю, какого черта и при каком условии они вдруг на первом месяце/третьей неделе/втором дне все изменятся (дату можно свою всунуть)?

Добавлено ([mergetime]1230493134[/mergetime]):
Нет, я запутался в принципе. В списке есть простые интервалы, в скобках и между звездочек.
Может ли мне кто-нить объяснить, какими можно пользоваться и в каком случае какие могут изменяться игрой.

И про "эру" я ничего не нашел. Куда впихнуть 200 строчек текста так понять и не могу.
sergroj
Если отключишь вогификацию, ни одна v и z(положительная) переменная сбиваться не будет.
А если не отключена, то могут сбиться на любой команде, инициирующей риггер. Например, во время IF:M и подобных, вроде, работает !?TL.
Скобки - используется временно. Соответственно, ты тоже можешь использовать их временно, но в триггерах типа TL лучше не стоит, т.к. скрипты могут быть на это не расчитаны.
Еще учти, что в 3.58 z-1...z-10 можно использовать только в функциях.
Звездочки - зарезервированы для картостроителей. Могут использоваться без ограничений скриптами карты.
Aleee
И, надеюсь, последнее.
В этой самой Эре кроме добавления монстров ничего не увидил. Распишите, пожалуйста, как и что мне там выделить для карты и как сделать, чтобы у игроков тоже все работало.

Да, и еще: ведь отключение ВОГификации это отключение только тех скриптов ВОГа, которые инициируются в начале карты?
MasterOfPuppets
Ждём Ангела...
Хмм..
Что значит ничего не увидел?
http://wiki.heroes35.net/doku.php/%D1%82%D...%8D%D1%80%D0%B0
Aleee
Через erm можно как-нибудь обращаться к реестру?

Добавлено ([mergetime]1230640208[/mergetime]):
И еще вопрос. В справке по ресиверу !!SN расписано как можно заменить существующий звук на свой.
А как проиграть просто свой? Ведь если триггер !?SN ставить не на что (я хочу проиграть его в тот момент, когда игра своего ничего не проигрывает), то не получится сделать тот блок в примере скрипта, который убирает ошибку о ненайденном ресурсе, которая в моем случае и появляется.

В общем. Как мне с помощью !!SN проиграть свой файл. Куда его сунуть и что прописать, чтобы не было ошибки.
FBX
Страшные вы вещи замышляете... реестр... аддоны... патчинг...
MasterOfPuppets
Aleee, ну вот, например, как я это делаю в одном своём новом объекте (вырезка из скрипта):

!$OB63/22;
!!VRz-2:S^..\data\master\Azatot.WAV^;
!!OW:C?y1;
!!OW:Iy1/?y2;
!!IF&y2=0:Q1/21/49/2^Выйдя из заброшенного храма, вы ужаснулись, увидев чудовищного демона, терроризирующего окрестность. Воистину этот храм был заброшен не случайно! Вскоре выясняется, что демон этот охраняет какой-то покрытый плесенью, украшенный древними рунами сундук. Хотите сразиться за него с демоном?^;
!!IF&y2=0/-1:Q1/21/49/1^"Слабак! Трус! Выродок человеческий!" - кричит вам вслед демон. Он явно много выпил.^;
!!SN&y2=0/-1:Pz-2;

Смех из конца песни "Master Of Puppets" раздаётся тогда, когда герой отказался драться с демоном. Файл находится... видно, где.
А вот так убрал стандартный звук у всех новых объектов, чтобы он не перекрывал мои личные.

!?SN; Убрать стандартный звук у всех новых объектов
!!SN:S?z-10;
!!VRi:S0;
!!VRz-9:S^Mystery.wav^;
!!VRi&z-10=z-9:S1;
!?SN&i=1;
!!VRz-10:S^ZQUIET.WAV^;
!!SN:Sz-10;
Aleee
В том то и проблема, что мне нужно не заменить звук (как в твоем случае) а просто проиграть, так чказать, посреди игры.
Это вообще возможно?
MasterOfPuppets
Посреди игры - это как? Без всякого события?

Добавлено ([mergetime]1230646281[/mergetime]):
Я звук и не заменяю. Второй скрипт я показал просто как пример убирания ненужных звуков. А всё, что нужно для проигрывания своего звука:

!!VRz#:S^..\data\звук.WAV^;
!!SN:Pz#;

!!SN работает, кажется, в любом триггере. Даже при клике мышкой. А если звук нужен без какого-либо события - то тут уж !!MP.
Aleee
А ты попробуй. Сразу появится ошибка вроде "Cannot found resource имя файла", причем не игровая, а от обработчика. Жмешь ОК - игра идет дальше.
MasterOfPuppets
Дай свой код - посмотрим вместе.
Aleee
Код
!#VRz496:S^..\data\success.wav^;  
!?Любой триггер  
!!SN&v2737=0:Pz496;
MasterOfPuppets
1)Точно ли v2737=0? Проверь.
2)Может, лучше локальную переменную в самом триггере?

!?Любой триггер;
!!VRz-1:S^..\data\success.wav^;
!!SN&v2737=0:Pz-1;

Заодно глобальную сэкономишь.

Добавлено ([mergetime]1230648470[/mergetime]):
Вот это у меня тоже играет (левый клик на журнале):

!?CM0;
!!CM:I?y9;
!!CM&y9=5:R0;
!!VRz-3:S^PLAYCOME.WAV^;
!!SN&y9=5:Pz-3;
Aleee
Да плевать. Функция вызывается и раз мне пишут, что не найден именно success.wav я все делаю верно. Просто так делать нельзя.
В справке указан обходной путь, но там расписано как поступать если заменяешь звук. А если свой - вот вопрос.
MasterOfPuppets
А я что делаю? Не понимаю...

Добавлено ([mergetime]1230648809[/mergetime]):
Вот это:

!!VRz-2:S^..\data\master\Azatot.WAV^;

Это ведь мой звук. И никакой другой он не заменяет.
Aleee
Все, я понял. My bad. Мутил тут с библиотеками для Героев, а wav сохранил так, что замененная библиотека их не види что ли.
В общем, заменил по дефолту и...
Спасибо за помощь.
MasterOfPuppets
Подколол!)

Добавлено ([mergetime]1230649852[/mergetime]):
Вообще, для качественных и малообъёмных WAV мне нужно лишь две программы - foobar2000 и virtualDab. Первым - вырезаю нужный фрагмент из звук.файла, второй - задаю нужный битрейт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.