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

Цитата:
Quote: from Wasteland Ghost on 12:39 - 10 Июня, 2006
[quote]ну вообщето переменной присваивается значение стоящее в скобках... Ну ладно это особенности компилятора...

Вообще-то, батенька, это не переменная, это макроимя. Читай ФАК или любую доку по препроцессорам. Означает сей факт, что если ты напишешь
#define MY_DEF    HORRIGAN_KOZEL
То везде вместо MY_DEF препроцессор (компилятор тут отдыхает и умывает руки, не его это вотчина) подставит HORRIGAN_KOZEL. Препроцессор не выполняет вычислений, поэтому скобки в макросах - это хороший тон.[/quote]

МММММ Мадам (или модемуазель?), под словом "компилятор" я имел ввиду общее понятие, с препроцессором, без него, мне без разници ... И если я могу чему-то присвоить какое-то значение то это для меня тоже переменная и неважно чем задается ей это значение... Давайте не будем цепляться к словам...  Вот так вот, поэтому я и говорю, что это особенности компилятора и я их на данный момент изучаю...

Спасибо всем кто откликнулся на мой вопрос, на данный момент он решон с помощью автора скрипта, в чем ему большое СПАСИБО!

ЗЫ: Кстати у меня глупая особенность сначала изучить доступные доки и факи...


-----
За сим прощаюсь, Олег.

Отправлено: 12:26 - 11 Июня, 2006
Oleg1969
Пользователь

Откуда: Саратов
Регистрация: Май 2006

Всего: 168 сообщений

Посмотрите в чем дело: Не хочет работать скрипт сирены
компилятор крмпилит без проблем, логика не нарушена, а не работает... Или работает но не предсказуемо, когда захочет а не сразу после установленного бита....

/*  &#209;&#234;&#240;&#232;&#239;&#242; &#241;&#232;&#240;&#229;&#237;&#251; */
#include  "D:\Fallout2\mod\scripts\headers\define.h"
#include  "D:\Fallout2\mod\scripts\HEADERS\command.h"

#define NAME        SCRIPT_TOKLAXON     //1307

procedure start;
procedure map_update_p_proc;

procedure start begin
end

procedure map_update_p_proc
begin
//variable  item;
 if (gvar_bit(GVAR_RESERVED_VAR59,bit_1)==1) then begin
   if obj_pid(self_obj) == PID_NS_LIGHT then create_object(PID_NS_FLASHING_LIGHT,tile_num(self_obj),elevation(self_obj));
   else create_object(PID_EW_FLASHING_LIGHT,tile_num(self_obj),elevation(self_obj));
 end
end

Вот такие пироги...



-----
За сим прощаюсь, Олег.

Отправлено: 16:21 - 16 Июня, 2006
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

На сколько я могу видеть, не все кодовые блоки begin ... end корректно закрыты. Попробуй так и сравни поведение (если правильно понял, куда относится else):

procedure map_update_p_proc
begin
//variable  item;
if (gvar_bit(GVAR_RESERVED_VAR59,bit_1)==1) then begin
  if obj_pid(self_obj) == PID_NS_LIGHT then begin create_object(PID_NS_FLASHING_LIGHT,tile_num(self_obj),elevation(self_obj));
end
  else begin create_object(PID_EW_FLASHING_LIGHT,tile_num(self_obj),elevation(self_obj));
 end
end
end


-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 16:35 - 16 Июня, 2006
Oleg1969
Пользователь

Откуда: Саратов
Регистрация: Май 2006

Всего: 168 сообщений

МММ Все закрыто правильно... Сколько бегинов столько и эндов... А еще мона почитать доку и увидеть, что бегин в условиях применяется только для обьединения в блоки...

А причину я нашол. В маппере не работает, а вот в игре как часы заработало все...! В обчем маппер для тестов неподходит, кстати в доке это тоже написано... Грабли...

Всем спасибо.


-----
За сим прощаюсь, Олег.

Отправлено: 14:31 - 17 Июня, 2006
Oleg1969
Пользователь

Откуда: Саратов
Регистрация: Май 2006

Всего: 168 сообщений

Такой вопрос возник...
Как долго могут выполняться скрипты (с какой скоростью) и что на это влияет? А то уже запарился, на простейших вещах то сразу срабатывает, то с тааааким запаздыванием, что ОЙ!!!
И второй вопрос, пользуюсь у себя стандартными макросами по установке, проверке и снятию бит... На сколько сии операции медленны и имеет ли смысл перейти на обычные переменные для ускорения процесса? Битами у меня флаги на карте выставляются...

-----
За сим прощаюсь, Олег.

Отправлено: 1:54 - 19 Июня, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

