• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 572
Последнее редактирование модератором:

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
Я создал НПС и диалог к нему, а когда скомпилировал скрипты, при разговоре с НПС высвечивается только Ende. Как сделать так что бы диалог работал?.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Я создал НПС и диалог к нему, а когда скомпилировал скрипты, при разговоре с НПС высвечивается только Ende. Как сделать так что бы диалог работал?.

Скрипт диалога в спойлер. Скорее всего что-то поставил в условие и оно не срабатывает.
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
hell9999,
Вот скрипт
instance DIA_Lewaser_Exit(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 999;
condition = DIA_Lewaser_Exit_Condition;
information = DIA_Lewaser_Exit_Info;
permanent = 1;
description = DIALOG_ENDE;
};


func int DIA_Lewaser_Exit_Condition()
{
return 1;
};

func void DIA_Lewaser_Exit_Info()
{
AI_StopProcessInfos(self);
};



var int Pir1;

instance DIA_Lewaser_way(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 999;
condition = DIA_Lewaser_Way_Condition;
information = DIA_Lewaser_Way_Info;
permanent = 0;
important = 1;
};


func int DIA_Lewaser_Way_Condition()

{
return 1;
};

func void DIA_Lewaser_Way_Info()
{
AI_Output (self, other, "DIA_Lewaser_Way_07_00");//Эй, Парень! Погоди-ка.
AI_Output (self, other, "DIA_Lewaser_Way_07_02");//Знаю что вопрос глупый, но ты не подскажешь как можно пройти в этот лагерь минуя стражу?
AI_Output (other, self, "DIA_Lewaser_Way_15_03");//Ээээ... никак...
AI_Output (other, self, "DIA_Lewaser_Way_15_04");//Но ты мог бы заплатить стражникам что бы они тебя впустили.
AI_Output (self, other, "DIA_Lewaser_Way_07_05");//К сожалению денег у меня нет
AI_Output (self, other, "DIA_Lewaser_Way_07_06");//(оценивающе) Хотя ты мог бы мне помочь...
Log_CreateTopic (CH3_Pirat, LOG_MISSION);
Log_SetTopicStatus (CH3_Pirat, LOG_RUNNING);
B_LogEntry (CH3_Pirat, "Я встретил какого-то странного парня возле Старого Лагеря, он "предложил" мне помочь ему." );

};

instance DIA_Lewaser_q2(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_q2_Condition;
information = DIA_Lewaser_q2_Info;
permanent = 0;
description = "И как же ?";
};

func int DIA_Lewaser_q2_Condition()
{
if (Npc_KnowsInfo (hero,DIA_Lewaser_way ))
{
return 1;
};
};

func void DIA_Lewaser_q2_Info()
{
AI_Output (other, self, "DIA_Lewaser_q2_11_00"); //И как же ?
AI_Output (self, other, "DIA_Lewaser_q2_11_01"); //Слушай, вобщем я попал абсолютно без денег
AI_Output (self, other, "DIA_Lewaser_q2_11_02"); //Все что у меня есть, это моя сабля, кольцо и пакет с вещами.
AI_Output (self, other, "DIA_Lewaser_q2_11_03"); //Кольцо я выменял у охотника на еду, так что я решил пристроить этот пакет куда-нибудь.
AI_Output (self, other, "DIA_Lewaser_q2_11_04"); //Этот охотник подсказал мне, что этим пакетом заинтересуется любой кузнец, но я незнаю ни одного кузнеца в этом месте.
AI_Output (self, other, "DIA_Lewaser_q2_11_05"); //По-этому ты должен будешь найти в лагере кузнеца и впарить ему этот пакет, понял?
AI_Output (other, self, "DIA_Lewaser_q2_11_06"); //Понял. А что в это пакете такого?
AI_Output (self, other, "DIA_Lewaser_q2_11_07"); //В нем лежит блок кузнечной стали.
AI_Output (self, other, "DIA_Lewaser_q2_11_08"); //Ладно, иди к кузнецу, я буду ждать тебя возле домика охотника, внизу.
Npc_ExchangeRoutine (self, "Stay");
CreateInvItems(self,Stal,1);
B_GiveInvItems(self,other,Stal,1);
Pir1 = LOG_RUNNING;
B_LogEntry (CH3_Pirat, "Итак, я должен зайти в Старый Лагерь и продать кому-нибудь из кузнецов пакет который мне дал этот странный тип." );
AI_StopProcessInfos (self);
};



