Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

WoW AddOn Hjælp - Lua coding

Af Ultrabruger Geekwest | 26-03-2013 17:42 | 953 visninger | 2 svar, hop til seneste
Hej derude. Jeg sidder og er igang med at læse en bog der hedder Beginning Lua with world of warcraft jeg er så kommet til min første AddOn i bogen hvor jeg skal lave en tooltip der vises når musen peger på et link i chatten. jeg så en tråd ligende herinde, og jeg har skam også fået det til at virke - men eftersom det er en lidt outdated bog så skulle der være en nemmere og bedre måde at udføre det på - har prøvet at poste det på forskellige sites, men programmerings nørder der taler engelsk til mig giver mig lange løg :P Her er min kode: local function ChatlinkTooltips_ShowTip(self, linkData) local LinkType = string.split(":", linkData) if LinkType == "item" or LinkType == "spell" or LinkType == "achievement" or LinkType == "enchant" or LinkType == "quest" or LinkType == "talent" or LinkType == "unit" or LinkType == "glyph" then GameTooltip:SetOwner(self, "ANCHOR_CURSOR") GameTooltip:SetHyperlink(linkData) GameTooltip:Show() end end local function ChatlinkTooltips_HideTip() GameTooltip:Hide() end local function ChatlinkTooltips_SetOrHookHandler(frame, event, func) if frame:GetScript(event) then -- checks if it already has a script handler... frame:HookScript(event, func) -- ... and hooks it. else frame:SetScript(event, func) -- sets our function as event handler otherwise end end for i = 1, NUM_CHAT_WINDOWS do local frame = _G["ChatFrame" .. i] -- Copy a reference if frame then -- Makes sure the frame exists ChatlinkTooltips_SetOrHookHandler(frame, "OnHyperLinkEnter", ChatlinkTooltips_ShowTip) ChatlinkTooltips_SetOrHookHandler(frame, "OnHyperLinkLeave", ChatlinkTooltips_HideTip) end end Hvordan kan jeg gøre denne kode nemmere at forstå? Nu har jeg jo blot skrevet den af fra en guide - men fatter stadig nada af hvad der står. Tak på forhånd!
--
i7-3770k @ 4.8GHz, 2x GTX 680, 860i, V-Gene, H100i Push/Pull (NF-P12), 600T Hvid, 16GB Dominator 1866MHz, 2x 840 Pro SSD.
#1
Gunnar
Gæst
26-03-2013 18:13

Rapporter til Admin
Det første vi kan gøre er at lave en tabel(table) fx. local tbl = {} i tabellen skal vi tilskrive de værdier vi gerne vil arbejde med i dette tilfælde: local supportedTypes = { --> lav en table med et navn quest = true, --> tilføj elementerne til tabellen item = true, achievement = true, spell = true, unit = true, enchant = true, talent = true, glyph = true, } local function ChatlinkTooltips_Show(self, dataType) --> lav en function med et navn og to argumenter. local linkType = strmatch(dataType, "(.-):") --> lav en local = strmatch(, "(.-):") if supportedTypes[linkType] then --> hvis chat link = en af følgende fra vores supportedTypes tabel, samt link koden er modtages, så skal nedenstående udføres. GameTooltip:SetOwner(self, "ANCHOR_CURSOR") --> sætter placering hvor tooltippet skal vises, i dette tilfælde der hvor musen er placeret. GameTooltip:SetHyperlink(dataType) --> sætter vores tooltip GameTooltip:Show() --> viser tooltip end end for frameType = 1, NUM_CHAT_WINDOWS do --> lav en for loop med = 1, ... køre igennem loopen indtil nedenstående script træder i kraft. local chatType = _G["ChatFrame" .. frameType] --> lav en local der fortæller at loopen kun skal køre inden for "ChatFrame" vinduet via _G(getglobal) chatType:HookScript("OnHyperLinkEnter", ChatlinkTooltips_Show) --> hvis ovenstående _G["ChatFrame" .. frameType] træder i kraft, så HookScript med følgende 2 argumenter - 1 event("OnHyperLinkEnter") og 2 referere til ChatlinkTooltips_Show chatType:HookScript("OnHyperLinkLeave", GameTooltip_Hide) --> hvis ovenstående _G["ChatFrame" .. frameType] træder i kraft, så HookScript med følgende 2 argumenter - 1 event("OnHyperLinkLeave") og 2 referere til GameTooltip_Hide end Grunden til at vi kun behøver at tilføje en funktion for _Show er fordi at WoW allerede har en funktion der skjuler tooltips ved at kalde GameTooltip_Hide hvis det er svært at forstå så skriv så prøver jeg at forklare anderledes, synes det er nemmere at forstå og svare på, på engelsk :P
--
Gæstebruger, opret dit eget login og få din egen signatur.
#2
Geekwest
Ultrabruger
27-03-2013 14:18

Rapporter til Admin
#1 Hmm, giver mening efter jeg satte det ind i Notepad++ :) Tak for det :)
--
i7-3770k @ 4.8GHz, 2x GTX 680, 860i, V-Gene, H100i Push/Pull (NF-P12), 600T Hvid, 16GB Dominator 1866MHz, 2x 840 Pro SSD.

Opret svar til indlægget: WoW AddOn Hjælp - Lua coding

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning