A.I.M.(http://forum.ja2.su/cgi-bin/yabb/YaBB.pl)
Обсуждаем игры >> Гробокопатели >> NPC-scripter
(Message started by: Moose на 29.07.2025 в 17:10:05)

Заголовок: NPC-scripter
Прислано пользователем Moose на 29.07.2025 в 17:10:05

С ним есть две проблемы:
1) он принудительно ограничивает (и скидывает вниз) слишком большие числа
в ячейках. Например "перейти на запись No", "получаемый предмет" и т.п.

Есть "секретная" особенность, которая нечаянно нашлась в родных скриптах
Сир-Теха: если в это поле написать число со знаком минус, то игрушка поймет
его не как "криттеру дали предмет", а как "проверяется, стоит ли криттер
на этом тайле". Используется для ходящих с места на место криттеров, который,
например, куда-то пойдет, ДОЙДЕТ до этого места, и только после этого
что-нибудь там возьмет или скажет фразу, и уже потом пойдет обратно к партийцу.
Или, наоборот, можно делать разные диалоги днем, когда криттер стоит на одном
тайле - в своем магазине, и посылает к черту ночью, когда стоит на другом
тайле, - в своем доме.

Проблема состоит в том, что в эту ячейку можно вписать только 5-значные числа.
А если номер тайла уже сам стал 5-значным числом, типа 12345, то вставить туда
-12345 уже не получится, минус тоже считается за знак. Приходится писать туда
положительное число, сохранять скрипт, читать его hex-редактором, исправлять
на -12345 и снова загружать обновленный скрипт в вашей коробочке. Там он его
показывает 6-значным, но если его не трогать, то он его и не обрезает, оставляет
как есть.
Неудобно, ради каждого числа надо перекидываться в hex-editor, но жить можно.

Второе неудобство более проблемное.
В ячейке "перейти на запись No" точно таким же образом любое большое число
срезается на 49 (последняя доступная строка). Его тоже можно повысить до
необходимого в том же hex-редакторе и скрипт действительно прыгнет хоть на
80-ю, хоть на 90-ю строку совершенно без проблем, главное удлиннить файл
254.npc в нужное число раз. По 1600 байт на каждые 50 строк скрипта, размножай
сколько хочешь, главное на бумажке записывать новые номера строчек, создав
отдельно:
254_0.npc со строками 00-49
254_1.npc со строками 50-99
254_2.npc со строками 100-149 и т.д.
а потом сшить все накопленные файлы в один 254.npc длинной 4800+ байт

Но это ОЧЕНЬ неудобно. Потому что даже если эти цифры и исправлять, то
частичные файлы одного скрипта надо сшивать вручную, а не кататься мышиным
колесом, и все время забывать, в каком адресном пространстве находишься.
Так сказать "добро пожаловать обратно в 60-е".

Почему проблема возникла? Потому что авторы сборки JA-2 1.13 в отличие
от Буки-Сиртеха прекрасно позволяют иметь длину скриптов и 100, и 250
(а, возможно, и 65535 строчек). Но уж 254 строчки - гарантированно, это
было проверено на практике. Достаточно перекомпилить 1.13-ю сборку,
увеличив константу:
//#define NUM_NPC_QUOTE_RECORDS 50
#define NUM_NPC_QUOTE_RECORDS 250
и можно просто уфантазироваться до изнеможения. Собранный из таких
вышеописанных кусков скрипт легко прыгал по своим записям переходами
с 20-30 на 80-90 и обратно.

Вы можете чем-нибудь помочь в этой проблеме? Уж очень хочется иметь все
это одним куском перед глазами сразу. Как фраза "640 килобайт хватит
всем" сейчас не вызывает ничего кроме смеха, так и 50 строк скрипта мало
что позволяют. Тем более, что в 1.13 можно еще и продолжать скрипты уже
нанятых солдат, т.е. например, спокойно продолжать покупать взрывчатку
у Дэвина, не обращая внимания на то, что он теперь партиец. И т.п.

Заголовок: Re: NPC-scripter
Прислано пользователем Терапевт на 31.07.2025 в 14:23:13

on 1753798205, Moose wrote:
Как фраза "640 килобайт хватит всем" сейчас не вызывает ничего кроме смеха,

Только у тех, кто не знает технических подробностей.


on 1753798205, Moose wrote:
Вы можете чем-нибудь помочь в этой проблеме? Уж очень хочется иметь все
это одним куском перед глазами сразу.

Хоть я и не работаю с 1.13, но по разным старым слухам оригинальные скрипты там были дополнены механизмом на Lua script. Ищите информацию по этой теме.

Заголовок: Re: NPC-scripter
Прислано пользователем Sot на 31.07.2025 в 18:54:00
[offtop]
on 1753960993, Терапевт wrote:
технических подробностей
просвети, интересно![/offtop]



A.I.M. » Powered by YaBB Modification 4 (v.4.0.0-pre)!
YaBB © 2000-2003. All Rights Reserved.