instance DIA_Lewaser_WrongWay(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_WrongWay_Condition;
information = DIA_Lewaser_WrongWay_Info;
permanent = 0;
description = "Я хотел спросить...";
};

func int DIA_Lewaser_WrongWay_Condition()
{
if(Pir1 == LOG_RUNNING)
{
return 1;
};
};

func void DIA_Lewaser_WrongWay_Info()
{

AI_Output (other, self, "DIA_Lewaser_WrongWay_15_00"); //Я хотел спросить...
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_02"); //И что же?
AI_Output (other, self, "DIA_Lewaser_WrongWay_15_03"); //Кто ты такой?
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_04"); //Ну, зовут меня Левассер. Тебе это что-то говорит?
AI_Output (other, self, "DIA_Lewaser_WrongWay_15_05"); //Нет.
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_06"); //Ну вот.
B_LogEntry (CH3_Pirat, "Этого парня зовут Левассер." );
};



instance DIA_Lewaser_WrongWay2(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_WrongWay2_Condition;
information = DIA_Lewaser_WrongWay2_Info;
permanent = 0;
description = "Я продал твою сталь";
};

func int DIA_Lewaser_WrongWay2_Condition()
{
if(Pir2 == LOG_RUNNING)
{
return 1;
};
};

func void DIA_Lewaser_WrongWay2_Info()
{

AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_00"); //Я продал твою сталь
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_02"); //Отлично! Сколько ты выручил?
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_03"); //100 кусков руды, вот они.
B_GiveInvItems (hero, self, ItMiNugget, 100);
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_04"); //100 КУСКОВ РУДЫ???!!!
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_05"); //А где золото, придурок?!!!
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_06"); //Дружок, у нас тут вместо золота, используется руда.
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_07"); //Так что я тебе выручил неплохие деньги.
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_08"); //Да? Ну ладно, извини что наорал.
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_09"); //Хорошо, я тут подумал, что мне стоит поискать своих, они отправились на запад колнии
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_10"); //Увидемся там.
B_LogEntry (CH3_Pirat, "Левассер решил отыскать своих на западе колонии, как я понял он хочет наведатся в Новый Лагерь." );
B_GiveXP (500);
};
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
clumb, походу ты просто не начал новую игру.
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
redleha,
Новую игру я начал, а вот диалог не появляется.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
clumb,
у тебя в первых двух диалогах стоит nr = 999; попробуй поставить в DIA_Lewaser_way nr = 1; а в остальных ниже диалогах увеличить значение nr, чтобы они не повторялись.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Как вариант просто в этом блоке:
instance DIA_Lewaser_way(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 999;
condition = DIA_Lewaser_Way_Condition;
information = DIA_Lewaser_Way_Info;
permanent = 0;
important = 1;
};


instance DIA_Lewaser_way(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_Way_Condition;
information = DIA_Lewaser_Way_Info;
permanent = False;
important = True;
};

ЗЫ: Одновременно написали. :)
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
Myxomop, hell9999,
Не помогло, попробовал ещё переписать скрипт с окончанием диалога, но всё равно светится Ende.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Ну как вариант еще сделать так.

var int Pir1Hello;
var int Pir1;
instance DIA_Lewaser_way(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_Way_Condition;
information = DIA_Lewaser_Way_Info;
important = TRUE;
};


func int DIA_Lewaser_Way_Condition()
{
if(Pir1Hello == FALSE)
{
return TRUE;
};
};

func void DIA_Lewaser_Way_Info()
{
AI_Output (self, other, "DIA_Lewaser_Way_07_00");//Эй, Парень! Погоди-ка.
AI_Output (self, other, "DIA_Lewaser_Way_07_02");//Знаю что вопрос глупый, но ты не подскажешь как можно пройти в этот лагерь минуя стражу?
AI_Output (other, self, "DIA_Lewaser_Way_15_03");//Ээээ... никак...
AI_Output (other, self, "DIA_Lewaser_Way_15_04");//Но ты мог бы заплатить стражникам что бы они тебя впустили.
AI_Output (self, other, "DIA_Lewaser_Way_07_05");//К сожалению денег у меня нет
AI_Output (self, other, "DIA_Lewaser_Way_07_06");//(оценивающе) Хотя ты мог бы мне помочь...
Log_CreateTopic (CH3_Pirat, LOG_MISSION);
Log_SetTopicStatus (CH3_Pirat, LOG_RUNNING);
B_LogEntry (CH3_Pirat, "Я встретил какого-то странного парня возле Старого Лагеря, он "предложил" мне помочь ему." );
Pir1Hello = TRUE;
};
 

