» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Скрипты (Все вопросы по скриптингу - сюда)

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения

 
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
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com