• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Запрет предмета на аренах и бг
Dimon8506
Капрал
В этой теме я не нашел нормального ответа. Так же не спелл нужно запрещать а именно item.
В теме писалось об удалении предмета а потом выдаче по окончанию бг/арены.
Так вот, есть минусы этого. Например идёт бг/арена и тут вайп/дисконнект и шмотка не возвращается.
Вопрос, как сделать что б при одетой item нельзя было войти на бг/арену?
Буду рад плюсику =)
Сообщение # 1 написано 13.09.2015 в 13:17
Sergey996
Чемпион
Цитата Dimon8506 ()
Вопрос, как сделать что б при одетой item нельзя было войти на бг/арену?

Если правильно тебя понял, то в HandleBattlemasterJoinOpcode
можно сделать проверку, чтоб при наличии у игрока некого итема, писало ошибку при реге.
Продажа готовых сборок cataclysm 4.3.4, legion (7.3.5), shadowlands, draginflight. Исправление спеллов, квестов, крашей на любых версиях вов. Цена договорная. Пишите в лс, не дорого.
Сообщение # 2 написано 13.09.2015 в 14:18
zugurysus
Центурион
какой итем? баффер?
Сообщение # 3 написано 13.09.2015 в 14:22
Dimon8506
Капрал
Цитата zugurysus ()
какой итем? баффер?

Цитата Dimon8506 ()
Вопрос, как сделать что б при одетой item нельзя было войти на бг/арену?

Читай внимательно!
Буду рад плюсику =)
Сообщение # 4 написано 13.09.2015 в 14:38
zugurysus
Центурион
Цитата Dimon8506 ()
Читай внимательно!

Прочитай внимательно, я хочу помочь - ответь, какой именно итем (призыв нпц или спелл биндинг), а я дам готовый ответ уже
Сообщение # 5 написано 13.09.2015 в 15:40
Dimon8506
Капрал
zugurysus, например донат шмот.
Буду рад плюсику =)
Сообщение # 6 отредактировано Dimon8506 - Вторник, 06.09.2016, 11:10
p620
Маршал
Цитата Sergey996 ()
можно сделать проверку, чтоб при наличии у игрока некого итема, писало ошибку при реге.

Это никак не поможет. Никто не помешает одеть предмет после.
Нужно при непосредственном входе на арену проверять и снимать. А если смена экипировки возможна на аренах/бг (не помню точно), то придется ещё и лупово проверять во время проведения, чтобы не надевали.
П.С: Думаю, можно подцепиться к CanEquipItem(). Добавить туда новую проверку, чтобы определенные предметы нельзя было экипировать во время арен/бг. Стоит учесть, что необходимость в первичной проверке при вступлении на арену/бг при использовании данного способа остается.
Сообщение # 7 отредактировано p620 - Воскресенье, 13.09.2015, 16:03
zugurysus
Центурион
Смотри
в 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; // или любой другой эквип
и при снятии или одевании вещи при "разоружении" пишет что вы на арене и это нельзя использовать

Можно по колдовать и для предмете
Тоже самое можно сделать с вещью и сделать проверку на арену
Сообщение # 8 отредактировано zugurysus - Воскресенье, 13.09.2015, 16:06
p620
Маршал
Edit: член уже зарегестрирован. Тогда все еще проще. Добавить ту же ошибку еще и для БГ, только для определенных предметов, а не для всех.
Сообщение # 9 отредактировано p620 - Воскресенье, 13.09.2015, 16:20
Ranege
Чемпион
Цитата p620 ()
Это никак не поможет. Никто не помешает одеть предмет после.

Одеть предмет, наличие которого отсутствует у игрока? Или вы думаете наличие проверяется только одетых вещей?
Сообщение # 10 написано 14.09.2015 в 17:54
p620
Маршал
Цитата Ranege ()
Одеть предмет, наличие которого отсутствует у игрока? Или вы думаете наличие проверяется только одетых вещей?

Я прекрасно знаю, каких предметов можно проверить наличие. Вопрос в том, с чего Вы решили, что предмета не будет в инвентаре. Речь шла о запрете использования и экипировки, а не об удалении.
Читайте внимательнее первый пост.
Сообщение # 11 написано 14.09.2015 в 19:25
Ranege
Чемпион
Тогда отвечу на первый пост - если запретить входить только с одетой вещью, то ее оденут на бг. Удалять вещь никто и не говорит, можно также проверить ее наличие в инвертаре - запрещаем вступать на бг пока не положит ее в тот же банк( соответственно вызов банка должен быть запрещен у игрока, будь то вип или кто угодно). Также,если не нравятся эти варианты можно удалить вещь у игрока, отправить ее на почту и засейвить транзакцию, что в случае отката решит проблему, написанную в первом посте.
Сообщение # 12 написано 14.09.2015 в 19:42
p620
Маршал
Цитата Ranege ()
Также,если не нравятся эти варианты можно удалить вещь у игрока, отправить ее на почту и засейвить транзакцию, что в случае отката решит проблему, написанную в первом посте.

Да решение, вроде, уже было предложено. Проверка при входе + дополнительная проверка в CanEquipItem(), и не придется заниматься извращениями и пальбой по ногам.
Сообщение # 13 написано 14.09.2015 в 19:46
Pallam
Рыцарь
Главное не в лист пихайте предметы, а то лишняя нагрузка. Придумайте какой-нибудь способ, а-ля нового флага.
Сообщение # 14 написано 15.09.2015 в 13:03
  • Страница 1 из 1
  • 1
Поиск: