Здравствуйте..
Помогите, пожалуйста, отыскать ошибку в скрипте.. Вот уже не хочется писать на форум, но без Вас не справлюсь...
Никак не получается поставить артефакт в сундуке на море. У меня уже закралось подозрение, что эта команда !!OBx/y/z:Cx в ресейвере !!OB не работает как следует
Цитата с помощника
Quote:C$
Установить/проверить/получить контрольное число объекта.
Комментарий: контрольное число - код объекта в игре, означающий некий внутренний параметр объекта. Например, обломки на воде могут хранить такие значения данной команды:
0 - ничего ценного
1 - 5 древесины
2 - 5 древесины, 200 золота
3 - 10 древесины, 500 золота
Плавучий Сундук:
0 - пустой
1 - 1500 золота
2 - 1000 золота и артефакт
Пример определения артефакта:
!!OB998:C?y1;
!!VRy1:&7;
!!VRv1&y1=2:Sy1 :8 &255 -1;
Теперь v1 хранит номер артефакта, если он там есть
Пример установки артефакта:
!!OB998:Cx; где x - число артефакта. Расчет числа проводится по этой формуле:
8*x - 8190
, где х - номер артефакта. Полученное число вписываем вместо x, и теперь в сундуке 1000 золота и ваш артефакт.
Представляю оба скрипта (
код № 1 и
код № 2) или точнее два способа представления одного и того же. Код № 1 отлично отрабатывается судя по проверкам, но последняя строка не желает функционировать
Код № 1
- !?TM72;
- !!FU3327:P63/80/0/0;
- !?FU3327;
- !!TRx1/x2/x3:E?y1;
- !!FU&y1=0:E;
- !!UN:Ix1/x2/x3/82/x4;
- !!VRy2:S0 R2;
- !!OBx1/x2/x3&y2<>2:Cy2;
- !!FU&y2<>2:E;
- !!VRv1:C0/0;
- !!VRv100:C0/0;
- !!VRv100:C8/7/9/15/14/19/20/21/25/26/31/47/46/48/50;
- !!VRy3:S100 R14;
- !!VRv1:Svy3;
- !!OBx1/x2/x3:Cv1;
Код № 2 судя опять же по проверке где-то теряет своё значение C?y3 (оно всегда почему то равно нулю, несмотря на другие значения, которые код приобретает в начале) и поэтому скрипт я так и не смог протестировать детально!
Код № 2
- !?TM72;
- !!FU3327:P63/80/0/0;
- !?FU3327;
- !!TRx1/x2/x3:E?y1;
- !!FU&y1=0:E;
- !!UN:Ix1/x2/x3/82/x4;
- !!VRy2:S0 R2;
- !!OBx1/x2/x3&y2<>2:Cy2;
- !!FU&y2<>2:E;
- !!VRv1:C0/0;
- !!OBx1/x2/x3:C?y3;
- !!VRy3:&7;
- !!VRv1&y3=2:Sy3 :8 &255 -1;
- !!OBx1/x2/x3:Cv1;
Проверка показала что всё верно в коде № 1 кроме последней строки вот скрипт с проверкой на Код № 1
(код тестировался при выпадении значения 2 в сундук) В скобках в проверке то, что должно быть по факту
Эти же коды но с проверками:
Код № 1
- !?TM72;
- !!FU3327:P63/80/0/0;
- !?FU3327;
- !!TRx1/x2/x3:E?y1;
- !!FU&y1=0:E;
- !!UN:Ix1/x2/x3/82/x4;
- !!VRy2:S0 R2;
- !!IF:M^выпало значение %Y2 (2)^;
- !!OBx1/x2/x3&y2<>2:Cy2;
- !!IF:M^установлено значение %Y2 (2)^;
- !!IF:M^Если 2>%Y2, то выход^;
- !!FU&y2<>2:E;
- !!IF:M^2=%Y2 (2), это значит, что идём дальше^;
- !!VRv1:C0/0;
- !!IF:M^2=%Y2 (2), v1=%V1 (0)^;
- !!VRv100:C0/0;
- !!IF:M^2=%Y2 (2), v1=%V1 (0) v100=%V100 (0)^;
- !!VRv100:C8/7/9/15/14/19/20/21/25/26/31/47/46/48/50;
- !!IF:M^2=%Y2 (2), v1=%V1 (0) записанный артефакт v100=%V100^;
- !!VRy3:S100 R14;
- !!IF:M^2=%Y2 (2), v1=%V1 (0) записанный артефакт v100=%V100, сгенерированный y3 = %Y3^;
- !!VRv1:Svy3;
- !!IF:M^2=%Y2 (2), итог v1=%V1 (равный номеру артефакта) ^;
- !!OBx1/x2/x3:Cv1;
!!VRv1:Svy3; - эта строчка отработана и случайный арт записан в переменную v1, но в сундуке он не выдаётся, то есть эта строка !!OBx1/x2/x3:Cv1; - его не даёт по факту!
Ничего не происходит и сундук пустой оказывается.. Может что-то я не доделал в скриптах?
Не могу понять свою ошибку?
; 2-й способ я так и не смог реализовать, поскольку у3 где-то теряет своё значение без причины (может команда сама по себе не рабочая??????)
(код тестировался при выпадении значения 2 в сундук) В скобках в проверке то, что должно быть по факту
Код № 2
- !?TM72;
- !!FU3327:P63/80/0/0;
- !?FU3327;
- !!TRx1/x2/x3:E?y1;
- !!FU&y1=0:E;
- !!UN:Ix1/x2/x3/82/x4;
- !!VRy2:S0 R2;
- !!IF:M^выпало значение %Y2 (2)^;
- !!OBx1/x2/x3&y2<>2:Cy2;
- !!IF:M^установлено значение %Y2 (2)^;
- !!OBx1/x2/x3&y2<>2:C?y3;
- !!IF:M^у3 = %Y3 (2)^;!!!!!!!!!!!!
- !!IF:M^Если 2>%Y2, то выход^;
- !!FU&y2<>2:E;
- !!IF:M^2=%Y2 (2) у3 = %Y3 (2), это значит, что идём дальше^;
- !!VRv1:C0/0;
- !!IF:M^2=%Y2 (2), v1=%V1 (0) у3 = %Y3 (2)^;
- !!VRy3:&7;
- !!VRv1:Sy3 :8 &255 -1;
- !!IF:M^2=%Y2 (2) у3 = %Y3 (2), итог v1=%V1 (номер окончательного арта, который должен быть)^;
- !!OBx1/x2/x3:Cv1;
P.S. обломок (29/0) с лёгкостью удалось поставить и золото в морской сундук (82/0), а когда дело до артефакта дошло, то сами всё видите.. Его что-то не выходит запихать в морской сундук..
Заранее благодарен за помощь..