I have a slight problem with my addon.
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...
- Registered User
Member for 13 years, 11 months, and 8 days
Last active Sat, Aug, 20 2016 12:10:27
- 0 Followers
- 31 Total Posts
- 0 Thanks
Sep 21, 2011_ForgeUser2809927 posted a message on Taint in PopupPosted in: Lua Code Discussion
0and is it possible to modify the FrameXML, or how do i change the blizz code? I am a bit baffled...Posted in: Need Help?
0Ok, thanks for explanation,Posted in: Need Help?
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...
0Hi,Posted in: Need Help?
I have a question that is related to modyfing blizzard frames.
I want to change the content of this frame
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
Thanks for your time
0_ForgeUser2809927 posted a message on LibRaidVoiceHi,Posted in: Libraries
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
Edit:I have came up with something like this:
0_ForgeUser2809927 posted a message on Grid compact party/raid unit framesHi,Posted in: Grid & Grid2
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
0_ForgeUser2809927 posted a message on UnitId and playernameThx very much that what i was looking for,Posted in: Lua Code Discussion
i was getting an error if i used only
local name = UnitName(nameOrUnit) ..
0_ForgeUser2809927 posted a message on UnitId and playernamehi,Posted in: Lua Code Discussion
i have a question...
I want to hook a function
that accepts both unitid and playername as a parameter
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
0Well i was thinking about something a bit different, but in the end it would still annoy people who dont have the addon.Posted in: Need Help?
Personnaly, i think that blizzard should make a public battlenet api with voicechat support.
Still, thanks for your thoughts
0Well, 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.Posted in: Need Help?
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.
0Hi,Posted in: Need Help?
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
0As 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.Posted in: Addon Ideas
0It should, Blizzard LFG Frame uses similar conditions....Posted in: Addon Ideas
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...
0Thanks Adirelle, here is a couple of things....Posted in: Addon Ideas
Quote from Adirelle
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?:
I think the message would then be ;!CLEAR not !CLEAR or am i wrong?
okay, got it should be
Quote from Adirelle
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.
0I included support for virtual guild voice channels, the idea is to mimic ventrillo/teamspeak channels of a guild voicechat server.Posted in: Addon Ideas
- To post a comment, please login or register a new account.