Эта функция позволяет заменять следующие виды строк:
- Названия заклинаний
- Тексты типа "атака, защита, к. сила, знание", тексты в теверне, кузнице, логове воров, тексты "журнал" и "уволить героя"
- Тексты "базовое, продвинутое, экспертное"
Это далеко не все, но я пока что подружил ее только с этими строками. Если функция будет нормально работать на всех компах, то я могу забить сюда же описания заклинаний и практически все что хотите.
Синтаксис функции: !!FU25001:P#1/#2/#3;
Где
#1 - тип строки
#2 - подтип строки
#3 - индекс z-переменной (только глобальные!)
Типы строк: На текущий момент поддерживается всего 3
0: Общие строки
1: Строки уровня умений
2: Заклинания
Подтипы строк зависят от типа.
Общие строки
*** Экран героя ***
0-3: Названия первичных навыков героя
5: "опыт"
6: "количество маны"
7: "Журнал"
8: "Уволить героя"
*** Экран верфи ***
12: Текст сверху
13: Текст "стоимость ресурсов"
*** Экран логова воров ***
12-22: Тексты "1-ый", "2-ой" ... "8-ой"
23-34: Тексты "Кол-во героев", "кол-во городов" и т д (сверху - вниз)
*** Экран таверны ***
36: Надпись сверху
37: надпись "купить героя"
*** Экран кузницы ***
42: текст "стоимость"
Уровни умений
0-2: Базовое, Продвинутое, Экспертное
3-5: То же самое но сокращенно (баз, продв, эксп)
Название заклинания
Номер заклинания (Format S)
Теперь о неприятном.
1) Новое название должно быть не длиннее старого. Если длиннее - обрезается, если короче - остаток забивается пробелами (могу сделать забивание нулями, но тогда обратный возврат будет затруднен.
2) Эти изменения не сбрасываются при смене карты. Я предлагаю самому сбрасывать их когда юзер щелкает на кнопку "компьютера" (опции и выход), и устанавливать при загрузке карты или если юзер ничего не вышел (хз как, нужно думать)...
Сама функция, собственно, вот
Код
!?FU25002;
!!VRy1:Sx1+x16;
!!VRy2:Sx2+x16;
!!UN:Cy2/1/?y3;
!!VRy3&y3=0:S32;
!!UN:Cy1/1/?y4;
!!UN&y4<>0:Cy1/1/y3;
!!VRx16&y4=0:S256;
!?FU25001;
* x1 - string type
* x2 - string subtype
* x3 - index of z string
!!VRv451:C61593540/61332112/6961792;
!!VRy4:S451+x1;
!!VRy5:Svy4;
!!VRy1:Sx2*4+y5;
!!VRy2:Sx3*512+40225400; <- Для TE заменить число на 9597416 (адрес начала z строк)
!!UN:Cy1/4/?y3;
!!DO25002/0/255/1:Py3/y2;
!!VRy1:Sx1+x16;
!!VRy2:Sx2+x16;
!!UN:Cy2/1/?y3;
!!VRy3&y3=0:S32;
!!UN:Cy1/1/?y4;
!!UN&y4<>0:Cy1/1/y3;
!!VRx16&y4=0:S256;
!?FU25001;
* x1 - string type
* x2 - string subtype
* x3 - index of z string
!!VRv451:C61593540/61332112/6961792;
!!VRy4:S451+x1;
!!VRy5:Svy4;
!!VRy1:Sx2*4+y5;
!!VRy2:Sx3*512+40225400; <- Для TE заменить число на 9597416 (адрес начала z строк)
!!UN:Cy1/4/?y3;
!!DO25002/0/255/1:Py3/y2;
Использование, например
Код
!!VRz100:S^Лодку мне!^;
!!FU25001:P2/0/100;
!!FU25001:P2/0/100;
Меняет название заклинания "вызвать лодку" на "Лодку мне!".
В общем если хотите, чтобы я подружил функцию с другими строками - пишите!
Если у кого-то не работает отпишитесь!