|
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
|
|
|
|