Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > World of Warcraft
You last visited: Today at 06:04

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Auf /w mit "CHAT_MSG_WHISPER" reagieren?

Discussion on Auf /w mit "CHAT_MSG_WHISPER" reagieren? within the World of Warcraft forum part of the Popular Games category.

Reply
 
Old   #1
 
elite*gold: LOCKED
Join Date: Aug 2006
Posts: 3,292
Received Thanks: 866
Auf /w mit "CHAT_MSG_WHISPER" reagieren?

Huhu,

Ich beschäftige mich derzeit etwas mit LUA. So aus reiner langeweile und interesse wie ich auf bestimmte sachen reagieren kann.

Jetzt hab ich das Event "CHAT_MSG_WHISPER" gefunden und direkt das erste arg ist : Message received. Somit müsste ich doch "zugriff" auf die Message bekommen können und direkt drauf reagieren können oder?

Hab schon mal ein "Grund"gerüst gebaut:
Code:
siehe edit unten
So jetzt die Frage, wie kann ich das arg.1 benutzen?

edit:
Bin schon etwas weiter gekommen:
Code:
t = {}
t["w1"] = "ws?"
t["w2"] = "winter?"
t["w3"] = "time?"


local frame = CreateFrame("Frame")
frame:RegisterEvent("CHAT_MSG_WHISPER")
function frame:OnEvent(event, ...)
   if event == "CHAT_MSG_WHISPER" then
   if t["w1"] ~= nil then
      local timePassed = SecondsToTime(GetWintergraspWaitTime())
         --DEFAULT_CHAT_FRAME:AddMessage("Zeit bis Wintergraps:" .. timePassed)
		 [COLOR="Red"]SendChatMessage(timePassed , "WHISPER", nil,"chanme")[/COLOR]
		 end
   end
end
frame:SetScript("OnEvent", frame.OnEvent)
Da an dem Roten ist was falsch laut Lua fehler ingame :
Quote:
Message: SendChatMessage(): Invalid escape code in chat message
Time: 04/13/10 21:50:20
Count: 1
Stack: [C]: ?
[C]: in function `SendChatMessage'
Interface\AddOns\eventtest\eventtest.lua:14: in function <Interface\AddOns\eventtest\eventtest.lua:9>

Locals: (*temporary) = "6 |4Min.:Min.; 19 |4Sek.:Sek.;"
(*temporary) = "WHISPER"
(*temporary) = nil
(*temporary) = "asd"
Wo liegt der Fehler?
scenebase is offline  
Old 04/18/2010, 17:25   #2
 
H3llf!re's Avatar
 
elite*gold: 0
Join Date: Aug 2008
Posts: 659
Received Thanks: 1,379
Quote:
Originally Posted by Rhilor View Post
Huhu,

Ich beschäftige mich derzeit etwas mit LUA. So aus reiner langeweile und interesse wie ich auf bestimmte sachen reagieren kann.

Jetzt hab ich das Event "CHAT_MSG_WHISPER" gefunden und direkt das erste arg ist : Message received. Somit müsste ich doch "zugriff" auf die Message bekommen können und direkt drauf reagieren können oder?

Hab schon mal ein "Grund"gerüst gebaut:
Code:
siehe edit unten
So jetzt die Frage, wie kann ich das arg.1 benutzen?

edit:
Bin schon etwas weiter gekommen:
Code:
t = {}
t["w1"] = "ws?"
t["w2"] = "winter?"
t["w3"] = "time?"


local frame = CreateFrame("Frame")
frame:RegisterEvent("CHAT_MSG_WHISPER")
function frame:OnEvent(event, ...)
   if event == "CHAT_MSG_WHISPER" then
   if t["w1"] ~= nil then
      local timePassed = SecondsToTime(GetWintergraspWaitTime())
         --DEFAULT_CHAT_FRAME:AddMessage("Zeit bis Wintergraps:" .. timePassed)
         [COLOR=Red]SendChatMessage(timePassed , "WHISPER", nil,"chanme")[/COLOR]
         end
   end
end
frame:SetScript("OnEvent", frame.OnEvent)
Da an dem Roten ist was falsch laut Lua fehler ingame :


Wo liegt der Fehler?
also der fehler saht dass du versuchst was als nachricht zu schicken was wow nicht akzeptiert. was ist denn in timePassed gespeichert? und wen whisperst du da an? "chanme" etwa?

versuch mal das hier:
Code:
local Hellhatnendicken = CreateFrame("Frame")
Hellhatnendicken:RegisterEvent("CHAT_MSG_WHISPER")--hab das if event bla teil unten raus weil du ja scheinbar nur ein event registrierst

Hellhatnendicken:SetScript("OnEvent", function() 
   if t["w1"] ~= nil then -- was soll den das? du hast t.w1 doch oben definiert
      local timePassed = SecondsToTime(GetWintergraspWaitTime())
         --DEFAULT_CHAT_FRAME:AddMessage("Zeit bis Wintergraps:" ..  timePassed) --DEFAULT_CHAT_FRAME:AddMessage() kannst du einfach durch print() ersetzen... würde ich machen.
         [COLOR=Lime]SendChatMessage(timePassed)[/COLOR] --das wird einfach in /s gesendet
   end
end)
so hab das ganze jetzt nicht getestet aber so von angucken müssts hinhaun


//edit: und was hat dein code jetzt eig mit arg1 zu tun?
zur erklärung. die args (arg1-10) werden immer wenn ein event gefeuert wird geschrieben. du kannst einfach nach "if event== "bla"" "meinenachricht = arg1" machen
H3llf!re is offline  
Old 04/18/2010, 19:40   #3
 
Los's Avatar
 
elite*gold: 0
Join Date: Aug 2006
Posts: 445
Received Thanks: 520
SecondsToTime gibt nen code mit escapesequenzen zurück die nich über SendChatMessage vesendet werden können
Siht hier so aus "|4Min.:Min."
Also entwededer nimmste die raus (mit gsub oder sowas ka noch nie probiert) oder du berechnest dir aus den Sekunden selber die gesuchte zeitangabe^^
Los is offline  
Reply




All times are GMT +2. The time now is 06:04.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.