|
YikxX
Пользователь
Откуда: NCR :) Регистрация: Февр. 2004
Всего: 304 сообщения
|
Вот что написано в ФАКе по скриптам:
Цитата: LVAR Локальные переменные скрипта. Следует отметить, что это не переменные скрипта, а переменные ОБЪЕКТА, к которому привязывается скрипт. Например: у нас есть два охранника двери, к ним привязан один и тот же скрипт - guard.int, local_var(x) у обоих охранников может принимать разные значения. То есть мы можем создать кучу одинаковых объектов с одинаковыми скриптами. В ходе выполнения, в результате действий, local_var(x) для каждого скрипта может выполнятся и принимать своё значение. Но после выполнения скрипта все значения исчезают. Объявляются в файле scripts.lst в конце строчки, описывающей скрипт выражением вида local_vars=5. Таким образом у нас будет пять LVAR'ов. В скриптах не требуют "обнуления" (set_local_var(x, 0)), т.к. при выполнении скрипта (а точнее его начале) двиг сам обнуляет все local_vars.
Вчера завел в скрипте еще 2 лвары (последняя используемая в скрипте была 13-я, в scripts.lst прописано local_vars=15 (кстати, почему именно это число, ведь должно же быть вроде как =14 (или =13?). Соответственно, я добавил 14-ю и 15-ю. scripts.lst после добавления не менял. Поговорил с чуваком, переменные выставились в 1. Вышел из скрипта, сохранился, вышел из игры, загрузился, снова говорю с чуваком - условия, завязанные на эти 2 переменные == 1 сработали! Как так вышло, если они не сохраняются (обнуляются)? И как эти переменные вообще используются, если они не "объявлены" в scripts.lst? Или там инфа только для информации? Прошу прощения, если такой вопрос уже поднимался - поиском не нашел.
----- Обломись! Я подложил туда носок...
|
Отправлено: 10:52 - 3 Июня, 2006
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Хм... ИМХО движок по этим пометкам в scripts.lst просто узнает сколько памяти надо GetMem на карту, потом всю эту память он FillChar нулями. Соответственно, ты просто залез в память, которая вообще-то предназначалась для другого скрипта. Могло такое быть?
----- hit me, nail me, make me god
|
Отправлено: 12:41 - 3 Июня, 2006
|
|
Tehnokrat
Модератор
Откуда: Новосибирск Регистрация: Окт. 2003
Всего: 489 сообщений
|
YikxX, читай доку WG "Функции...", раздел "Переменные" и всё поймёшь.
----- Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.
|
Отправлено: 16:43 - 3 Июня, 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
В скриптс.лст указывается количество вар, а при обращении к варе - её порядковый номер, начиная с нуля. Т.е. если у тебя в скрипте вары с 0 по 13, то в листе число вар должно быть 14. Если их указать меньше, произойдёт именно то, о чём сказал Alan Killenger.
|
Отправлено: 14:21 - 6 Июня, 2006
|
|
YikxX
Пользователь
Откуда: NCR :) Регистрация: Февр. 2004
Всего: 304 сообщения
|
Спасибо всем за ответы. Я что-то подобное и предполагал - очень рад, что не ошибся. Тогда, может ФАК то все-таки обновить? А то новички полезут читать и поймут все не так. 2 Tehnokrat: Кстати, в доке WG тоже не все подробно описано... Например, про "с 0 до 13 - в скриптс.лст = 14" ни слова не сказано.
----- Обломись! Я подложил туда носок...
|
Отправлено: 16:32 - 6 Июня, 2006 | ИСПРАВЛЕНО: YikxX - 16:34 - 6 Июня, 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Ну таки не программированию дока учит . А для тех, кто не в курсе, всегда есть БД. В которой есть формат lst-файлов.
|
Отправлено: 12:41 - 7 Июня, 2006
|
|
YikxX
Пользователь
Откуда: NCR :) Регистрация: Февр. 2004
Всего: 304 сообщения
|
... в которой опять же не слова про то, каким образом считается "# local_vars=10". Ладно, это все уже на придирки похоже... Сорри.
----- Обломись! Я подложил туда носок...
|
Отправлено: 11:15 - 8 Июня, 2006
|
|
Spy
Реалист
Откуда: Все там будем... Регистрация: Май 2005
Всего: 374 сообщения
|
Цитата:
Например, про "с 0 до 13 - в скриптс.лст = 14" ни слова не сказано.
смтори сюда: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13. Вримание, вопрос: Сколько чисел? Правильно! 14. Фак править не надо. Как к доке по скриптам, к ней нареканий нет. А если ты не можешь самостоятельно сосчитать количество элементов, пронумерованных с 0 до 13 включительно, делай выводы.
----- Хочешь, чтобы что-то было сделано хорошо - сделай сам.
|
Отправлено: 15:25 - 8 Июня, 2006
|
|
YikxX
Пользователь
Откуда: NCR :) Регистрация: Февр. 2004
Всего: 304 сообщения
|
2 Spy: Не груби, пожалуйста. Просто есть люди, для которых может быть не очевидно, что ЛВАРы нумеруются с нуля. P.S. Я к таким людям не отношусь, так что успокойся. Предупреждение за археологию и выяснение личных отношений в теме. WG
----- Обломись! Я подложил туда носок...
|
Отправлено: 20:18 - 18 Июля, 2006
|
|
|
|