Показать сообщение отдельно
Старый 10.08.2005, 21:05   #692
DEDROIT

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Скриптинг в Готике

2Finsternis: Я попытался сделать как ты сказал но он всё равно атакует и разговора никакого нет!Может быть что-то сделал не правильно
вот скрипт непися
instance DMT_666_Bad (Npc_Default)
{
//-------------Данные персонажа-------

name = "Зомби";
guild = GIL_DMT;
npctype = npctype_main;
level = 15;
voice = 8;
id = 666;
//-------------Аттрибуты---------------
attribute[ATR_STRENGTH] = 150;
attribute[ATR_DEXTERITY] = 150;
attribute[ATR_MANA_MAX] = 120;
attribute[ATR_MANA] = 110;
attribute[ATR_HITPOINTS_MAX] = 200;
attribute[ATR_HITPOINTS] = 200;
//-------------Визуализация------------
Mdl_SetVisual(self,"HumanS.mds");
Mdl_SetVisualBody(self,"Zom_Body",0,0,"Zom_Head",0 ,DEFAULT,itar_pal_skel);
//-------------Таланты----------------
B_GiveNpcTalents (self);
B_SetFightSkills (self, 60);
//-------------Инвентарь---------------
EquipItem (self, ItMw_1H_Special_01);
EquipItem (self, ItRw_Sld_Bow);
//-------------Чувства-------------------
senses = SENSE_SEE | SENSE_SMELL | SENSE_HEAR;
senses_range = 2000;

//-------------АИ------------------------
fight_tactic = FAI_HUMAN_MASTER;

daily_routine = Rtn_Start_666;
      };
      func void Rtn_Start_666()
      {
      TA_Smoke_Joint           (8,0,22,0,"NW_FARM1_OUT_01");
      TA_Smoke_Joint           (22,0,8,0,"NW_FARM1_OUT_01");
      };
      func void Rtn_q_666()
      {
      TA_Smoke_Joint                          (8,0,22,0,"NW_XARDAS_TOWER_SECRET_CAVE_04");
      TA_Smoke_Joint                          (22,0,8,0,"NW_XARDAS_TOWER_SECRET_CAVE_04");
      };  
а вот скрипт диалога
instance DIA_DMt_666_Bad_EXIT(C_Info)
{
     npc = DMT_666_Bad;
     nr = 999;
     condition = DIA_DMt_666_Bad_EXIT_Condition;
     information = DIA_DMt_666_Bad_EXIT_Info;
     permanent = TRUE;
     description = Dialog_Ende;
};


func int DIA_DMt_666_Bad_EXIT_Condition()
{
     return TRUE;
};

func void DIA_DMt_666_Bad_EXIT_Info()
{
     Wld_StopEffect("DEMENTOR_FX");
     B_SCIsObsessed(self);
     AI_StopProcessInfos(self);
     Npc_SetRefuseTalk(self,30);
     B_Attack(self,other,AR_NONE,1);
     Snd_Play("MFX_FEAR_CAST");
};


instance DIA_DMt_666_Bad(C_Info)
{
     npc = DMt_666_Bad;
     nr = 1;
     condition = DIA_DMt_666_Bad_Condition;
     information = DIA_DMt_666_Bad_Info;
     permanent = TRUE;
     important = TRUE;
};


func int DIA_DMt_666_Bad_Condition()
{
     if(Npc_RefuseTalk(self) == FALSE)
     {
           return TRUE;
     };
};

func void DIA_DMt_666_Bad_Info()
{
     Wld_PlayEffect("DEMENTOR_FX",hero,hero,0,0,0,FALS E);
     Wld_PlayEffect("spellFX_Fear",self,self,0,0,0,FAL SE);
     AI_PlayAni(self,"T_PRACTICEMAGIC5");
     AI_Output(self,other,"DIA_BridgeDementor_19_0 0");      //текст
     AI_Output(self,other,"DIA_BridgeDementor_19_0 1");      //текст
     AI_Output(self,other,"DIA_BridgeDementor_19_0 2");      //текст
     Npc_SetRefuseTalk(self,30);
};
Что я делаю не правильно?




Добавление от 08/10/05, в 18:00:07
Ещё один вопрос можно ли чтобы перед начало разговора чел должен выполнить несколько функций например чтобы у него было 100 золотых и чтобы он перед этим с кем то поговорил
Вот пример:
func int dia_Lobart_q3_condition()
{
     if(Npc_KnowsInfo(other, DIA_Lobart_q ))
{
if(Npc_HasItems(other, ItMi_Gold,100))
     {
           return TRUE;
     };
};
Но компилятор выдаёт ошибку вот она
00:08 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_BAU_950_LOBART.D: EXPECTED ')'(LINE 1104)..<Zparser.cpp,#599>


Добавление от 08/10/05, в 21:25:45
Со вторым вопросом  разобрался!Так что отвечать не надо!А вот с первым ещё нет?
Ответить с цитированием