xterm

Участник форума
Регистрация
25 Июн 2009
Сообщения
5.178
Благодарности
16
Баллы
400
Еще как вариант, если не сработает вариант от hell9999.
Файл в списке загрузки где находится? Может быть другой подключается, который стоит раньше?:-\ А так фиг пойми, все должно работать же:p
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.851
Благодарности
6.728
Баллы
1.625
компиляция диолога должна проходить после непися, не сразу, но позже. тупой конечно вопрос, но все же спрошу:
а у непися можешь скрипт выложить?
 

CERBERBOSS

Участник форума
Регистрация
3 Дек 2009
Сообщения
1.200
Благодарности
583
Баллы
280
clumb, возможно в скрипте нпс от этого (npcType = npctype_main; ) зависит.

зы. скрипт нпс - NONE_5065_Lewaser.d
 

Bjorn++

Участник форума
Регистрация
28 Июн 2011
Сообщения
1.063
Благодарности
46
Баллы
235
clumb, возможно в скрипте нпс от этого (npcType = npctype_main
wink%21.gif
зависит.
Нет, в DIA этого прописывать не нужно...
Вот, я переделал твой диалог( красным выделено, то что я изменил), попробуй*flowers*
instance DIA_Lewaser_Exit(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 999;
condition = DIA_Lewaser_Exit_Condition;
information = DIA_Lewaser_Exit_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};


func int DIA_Lewaser_Exit_Condition()
{
return TRUE;
};

func void DIA_Lewaser_Exit_Info()
{
AI_StopProcessInfos(self);
};



var int Pir1; ( Это вообще убери!)

instance DIA_Lewaser_way(C_Info)
{
npc = NONE_5065_Lewaser;
nr = 999;
condition = DIA_Lewaser_Way_Condition;
information = DIA_Lewaser_Way_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Lewaser_Way_Condition()

{
return TRUE;
};

func void DIA_Lewaser_Way_Info()
{
AI_Output (self, other, "DIA_Lewaser_Way_07_00");//Эй, Парень! Погоди-ка.
AI_Output (self, other, "DIA_Lewaser_Way_07_02");//Знаю что вопрос глупый, но ты не подскажешь как можно пройти в этот лагерь минуя стражу?
AI_Output (other, self, "DIA_Lewaser_Way_15_03");//Ээээ... никак...
AI_Output (other, self, "DIA_Lewaser_Way_15_04");//Но ты мог бы заплатить стражникам что бы они тебя впустили.
AI_Output (self, other, "DIA_Lewaser_Way_07_05");//К сожалению денег у меня нет
AI_Output (self, other, "DIA_Lewaser_Way_07_06");//(оценивающе) Хотя ты мог бы мне помочь...
Log_CreateTopic (CH3_Pirat, LOG_MISSION);
Log_SetTopicStatus (CH3_Pirat, LOG_RUNNING);
B_LogEntry (CH3_Pirat, "Я встретил какого-то странного парня возле Старого Лагеря, он "предложил" мне помочь ему." );

};

instance DIA_Lewaser_q2(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_q2_Condition;
information = DIA_Lewaser_q2_Info;
permanent = 0; (эту строчку убери!)
description = "И как же ?";
};

func int DIA_Lewaser_q2_Condition()
{
if (Npc_KnowsInfo (hero,DIA_Lewaser_way ))
{
return TRUE;
};
};

func void DIA_Lewaser_q2_Info()
{
AI_Output (other, self, "DIA_Lewaser_q2_11_00"); //И как же ?
AI_Output (self, other, "DIA_Lewaser_q2_11_01"); //Слушай, вобщем я попал абсолютно без денег
AI_Output (self, other, "DIA_Lewaser_q2_11_02"); //Все что у меня есть, это моя сабля, кольцо и пакет с вещами.
AI_Output (self, other, "DIA_Lewaser_q2_11_03"); //Кольцо я выменял у охотника на еду, так что я решил пристроить этот пакет куда-нибудь.
AI_Output (self, other, "DIA_Lewaser_q2_11_04"); //Этот охотник подсказал мне, что этим пакетом заинтересуется любой кузнец, но я незнаю ни одного кузнеца в этом месте.
AI_Output (self, other, "DIA_Lewaser_q2_11_05"); //По-этому ты должен будешь найти в лагере кузнеца и впарить ему этот пакет, понял?
AI_Output (other, self, "DIA_Lewaser_q2_11_06"); //Понял. А что в это пакете такого?
AI_Output (self, other, "DIA_Lewaser_q2_11_07"); //В нем лежит блок кузнечной стали.
AI_Output (self, other, "DIA_Lewaser_q2_11_08"); //Ладно, иди к кузнецу, я буду ждать тебя возле домика охотника, внизу.
Npc_ExchangeRoutine (self, "Stay");
CreateInvItems(self,Stal,1);
B_GiveInvItems(self,other,Stal,1);
Pir1 = LOG_RUNNING;
B_LogEntry (CH3_Pirat, "Итак, я должен зайти в Старый Лагерь и продать кому-нибудь из кузнецов пакет который мне дал этот странный тип." );
AI_StopProcessInfos (self);
};



instance DIA_Lewaser_WrongWay(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_WrongWay_Condition;
information = DIA_Lewaser_WrongWay_Info;
permanent = 0; (Убери эту строку!)
description = "Я хотел спросить...";
};

func int DIA_Lewaser_WrongWay_Condition()
{
if(Pir1 == LOG_RUNNING)
{
return TRUE;
};
};

func void DIA_Lewaser_WrongWay_Info()
{

AI_Output (other, self, "DIA_Lewaser_WrongWay_15_00"); //Я хотел спросить...
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_02"); //И что же?
AI_Output (other, self, "DIA_Lewaser_WrongWay_15_03"); //Кто ты такой?
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_04"); //Ну, зовут меня Левассер. Тебе это что-то говорит?
AI_Output (other, self, "DIA_Lewaser_WrongWay_15_05"); //Нет.
AI_Output (self, other, "DIA_Lewaser_WrongWay_15_06"); //Ну вот.
B_LogEntry (CH3_Pirat, "Этого парня зовут Левассер." );
};



instance DIA_Lewaser_WrongWay2(C_INFO)
{
npc = NONE_5065_Lewaser;
nr = 1;
condition = DIA_Lewaser_WrongWay2_Condition;
information = DIA_Lewaser_WrongWay2_Info;
permanent = 0; ( убратьстороку!)
description = "Я продал твою сталь";
};

func int DIA_Lewaser_WrongWay2_Condition()
{
if(Pir2 == LOG_RUNNING)
{
return TRUE;
};
};

func void DIA_Lewaser_WrongWay2_Info()
{

AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_00"); //Я продал твою сталь
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_02"); //Отлично! Сколько ты выручил?
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_03"); //100 кусков руды, вот они.
B_GiveInvItems (hero, self, ItMiNugget, 100);
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_04"); //100 КУСКОВ РУДЫ???!!!
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_05"); //А где золото, придурок?!!!
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_06"); //Дружок, у нас тут вместо золота, используется руда.
AI_Output (other, self, "DIA_Lewaser_WrongWay2_15_07"); //Так что я тебе выручил неплохие деньги.
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_08"); //Да? Ну ладно, извини что наорал.
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_09"); //Хорошо, я тут подумал, что мне стоит поискать своих, они отправились на запад колнии
AI_Output (self, other, "DIA_Lewaser_WrongWay2_15_10"); //Увидемся там.
B_LogEntry (CH3_Pirat, "Левассер решил отыскать своих на западе колонии, как я понял он хочет наведатся в Новый Лагерь." );
B_GivePlayerXP(500);
};
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
Вот скрипт непися
instance NONE_5065_Lewaser(Npc_Default)
{
name[0] = "Левассер";
npcType = Npctype_main;
guild = GIL_Sld;
level = 30;
voice = 4;
id = 5065;
attribute[ATR_STRENGTH] = 90;
attribute[ATR_DEXTERITY] = 90;
attribute[ATR_MANA_MAX] = 50;
attribute[ATR_MANA] = 50;
attribute[ATR_HITPOINTS_MAX] = 600;
attribute[ATR_HITPOINTS] = 600;
protection[PROT_BLUNT] = 60;
Mdl_SetVisual(self,"HUMANS.MDS");
Mdl_ApplyOverlayMds(self,"Humans_Tired.mds");
Mdl_SetVisualBody(self,"hum_body_Naked0",3,1,"Hum_Head_Fighter",33,2,PIR2_Addon);
B_Scale(self);
Mdl_SetModelFatness(self,2);
fight_tactic = FAI_HUMAN_MASTER;
Npc_SetTalentSkill(self,NPC_TALENT_1H,2);
Npc_SetTalentSkill(self,NPC_TALENT_2H,2);
EquipItem(self,Piratensaebel);
CreateInvItem(self,ItFoLoaf);
CreateInvItem(self,ItFoBeer);
CreateInvItem(self,ItLsTorch);
daily_routine = rtn_fmstart_5065;
};


func void rtn_fmstart_5065()
{
TA_StandAround(0,0,23,0,"SPAWN_OW_SCAVENGER_AL_ORC");
};


func void rtn_Stay_5065()
{
TA_StandAround(0,0,23,0,"PATH_OC_NC_4");
};

func void rtn_Rest_5065()
{
TA_StandAround(0,0,23,0,"MOVEMENT_OW_PATH_SCAVENGER13_SPAWN03");
};
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.167
Баллы
915
Кстати, а почему у вашего NPC задана гильдия "наёмник" (GIL_SLD)? Если он пират, тогда почему не задана гильдия GIL_PIR? Также обращаю ваше внимание на "дырку" в расписании жизнедеятельности Левассера с 23:00 до 00:00. Обратите внимание, что в скриптах G2 даже у стоящих на одном месте NPC в расписании задействованы круглые сутки, например, у паладина Фаджета (Story\NPC\PAL_281_Fajeth.d):
Код:
instance PAL_281_Fajeth(Npc_Default)
{
	name[0] = "Фаджет";
	guild = GIL_OUT;
	id = 281;
	voice = 12;
	flags = NPC_FLAG_IMMORTAL;
	npcType = npctype_main;
	B_SetAttributesToChapter(self,4);
	fight_tactic = FAI_HUMAN_STRONG;
	EquipItem(self,ItMw_2h_Pal_Sword);
	EquipItem(self,ItRw_Mil_Crossbow);
	B_CreateAmbientInv(self);
	B_SetNpcVisual(self,MALE,"Hum_Head_Fighter",Face_N_Fingers,BodyTex_N,ItAr_PAL_M);
	Mdl_SetModelFatness(self,0);
	Mdl_ApplyOverlayMds(self,"Humans_Militia.mds");
	B_GiveNpcTalents(self);
	B_SetFightSkills(self,65);
	daily_routine = Rtn_Start_281;
};


func void Rtn_Start_281()
{
	TA_Stand_Guarding(8,0,23,0,"OW_NEWMINE_09");
	TA_Stand_Guarding(23,0,8,0,"OW_NEWMINE_09");
};
 

Друид

Участник форума
Регистрация
21 Ноя 2009
Сообщения
1.169
Благодарности
395
Баллы
285
clumb, скопировал скрипты диалога и непися, вставил в игру, скомпилил - все отлично пашет. Непися марвином вставил - сразу заговорил.
Была россыпь грамматических ошибок - их лучше исправить (может сорсер ругается - и не создает новые Gothic.dat и ou.bin). Обязательно проверь что говорит сорсер после компиляции - должен говорить что-то типа "все ништяк, скомпилено окей" :D
В Gothic.src глянь расположение ссылок на файлы скриптов - диалоги к диалогам, непися к неписям...

опечатки были наподобие:
B_GiveInvItems (hero, self, ItMiNugget, 100);
скорее - ItMi_Nugget

B_GiveXP (500);
может быть, B_GivePlayerXP(500);
??
 

Bjorn++

Участник форума
Регистрация
28 Июн 2011
Сообщения
1.063
Благодарности
46
Баллы
235
может быть, B_GivePlayerXP(500);
Да, была такая опечатка... я её ещё в последнем посте исправил...

clumb ты пробовал диалог этот вписать который я в спойлер засунул?
Вообще проще всего делать перса и писать диалог уже в готовом бланке для начала, например можно взять уже готовый бланк с комментариями от уважаемого DEDROIT`а, я когда начинал пользовался ими... Попробуй и ты *flowers*
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
Толик95,
Скрипт попробовал, не сработало вот скрин

З.Ы. Друид, У меня все НПС стоят после стартапа, но у всех остальных всё прекрасно работает.
 

Вложения

  • 001.JPG
    001.JPG
    42,6 KB · Просмотры: 229

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
Похоже ты делаешь мод на Г1 и нпс этот сразу после начала игры ГГ встречает?
Тогда проще всего скопировать скрипт Диего и потихоньку его менять под свои нужды. Заодно и выяснишь, что из кода не работает.
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
hell9999,
Нет, нет, это просто я в начале игры его марвином вызвал.
 
Сверху Снизу