Всего: 404 сообщения

Цитата:
Как долго могут выполняться скрипты (с какой скоростью) и что на это влияет? А то уже запарился, на простейших вещах то сразу срабатывает, то с тааааким запаздыванием, что ОЙ!!!

Не знаю, у меня только однажды было серьезное запаздывание. Во время диалога мой скрипт читал каждую реплику, высеивая из нее нужную подстроку. Т.е. было сравнение строк нехилое количество раз. Хотя чисто интуитивно я всегда делаю привязки по времени к каким-нибудь обработчикам.
Цитата:
И второй вопрос, пользуюсь у себя стандартными макросами по установке, проверке и снятию бит... На сколько сии операции медленны и имеет ли смысл перейти на обычные переменные для ускорения процесса? Битами у меня флаги на карте выставляются...

ИМХО bwor и bwand реализованиы как раз or и and, установка бита - установка числа, проверка наличия бита - bwand и сравнение двух чисел. Плохо только если делаешь shr, shl. А так -  забей, пиши как удобно, на фоне общей неэффективности это все незаметно.

-----
hit me, nail me, make me god

Отправлено: 16:00 - 19 Июня, 2006 | ИСПРАВЛЕНО: Alan Killenger - 17:01 - 19 Июня, 2006
Sokil
Пользователь

Откуда: Омск
Регистрация: Март 2004

Всего: 120 сообщений

Ребята, подскажите, что я делаю не так? Какие-то проблемы с бартером. По плану персонаж предлагает Чузу купить плоскогубцы. Если тот соглашается, идет вызов режима бартера. Далее, если герой выменивает плоские, персонаж должен сказать что-то типа "Вот и молодец", если не вменивает - "Почему ты передумал?"
В реале же получается так, что фраза персонажа вообще не появляется. Когда Чуз покупает плоскогубцы, в режиме бартера появляется фраза "Хорошая сделка, бла-бла-бла." По выходе из бартера она не стирается никоим образом. И реплика персонажа просто не появляется (вообще-то в истории диалога она присутствует, но вот на дисплее не высвечивается).

Пытался делать по-всякому, результат нулевой. Вот кусок кода:

Цитата:

procedure inf_trade begin
variable item;
  item:=create_object(PID_MULTI_TOOL,1,1);
  add_obj_to_inven(self_obj, item);
  gdialog_barter;                                                  
  call trade_bufer;
end

procedure trade_bufer begin
  Reply(" ");                                                      

  if (obj_is_carrying_obj_pid(dude_obj,PID_MULTI_TOOL)) then call Node030;
  else call Node031;

end

procedure Node030 begin  
  Reply(mstr(780));                                                      
  NOption(783,Node999,1);                                        
end

procedure Node031 begin
  Reply(mstr(781));                                                      
  NOption(782,Node999,1);                                        
end



Что я делаю неправильно, и как сделать правильно ;) ? Чтобы закончил торговать - получил адекватную фразу?

Отправлено: 23:04 - 23 Июня, 2006
Oleg1969
Пользователь

Откуда: Саратов
Регистрация: Май 2006

Всего: 168 сообщений

ЭЭЭ Я не спец, пока только начинающий, но судя по всему у тебя выдается стандартная фраза при бартере попробуй на входе в процедуру поставить script_overrides; может поможет... Это я пока понял из описания процесса... Счас попытаюсь посмотреть сам скрипт...

-----
За сим прощаюсь, Олег.

Отправлено: 8:28 - 24 Июня, 2006
Sokil
Пользователь

Откуда: Омск
Регистрация: Март 2004

Всего: 120 сообщений

Проблема решена. Пусть, не слишком изящно, но решена. Просто в процедуре, следующей после выхода из бартера, добавил опцию [Далее]. После этого диалог отображается нормально.
Кстати, в вышеприведенном примере, в процедуре trade_bufer не работал условный переход (где проверялось наличие плоскогубцев в инвентаре Чуза).  Когда я перенес его в другую процедуру, все заработало. Такое впечатление , что после выхода из бартера половина скриптовых команд не отрабатывается.

Отправлено: 13:07 - 24 Июня, 2006
Akkella
Пользователь

Регистрация: Авг. 2006

Всего: 175 сообщений

И снова здрасте.)
Такой вопрос.
Стоят три НПС и напротив них еще двое.
Чузен подбегает к троим и ведет диалог с одним из них, один из вариантов троица нападает на Чузена. (Они прописаны в одной команде)
Вопрос:
Как сделать так, чтоб два напротив напали на троих. (Они как бы враги и пользуются ситуевиной)

Отправлено: 7:36 - 15 Авг., 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