|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Что-бы далеко не бегать, быстренько на выходе из арройо создал перса открывающего мою локацию. бегу в локацию, таже самая петрушка... LVAR нормально не работают... Привожу ниже скрипт карты, может что не то делаю посмотрите... #include "D:\Fallout2\mod\scripts\headers\define.h" #include "D:\Fallout2\mod\scripts\headers\updatmap.h" #include "D:\Fallout2\mod\scripts\headers\command.h" #include "D:\Fallout2\mod\scripts\headers\tomorrow.h" #define NAME SCRIPT_TOQUESTU //1316 #define CAR_POS_IN_MAP 20077 // #define CAR_ELEV_IN_MAP 0 // #define MVAR_Begin_Attack_Mike (0) // #define MVAR_Mike_Put (1) // #define MVAR_Mike_ID (2) // #define LVAR_Mike_Put (0) procedure start; procedure map_enter_p_proc; procedure map_update_p_proc; procedure map_exit_p_proc; procedure Set_Level_Map; export variable object_Mike // procedure start begin end procedure map_enter_p_proc begin Lighting; call Set_Level_Map; Check_Create_Car(CAR_POS_IN_MAP,CAR_ELEV_IN_MAP) end procedure map_update_p_proc begin display_msg("LVAR_Mike_Put:="+local_var(LVAR_Mike_Put)); // display_msg("MVAR_BA_Mike:="+map_var(MVAR_Begin_Attack_Mike)); Lighting; end procedure map_exit_p_proc begin end procedure Set_Level_Map begin variable Tomaps; if ((GAME_TIME_IN_DAYS-(global_var(GVAR_TOMORROW_DAYS)))<=3) and (local_var(LVAR_Mike_Put)<1) then begin inc_local_var(LVAR_Mike_Put); object_Mike:=create_object_sid(PID_MIKE,18491,0,-1); set_map_var(MVAR_Mike_ID,object_Mike); anim(object_Mike,ANIMATE_ROTATION,2); create_object_sid(PID_BED_4,18085,0,-1); create_object_sid(PID_WOOD_FIRE,18486,0,-1); Tomaps:=create_object(PID_TOMORROW_MAP,0,0); add_mult_objs_to_inven(object_Mike,Tomaps,1); end override_map_start_hex(19284,0,5); end В скриптс.лст все прописано... Скрипт проще некуда... ЗЫ: На MVAR внимания не обращайте... Это так, замена (Добавление от 21:28 - 12 Сент., 2006.) После непродолжительных экспериментов пришол к выводу, что данная проблема касается только скрипта карты. Во всех остальных скриптах обьектов находящихся на карте все отлично работает... Кто нить еще пользовался LVARами в скриптах карт? И как оно? Или это характерно только для моей карты?
----- За сим прощаюсь, Олег.
|
Отправлено: 20:42 - 12 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Просмотрел все бисовские скрипты карт. Ни в одном нет работы с LVARами, только с MVARами или GVARами... Это о чем нить говорит? Может LVARы нельзя использовать в скриптах карт?
----- За сим прощаюсь, Олег.
|
Отправлено: 23:42 - 12 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
А у тебя оно вообще компилится?
Код:
export variable object_Mike //
Цитата: В скриптс.лст все прописано...
А ты тут запость для контроля, так сказать. Щас проверить не могу, но сильно сомневаюсь в наличии подобных ограничений. Возьми скрипт карты artemple. Пропиши ему пару-тройку ЛВАР в скриптс.лст. Добавь туда запись/чтение/вывод. Убедись, что нет никаких лишних файлов типа патча000 или завалящего artemple.sav в папке DATA\MAPS или где-там-у-тебя-мод (бывает, если Фол падает). Убедись, что в cfg все пути правильные. Начни новую игру.
|
Отправлено: 11:25 - 13 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
ХМ... Вообще то да, компилиться... А что там такого? Вроде экспортирую переменную для общего пользования... Что не так? Все работает, просто для сохранения нужно было переделать на LVARы и тут затык... Постю конец ЛСТ... ccKevin.int ; Kevin in Navarro # local_vars=8 csAlarm.int ; Navarro base on alert lights # local_vars=1 ciQunWch.int ; Quincy Locker Watch Script # local_vars=1 ciRulWch.int ; Raul Locker Watch Script # local_vars=1 ciCmdWch.int ; Commanded Locker Watch Script # local_vars=1 SSStat.int ; NCR Statue # local_vars=0 ctFob.int ; Fob EXP Spatial Script # local_vars=1 ctPlans.int ; Vertibird EXP Spatial Script # local_vars=1 ctK9Part.int ; K9 Part EXP Spatial Script # local_vars=1 csArea2.int ; Script to signal if dude enters an area # local_vars=0 csOpen2.int ; Script to signal if dude uses door w/o permis # local_vars=1 ctSound.int ; Soundproof Room Spatial Script # local_vars=1 csOpen3.int ; Script to signal if dude uses door w/o permis # local_vars=1 ECTlkMon.int ; Talking Moonshiners # local_vars=8 ziWeakLk.int ; Generic Weak Lock Watch Script # local_vars=1 ziMedmLk.int ; Generic Medium Lock Watch Script # local_vars=1 dcCarnKd.int ; Carny Kid - The Den # local_vars=1 ciDocWch.int ; Raul Locker Watch Script # local_vars=1 ziHardLk.int ; Generic Hard Lock Watch Script # local_vars=1 CIMine.int ; Mines in Navarro # local_vars=6 niBisHLk.int ; New Reno Bishop Hard Locker # local_vars=1 niBisHDr.int ; New Reno Bishop Hard Locked Door # local_vars=6 ntRicRom.int ; New Reno Richard Wright Room Spacial # local_vars=1 entony.int ; Captain Anthony Fassard BrokenHills # local_vars=4 cesaer.int ; Vertibird menu for player # local_vars=4 ziVrTrnk.int ; Pilotable Vertibird for player # local_vars=4 maria.int ; Officer Maria from Navarro # local_vars=4 pilot.int ; Air strip guard from Navarro # local_vars=4 WTPlTrp15.int ; Plasma Floor Trap Level 2 of Seirra (Center) # local_vars=0 WTPlTrp16.int ; Plasma Floor Trap Level 2 of Seirra (Center) # local_vars=0 WTPlTrp17.int ; Plasma Floor Trap Level 2 of Seirra (Center) # local_vars=0 WTPlTrp18.int ; Plasma Floor Trap Level 2 of Seirra (Center) # local_vars=0 viWell.int ; Vault City Courtyard Well # local_vars=0 SIPtbox2.int ; box where Merk hides your car trunk sutff # local_vars=9 giWell.int ; Gecko's Well # local_vars=0 toquestu.int ; скрипт карты toquestu.map # local_vars=2 tomike.int ; Майк, дает квест на поиск # local_vars=3 tomaps.int ; скрипт карты с местом поселения # local_vars=3 tomonste.int ; скрипт монстров на карте toquestu.map # local_vars=3 Кстати в ФГеке я так понял есть проверка на соответствие, он на него не ругается. А с артемпле приду домой попробую...
----- За сим прощаюсь, Олег.
|
Отправлено: 17:23 - 13 Сент., 2006 | ИСПРАВЛЕНО: Oleg1969 - 17:37 - 13 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Цитата: А что там такого? Вроде экспортирую переменную для общего пользования... Что не так?
Точки с запятой нет.
|
Отправлено: 18:47 - 13 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Странно, а у меня и так работает... Ну в обчем проверил я на артемпле... Та-же самая петрушка... LVAR-ы в скрипте карт не работают! Проверьте пожалуста у себя, что-бы быть уверенным на 100%...
----- За сим прощаюсь, Олег.
|
Отправлено: 19:06 - 13 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Ну как ? Кто нить проверил еще? Это я по поводу LVAR... Кстати у меня еще такой вопрос возник по поводу диалогового режима... В этом режиме возможно проверять что есть у криттера в мешке? а то у меня вот такая конструкция не хочет работать... Да старты диалогового режима сделаны это уже переход... procedure DialogStart begin if (obj_is_carrying_obj_pid(self_obj,PID_TOMORROW_MAP)==0) then call Node004; //если заданный обьект в мешке отсутствует то переход на Node004 if local_var(LVAR_Mike_Talk)==0 then Reply(2); else Reply(random(28,30)); if local_var(LVAR_Mike_Talk)==0 then call Node001; // else if local_var(LVAR_Mike_Talk)==1 then call Node002; // else if local_var(LVAR_Mike_Talk)==2 then call Node003; // end Вот первый if с переходом на ноду004 не срабатывает, хотя обьекта у криттера нет... Кстати а гдеб почитать об ограничениях диалогового режима...
----- За сим прощаюсь, Олег.
|
Отправлено: 22:44 - 14 Сент., 2006
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Конструкция кошмарная сама по себе . Вообще в процедуре должен быть или вызов другой процедуры, или Reply + Options.
|
Отправлено: 9:12 - 15 Сент., 2006
|
|
Oleg1969
Пользователь
Откуда: Саратов Регистрация: Май 2006
Всего: 168 сообщений
|
Цитата: Quote: from Wasteland Ghost on 9:12 - 15 Сент., 2006 Конструкция кошмарная сама по себе . Вообще в процедуре должен быть или вызов другой процедуры, или Reply + Options.
Ага, согласен, кошмарная... Просто прилепил на скору руку, проверить одну мыслю... А оно не работат... Переделал, в нормальный вид привел, теперь все работат... Пришол к выводу. Могу сказать что нуно Reply + все остальное, а в перемешку не работат... Вот что у меня получилось окончательно... : procedure DialogStart begin if local_var(LVAR_Mike_Talk)==0 then Reply(2); else if local_var(LVAR_Mike_Talk)==3 then Reply(random(200,204)); else Reply(random(28,30)); if local_var(LVAR_Mike_Talk)==0 then call Node001; // else if local_var(LVAR_Mike_Talk)==1 then call Node002; // else if local_var(LVAR_Mike_Talk)==2 then call Node003; // else if local_var(LVAR_Mike_Talk)==3 then call Node004; // end Я так думаю, эта конструкция лучче выглядит... Можно конечно еще улучшить но лениво...
----- За сим прощаюсь, Олег.
|
Отправлено: 10:43 - 15 Сент., 2006
|
|
Dar
Пользователь
Откуда: Воронеж Регистрация: Дек. 2004
Всего: 289 сообщений
|
Почему пациент мрет при применении стимпаков? Кусок скрипта пациента. procedure use_obj_on_p_proc begin variable UsedItem_0; variable UsedItem_1; display_msg("One" + " LVAR_Diagnosed_Roge =" + local_var(LVAR_Diagnosed_Roge) + " LVAR_Wounded_Roge =" + local_var(LVAR_Wounded_Roge) + " global_var(789)=" + global_var(789)); if( local_var(LVAR_Diagnosed_Roge) == 2) and (has_skill( dude_obj, SKILL_DOCTOR) >= 60) and (global_var(789) == 16) then begin if( local_var(LVAR_Wounded_Roge) == 0 ) then begin UsedItem_0 := obj_being_used_with; if ( obj_pid(UsedItem_0) == PID_STIMPAK) then begin set_local_var(LVAR_Wounded_Roge, 1); float_msg(dude_obj,message_str(1595,249),4); end else begin if ( obj_pid(UsedItem_0) != PID_STIMPAK) then begin float_msg(dude_obj,message_str(1595,250),4); set_global_var(788,-1); kill_critter(self_obj, 48); end end end if( local_var(LVAR_Wounded_Roge) ==1 ) then begin UsedItem_1 := obj_being_used_with; script_overrides; if( obj_pid(UsedItem_1) == PID_MEDICAL_SUPPLIES) then begin set_local_var(LVAR_Wounded_Roge, 2); float_msg(dude_obj,message_str(1595,249),4); end else begin if( obj_pid(UsedItem_1) != PID_MEDICAL_SUPPLIES ) then begin float_msg(dude_obj,message_str(1595,250),4); set_global_var(788,-1); kill_critter(self_obj, 48); end end end end display_msg("Two" + " LVAR_Diagnosed_Roge =" + local_var(LVAR_Diagnosed_Roge) + " LVAR_Wounded_Roge =" + local_var(LVAR_Wounded_Roge) + " global_var(789)=" + global_var(789)); end
|
Отправлено: 23:20 - 17 Сент., 2006
|
|
|
|