Показать сообщение отдельно
Старый 14.02.2012, 17:18   #2524
Berian

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

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

Сори за наглость :-/ а как это прописать? Если не трудно не могли бы примерно написать код, век буду помнить!
Я сделал так
Cпойлер(щелкните, чтобы прочесть):
func void DIA_ORG_2000_VOR_Info()
{
     AI_Output(other,self,"DIA_ORG_2000_VOR_15_00" ); //Вот 10 кусков руды.
     AI_Output(self,other,"DIA_ORG_2000_VOR_03_01" ); //Щас тебе откроют ворота.
     AI_StopProcessInfos(self);
     B_GiveInvItems(other,self,ItMiNugget,10);
     var C_Npc Guard;
     Guard = Hlp_GetNpc(ORG_2001_GUARD);
     AI_SetWalkMode(Guard,NPC_WALK);
     AI_GotoWP(Guard,"NC_LOCKOUT_VWHEEL");
     AI_UseMob(Guard,"VWHEEL",1);
     AI_UseMob(Guard,"VWHEEL",-1);
     if(Wld_GetMobState(Guard,"VWHEEL") == 1)
     {
           if(Npc_GetDistToNpc(Guard,hero) >= 3000)
           {
                 AI_SetWalkMode(Guard,NPC_WALK);
                 AI_UseMob(Guard,"VWHEEL",0);
                 AI_UseMob(Guard,"VWHEEL",-1);
                 AI_ContinueRoutine(Guard);
           };
     };
};


Добавление от 02/14/12, в 02:05:41
К примеру какова функция сканирования расстояния (self,other) :-/

Добавление от 02/14/12, в 17:38:01
Хех Спасибо всем в особенности "in soviet russia" за совет, разобрался! вот чё сделал, могет еому пригодиться
Создал новое ZS расписание
Cпойлер(щелкните, чтобы прочесть):

func void ZS_AAA()
{
     PrintDebugNpc(PD_TA_FRAME,"ZS_AAA");
     GuardPerception();
     AI_Standup(self);
     AI_SetWalkMode(self,NPC_WALK);
     AI_GotoWP(self,self.wp);
     if(Npc_GetDistToNpc(self,hero) >= 2000)
     {
           PrintDebugNpc(PD_TA_CHECK,"...Tor offen!");
           AI_UseMob(self,"VWHEEL",0);
           AI_UseMob(self,"VWHEEL",-1);
           AI_AlignToWP(self);
           Npc_ExchangeRoutine(self,"start");
           AI_ContinueRoutine(self);
     };
};


func void ZS_AAA_End()
{
     PrintDebugNpc(PD_TA_FRAME,"ZS_AAA_End");
};

Его можно менять под каждого непися
И вставил в функции диалога просто название рутины этого непися
Cпойлер(щелкните, чтобы прочесть):
func void DIA_ORG_2000_VOR_Info()
{
     AI_Output(other,self,"DIA_ORG_2000_VOR_15_00" ); //Вот 10 кусков руды.
     AI_Output(self,other,"DIA_ORG_2000_VOR_03_01" ); //Щас тебе откроют ворота.
     AI_StopProcessInfos(self);
     B_GiveInvItems(other,self,ItMiNugget,10);
     var C_Npc Guard;
     Guard = Hlp_GetNpc(ORG_2001_GUARD);
     AI_SetWalkMode(Guard,NPC_WALK);
     AI_GotoWP(Guard,"NC_LOCKOUT_VWHEEL");
     AI_UseMob(Guard,"VWHEEL",1);
     AI_UseMob(Guard,"VWHEEL",-1);
     Npc_ExchangeRoutine(Guard,"Open");
     AI_ContinueRoutine(Guard);
};
. Вот что у непися
Cпойлер(щелкните, чтобы прочесть):
     daily_routine = Rtn_start_2001;
};


func void Rtn_start_2001()
{
     TA_Boss(8,0,22,0,"VAROTA1");
     TA_Boss(22,0,8,0,"VAROTA1");
};


func void Rtn_Open_2001()
{      
     TA_AAA(8,0,22,0,"NC_LOCKOUT_VWHEEL");
     TA_AAA(22,0,8,0,"NC_LOCKOUT_VWHEEL");
};

Ну всё. Ещё раз огромное СПАСИБО за подсказку!  ;)
Ответить с цитированием