kick makro

doch, das kommt sobald ich kicke, kann nachher noch einen machen, wenn ich es auf "SAY" umstell, da sieht man besser dass es zusammenhängt.

edit: PartyYell auf true gestellt, um es beim Screenshot deutlicher zu machen + Chat Loading Spam erstmal weggemacht^^

Code:
------------------------------------------------------
--- Config
------------------------------------------------------
local raid = true;
local RaidYell = false;
local party = true;
local PartyYell = true;
------------------------------------------------------
--- the Magic
------------------------------------------------------
local OUTPUT = "%s interrupted %s from %s";
local function OnEvent(self, event, ...)
	if ( event == "PLAYER_LOGIN" ) then
		self:UnregisterEvent("PLAYER_LOGIN");
		self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
 	
	elseif ( event == "COMBAT_LOG_EVENT_UNFILTERED" ) then
		local timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellID, spellName, _, extraskillID, extraSkillName = ...;
 	
		if ( eventType == "SPELL_INTERRUPT" ) and sourceName == UnitName("player") then
			local text = OUTPUT:format(GetSpellLink(spellID), GetSpellLink(extraskillID), destName);
 	
 	if ( PartyYell == true and RaidYell == true ) or 
 	( PartyYell == true and RaidYell == false and not UnitInRaid("player") ) or 
 	( PartyYell == false and RaidYell == true and not UnitInParty("player") ) then
 	SendChatMessage(text, "YELL");
 	end;
 	
 	if ( UnitInRaid("player") and raid == true ) then
 	SendChatMessage(text, "RAID");
 	elseif ( UnitInParty("player") and party == true ) then
 	SendChatMessage(text, "PARTY");
 	elseif not ( UnitInParty("player") ) or not ( UnitInRaid("player") ) then
				SendChatMessage(text, "SAY");
			end;
 	
		end;
	end;
end;
local Interrupt = CreateFrame("Frame");
Interrupt:RegisterEvent("PLAYER_LOGIN");
Interrupt:SetScript("OnEvent", OnEvent);
 
Zuletzt bearbeitet von einem Moderator:
liegt definitiv nicht am addon, gerade nur mit dem addon an getestet (gleicher code wie du). Passierte aber überhaupt nichts.
Irgendein addon streitet sich. Welches genau kann ich nicht sagen
 
Zuletzt bearbeitet von einem Moderator:
Dann werd ich das jetzt auch noch fix testen, hatte nebenbei mal bissl gesucht @wowpedia und noch

As of 2.0.3, UnitInParty("player") always returns 1, even when you are not in a party. Use GetNumPartyMembers and GetNumRaidMembers to determine if you are in a party or raid.

gefunden.

edit: auch mit iInterrupt als einziges Addon, der gleiche Fehler.

 
Zuletzt bearbeitet von einem Moderator:
Ich hab doch geschrieben:
UnitInParty("player") always returns true. Even when you are not in a party. Assumed reason being: you are always in your own party (of at least one, yourself.)

Ersetze UnitInParty("player") einfach zu UnitExists("party1")
-.-!
 
ohlol gar nicht gsehn xD. hm komisch das bei mir kein fehler kommt. Danke dir aber ich werde es ersetzen

e: Ich idiot hab systemnachrichten aus xD
 
Zuletzt bearbeitet von einem Moderator:
raid == true ? ^^

true == true ergibt: true. solche doppelchecks kann man sich auch sparen
Code:
if ( UnitInRaid("player") and raid ) then
reicht

 
ist mir schon klar, jedoch liest es sich besser.
 
