13.03.2011, 17:00 | #1 |
Гость
Сообщений: 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); } } 2) Написать скрипт мобу, который при попадании в его радиус игрока поставить ему фазу нужную, но как вернуть начальну перед тем как игрок телепортнётся? 3) привязать как то к местности, как это например в борейской тундре на берегу терзающего бича, я не совсем понял как это реализовано, видимо спелл нужно какой-то использовать, тогда вопрос можно ли добавить свой спелл в ядро? если его нет в dbc Может есть более простой способ? |
13.03.2011, 17:52 | #2 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Так у NPC же есть фазы.
__________________
SpellWork Qt4 |
13.03.2011, 18:13 | #3 |
YTDB Dev
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
|
Игроку - спеллареа
Нпц - маской в спавне спеллы - в спелл_дбц патч |
13.03.2011, 18:20 | #4 |
Гость
Сообщений: n/a
|
мне игроку надо фазу поставить.
У игрока будет дополнительное поле my_phase вот имеем например нпц с ентри 100000 нужно так чтобы когда игрок попадает в радиус, например 200 метров от нпц, чтобы игрок переходил в фазу значение которой находится в my_phase. И это не так сложно, а вот когда игрок телепортнётся на сх или его присумонят или камнем возвращения или просто уйдёт, нужно вернуть фазу ту в которой игрок находился. всё осложняется тем, что фаза игрока не всегда может быть = 1 перед тем как он попал к тому нпц, и не всегда она будет равна той после того как игрок уйдёт оттуда, которай она была до его появления там. То есть имеем игрока, он в фазе 2. Он попал к мобу с ентри 100000, тогда фазу игрока надо поменять на фазу 4. Потом игрока сумонят в даларан, его фаза должна стать = 1 Добавлено через 4 минуты То есть нужно добавить запись в спелл.дбц только в файлик? Или патчить клиент? И можно ли не добавляя в файл, добавить просто в спелл_дбц таблицу? Опять же, спеллареа как я понял, она к зоне привяжет, а хотелось бы чтобы не к целой зоне, а только к участку небольшому. Вообщем то, всё сводится к тому, что мне нужно наложить какую угодно ауру при попадании игрока в зону и в радиусе от моба, и снять ауру когда игрок выйдет за пределы радиуса моба. А саму ауру я уже заскриптую) PS а если я например сделаю две переменных bool my_aura; //если моб сменил мне фазу bool my_flag_aura; //если аура востановленна и проверять в плеер::апдейт Код:
if (isMyAura() && isMyFlagAura()){ востановить ауру setMyFLagAura(false) } это сильно нагрузит систему? Последний раз редактировалось Easy; 13.03.2011 в 19:04. |
13.03.2011, 21:45 | #5 |
Гость
Сообщений: n/a
|
Тупо юзай готовый спел меняющий фазу! Например как в зоне ДК, там где гвест на украсть коня Тебя кидает в другую фазу! Зачем патчить ДБЦ? ) Я так когда то химию в стартовой локе делал ))
|
13.03.2011, 22:23 | #6 |
Гость
Сообщений: n/a
|
мне нужно много фаз, штук 10
Мне готовый спелл не подойдёт, пытаюсь добавить в таблицу спелл_дбц, но что то там много атрибутов, вроде бы основные выставил, а не работает) но кастить можно) а аура не появляется, да и не найду куда вписать ID иконки ауры в таблице. Сделал пока по типу как советовал NeatElves. В спеареа повесил самодельный спелл, ауру, которая в зависимости от условий вызывает 1 из 10 других самодельных аур, все работает, но вот хотелось бы узнать, можно ли как то упростить, и свести всё к 2ум или к 1му спеллу. Сейчас первый спелл имеет effect[0] = SPELL_EFFECT_APPLY_AURA и EffectApplyAuraName1 = SPELL_AURA_DUMMY Остальные 10 effect[0] = SPELL_EFFECT_APPLY_AURA и EffectApplyAuraName1 = SPELL_AURA_PHASE (261) и разное значение EffectMiscValue1 2,4,8... Есть ли способ не делаю 10 спеллов, обойтись например 1, динамически меняя EffectMiscValue1 в зависимости от какого либо поля игрока? Ну или 2мя, первым, а второму динамически менять это EffectMiscValue1? Последний раз редактировалось Easy; 14.03.2011 в 07:48. |
16.03.2011, 14:58 | #7 |
Гость
Сообщений: n/a
|
Если вы изменили ДБЦ только сервера, то игрок ауру и не увидит. Даже если вы сделаете .learn spell_id, у персонажа спелл появится на сервере, но он не сможет увидеть его в книге заклинаний.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
POMM - Карта игроков | karobas | WWW | 12 | 13.05.2012 11:16 |
после 100 лвл на сервере не видит игроков | lemex | Корзина | 8 | 23.08.2010 09:09 |
Помогите пожалуйста с дропом эмблем с игроков | Mitrandir | Корзина | 6 | 14.07.2010 06:49 |
Квест на убийство игроков | fedr | Новичкам | 5 | 30.04.2010 15:28 |
[9788][patch] Игнорирование количества игроков на БГ при включённом дебаге. | Anti | Принятые патчи | 1 | 24.04.2010 09:27 |