Показать сообщение отдельно
Старый 12.02.2011, 12:13   #38
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,703
Вы сказали Спасибо: 1,424
Поблагодарили 2,366 раз(а) в 1,319 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

наверно как-то так...



Код:
void WaitForTrain(Asset SCN_dir, Train train1, string ObjectName, string SoundName)
{
Message msg;
Sniff(train1, "Trigger", "Stopped", true);
PostMessage(me, "TimerTick", "", 0.1);

wait()
{
    on "Trigger", "Stopped", msg:
    {
        if (msg.src != Router.GetGameObject(ObjectName)
            or msg.dst != train1)
        {
            continue;
        }
        break;
    }
    on "TimerTick", "":
    {
        if (train1.IsStopped())
            World.Play2DSound(SCN_dir, SoundName);
        PostMessage(me, "TimerTick", "", Math.Rand(5.0, 10.0));
        continue;
    }
}

msg = null;
Sniff(train1, "Trigger", "Stopped", false);
}
правда не совсем уверен что заработает (wait() может потребовать наличие потока (т.е. не void WaitForTrain а thread void WaitForTrain), а потоки бы обрабатывались не последовательно, а параллельно - следуещее событие прицепки не ждало бы предыдущего)
__________________
местный зомбяк
TRam_ вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо TRam_ за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА