| 
            |  |  | 
            | Raven Пользователь
 
 Откуда: Владик
 Регистрация: Февр. 2004
 
 Всего: 408 сообщений
 | >>... else if ((global_var((38)) == 1)) then Static_Reaction:=S\ ... <- ВОт она ета S судя по всему, от которой он ломается
 
 Ааааа. Всё понятно. Сам мучался. Гадкий Ватком обрезает длинные строки (принудительно) и ставит им в конце '\' - символ продолжения строки. Но компайлер такое не хавает. Теоретически, это отключается каким-то ключом. Практически строки всё равно продолжают обрезаться. Я, честно говоря, давно перешёл на борландовский препроцессор. Он таких фокусов не делает.
 
 Как чинить - после прохода препроцессора рукам объединять длинные обрезанные строчки опять в одну. Муторно, да.
 
 
 (Добавление от  14:59 - 11 Янв., 2005.)
 
 
 to Ray
 
 http://www.teamx.ru/fop/docs/BIS_help.html
 Описание всех - ну, почти - Фоловских функций. Там нет say-режима. О котором как нибудь потом :-)
 
 http://www.teamx.ru/fop/docs/FScript-HOWTO
 Это так, на всякий случай :-)
 |  | Отправлено: 14:55 - 11 Янв., 2005
 |  |  | 
            | ChosenOne Пользователь
 
 Откуда: г. Химки
 Регистрация: Март 2004
 
 Всего: 23 сообщения
 | Мдя... Как говориться - сполшное расстройство... ну ладно...
 Borland'овский препроцессор с чем идёт в поставку... у меня просто есть Borland C++(не билдер)...
 
 (Отредактировал(а) ChosenOne - 16:26 - 11 Янв., 2005)
 
 -----
 Иди и впредь твори добро, но остерегайся соблазнов и красивых интерфейсов. Потому как не все золото, что блестит. [PNWORLD] - Post Nuclear World!
 LISTEN TO BLACK SABBATH
 |  | Отправлено: 16:21 - 11 Янв., 2005
 |  |  | 
            | Raven Пользователь
 
 Откуда: Владик
 Регистрация: Февр. 2004
 
 Всего: 408 сообщений
 | Я от Borland C++ Command Line Tools брал. Он весит 90кб.
 |  | Отправлено: 17:57 - 11 Янв., 2005
 |  |  | 
            | Net Пользователь
 
 Откуда: Samara
 Регистрация: Дек. 2004
 
 Всего: 8 сообщений
 | #include "headers\define.h"
 #include "headers\command.h"
 #include "headers\newland.h"
 
 #define NAME 1309
 
 procedure Node001;
 procedure Node002;
 procedure Node003;
 procedure Node004;
 procedure Node005;
 procedure Node999;
 
 procedure start begin
 end
 
 #define LVAR_Hostile (1)
 
 procedure look_at_p_proc begin
 display_msg(message_str(NAME,100));
 //message_str(NAME,random(100,102))
 end
 
 
 
 
 procedure critter_p_proc begin
 if (local_var(LVAR_Hostile) == 1) then
 begin
 attack(dude_obj);
 
 end
 end
 
 
 procedure talk_p_proc begin
 start_gdialog(NAME,self_obj,-1,-1,-1);
 GSay_Start;
 call Node001;
 GSay_End;
 End_Dialogue;
 end
 
 
 procedure Node001 begin
 gsay_reply(NAME,103);
 
 if get_critter_stat(dude_obj,4) >= 4 then begin
 gsay_option(NAME, 104, Node002,-1);
 gsay_option(NAME, 105, Node999,-1);
 end
 else begin
 gsay_option(NAME, 106, Node999,-1);
 end
 end
 
 procedure Node002 begin
 gsay_reply(NAME,107);
 gsay_option(NAME,obj_name(dude_obj),Node004,-1);
 gsay_option(NAME,109,Node003,-1);
 gsay_option(NAME,110,Node005,-1);
 end
 
 procedure Node003 begin
 gsay_reply(NAME,111);
 gsay_option(NAME,112,Node004,-1);
 gsay_option(NAME,113,Node005,-1);
 gsay_option(NAME,114,Node999,-1);
 end
 procedure Node005 begin
 set_local_var(LVAR_Hostile,1);
 call Node999;
 end
 procedure Node004 begin
 gsay_reply(NAME,115);
 gsay_option(NAME,116,Node999,-1);
 gsay_option(NAME,117,Node999,-1);
 end
 procedure Node999 begin
 end
 
 Raven, в мапере работает диалог, но не атакует. В Фоле не работает диалог
  Я не могу пока еще понять полностью принцип работы движка, поэтому понять в чем проблема не могу. |  | Отправлено: 20:58 - 11 Янв., 2005
 |  |  | 
            | Pavel Модератор
 
 Откуда: Одесса Украина
 Регистрация: Май 2004
 
 Всего: 368 сообщений
 | 1) прописана ли в скрипт.лст последняя цифра в строке больше 0.
 
 попробуй по подобию БИС
 2) #define LVAR_Hostile (1) поставь 5. Получится #define LVAR_Hostile (5) - при сэйве 5 вара сама переведет в бой.
 
 3) вместо Node005 поставь Node998 - боевой выход.
 set_local_var(LVAR_Hostile,2);
 
 4) в critter_p_proc  напиши
 if ((local_var(LVAR_Hostile) == 2) and (obj_can_see_obj(self_obj,dude_obj))) then begin
 set_local_var(LVAR_Hostile,1);
 attack(dude_obj);
 
 -----
 В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
 |  | Отправлено: 2:58 - 12 Янв., 2005
 |  |  | 
            | ChosenOne Пользователь
 
 Откуда: г. Химки
 Регистрация: Март 2004
 
 Всего: 23 сообщения
 | Так ребят, я порассудил и решил, что "ладно фиг с ним, я пока не гений скриптингы и мои скрипты уж он потерпит прокомпилирует"
 So it was...
 Но столкнулся я с проблемкой...
 Надобно мне что бы NPC убегал если его ударят(ну вернее  не дрался, а уходил во время боя), написал я скрипт, запустил в Игре - ну не убегает, хоты ты тресни(его по голове)...
 Вот значит кусок исходника:
 
 
 Цитата:
 procedure damage_p_proc begin
 script_overrides;
 if (source_obj == dude_obj) then begin
 set_local_var(LVAR_Personal_Enemy,1);
 end
 
 -----------
 
 begin
 if (((local_var(LVAR_Hostile) == 2)or(local_var(LVAR_Personal_Enemy) == 1)) and (obj_can_see_obj(self_obj,dude_obj))) then begin
 set_local_var(LVAR_Hostile,1);
 Flee_From_Dude
 end
 else if ((random(0,100) == 1) and (In_Timed_Event == 0)) then begin
 In_Timed_Event:=1;
 add_timer_event(self_obj,game_ticks(random(17,37)),1);
 end
 
 
 Поможите, люди добрые!
 
 -----
 Иди и впредь твори добро, но остерегайся соблазнов и красивых интерфейсов. Потому как не все золото, что блестит. [PNWORLD] - Post Nuclear World!
 LISTEN TO BLACK SABBATH
 |  | Отправлено: 21:43 - 13 Янв., 2005
 |  |  | 
            | Raven Пользователь
 
 Откуда: Владик
 Регистрация: Февр. 2004
 
 Всего: 408 сообщений
 | А всё, что ниже "--------------", к какой процедуре принадлежит? Не critter_p_proc, часом? Она во время боя не вызывается. Как и map_update, ЕМНИП. Ставить флаг лучше всего в том же damage_p_proc.
 |  | Отправлено: 9:08 - 14 Янв., 2005
 |  |  | 
            | Net Пользователь
 
 Откуда: Samara
 Регистрация: Дек. 2004
 
 Всего: 8 сообщений
 | В мапере диалог работает, а в игре - нет. Что длеать? Скрипт см выше
 |  | Отправлено: 14:00 - 14 Янв., 2005
 |  |  | 
            | Raven Пользователь
 
 Откуда: Владик
 Регистрация: Февр. 2004
 
 Всего: 408 сообщений
 | to Net
 
 Скомпилял (закомментив подключение newland.h). Прекрасно работает как в мапере, так и в игре.
 
 Предположение: а ты скрипт в игре, часом, не через ctrl+r тестишь? Там половина обработчиков не вызывается. Короче: опиши пошагово процесс добавления своего скрипта в игру.
 |  | Отправлено: 14:10 - 14 Янв., 2005
 |  |  | 
            | Net Пользователь
 
 Откуда: Samara
 Регистрация: Дек. 2004
 
 Всего: 8 сообщений
 | To Raven.
 Ты мозг. Учту про CTRL+r
  Вот она пропаганда ctrl+r, вредители блин. |  | Отправлено: 19:15 - 14 Янв., 2005
 |  |  |  |  |