Показать сообщение отдельно
Старый 03.02.2011, 14:12   #4075
Dimus

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

По умолчанию Re: Gothic 1, 2, 3: Технические вопросы

2Wandar:
За реакции неписей на новости о различных преступлениях (воровство, драки, убийства) отвечает скрипт AI\B_Human\B_ReactToMemory.d. Описанный вами комментарий является SVM_n_SuckerGotSome. Впрочем, эти реакции и комментарии могут быть весьма причудливыми, например, в Золотом моде меня доставали стражники и наёмники замечаниями типа "Ты ударил моего друга - какого чёрта?!" или "Обижать моих друзей - это не очень хорошая идея." (SVM_n_YouDefeatedMyComrade), хотя я никого не бил на их глазах (втихую отлупил Буллита в СЛ и Балоро в НЛ).

2 Скриптеры:
Подозрение на ошибку в G1 - очень странное условие в скрипте AI\ZS_Human\ZS_Attack.d:
Cпойлер(щелкните, чтобы прочесть):
* * *if((self.npcType == npctype_ambient) || (self.npcType == NPCTYPE_OW_AMBIENT) || (self.npcType == Npctype_MINE_Ambient) || (self.fight_tactic == FAI_HUMAN_COWARD))
* * *{
* * * * * *if((self.fight_tactic == FAI_HUMAN_COWARD) && (self.attribute[ATR_HITPOINTS] < (self.attribute[ATR_HITPOINTS_MAX] / 2)))
* * * * * *{
* * * * * * * * *PrintDebugNpc(PD_ZS_Check,"...coward flees!");
* * * * * * * * *AI_StartState(self,ZS_Flee,0,"");
* * * * * *};
* * * * * *if((self.fight_tactic == FAI_HUMAN_Strong) && (self.attribute[ATR_HITPOINTS] < ((self.attribute[ATR_HITPOINTS_MAX] / 4) * 3)))
* * * * * *{
* * * * * * * * *PrintDebugNpc(PD_ZS_Check,"...strong flees!");
* * * * * * * * *AI_StartState(self,ZS_Flee,0,"");
* * * * * *};
* * * * * *if((self.fight_tactic == FAI_HUMAN_MAGE) && (self.attribute[ATR_MANA] < (self.attribute[ATR_MANA_MAX] / 5)))
* * * * * *{
* * * * * * * * *PrintDebugNpc(PD_ZS_Check,"...mage flees!");
* * * * * * * * *AI_StartState(self,ZS_Flee,0,"");
* * * * * *};
* * * * * *if((self.fight_tactic == FAI_HUMAN_RANGED) && (self.attribute[ATR_HITPOINTS] < (self.attribute[ATR_HITPOINTS_MAX] / 3)))
* * * * * *{
* * * * * * * * *PrintDebugNpc(PD_ZS_Check,"...ranged fighter flees!");
* * * * * * * * *AI_StartState(self,ZS_Flee,0,"");
* * * * * *};
* * *};

Из этого фрагмента следует, что трус (тактика FAI_Human_COWARD) сбежит с поля боя, если у него останется меньше 1/2 здоровья, маг (FAI_HUMAN_MAGE) - если меньше 1/5 маны, стрелок (FAI_HUMAN_RANGED) - если меньше 1/3 здоровья, а сильный боец (FAI_HUMAN_Strong) - если меньше 3/4 здоровья. Может быть, PB хотели сделать порог для сильного бойца меньше 1/4 здоровья?
Ответить с цитированием