-
Posted by Pantharess on Thu, 01 Jul 2010 02:05:11
If I put my codes, here it decides to go into HTML form. So I'm going to reply to this post instead, with the error messages I receive. Hopefully easier to understand.
First: When I open and log on WoW. Second: When I click the button.
I'm new at LUA but I learn by creating usually :/ and I've had experience with CSS and HTML so I thought I'd skip to the second part. I changed the XML so it was originally from "Minimap" to under "PlayerFrame". However I can't move it, it won't change when I'm in combat and it won't let me right click for dps when I've killed something.
-
Posted by Pantharess on Thu, 01 Jul 2010 02:05:55
First: When I open and log on WoW.
-
Posted by Pantharess on Thu, 01 Jul 2010 02:13:07
Second: When I click the button #1.
-
Posted by Pantharess on Thu, 01 Jul 2010 02:47:43
My LUA Coding, From the book - please if you note any mistakes please say :) thankyou ^^
local start_time = 0 local end_time = 0 local total_time = 0 local total_damage = 0 local average_dps = 0 function CombatTracker_OnLoad(frame) frame:RegisterEvent("UNIT_COMBAT") frame:RegisterEvent("PLAYER_REGEN_ENABLED") frame:RegisterEvent("PLAYER_REGEN_DISABLED") frame:RegisterForClicks("RightButtonUp") frame:RegisterForDrag("LeftButton") end function CombatTracker_OnEvent(frame, event, ...) if event == "PLAYER_REGEN_ENABLED" then end_time = GetTime() total_time = end_time - start_time average_dps = total_damage / total_time CombatTracker_UpdateText() elseif event == "PLAYER_REGEN_DISABLED" then CombatTrackerFrameText:SetText("In Combat") total_damage = 0 start_time = GetTime() elseif event == "UNIT_COMBAT" then if not InCombatLockdown() then else local unit,action,modifier,damage,damagetype = ... if unit == "player" and action ~= "HEAL" then total_damage = total_damage + damage end_time = GetTime() total_time = end_time - start_time average_dps = total_damage / total_time CombatTracker_UpdateText() end end end end function CombatTracker_UpdateText() local status = string.format("%ds / %d dmg/ %.2f dps", total_time, total_damage, average_dps) CombatTrackerFrameText:SetText(status) end function CombatTracker_ReportDPS() local msgformat = "%d seconds spent in combat with %d incoming damage. Average incoming DPS was %.2f" local msgformat = string.format(msgformat, total_time, total_damage, average_dps) if GetNumPartyMembers() > 0 then SendChatMessage(msg, "PARTY") else ChatFrame1:AddMessage(msg) end end
-
Posted by jnwhiteh on Thu, 01 Jul 2010 09:25:49
In your table of contents file, what do you list first, CombatTracker.xml or CombatTracker.lua?
-
Posted by jnwhiteh on Thu, 01 Jul 2010 09:26:59
Also you can use http://pastey.net to paste your code, or use the 'code' button in the editor toolbar at the top of the editor window. Select all of the code and click the right-most button. Then you can paste any XML code you'd like, as long as it's in a code block.
-
Posted by Pantharess on Thu, 01 Jul 2010 22:24:19
<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/ ..\FrameXML\UI.xsd"> <Button name="CombatTrackerFrame" parent="UIparent" enableMouse="true" movable="true" frameStrata="LOW"> <Size x="175" y="40"/> <Anchors> <Anchor point="TOP" relativePoint="BOTTOM" relativeTo="PlayerFrame"> <Offset x="50" y="-10"/> </Anchor> </Anchors> <Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true"> <BackdropInsets> <AbsInset left="11" right="12" top="12" bottom="11"/> </BackdropInsets> <TileSize> <AbsValue val="30"/> </TileSize> <EdgeSize> <AbsValue val="32"/> </EdgeSize> </Backdrop> <Layers> <Layer level="OVERLAY"> <FontString name="$parentText" inherits="GameFontNormalSmall" justifyH="CENTER" setALLPoints="true" text="CombatTracker"/> </Layer> </Layers> <Scripts> <OnLoad> CombatTracker_OnLoad(self) </OnLoad> <OnEvent> CombatTracker_onEvent(self, event, ...) </OnEvent> <OnClick> CombatTracker_ReportDPS() </OnClick> <OnDragStart> self:StartMoving() </OnDragStart> <OnDragStop> self:StopMovingOrSizing() </OnDragStop> </Scripts> </Button> </Ui>
-
Posted by jnwhiteh on Thu, 01 Jul 2010 22:26:24
Please note that I said to paste the text, THEN select it and click the code button. It appears you clicked the code button and then pasted the text.. which is not correct. I've fixed it. You also didn't answer my question, which is listed first in your .TOC file?
-
Posted by Pantharess on Thu, 01 Jul 2010 22:34:05
Also you can use http://pastey.net to paste your code, or use the 'code' button in the editor toolbar at the top of the editor window. Select all of the code and click the right-most button. Then you can paste any XML code you'd like, as long as it's in a code block.
Apparently I can't actual put the block in an actual block I tried yesterday.. that's my xml, I tried pasteys but because of the websites it won't let me something about putting them in reverse and the number I've used. >.< which ever they're both annoying me.. so there.. erm I still get LUA messages even when I turned the xml and lua around. For some reason.. -.-
-
Posted by jnwhiteh on Thu, 01 Jul 2010 22:37:47
I can't really help you if you're not willing to answer the questions. The Lua script needs to be listed first in the .TOC file, followed by the XML file. You can use http://pastebin.ca to paste the code without having to type anything in. I'm going to bed, so I won't be able to respond any more tonight.
If you are getting the same errors (I doubt it) with the Lua file loading first, then we'll have to look even further, in that case, post each file (.toc, .lua, and .xml) using pastebin.ca, or something similar.
Alternatively, download the version of the code from this website and see for yourself what differences there are.
-
Posted by Pantharess on Thu, 01 Jul 2010 22:57:41
I can't really help you if you're not willing to answer the questions.
I did answer it, I said I switched them around, meaning I referred back into the book, and then I changed them.. so now the lua is first. Unless the book is also wrong ^^ somehow. I managed to get my message I realise I put msgformat twice instead of msgformat then msg. In the Lua, the problem now is the text won't change and the dps and time isn't getting recorded.
Message: [string "CombatTrackerFrame:OnEvent"]:1: attempt to call global 'CombatTracker_onEvent' (a nil value) Time: 07/01/10 23:46:31 Count: 16 Stack: [string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1> Locals: self = CombatTrackerFrame { 0 = <userdata> } event = "UNIT_COMBAT" (*temporary) = nil (*temporary) = CombatTrackerFrame { 0 = <userdata> } (*temporary) = "UNIT_COMBAT" (*temporary) = "player" (*temporary) = "WOUND" (*temporary) = "" (*temporary) = 3 (*temporary) = 1 (*temporary) = "attempt to call global 'CombatTracker_onEvent' (a nil value)"
-
Posted by Pantharess on Thu, 01 Jul 2010 22:59:01
Message: [string "CombatTrackerFrame:OnEvent"]:1: attempt to call global 'CombatTracker_onEvent' (a nil value) Time: 07/01/10 23:58:48 Count: 6 Stack: [string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1> Locals: self = CombatTrackerFrame { 0 = <userdata> } event = "PLAYER_REGEN_ENABLED" (*temporary) = nil (*temporary) = CombatTrackerFrame { 0 = <userdata> } (*temporary) = "PLAYER_REGEN_ENABLED" (*temporary) = "attempt to call global 'CombatTracker_onEvent' (a nil value)"
The previous code changes to this. After combat. But the other one keeps popping up in combat and won't stop.
-
Posted by Pantharess on Thu, 01 Jul 2010 23:15:32
Thankyou for your time, I was reading the message over and I decided to also check my XML where I found the problem, you do good work here and the problem is fixed and the add on is working :D.
x Pantharess