» 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 ] Все собщения

 
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
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 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