|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Опять диалоговый режим... Есть такой кусок... procedure Node240 begin Reply(240); gsay_option(NAME,241,Remuv,-1); gsay_option(NAME,242,Node5271,-1); gsay_option(NAME,25,DialogEnd,-1); end procedure Remuv begin variable var0; var0:=create_object(PID_SUPER_STIMPAK,0,0); add_mult_objs_to_inven(dude_obj,var0,1); var0:=obj_carrying_pid_obj(dude_obj,PID_TOMORROW_MAP); add_mult_objs_to_inven(self_obj,var0,1); rm_obj_from_inven(dude_obj,var0); call Node250; end procedure Node250 begin Reply(250); gsay_option(NAME,251,Node260,-1); gsay_option(NAME,22,DialogEnd,-1); end Все отлично работает... НО! При любой попытке выхода из локации на мировую карту происходит вылет в систему... Ремиш процедуру Remuv, и корректируешь переход на Node250 все работает. В чем может быть глюк в процедуре Remuv? Там же нет ничего сложного?...
----- За сим прощаюсь, Олег.
|
Отправлено: 1:49 - 18 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Код:
procedure Remuv begin variable var0; var0:=create_object(PID_SUPER_STIMPAK,0,0); add_mult_objs_to_inven(dude_obj,var0,1); var0:=obj_carrying_pid_obj(dude_obj,PID_TOMORROW_MAP); add_mult_objs_to_inven(self_obj,var0,1); rm_obj_from_inven(dude_obj,var0); call Node250; end
Ну, во-первых, объект сначала убирают из инвентаря, а затем помещают его в инвентарь другого объекта:
Код:
restock_obj := obj_carrying_pid_obj(source, the_pid); restock_trash := rm_mult_objs_from_inven(source, restock_obj, restock_amt); add_mult_objs_to_inven(target, restock_obj, restock_amt);
Вообще, посмотри COMMAND.H, секцию "General commands restocking inventory". Потому что так просто удалять объект из инвентаря нельзя -- если он в руке или "одет", анимация сглючит. Не смертельно, но некрасиво. ЗЫ Кстати, там кое-где в макросах ошибочки есть: вместо who_obj используется self_obj. Так что использовать их надо осторожно . И ошибки исправить .
|
Отправлено: 10:47 - 18 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Цитата:
Ну, во-первых, объект сначала убирают из инвентаря, а затем помещают его в инвентарь другого объекта: Вообще, посмотри COMMAND.H, секцию "General commands restocking inventory". Потому что так просто удалять объект из инвентаря нельзя -- если он в руке или "одет", анимация сглючит. Не смертельно, но некрасиво. ЗЫ Кстати, там кое-где в макросах ошибочки есть: вместо who_obj используется self_obj. Так что использовать их надо осторожно . И ошибки исправить .
Ну вообще-то делал как вы с пробками показывали... А за подсказку спасибо, бум посмотреть... Кстати я выкрутился тем, что сначало удалял, а потом создавал снова... Несколько такой, заход не через то место...
----- За сим прощаюсь, Олег.
|
Отправлено: 13:38 - 18 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
С пробками? С крышками/бабками/тугриками? Так там можно, там логика другая.
|
Отправлено: 10:31 - 20 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
ЭЭЭЭ Не уловил разници... Что пробки, что стимпаки сие есть инвентарь и лежит в мешке... В чем разность логики? Просветите пожалуста Уточняю, рассматривается мешок, а не руки и тело, там да другая логика, сначало лучче снять, а потом удалять...
----- За сим прощаюсь, Олег.
|
Отправлено: 14:22 - 20 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Для работы с крышками есть функция item_caps_adjust. И тут уже не важно, дал ты сначала или отнял. Вообще движок деньги как-то отдельно обрабатывает. Как -- уже вопрос к двиглоковырятелям. С объектами просто надо помнить логику. Удаление: 1. Получил указатель. 2. Убрал из рук. 3. Убрал из инвентаря. 4. Удалил. Перемещение: 1. Получил указатель. 2. Убрал из рук. 3. Убрал из инвентаря. 4. Положил в другой инвентарь.
|
Отправлено: 16:05 - 20 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
А что есть за такая процедура combat_is_starting_p_proc и combat_is_over_p_proc? combat_p_proc - выполняется во время боя, а эти когда и что делают? В описаниях ничего не нашол про них... Просветите пожалуста, вдруг нужная штука... ЗЫ: Судя по названиям они вызываются при начале и конце боя?
----- За сим прощаюсь, Олег.
|
Отправлено: 0:22 - 22 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Угу. Проверяется просто: запихиваешь в эти процедуры display_msg("combat is starting") и display_msg("combat is over") соответственно. Ну и смотришь ;).
|
Отправлено: 8:48 - 22 Сент., 2006
|
|
Keha
Пользователь Регистрация: Янв. 2006
Всего: 31 сообщение
|
Мне нужно в сюжете использование сотового телефона. Вот кусок скрипта:
Код:
procedure use_p_proc begin call talk_p_proc; end procedure talk_p_proc begin script_overrides; start_gdialog(5,dude_obj,-1,-1,-1); GSay_Start; call opt; GSay_End; End_Dialogue; end procedure opt begin gsay_reply(-1,"(ў®§®¦лҐ ¤Ґ©бвўЁп)"; gsay_option(-1, "Ћв«®¦Ёвм ®ЎЁ«Єг", enj, 0); giq_option(6, -1,"‡ў®Ёвм Їа®ЇгйҐл© §ў®®Є", prop, 0); giq_option(6, -1, "Џ®§ў®Ёвм ў Ё«ЁжЁо", enj, -1); giq_option(5, -1, "‚л§ў вм бЄ®аго Ї®б®йм", enj, -1); end
Если телефон использовать из руки при закрытом инвентаре то все хорошо. Открывается окно диалога и все как надо. А если телефон использовать из открытого инвентаря, то к сожалению окно диалога рисуется частично под окном инвентаря частично поверх. Получается некрасиво. Полазил по BIS_help в поисках чего-нибудь подходящего чтоб из скрипта перед вызовом диалога закрыть окно инвентаря, или как то иначе решить проблу не чего подходящего не нашел, возможно не по глазам. Мож кто что подскажет?
|
Отправлено: 14:40 - 24 Сент., 2006 | ИСПРАВЛЕНО: Keha - 14:42 - 24 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Пока не знаю чем помочь, но такая-же проблема была в моде EPA со скриптом для буклета-путеводителя по ЕРА, вышло обновление, посмотри может там это уже решено?...
----- За сим прощаюсь, Олег.
|
Отправлено: 21:04 - 24 Сент., 2006
|
|
|
|