|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Запрет предмета на аренах и бг (Не говорите что было) |
Запрет предмета на аренах и бг |
В этой теме я не нашел нормального ответа. Так же не спелл нужно запрещать а именно item.
В теме писалось об удалении предмета а потом выдаче по окончанию бг/арены. Так вот, есть минусы этого. Например идёт бг/арена и тут вайп/дисконнект и шмотка не возвращается. Вопрос, как сделать что б при одетой item нельзя было войти на бг/арену?
Буду рад плюсику =)
Сообщение # 1 написано 13.09.2015 в 13:17
|
Если правильно тебя понял, то в HandleBattlemasterJoinOpcode можно сделать проверку, чтоб при наличии у игрока некого итема, писало ошибку при реге.
Продажа готовых сборок cataclysm 4.3.4, legion (7.3.5), shadowlands, draginflight. Исправление спеллов, квестов, крашей на любых версиях вов. Цена договорная. Пишите в лс, не дорого.
Сообщение # 2 написано 13.09.2015 в 14:18
|
можно сделать проверку, чтоб при наличии у игрока некого итема, писало ошибку при реге. Это никак не поможет. Никто не помешает одеть предмет после. Нужно при непосредственном входе на арену проверять и снимать. А если смена экипировки возможна на аренах/бг (не помню точно), то придется ещё и лупово проверять во время проведения, чтобы не надевали. П.С: Думаю, можно подцепиться к CanEquipItem(). Добавить туда новую проверку, чтобы определенные предметы нельзя было экипировать во время арен/бг. Стоит учесть, что необходимость в первичной проверке при вступлении на арену/бг при использовании данного способа остается. |
Смотри
в player.cpp есть функция эквипа Код uint8 Player::CanUnequipItem(uint16 pos, bool swap) const Только я делал на спелл и на всех локациях ( исправил баг на дизарм ) в конце функции эквпипа перед Код return EQUIP_ERR_OK; вставил Код if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED)) // если висит дизарм) return EQUIP_ERR_NOT_DURING_ARENA_MATCH; // или любой другой эквип и при снятии или одевании вещи при "разоружении" пишет что вы на арене и это нельзя использовать Можно по колдовать и для предмете Тоже самое можно сделать с вещью и сделать проверку на арену |
Одеть предмет, наличие которого отсутствует у игрока? Или вы думаете наличие проверяется только одетых вещей?
Сообщение # 10 написано 14.09.2015 в 17:54
|
Одеть предмет, наличие которого отсутствует у игрока? Или вы думаете наличие проверяется только одетых вещей? Я прекрасно знаю, каких предметов можно проверить наличие. Вопрос в том, с чего Вы решили, что предмета не будет в инвентаре. Речь шла о запрете использования и экипировки, а не об удалении. Читайте внимательнее первый пост.
Сообщение # 11 написано 14.09.2015 в 19:25
|
Тогда отвечу на первый пост - если запретить входить только с одетой вещью, то ее оденут на бг. Удалять вещь никто и не говорит, можно также проверить ее наличие в инвертаре - запрещаем вступать на бг пока не положит ее в тот же банк( соответственно вызов банка должен быть запрещен у игрока, будь то вип или кто угодно). Также,если не нравятся эти варианты можно удалить вещь у игрока, отправить ее на почту и засейвить транзакцию, что в случае отката решит проблему, написанную в первом посте.
Сообщение # 12 написано 14.09.2015 в 19:42
|
Также,если не нравятся эти варианты можно удалить вещь у игрока, отправить ее на почту и засейвить транзакцию, что в случае отката решит проблему, написанную в первом посте. Да решение, вроде, уже было предложено. Проверка при входе + дополнительная проверка в CanEquipItem(), и не придется заниматься извращениями и пальбой по ногам.
Сообщение # 13 написано 14.09.2015 в 19:46
|
| |||
| |||