2FreeSergey:
Именно в момент начала пиления? Как это сделать?
|
Ну будет не в момент начала пиления, а максимум на секунду позже. Не проверял, но должно работать. Сделать бага, который сидит у бревна и постоянную процедуру ему, например ZS_MM_Rtn_Baumsaege.
Цикл обработки:
[pre]
func int ZS_MM_Rtn_Baumsaege_Loop()
{
if (Npc_GetStateTime(self) >= 1)
{
Npc_SetStateTime (self, 0);
if (Npc_GetBodyState (hero) == BS_MOBINTERACT_INTERRUPT) // герой что-то делает
{
var string DetMob;
DetMob = Npc_GetDetectedMob(hero);
if (Hlp_StrCmp (DetMob, "BAUMSAEGE")) // у бревна
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_NONE) // и мы не стартанули этот диалог раньше
{
hero.aivar[AIV_INVINCIBLE] = TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_SawSomething; // этот код надо будет добавить
AI_ProcessInfos (hero);
};
};
};
};
};
[/pre]
Хотя, какие-то проблемы, наверно, будут ;) Возможно в конце диалога надо будет что-нибудь вроде AI_StandUp добавить, чтобы героя от бревна оттащить - это все надо пробовать.