• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Сброс кд инстов через NPC
demon1666
Сержант
Добрый вечер. Возникла надобность дать возможность сброса КД всем игрокам. Это было реализовано командой .in un all. При этом каждый игрок мог наложить эту команду не только на себя но и на стороннего игрока что вызвало ряд возмущений. Прошу помощи в реализации (подсказке) альтернативного варианта обнуления кд. Спелла или ауры сброса я не обнаружил. Сейчас пробую реализовать НПЦ с такой возможностью. Поделитесь опытом в данной ситуации
Сообщение # 1 написано 08.03.2019 в 00:20
478661
Рыцарь

Это добавит команду #cd для всех игроков, которая будет открывать диалоговое окно, в котором уже собственно и можно будет сбросить кд.
Данный метод исключает сбос кд другому персонажу.
Если что это код для Eluna, если у тебя её нету, то ты не сможешь воспользоваться этим вариантом.

На самом деле странно что команда .in un all работает на кого либо кроме исполнителя.
-------------
Мои работы
-------------
Сообщение # 2 написано 08.03.2019 в 04:47
MantiCore
Разработчик YTDB R2
478661тут речь идет о том, что команду можно использовать на любого игрока, и на себя так же. Человек ищет вариант сброса кд инста исключительно для самого исполнителя. В данный момент я пользуюсь мангосом, но и тринити лежит на складе. Все это дело можно загнать в NPC, и прикрутить скрипт к тому же пету, скажем тот же гном или, любой другой призывной NPC будет сбрасывать КД инстов.

Добавлено (08.03.2019, 07:08)
---------------------------------------------
Вот этот NPC. Код староватый, но думаю переписать не составит труда.
https://github.com/TrinityCoreR2/Patches/blob/master/NPC_Changer.cpp

Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613
Skype - MantiCore8460
Сообщение # 3 написано 08.03.2019 в 07:03
478661
Рыцарь
Цитата MantiCore ()
Человек ищет вариант сброса кд инста исключительно для самого исполнителя

А я по твоему что дал?
Сброс кд для исполнителя, только не через нпц, а через новую команду #cd, которая работает так же как .in un all, за тем лишь исключением что она не напрямую скидывает кд, а открывает диалоговое окно, в котором собственно и можно скинуть кд, что исключает использование команды на кого-то кроме исполнителя.
Только это не сишный код, а lua.
-------------
Мои работы
-------------
Сообщение # 4 написано 08.03.2019 в 11:20
MantiCore
Разработчик YTDB R2
Цитата 478661 ()
На самом деле странно что команда .in un all работает на кого либо кроме исполнителя.


Я обратил внимание на это. По этому и отписался.
Чтобы сделать что то особенное - нужно просто поверить что это особенное.
Пишите по вопросам и приватке на https://vk.com/id195171613
Skype - MantiCore8460
Сообщение # 5 написано 08.03.2019 в 22:19
kvipka
Сержант
вот он код в тринити :
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/scripts/Commands/cs_instance.cpp#L126

могли просто заменить строчки :

Код
Player* player = handler->getSelectedPlayer();
        if (!player)
            player = handler->GetSession()->GetPlayer();


на

Код
Player* player = handler->GetSession()->GetPlayer();


-----------

Подразумевается, что эта команда исключительно для гмов, и он может любого игрока брать в таргет и снимать бинды на инстансы, как себя, так и простых игроков.

Но если вам так приперло открыть команду для всех, можно сделать вот так, дабы сохранить полномочия гмов анбиндить других игроков в таргете, когда для простых - только себя :

Код
Player* player = handler->GetSession()->GetPlayer();
if (handler->GetSession()->HasPermission(rbac::RBAC_PERM_COMMAND_GM))
if (handler->getSelectedPlayer())
player = handler->getSelectedPlayer();
Сообщение # 6 отредактировано kvipka - Суббота, 09.03.2019, 11:32
demon1666
Сержант
Спасибо за ответы) Все варианты по своему интересны . Благодарю за помощь!
Сообщение # 7 написано 18.03.2019 в 18:07
  • Страница 1 из 1
  • 1
Поиск: