Показать сообщение отдельно
Старый 20.12.2010, 10:19   #2399
halogene

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

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

Cпойлер(щелкните, чтобы прочесть):
func void B_StopShortZapped()
{
* * *PrintDebugNpc(PD_MAGIC,"B_StopShortZapped");
* * *Npc_PercDisable(self,PERC_ASSESSSTOPMAGIC);
* * *Npc_ClearAIQueue(self);
* * *AI_Standup(self);
* * *if(C_NpcIsHuman(self) || C_NpcIsOrc(self))
* * *{
* * * * * *AI_StartState(self,ZS_ReactToDamage,0,"");
* * *}
* * *else if(C_NpcIsMonster(self))
* * *{
* * * * * *AI_StartState(self,ZS_MM_Attack,0,"");
* * *};
};

func void ZS_ShortZapped()
{
* * *PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped");
* * *if(!Npc_HasBodyFlag(self,BS_FLAG_INTERRUPTABLE))
* * *{
* * * * * *PrintDebugNpc(PD_MAGIC,"bodystate not interuptable, standing up...");
* * * * * *AI_Standup(self);
* * *};
* * *if(!Npc_IsDead(self) && !Npc_IsInState(self,ZS_Unconscious) && !C_BodyStateContains(self,BS_SWIM) && !C_BodyStateContains(self,BS_DIVE))
* * *{
* * * * * *PrintDebugNpc(PD_MAGIC,"...NSC ist nicht bewuЯtlos / tot / schwimmend / tauchend");
* * * * * *AI_PlayAni(self,"T_STAND_2_LIGHTNING_VICTIM");
* * *};
};

func int ZS_ShortZapped_Loop()
{
* * *PrintDebugNpc(PD_ZS_LOOP,"ZS_ShortZapped Loop");
* * *if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED)
* * *{
* * * * * *B_StopShortZapped();
* * *};
* * *AI_Wait(self,1);
* * *return LOOP_CONTINUE;
};

func void ZS_ShortZapped_End()
{
* * *PrintDebugNpc(PD_ZS_FRAME,"ZS_ShortZapped_End");
};


См. структуру прочих ZS-функций: стартовая и конечная пустого (void) типа, _loop - бывает и void и int, возвращает чаще всего LOOP_CONTINUE (фактически тот же самый 0, но через константы как бы правильнее)
Ответить с цитированием