|
Re: Уроки скриптологии
int Npc_GetTarget(c_npc self); - возвращает True, если npc self имеет цель для поражения (в качестве цели выступает npc other), иначе – False. int Npc_GetNextTarget(c_npc self); - выполняется активный поиск цели для npc self. Если цель находится, то она становится внутренней целью и записывается в переменную other, если цель не найдена, то внутренняя цель удаляется и other становится недействительным. Критерий поиска цели - в качестве цели возмется враждебный противник, который не мертв или находится не в бессознательном состоянии. Возвращает True, если цель найдена, иначе – False. Внимание: Поиск основывается на активном восприятии npc self, поэтому, если активное восприятие не установлено, то сначала следует применять функцию Npc_PerceiveAll(). int Npc_IsNextTargetAvailable(c_npc self); - работает аналогично предыдущей функции, только ни внутренняя цель, ни переменная other не инициализируются. void Npc_SetTarget(c_npc self,c_npc other); - устанавливает для npc self в качестве внутренней цели для поражения npc other. int Npc_AreWeStronger(c_npc self,c_npc other); - выявляет более сильного npc среди self и other по следующему алгоритму: если сумма уровней всех npc (людей и монстров), которые враждебны к self и дружелюбны к other, более чем в два раза превышает сумму уровней всех npc (людей и монстров), которые дружелюбны к self и враждебны к other, то other сльнее и возвращается False, иначе сильнее self и возвращается True. Замечания: 1. npc, которые враждебны к обоим, не учитываются. 2. npc, который враждебен к одному и дружелюбен к другому, будет участвовать в подсчете два раза. int Npc_IsAiming(c_npc self,c_npc other); - возвращает 1, если npc other целится в npc self из оружия дальнего радиуса поражения или магией, иначе – 0.
Продолжение следует.
|