I have hooked several voice chat related functions,
for example IsVoiceChatEnabled() and GetVoiceStatus(...)
I have recently learned that they are are used in
FrameXML/UnitPopup.lua when you click a portrait.
This causes a taint and popups with whisper, trade etc are not displayed.
I dont care for the value of these functions in FrameXML but i need to change the return value for other addons as i need them to believe that voice chat is active...
Ok, thanks for explanation,
i that case i think i will just add another tab in the frame.
The catch here is this. Up to this point I had my addon configured that it didnt interfere with the blizz ingame voicechat - it didnt break it if anybody would want to use - even that it might sound higly unlikely :) as nobody uses ingame chat.
Problem is that I had to enable ingame voicechat to be able to measure microphone level. I am recording a loopback sound, but nothing prevents a user from joining an existing ingame channel. And I wont be able to determine if it was by design or by mistake ...in the end i am of the mind to chuck it out, has anybody heard of someone using the blizz voicechat?
Still I consider it a bad design...
I have a question that is related to modyfing blizzard frames.
I want to change the content of this frame http://wowka.cz/image/informace/chat/ss15.jpg
to also provide information on people on external voice chat like TS or Vent.
My addon already does this part, question is how to best display it here,
because i am not very familiar with the concept of tainting code and blizzard frames.
So which approaches are possible and prefferable?
1) hook the functions that provide the data to the frame
2) add addition widgets(buttons,tabs..) to the frame
3) completely replace the frame in game with my own implementation
Hi,
after a longer time i have decided to rewrite the library to provide transparent layer over blizzard api.
I will try to hook ace event frame and call voice events in this fashion.
if AceEvent30Frame then
AceEvent30Frame:GetScript( "OnEvent" )( AceEvent30Frame, "VOICE_START", <unit> )
end
But i have encountered one small problem.For obvious reasons i am sending player names of the speaking players, but blizzards events fire with UnitID arguments.So i have a question. Is there a function to change playername to unitid? I guess that one playername can result in multiple unitids
and i will probably have to write it myself but i would like your thoughts about how to do this efficiently
Hi,
i am author of raid voice, addon that shows players speaking on external voicechat programs like Vent or TS and i am trying to add support into my addon for detecting unitframes and calling methods to show speaking players.
So my question is simple. Is there a simple and clean way to call
method GridStatusVoiceComm:VOICE_START(event, unitid)
located in GridStatusVoiceComm.lua from another addon?
Do you have any objection against me doing so?
i got it working with playernames,
and i want some kind of function
that check the string if it is a unit id or playername,
so i can get it working in both cases
function RV:GetMuteStatus(name, ...)
if (playerMuted and (name ==playerName)) then return 1 end
if (name and RV.mutedPlayers[name]) then
return 1
end
return RV.oldGetMuteStatus(name, ...)
end
Well, my intentions are to make this addon more like the voice overlay if possible .It is currently lacking support for friends who are just chatting without a group. I might send the data over whisper for same realm/faction but thought about broader solution with real id .Or do you thing it is not worth the trouble? My addon send various data, but basicly i need to know boolean value which say speaking/not speaking.
I do not have very clear intentions about this.Is more about adding some new cool feature that would draw new people to use my addon.My "cool" features so far are
push to talk / voice activation, sound muting when someone speaks and virtual voichat channels over guildchat.I even made a library that could be included in unit frames, but not many people seemed interested.
i want to extend functionality of my raidvoice addon by adding realId support.
My addon currently shows playernames of people in same group/guild who have it installed and are speaking over external voicechat like Ventrillo.What is in your opinon the best way to use all that realid offers? I need to send some data to other players. Is it possible to do so cross/realm cross/faction? Or is it an exploitation of blizz policy?Any comments welcomed
As it turns out this causes a glitch in my addon raidvoice, because he is currently set thus, that recieving response to !PING he prints player name, addon version and channel from recieved response every time i join a party. By desing a slashcommand /raidvoice ping sengs !PING and response is immediately printed when recieved, but this obviously is tampered with addition of libraidvoice sending !PING on party join. Is there a neat way to send command store responses somewhere and print them only when explicitely asked? I have an idea myself, but i dont like it very much.
It should, Blizzard LFG Frame uses similar conditions....
Anyway i have other question, is there a smart way to determine that I just joined party/raid?
I want to add a table holding all raidvoice capable players.This could be useful to see which players see you speaking. My idea was that this new player with query the party/raid, causing them to add him to this table. But if i use PARTY_MEMBERS_CHANGED it will trigger for each player which i do not want, as it would cause excessive communication. I came up with this...
You don't need to recall CHAT_MSG_ADDON with the new message, just use it in place of the existing one (hence message=channelMessage).
And last, channel messages should only occurs on GUILD distribution, so you could check it to prevent unnecessary processing and ensure consistency.
All this applied to your code:
function RV:CHAT_MSG_ADDON(event, prefix, message, distribution, sender)
if prefix ~= 'RAIDVOICE' then return end
if distribution == "GUILD" then
local channelNumber, channelMessage = string.match(message, "^!CH(%d+):(.*)$")
channelNumber = tonumber(channelNumber)
if channelNumber then
if channelNumber == currentVoiceChannel then
-- Same channel, parse the message
message = channelMessage
else
return -- Ignore message on other channels
end
end
end
-- continue with processing...
[
Does your regular expression take this example?:
CH2!;!CLEAR
I think the message would then be ;!CLEAR not !CLEAR or am i wrong?
EDIT:
okay, got it should be
string.match(message, "^!CH(%d+);(.*)$")
Considering SpeakToChannel, GetNumPartyMembers() always returns a positive number when you are in a party or a raid, so there is no need to check GetNumRaidMembers().
I use the GetRealNumPartyMembers() and GetRealNumRaidMembers() to check if player is in party or raid (not checking for negative value)
Because,for examples If you send message to raid and you are not part of raid, but in battleground, this causes the error you are not in party to appear in console.
0
I have hooked several voice chat related functions,
for example IsVoiceChatEnabled() and GetVoiceStatus(...)
I have recently learned that they are are used in
FrameXML/UnitPopup.lua when you click a portrait.
This causes a taint and popups with whisper, trade etc are not displayed.
I dont care for the value of these functions in FrameXML but i need to change the return value for other addons as i need them to believe that voice chat is active...
Any thougths?
0
0
i that case i think i will just add another tab in the frame.
The catch here is this. Up to this point I had my addon configured that it didnt interfere with the blizz ingame voicechat - it didnt break it if anybody would want to use - even that it might sound higly unlikely :) as nobody uses ingame chat.
Problem is that I had to enable ingame voicechat to be able to measure microphone level. I am recording a loopback sound, but nothing prevents a user from joining an existing ingame channel. And I wont be able to determine if it was by design or by mistake ...in the end i am of the mind to chuck it out, has anybody heard of someone using the blizz voicechat?
Still I consider it a bad design...
0
I have a question that is related to modyfing blizzard frames.
I want to change the content of this frame
http://wowka.cz/image/informace/chat/ss15.jpg
to also provide information on people on external voice chat like TS or Vent.
My addon already does this part, question is how to best display it here,
because i am not very familiar with the concept of tainting code and blizzard frames.
So which approaches are possible and prefferable?
1) hook the functions that provide the data to the frame
2) add addition widgets(buttons,tabs..) to the frame
3) completely replace the frame in game with my own implementation
Any comments?
Thanks for your time
0
after a longer time i have decided to rewrite the library to provide transparent layer over blizzard api.
I will try to hook ace event frame and call voice events in this fashion.
But i have encountered one small problem.For obvious reasons i am sending player names of the speaking players, but blizzards events fire with UnitID arguments.So i have a question. Is there a function to change playername to unitid? I guess that one playername can result in multiple unitids
and i will probably have to write it myself but i would like your thoughts about how to do this efficiently
Edit:I have came up with something like this:
http://paste.curseforge.com/3058/
0
i am author of raid voice, addon that shows players speaking on external voicechat programs like Vent or TS and i am trying to add support into my addon for detecting unitframes and calling methods to show speaking players.
So my question is simple. Is there a simple and clean way to call
method GridStatusVoiceComm:VOICE_START(event, unitid)
located in GridStatusVoiceComm.lua from another addon?
Do you have any objection against me doing so?
Thanks for your time
Starouscz
0
i was getting an error if i used only
0
i have a question...
I want to hook a function
that accepts both unitid and playername as a parameter
http://wowprogramming.com/docs/api/GetMuteStatus
i got it working with playernames,
and i want some kind of function
that check the string if it is a unit id or playername,
so i can get it working in both cases
0
Personnaly, i think that blizzard should make a public battlenet api with voicechat support.
Still, thanks for your thoughts
0
I do not have very clear intentions about this.Is more about adding some new cool feature that would draw new people to use my addon.My "cool" features so far are
push to talk / voice activation, sound muting when someone speaks and virtual voichat channels over guildchat.I even made a library that could be included in unit frames, but not many people seemed interested.
0
i want to extend functionality of my raidvoice addon by adding realId support.
My addon currently shows playernames of people in same group/guild who have it installed and are speaking over external voicechat like Ventrillo.What is in your opinon the best way to use all that realid offers? I need to send some data to other players. Is it possible to do so cross/realm cross/faction? Or is it an exploitation of blizz policy?Any comments welcomed
0
0
Anyway i have other question, is there a smart way to determine that I just joined party/raid?
I want to add a table holding all raidvoice capable players.This could be useful to see which players see you speaking. My idea was that this new player with query the party/raid, causing them to add him to this table. But if i use PARTY_MEMBERS_CHANGED it will trigger for each player which i do not want, as it would cause excessive communication. I came up with this...
http://paste.wowace.com/dq7wiykljshbn3ut/
0
Does your regular expression take this example?:
CH2!;!CLEAR
I think the message would then be ;!CLEAR not !CLEAR or am i wrong?
EDIT:
okay, got it should be
string.match(message, "^!CH(%d+);(.*)$")
I use the GetRealNumPartyMembers() and GetRealNumRaidMembers() to check if player is in party or raid (not checking for negative value)
Because,for examples If you send message to raid and you are not part of raid, but in battleground, this causes the error you are not in party to appear in console.
0
http://paste.wowace.com/bvnas01d5l8zxwcj/
Any comments?