|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Так...Спасибо большое,Павел, за правильный ответ, Ты выиграл поездку на Канары Теперь всё работает.Ошибка действительно была в номере скрипта.На самом деле он 1304 (у меня непропатченная версия) Но теперь другая проблема.И я уж точно не знаю как её решить. Из моего скрипта следует,что когда я уже поговорил с криттером насчё пистолета,он должен меня спрашивать,нашёл ли я пистолет.Но вместо этого он меня спрашивает ещё раз "Что тебе надо?" Я даже скрипт переделал(в сущности это одно и то же) Вот: #include "..\headers\command.h" #include "..\headers\define.h" #include "..\headers\myhead.h" #define LVAR_PARTY_MAN (0) #define LVAR_talk_pistol (1) #define LVAR_have_pistol (2) #define NAME 1304 #define Have_pistol ((obj_carrying_pid_obj(dude_obj,PID_10MM_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_LASER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_14MM_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_PLASMA_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_ALIEN_LASER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_223_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_NEEDLER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_PK12_GAUSS_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_YK32_PULSE_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_MAGNETO_LASER_PISTOL))) procedure start; procedure critter_p_proc; procedure pickup_p_proc; procedure talk_p_proc; procedure destroy_p_proc; procedure look_at_p_proc; procedure description_p_proc; procedure use_skill_on_p_proc; procedure use_obj_on_p_proc; procedure damage_p_proc; procedure map_enter_p_proc; procedure push_p_proc; procedure Node001; procedure Node002; procedure Node003; procedure Node004; procedure Node005; procedure Node006; procedure Node007; procedure Node008; procedure Node009; procedure Node010; procedure Node999; procedure start begin end procedure talk_p_proc begin dialogue(self_obj,Node001); end procedure Node001 begin if (LVAR_talk_pistol==2) then call Node008; else if(LVAR_talk_pistol==3)then call Node009; else call Node010; end procedure Node002 begin rep(2); opt(20,Node003); opt(21,Node999); end procedure Node003 begin rep(3); opt(30,Node004); opt(31,Node999); end procedure Node004 begin set_local_var(LVAR_talk_pistol,2); end procedure Node005 begin rep(50); opt(5,Node007); end procedure Node006 begin rep(411); opt(412,Node999); end procedure Node007 begin critter_add_trait (self_obj, 1, 6, 0); critter_add_trait (self_obj, 1, 5, 194); party_add(self_obj); set_local_var(LVAR_talk_pistol,3); set_local_var(LVAR_PARTY_MAN,3); end procedure critter_p_proc begin if Have_pistol then set_local_var(LVAR_have_pistol,2); end procedure pickup_p_proc begin end procedure destroy_p_proc begin end procedure look_at_p_proc begin end procedure description_p_proc begin end procedure use_skill_on_p_proc begin end procedure use_obj_on_p_proc begin end procedure damage_p_proc begin end procedure map_enter_p_proc begin end procedure push_p_proc begin end procedure Node999 begin end procedure Node008 begin rep(4); if (LVAR_have_pistol==2) then begin opt(40,Node005); opt(41,Node006); end else opt(42,Node006); end procedure Node009 begin rep(6); opt(60,Node999); end procedure Node010 begin rep(1); opt(10,Node002); opt(11,Node999) ; end Но всё равно он меня спрашивает всё время одно и то-же. (Отредактировал(а) binyan - 19:41 - 4 Июня, 2005)
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 19:40 - 4 Июня, 2005
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
В чем может быть пролема? 1) не прописано нужное количество вар в скрипт.лст 2) заведи вариблу для проверки, а то замучаешься. 3) и вообще заведи ГВАРу, вместо Лвары - сразу заработает. Лично у меня заработало. а вообще, все проверки веди в talk_p_proc.
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 19:19 - 5 Июня, 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
В чем может быть пролема? 1) не прописано нужное количество вар в скрипт.лст >> Прописано 2) заведи вариблу для проверки, а то замучаешься. >>Дла проверки чего? 3) и вообще заведи ГВАРу, вместо Лвары - сразу заработает. Лично у меня заработало. >>Хорошо попробую а вообще, все проверки веди в talk_p_proc. >>А critter_p_proc здесь почему не канает?Она ведь выполняется каждую секунду,или что то такое.. (Отредактировал(а) binyan - 14:37 - 6 Июня, 2005)
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 14:35 - 6 Июня, 2005
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
procedure Node001 begin if (LVAR_talk_pistol==2)or(variablA==2) then call Node008; ....... procedure Node004 begin set_local_var(LVAR_talk_pistol,2); variablA:=2; end Проверь, может заработает В critter_p_proc все работает, а вот в диалоге нет. Смотри от обратного: если в диалоге получается проблем, то может critter_p_proc не причем? Поставь ГВАРу и забудь о проблемах.
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 16:19 - 6 Июня, 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Ок,попробую Кстати,если обьявлять вариаблу,то объявлять её не в процедуре так?А то она только в процедуре работать и будет.
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 18:09 - 6 Июня, 2005
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
Да, у тебя получиться что-то вроде: ... procedure Node009; procedure Node010; procedure Node999; ... variable variablA; ...
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 18:47 - 6 Июня, 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Ок.Сегодня попробую,завтра тебе на мыло напишу,и если получится уже скрипт буду доделывать.
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 19:56 - 6 Июня, 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Павел, даже не знаю как дописать уже этот скрипт до нормы. Вроде бы уже и гвару сделал… Гвара зарегистрирована Вот привожу строчки из vault13.gam : GVAR_MODOC_GHOST_SEED_PIP :=0; // (631) GVAR_PARTY_MEMBERS_HIDDEN :=0; // (632) GVAR_CAR_PLACED_TILE :=0; // (633) GVAR_PARTY_MAN_talk_have_pistol :=0; // (634) GVAR_RESERVED_VAR2 :=0; // (635) GVAR_RESERVED_VAR3 :=0; // (636) GVAR_RESERVED_VAR4 :=0; // (637) Но криттер всё равно упрямо выдаёт мне «что тебе надо?» Поправь этот скрипт до того, чтобы он работал у тебя, и выложи его тут, или на мыло мне пришли, ОК? А то я и вправду уже не знаю что делать… Вот скрипт : /* Если разговаривал о пистолете GVAR_PARTY_MAN_talk_have_pistol==1 Если говорил о пистолете и он у тебя GVAR_PARTY_MAN_talk_have_pistol==2 Если говорил о пистолете и он у тебя и ты в партии GVAR_PARTY_MAN_talk_have_pistol==3 Если не говорил о пистолете GVAR_PARTY_MAN_talk_have_pistol==0 */ #include "..\headers\command.h" #include "..\headers\define.h" #include "..\headers\myhead.h" #define GVAR_PARTY_MAN_talk_have_pistol (0) #define NAME 1304 #define Have_pistol ((obj_carrying_pid_obj(dude_obj,PID_10MM_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_LASER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_14MM_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_PLASMA_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_ALIEN_LASER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_223_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_NEEDLER_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_PK12_GAUSS_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_YK32_PULSE_PISTOL))BWOR(obj_carrying_pid_obj(dude_obj,PID_MAGNETO_LASER_PISTOL))) procedure start; procedure critter_p_proc; procedure pickup_p_proc; procedure talk_p_proc; procedure destroy_p_proc; procedure look_at_p_proc; procedure description_p_proc; procedure use_skill_on_p_proc; procedure use_obj_on_p_proc; procedure damage_p_proc; procedure map_enter_p_proc; procedure push_p_proc; procedure Node001; procedure Node002; procedure Node003; procedure Node004; procedure Node005; procedure Node006; procedure Node007; procedure Node008; procedure Node009; procedure Node010; procedure Node999; procedure start begin end procedure talk_p_proc begin if Have_pistol then set_global_var(GVAR_PARTY_MAN_talk_have_pistol,2); dialogue(self_obj,Node001); end procedure Node001 begin if ((GVAR_PARTY_MAN_talk_have_pistol==1)BWOR(GVAR_PARTY_MAN_talk_have_pistol==2)) then call Node008; else if(GVAR_PARTY_MAN_talk_have_pistol==3)then call Node009; else call Node010; end procedure Node002 begin rep(2); opt(20,Node003); opt(21,Node999); end procedure Node003 begin rep(3); opt(30,Node004); opt(31,Node999); end procedure Node004 begin set_global_var(GVAR_PARTY_MAN_talk_have_pistol,1); end procedure Node005 begin rep(50); opt(5,Node007); end procedure Node006 begin rep(411); opt(412,Node999); end procedure Node007 begin critter_add_trait (self_obj, 1, 6, 0); critter_add_trait (self_obj, 1, 5, 194); party_add(self_obj); set_global_var(GVAR_PARTY_MAN_talk_have_pistol,3); end procedure critter_p_proc begin end procedure pickup_p_proc begin end procedure destroy_p_proc begin end procedure look_at_p_proc begin end procedure description_p_proc begin end procedure use_skill_on_p_proc begin end procedure use_obj_on_p_proc begin end procedure damage_p_proc begin end procedure map_enter_p_proc begin end procedure push_p_proc begin end procedure Node999 begin end procedure Node008 begin rep(4); if (GVAR_PARTY_MAN_talk_have_pistol==2) then begin opt(40,Node005); opt(41,Node006); end else opt(42,Node006); end procedure Node009 begin rep(6); opt(60,Node999); end procedure Node010 begin rep(1); opt(10,Node002); opt(11,Node999); end
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 0:55 - 7 Июня, 2005
|
|
FFAN
Пользователь Регистрация: Июнь 2005
Всего: 22 сообщения
|
Помогите, я к примеру декомпилировал скрипт kcsulik.int ( почти на любом скрипте глюк ) и когда хочу его обратно компилировать - выдает ошибку: Undefined symbol op_party_member_obj Делал все вроде правильно. Декомпилировал скрипт с помощью noid_decompiler , а компилировал с помощью watcom и bis_compiler. В чем проблема?
|
Отправлено: 15:14 - 11 Июня, 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Между компиляторами есть отличия в структуре команд. К примеру: Нойд - op_party_add(self_obj); BIS - party_add(self_obj); Декомпилируй/компил. всё одним компилятором. Для нода свой комп\декомп. в комплекте. Для BIS поищи в файлах
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 15:38 - 11 Июня, 2005
|
|
|
|