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

 
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
 

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