Показать сообщение отдельно
Старый 29.09.2007, 12:16   #1821
B_Wolf

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

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

2Vam:
func void B_MM_AssessEnemy_Sleep()
{
* * *PrintDebugNpc (PD_MST_FRAME, "B_MM_AssessEnemy_Sleep");
* * *if(!C_BodyStateContains(self, BS_LIE) || (Npc_GetDistToNpc(self, other) < 200))
* * *{
* * * * * *B_MM_AssessEnemy();
* * *};
};
Вариант оптимизации НЕ верен, в этом случае вызов функции B_MM_AssessEnemy(); выполняется ВСЕГДА при соблюдении одного из двух условий.


В оригинальном же варианте возможно НЕВЫПОЛНЕНИЕ вызова функции: B_MM_AssessEnemy();

2HikeR:
func void B_MM_AssessEnemy_Sleep()
{
* PrintDebugNpc (PD_MST_FRAME, "B_MM_AssessEnemy_Sleep");
*
* * if (C_BodyStateContains(self,BS_LIE))
* * {
* * * * * if (Npc_GetDistToNpc(self,other)<200)
* * * * * {
* * * * * * * * B_MM_AssessEnemy();
* * * * * };
* * * * * //Если не выполняется вышеописанное условие, в этом случае B_MM_AssessEnemy(); НЕ вызывается, хотя и было выполнено первое условие.

* * }
* * else
* * {
* * * * * B_MM_AssessEnemy();
* * };
};
И ИМХО, стоит оставить функцию в первозданном виде.
Ответить с цитированием