So hab da nich so die erfahrung mit Lua etc finde aber dieses iInterrupt echt praktisch.
nur stört es mich das es auch etwas ausspuckt wenn ich solo bin was ich nicht möchte. hatte schon versucht etwas zu ändern dahingehend aber entweder spuckte es dann gar nichts mehr aus oder wenn ich in einer grp war schrieb es in /p und gleichzeitig nochmal das gleiche im /s =(.

kann mir jemand sagen bzw die textzeilen so schreiben das ich copy & paste machen kann um nicht wieder irgendwas falsch zu machen? möchte halt das es im /raid und /party normal den erfolgreichen kick ansagt aber wenn ich nicht in grp bin nichts macht.
 
Zuletzt bearbeitet von einem Moderator:
Code:
------------------------------------------------------
--- Config
------------------------------------------------------
local raid = true;
local RaidYell = true;
local party = true;
local PartyYell = true;
------------------------------------------------------
--- the Magic
------------------------------------------------------
local OUTPUT = "%s interrupted %s from %s";
local function OnEvent(self, event, ...)
	if ( event == "PLAYER_LOGIN" ) then
		self:UnregisterEvent("PLAYER_LOGIN");
		self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
        
	elseif ( event == "COMBAT_LOG_EVENT_UNFILTERED" ) then
		local timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellID, spellName, _, extraskillID, extraSkillName = ...;
        
		if ( eventType == "SPELL_INTERRUPT" ) and sourceName == UnitName("player") then
			local text = OUTPUT:format(GetSpellLink(spellID), GetSpellLink(extraskillID), destName);
            
            if  ( PartyYell == true and RaidYell == true ) or 
                ( PartyYell == true and RaidYell == false and not UnitInRaid("player") ) or 
                ( PartyYell == false and RaidYell == true and not UnitExists("party1") ) then
                SendChatMessage(text, "YELL");
            end;
            
            if ( UnitInRaid("player") and raid == true ) then
                SendChatMessage(text, "RAID");
            elseif ( UUnitExists("party1") and party == true ) then
                SendChatMessage(text, "PARTY");
            elseif not ( UnitExists("party1") ) or not ( UnitInRaid("player") ) then
				SendChatMessage(text, "YELL");
			end;
            
		end;
	end;
end;
local Interrupt = CreateFrame("Frame");
Interrupt:RegisterEvent("PLAYER_LOGIN");
Interrupt:SetScript("OnEvent", OnEvent);

neuer code
 
Lieben dank @Wertzû, gleich mal ausprobieren =).

obwohl seh gerade das er auch dort schreien, soll sobald ich nicht im raid oder grp bin, dies wollt ich aber vermeiden, denn solo interessiert nur mich was ich kick und sehe dies, muss ja nicht umstehende damit belästigen^^reicht es da die letzen zeilen jeweis zu entfernen? weil beim alten code hatte ichs versucht aber dann sagte er gar nix mehr.
 
Zuletzt bearbeitet von einem Moderator:
[font="arial, verdana, tahoma, sans-serif"] elseif not ( UnitExists("party1") ) or not ( UnitInRaid("player") ) then SendChatMessage(text, "YELL"); end; [/font]
[font="arial, verdana, tahoma, sans-serif"] [/font]
[font="arial, verdana, tahoma, sans-serif"]entfernen[/font]
 
Zuletzt bearbeitet von einem Moderator:
Nachdem mein Pala gestern auch das ordentlich Interrupten gelernt hat, habe ich mir auch ein Add-on geschrieben.
Hatte es zunächst so eingestellt, dass es auch in Party announced, aber das habe ich wieder rausgenommen, da es ein unglaubliches Gespamme war
Spammt also nur noch in Raidinstanzen. Wer es ändern will:
Code:
if select(2, IsInInstance()) == "raid" then
Für Party + Raid z.B. ändern in:
Code:
if select(2, IsInInstance()) == "raid" or select(2, IsInInstance()) == "party" then
Oder man löscht die Abfrage ganz um es überall zu spammen


Code:
------ CONFIG ------

local zRaid = false;
local zSay = true;

function ShowSpellLink(spellID)
    local spellLink = GetSpellLink(spellID or 0) or "<no spellLink found>";
    DEFAULT_CHAT_FRAME:AddMessage(spellLink);
end

local function OnEvent(self, event, ...)
	if ( event == "PLAYER_LOGIN" ) then
		self:UnregisterEvent("PLAYER_LOGIN");
		self:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
	elseif ( event == "COMBAT_LOG_EVENT_UNFILTERED" ) then
		if select(2, IsInInstance()) == "raid" then
			local timestamp, eventType, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellID, spellName, _, extraskillID, extraskillname = ...;
			if (eventType == "SPELL_INTERRUPT") and sourceName == UnitName("player") then
				zmsg = (""..GetSpellLink(spellID).." unterbricht "..destName.."'s "..GetSpellLink(extraskillID).."")
				if UnitInRaid("player") and (zRaid == true) then
					SendChatMessage(zmsg, "RAID")
				elseif (zSay == true) then
					SendChatMessage(zmsg, "SAY")
				end
			end
		else
		end
	end;
end
local sInterrupted = CreateFrame("Frame")
sInterrupted:RegisterEvent("PLAYER_LOGIN")
sInterrupted:SetScript("OnEvent", OnEvent)
 
Zurück