Показать сообщение отдельно
Старый 17.10.2005, 16:39   #993
dixie

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

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

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 добавить, чтобы героя от бревна оттащить - это все надо пробовать.
Ответить с цитированием