Addon schreiben ?!

04/06/2008 12:51 Nab4Ever#16
Ich bin quasi fertig, nur ich das blöde ist, dass ich nicht testen kann. Allgemein kann ich derzeit nicht spielen seit dem patch bleibt WoW bei "Verbindung wird aufgebaut", danach kommt nichts mehr.
Hast du vielleicht eine Idee, das ist verdammt nervig - die Bot Entwicklung steht ebenfalls still. Mit der Internetverbindung ist alles in Ordnung - bin gerade echt am verzweifeln.
04/06/2008 16:50 Reckoning#17
schon ma wdb ordner gelöscht usw ?


schneid se ambesten aus aufn desktop oder so...
04/07/2008 08:26 Nab4Ever#18
Hab gerade WoW neuinstalliert... selbes Ergebnis.Hab das Problem nur zur Hause, auf der Arbeit funktionierts.

Ob mans glaubt oder nicht, aber das regt mich gerade tierisch auf. (es war ein Hotfix(!!!!))

PS. Sollte ihr Nachts mal keine Lust auf Schlafen haben, dann installiert einfach WoW neu. Mit Patchen hat man locker 4 Stunden zu tun.
04/07/2008 09:26 Nab4Ever#19
Okay, damit du nicht noch länger warten musst, hab ichs mal geuploadet:

[Only registered and activated users can see links. Click Here To Register...]

THEORETISCH sollte es funktionieren, allerdings hatte ich keine Gelegenheit es zu testen - es wurde vollkommen blind programmiert.

Hier einmal der Quellcode, vielleicht fällt ja irgendjemandem spontan ein Fehler auf:

XML-Datei:

frame.xml

Code:
<Ui xmlns="http://www.blizzard.com/wow/ui/"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
  <script file="frame.lua"/>


  <Frame name="frame1">
     <Scripts>
     
        <OnLoad>
	 init()
        </OnLoad>
	
        <OnEvent>
            
	    if (event == "PLAYER_TARGET_CHANGED") then
              onTargetChange();
            end
	    
	    if (event == "PLAYER_PVP_KILLS_CHANGED") then
              onKill();
            end
	    	   
        </OnEvent>
	
     </Scripts>
  </Frame>
</Ui>

LUA-Datei:

frame.lua

Code:
function init()
frame1:RegisterEvent("PLAYER_PVP_KILLS_CHANGED");
frame1:RegisterEvent("PLAYER_TARGET_CHANGED");
end

function onTargetChange()
aktTarget = UnitName("playertarget");
end

function onKill()
math.randomseed( os.time() );

	if(UnitIsDeadOrGhost(aktTarget)) then
	aktSound = math.random(1,3);
	
		if(aktSound == 1) then
		PlaySoundFile("Interface\AddOns\RagnarosKillAddon\RagnarosSlay01.wav");
		end
		
		if(aktSound == 2) then
		PlaySoundFile("Interface\AddOns\RagnarosKillAddon\RagnarosSpecialAttack01.wav");
		end
		
		if(aktSound == 3) then
		PlaySoundFile("Interface\AddOns\RagnarosKillAddon\RagnarosSpecialAttack02.wav");
		end		
	end
end

und die TOC Datei:

RagnarosKillAddon.toc

Code:
## Interface: 20400
## Title: RagnarosKillAddon
## Notes: Plays Ragnaros Sounds on PVPKills
## OptionalDeps:
## Dependencies:
frame.xml
frame.lua

Um ehrlich zu sein, kommt es bei mir extrem selten vor, dass etwas ohne jeden Testlauf auf Anhieb funktioniert - von daher ist ein Fehler wohl vorprogrammiert. Naja, du kannst mir ja sagen, ob es so funktioniert wie es soll bzw ob überhaupt etwas passiert.

mfg
Nab4Ever
04/08/2008 16:37 Reckoning#20
error

hab screen vom error geupt
04/09/2008 08:02 Nab4Ever#21
Hmm... sieht so aus, als könnte er den Zufallsgenerator nicht mit Zahlen füllen, da os.time() nicht erlaubt ist.
Naja, ist kein Problem das zu ändern, ich veränders nacher und uploade dann.


(Momentan ist zu viel zu tun)

mfg
Nab4Ever
04/09/2008 09:44 Nab4Ever#22
ok, ich hab die problematische Zeile mal entfernt, hier die neue Version:

[Only registered and activated users can see links. Click Here To Register...]

Am besten du testest es wieder postest im Fehlerfall einen Screenshot - evtl. schaffen wir es dann tatsächlich noch zu einem funktionierenden Addon ;)
04/10/2008 22:13 Ennea#23
Du solltest lieber das os. rausnehmen ;) Soweit ich weiß nimmt time() ja sowieso die Zeit vom Betriebssystem. Sollte also dann so funktionieren. Ist jetzt allerdings auch nur theoretisch.


Edit: Nochmal bei WoWWiki und so vorbeigeschaut, sollte eigentlich funzen wenn die .lua so aussieht:

Code:
function init()
  frame1:RegisterEvent("PLAYER_PVP_KILLS_CHANGED")
  frame1:RegisterEvent("PLAYER_TARGET_CHANGED")
end

function onTargetChange()
  aktTarget = UnitName("playertarget");
end

function onKill()
  math.randomseed(GetTime())
  
  if UnitIsDeadOrGhost(aktTarget) then
    local aktSound = math.random(1, 3)
    
    if aktSound == 1 then
      PlaySoundFile("InterfaceAddOnsRagnarosKillAddonRagnarosSlay01.wav")
    elseif aktSound == 2 then
      PlaySoundFile("InterfaceAddOnsRagnarosKillAddonRagnarosSpecialAttack01.wav")
    else
      PlaySoundFile("InterfaceAddOnsRagnarosKillAddonRagnarosSpecialAttack02.wav")
    end
end
Das ist nach wie vor Theorie. Keine Garantie obs wirklich funktioniert oder nicht.
04/11/2008 13:34 Nab4Ever#24
Könnte man auch nochmal probieren, nur leider hab ich mein WoW Problem immer noch nicht beheben können. :(

Ich hab nen Thanks bekommen von ReckoningBomb... heißt das es funktioniert? Bitte melde dich nochmal, würde mich echt interessieren, ob es jetzt geht - obwohl der Zufallsgenerator nicht neu gefüllt wird.

mfg
Nab4Ever
04/11/2008 20:31 Reckoning#25
ne der sound wird einfach nicht abgespielt .... aber keine meldung
04/12/2008 11:49 Nab4Ever#26
arg, wenn mein wow gehen würde >.< ich formatier heute mal neu, danach kann ich dann selber testen