|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Уроки скриптологии
2Vam: Я обеими руками "за"! :pivo: ;D Имхо, было бы неплохо выкладывать здесь скрипты Готкик с собственными комментариями, объясняющими, что даннная строка скрипта значит. Было бы наглядно. у меня есть пример:
Функция ZS_Stand_WP - отвечает за выполнение TA_Stand_WP
func void ZS_Stand_WP() *//Функция подготовки к выполнению TA_Stand_WP { * Perception_Set_Normal(); * B_ResetAll(self); * AI_SetWalkMode(self,NPC_WALK); * AI_GotoWP(self,self.wp); * AI_AlignToWP(self); * self.aivar[AIV_TAPOSITION] = NOTINPOS; };
func int ZS_Stand_WP_loop() *//Это функция выполняется циклически, пока НПС выполняет TA_Stand_WP { * var int random; * if(self.aivar[AIV_TAPOSITION] == NOTINPOS) *//Блок для случая, если НПС не в "ISINPOS" (только в первый раз) * { * * *AI_PlayAni(self,"T_STAND_2_LGUARD"); *//Проигрывается анимация "T_STAND_2_LGUARD" (НПС примет "стойку") * * *self.aivar[AIV_TAPOSITION] = ISINPOS; * }; * if((Npc_GetStateTime(self) > 5) && (self.aivar[AIV_TAPOSITION] == ISINPOS)) *//После того, как НПС становится в "ISINPOS", каждые 5 секунд выполняется блок * { * * *random = Hlp_Random(10); *//Берется случайное число от 0 до 9 * * *if(random == 0) *//Если число было 0, проигрывается анимация "T_LGUARD_SCRATCH" (НПС "потянется") * * *{ * * * * AI_PlayAni(self,"T_LGUARD_SCRATCH"); * * *} * * *else if(random == 1) *//Если число было 1, проигрывается та же анимация, что и при 0 * * *{ * * * * AI_PlayAni(self,"T_LGUARD_STRETCH"); * * *} * * *else if(random == 2) *//Если число было 2, проигрывается анимация "T_LGUARD_CHANGELEG" (НПС "меняет ногу") * * *{ * * * * AI_PlayAni(self,"T_LGUARD_CHANGELEG"); * * *}; * * *Npc_SetStateTime(self,0); *//Время обнуляется, т.е. начинаются следующие 5 секунд * }; *//Т.е. шанс, что НПС произведет какое-то действие раз в пять секунд - 3\10 * return LOOP_CONTINUE; *//Цикл замыкается, и функция "ZS_Stand_WP_loop" будет выполнена снова, и так будет пока НПС не получит команды прекритить выполнение "TA_Stand_WP" };
func void ZS_Stand_WP_end() //Функция завершения TA_Stand_WP { * AI_PlayAni(self,"T_LGUARD_2_STAND"); *//При получении НПС команды прекратить выполнение "TA_Stand_WP", проигрывается анимация "T_STAND_2_LGUARD" (НПС выйдет из "стойки") };
|