Показать сообщение отдельно
Старый 13.03.2011, 17:00   #1
Easy
Гость
 
Сообщений: n/a
По умолчанию Распределение игроков по фазам

Здравствуйте!
Хотелось бы реализовать возможность распределение игроков в определённом месте по фазам.
то есть что то типо, добавить поле игроку с ИД маски фазы. И когда он попадёт в определённое место, например поставить невидимых нпц, что бы он переносился в эту фазу. Но, перед тем как он уйдёт, фаза восстанавливалась.

Есть несколько мыслей:
1) В плеер апдейт запихнуть проверку, если игрок рядом с нпц, то
Код:
if (!player->isMyPhase())
{
    if (player возле моба)
    {
        player->setTempPhase(player->getPhase());
        player->setPhase(player->getMyPhase());
        plaeyr->setMyPhase(true);
    }
}else{
    if (player не возле моба)
    {
        player->setPhase(player->getTempPhase());
        player->setMyPhase(false);
    }
}
минусы в том, что у каждого игрока будет постоянно проверка if (!player->isMyPhase()), возможно увеличит нагрузку, но главный минус, что вдрур он телепортнётся куда то туда где фаза должна стать другой, не такой как была в самом начале, а после этого выполнится player->setPhase(player->getTempPhase()); что опять собьет фазу

2) Написать скрипт мобу, который при попадании в его радиус игрока поставить ему фазу нужную, но как вернуть начальну перед тем как игрок телепортнётся?

3) привязать как то к местности, как это например в борейской тундре на берегу терзающего бича, я не совсем понял как это реализовано, видимо спелл нужно какой-то использовать, тогда вопрос можно ли добавить свой спелл в ядро? если его нет в dbc

Может есть более простой способ?
  Ответить с цитированием