|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Возник такой вопрос - как самому задать стартовый тайл, на котором появится игрок при посищении карты. Очень нужно сделать это через скрипт. В принципе есть процедура - map_enter_p_proc и так-же другая op_move_to. В теории map_enter_p_proc вызывается при посищении карты, а op_move_to переносит игрока. Но если вписать op_move_to внутрь первой ничего не работает . Кто знает, как точно работает map_enter_p_proc? И ещё. Если задавать стартовый тайл через маппер и привязывать при помощи скрипта, у кого из них приоритет выше.Что в итоге будет выполняться?
|
Отправлено: 23:10 - 28 Окт., 2004
|
|
CrashBoom
Пользователь
Откуда: Москва Регистрация: Авг. 2004
Всего: 39 сообщений
|
map_enter_p_proc этот скрипт задаёт первое место появления чузена.
|
Отправлено: 23:15 - 28 Окт., 2004
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Ну вот и я обращаюсь за справкой :) Кусок кода: procedure move_pistols begin add_mult_objs_to_inven(self_obj, pistols,num_of_pistols); rm_mult_objs_from_inven(dude_obj, pistols,num_of_pistols); set_gunz_quest_complete; end При компиляции выдаёт "; expected" Другой кусок кода: procedure move_pistols begin test := add_mult_objs_to_inven(self_obj, pistols,num_of_pistols); test := rm_mult_objs_from_inven(dude_obj, pistols,num_of_pistols); set_gunz_quest_complete; end Компилируется без ошибок, хотя про add_mult_objs_to_inven и rm_mult_objs_from_inven в Доке указно, что это void, а не function... Я что-то не так делаю?
----- Scio me nihil scire
|
Отправлено: 14:20 - 29 Окт., 2004
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Цитата:
Компилируется без ошибок, хотя про add_mult_objs_to_inven и rm_mult_objs_from_inven в Доке указно, что это void, а не function... Я что-то не так делаю?
Дебажишь ты неправильно :). На будущее: за один раз можно вносить только одно исправление ;). Вот это вполне компилится: variable tmp; add_mult_objs_to_inven(self_obj, 1, 1); tmp := rm_mult_objs_from_inven(dude_obj, 1, 1); add_mult_objs_to_inven, действительно, ничего не возвращает, а вот rm_mult_objs_from_inven возвращает целое, о чём написано в доке.
|
Отправлено: 15:11 - 29 Окт., 2004
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Wasteland Ghost, спасибо :) Надо в следующий раз внимательно читать... А то бьюсь головой об стенку. Кстати, мой вариант компилился, но диалог после выполнения скрипта не закрывался. Видимо, из-за присвоения переменной значения процедуры :-/
----- Scio me nihil scire
|
Отправлено: 15:40 - 29 Окт., 2004
|
|
Maximus
Пользователь
Откуда: RF Регистрация: Нояб. 2004
Всего: 1 сообщение
|
Скажите где скачать скрипты от Fallout1? Желательно от русской версии.
----- Dura lex sad lex
|
Отправлено: 7:33 - 8 Ноября, 2004
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Кусок декомпилированного скрипта: if ((op_global_var(639) == 1) or (op_global_var(639) == 2)) then begin op_start_gdialog(1307, op_self_obj(), 4, -1, -1); maybe_start_dialog(); asm_push_value(6672); // помещаем в стэк значение 6672 asm(0x800d); // return? не знаю, что именно возвращает. видимо как-раз 6672 из "стэка возвратов"(?) asm_push_value(0); // последовательно помещаем asm_push_value(12); // в стэк 0 и 12 (как я понял, ссылка на процедуру) asm(0x8005); //call asm(0x801a); //удаление из стэка maybe_close_dialog(); maybe_op_end_gdialog(); end Я не очень большой специалист в асме. Скорее наоборот :) Реально ли определить - какая именно функция вызывается в этом куске кода? И если реально - то каким образом? (Отредактировал(а) Mynah - 14:34 - 9 Ноября, 2004) (Отредактировал(а) Mynah - 14:35 - 9 Ноября, 2004) (Добавление от 12:38 - 9 Ноября, 2004.) 2Maximus:
Цитата: Скажите где скачать скрипты от Fallout1?
ЕМНИП, нигде. Их, вроде бы, не выставляли для открытого доступа (хотя... точно сказать не могу). Пользуйся декомпилятором Noid'а, с ключом --fallout1.
----- Scio me nihil scire
|
Отправлено: 12:28 - 9 Ноября, 2004
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Есть функции, проверяющие, может ли один объект слышать(видеть) другой, есть функция, которая распологает криттера на заданной позиции, а если хекс блокирован - на ближайшем свободном хексе. Есть ли функции, которые проверяют можно ли видеть/слышать/стоять непосредственно на этом хексе? Пример: требуется узнать, может ли криттер встать на заданный хекс; требуется узнать, если криттер отойдет на 1 хекс, то будет ли он виден другому криттеру?
----- hit me, nail me, make me god
|
Отправлено: 12:37 - 16 Ноября, 2004
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
>>Есть ли функции, которые проверяют можно ли видеть/слышать/стоять непосредственно на этом хексе? Нет. >>требуется узнать, если криттер отойдет на 1 хекс, то будет ли он виден другому криттеру? Можно создать тестового критера, сделать critter_attempt_placement на нужный хекс и сравнить тайл-нум этого критера (куда его разместили на самом деле) с исходным тайлом. Если номера совпадут - всё ОК, размещение возможно. Иначе нет. Удаляем тестового критера и делаем всё остальное. Криво, конечно, зато работать будет. А первая задачка - вроде никак.
|
Отправлено: 13:35 - 16 Ноября, 2004
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Спасибо Raven, именно это я и ожидал услышать. Обыдно - пропадает возможность для создания нормального ИИ криттерам, создавать тестового криттера IMHO никак не прет. Еще такой ламмерский вопрос: как в скрипте узнать пол игрока?
----- hit me, nail me, make me god
|
Отправлено: 14:11 - 16 Ноября, 2004
|
|
|
|