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

 
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Нет. Отловить воровство можно только в скрипте кролика и только при неудаче через pickup_p_proc.

Отправлено: 8:09 - 24 Мая, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

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

Эх, жаль.

Отправлено: 0:12 - 25 Мая, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Вообще, вопросами воровства занимался Рейвен. Посмотри в этой теме.

Отправлено: 8:15 - 25 Мая, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

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

Не - там все помимо чека вне кролика.

Отправлено: 23:51 - 26 Мая, 2005
binyan
Пользователь

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

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

Написал я скрипт.Пробовал скомпилировать,компилятор выдавал ошибки.
Отловил ошибки.Всё скомпилировалось.
Добавил скрипт в игру,добавил мсг в игру.
Через маппер привязал скрипт к криттеру.
Отлично!!Захожу в игру...
Подхожу к криттеру(к которому скрипт прикреплён),завязываю с ним диалог.И что вы думаете?Выдаёт мне ПУСТОЕ диалоговое окно.То есть диалог-то начался,а вот реплик и опций тю-тю.
Вот мне и интерестно,что у меня за ошибка в скрипте?
Может кто нибудь знает?
Вот скрипт :

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


#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 start begin
end


procedure talk_p_proc begin
dialogue(self_obj,Node001);
end

procedure Node001 begin
if (LVAR_talk_pistol==2) then
begin
rep(4);
if (LVAR_have_pistol==2) then
begin
opt(40,Node005);
opt(41,Node006);
end

else
opt(42,Node006);
end

else if(LVAR_talk_pistol==3)then
begin
rep(6);
opt(60,end_dialogue);
end

else
begin
rep(1);
opt(10,Node002);
opt(11,end_dialogue) ;
end

end

procedure Node002 begin
rep(2);
opt(20,Node003);
opt(21,end_dialogue);
end

procedure Node003 begin
rep(3);
opt(30,Node004);
opt(31,end_dialogue);
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,end_dialogue);
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

Вот myhead.h :
#define rep(x)  gsay_reply(NAME,mstr(x))                            
#define opt(x,y)  gsay_option(NAME,x,y,-1)                            
#define dialogue(x,y) start_gdialog(NAME, x, 4, -1, -1);\                                          
                     gsay_start;\
                     call y;\
                     gsay_end;\
                     end_dialogue
                     
Вот мсг:

1. Привет,что тебе надо?
10.Пойдём со мной
11.Ничего
2.Сначала мне нужно оружие
20.Я принесу тебе оружие
21.У меня нет оружия,прощай.
3.Мне нужен пистолет
30.Хорошо,я принесу тебе пистолет
31.Забудь.Я передумал.Я не пойду за оружием.Прощай.
4.Ты уже нашёл пистолет для меня?
40.Да,вот он [Показываете пистолет]
41.[Врёте] нет,пока не нашёл
42.Нет,пока не нашёл
411.Тогда желаю удачи в поисках
412.Спасибо [уходите]
5.Хорошо.Я рад к тебе присоединиться
50.Отлично,пойдём
6.Ну вот я и в команде
60.Да.Класс

(Отредактировал(а) binyan - 14:08 - 3 Июня, 2005)

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 13:24 - 3 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:
opt(60,end_dialogue);

Что это? Так нельзя. Если ты хочешь завершить диалог, то сделай пустую ноду и ссылайся на неё, например,так:
Код:
 
procedure Node999 begin
end

procedure NodeXXX begin
       opt(60,Node999);
end



Ещё настораживает макрос
#define opt(x,y)  gsay_option(NAME,x,y,-1)

Реакция -1 равна не бывает. Или 49, или 50, или 51.

Отправлено: 17:51 - 3 Июня, 2005
binyan
Пользователь

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

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

Сначала я и делал пустую ноду,но мне компилятор выдавал,что нода не заполнена,или что то в этом роде.
А насчёт gsay_option...Это мне Павел myhead делал.Не знаю...Но думаю,что если бы реакции такой не было,то скрипт попросту  не скомпилировался бы.


(Добавление от 21:02 - 3 Июня, 2005.)


А!!!Вспомнил.По моему -1 это никакой реакции.Нет?

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 20:56 - 3 Июня, 2005
binyan
Пользователь

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

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

Ок..Чуть чуть разобрался.Заменил end_dialogue на Node999.Не компилировалось у меня ,потому что я(тупая мая башка) забывал объявить Node999,поэтому мне выдавалось сообщение о том,что Нода не объявлена.
Ну ладно.Заменил я,обьявил,всё скомпильнулось,я добавил скрипт в игру.
Захожу,начинаю новую игру,подхожу к криттеру,делаю попытку заговорить.
На диалоговом экране мне с жутким лязгом вылезает сообщение о том,что я полный дурак,и не дружу с английским языком.
А сообщение такого типа :

GDialog::Error Grabbing text mesagge

Ну что граждане,какие будут мысли по этому поводу?



(Отредактировал(а) binyan - 0:19 - 4 Июня, 2005)

-----
...выражая озадаченность, граничащую с озабоченностью..

Отправлено: 0:16 - 4 Июня, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

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

>>GDialog::Error Grabbing text mesagge

Ошибки в мсг или он не там, где должен быть или не прописан или в нем левые символы, например # - одна штука.

Гм, у тебя случаем в мсг буквально не написано
>> 1. Привет,что тебе надо?
надо
{1}{}{Привет,что тебе надо?}
и т.д.

Отправлено: 0:46 - 4 Июня, 2005
Pavel
Модератор

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

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

Может ошибка тут:

#define NAME 1461 //тут необходимо поставить правильный номер по списку, и все заработает. Список это и есть номер по списку в script.lst.

А то уж как то одинаковый с моим номером, а у меня там скиптов немножко добавлено...

-----
В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...

Отправлено: 1:18 - 4 Июня, 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