World of Warcraft Addon API для начинающих в Lua

В DoEmote("slap", "X") Я хочу, чтобы x был своего рода аргументом для того, кто отправляет начальное сообщение эмоции. Я пробовал такие вещи как arg2, arg12 и sender

Я также попытался обойти вас, чтобы вы нацелились на эмоцию, а затем ответили /slap. Но ни один из них не работает.

local p3 = CreateFrame("Frame")
p3:RegisterEvent("CHAT_MSG_TEXT_EMOTE", arg1, arg2, arg12)
p3:SetScript("OnEvent", function(self, event, arg1, arg2)
    if event == ("CHAT_MSG_TEXT_EMOTE") 
        and strfind(arg1, "laughs") 
        and strfind(arg1, "you.") 
        and name == ("Zalíssa") 
        then DoEmote("slap", "")
    end
    end)

1 ответ

Как и почти все остальные функции WoW API, DoEmote принимает UnitId в качестве второго параметра. Вы можете использовать имена отдельных игроков (и действовать на них) только в том случае, если они находятся в вашей группе или рейде.

Когда желаемый игрок - ваша цель, вы можете просто DoEmote("slap", "target"), Если это не так, вы можете попробовать отсканировать участников вашей группы или рейда. target, targettarget а также focus юнитов и попытайтесь выяснить, является ли какой-либо из них вашим желаемым игроком, сравнив UnitName возвращает для каждого из них и использовать DoEmote с соответствующим ID.

Если желаемый игрок не соответствует ни одному действующему UnitId - т.е. не сфокусирован / не нацелен / не нацелен на кого-либо в вашем рейде / группе, включая вас, то вы ничего не можете с этим поделать. Вы можете когда-либо действовать только на единицы, которые соответствуют идентификаторам.

Вы также можете использовать SendChatMessage в EMOTE канал с любым текстом, который вы хотите, прямо писать "шлепки Zalíssa". в качестве аргумента в качестве крайней меры. Это будет иметь тот же эффект, что и /e Команда chat со всеми ее недостатками - ваш текст будет передаваться дословно, переводы на другие языки клиента выполняться не будут, анимация эмоций или звук не будут воспроизводиться, а имя игрока не будет изменяться / отклоняться на тех языках, где это имеет значение.

Другие вопросы по тегам