Language:
Lua     Change language:
Pastebin: 106731
Author: Tortall
Subject: Range finding
Created: 2009-01-21 17:42:30
Download and save
Toggle line numbers
1TortallRangePlugin = {} 
2 
3TortallRangePlugin.Abilities = { Friendly ={}, Hostile = {} } 
4 
5function TortallRangePlugin.Initialize() 
6    WindowRegisterEventHandler( "TortallRangePlugin", SystemData.Events.UPDATE_PROCESSED, "TortallRangePlugin.Update"
7    WindowRegisterEventHandler( "TortallRangePlugin", SystemData.Events.LOADING_END, "TortallRangePlugin.Load"
8 
9    LabelSetText("TortallRangePluginLabel", L"Range"
10 
11    TortallBar.RegisterPlugin( { Name = "Range", Window = "TortallRangePlugin", Width = 375 }
12 
13    TortallRangePlugin.Load() 
14end 
15 
16function TortallRangePlugin.Load() 
17    local abilityData = GetAbilityTable( GameData.AbilityType.STANDARD ) 
18 
19    local k, v 
20    for k, v in pairs(abilityData) do 
21        x, y = GetAbilityRanges(k) 
22        if ( v.targetType == 1 ) then 
23            TortallRangePlugin.Abilities.Hostile[k] = { min = x, max = y } 
24        end 
25 
26        DEBUG(towstring(k)..L" = "..towstring(GetStringFromTable("AbilityNames", k))) 
27 
28        DEBUG(L"x = "..towstring(tostring(x))..L" y = "..towstring(tostring(y))) 
29        for k2, v2 in pairs(v) do 
30            --DEBUG(towstring(k2)..L" = "..towstring(tostring(v2))) 
31        end 
32    end 
33end 
34 
35local WAIT = 2.0 
36local TIME = 0.0 
37 
38function TortallRangePlugin.Update( elapsed ) 
39    TIME = TIME + elapsed 
40    if ( TIME < WAIT ) then return end 
41    TIME = 0.0 
42 
43    if ( TargetInfo:UnitEntityId( "selfhostiletarget" ) == 0 ) then 
44        LabelSetText("TortallRangePluginDistance", L" - "
45        return 
46    end 
47 
48    local text = L"" 
49 
50    local minRange = nil 
51    local maxRange = nil 
52    local maxDistance = 0 
53 
54    local id, range 
55    for id, range in pairs(TortallRangePlugin.Abilities.Hostile) do 
56        if ( IsTargetValid(id) ) then 
57            if ( minRange == nil ) or ( range.min > minRange ) then minRange = range.min end 
58            if ( maxRange == nil ) or ( range.max < maxRange ) then maxRange = range.max end 
59        else 
60            if ( maxDistance < range.max ) then maxDistance = range.max end 
61        end 
62    end 
63 
64    if ( minRange == nil ) and ( maxRange == nil ) then 
65        text = L"> "..towstring(maxDistance) 
66    else 
67        text = towstring(tostring(minRange))..L" < "..towstring(tostring(maxRange)) 
68    end 
69 
70    LabelSetText("TortallRangePluginDistance", text) 
71end 
72 
Download and save
Toggle line numbers
Thread:
[106731] Range finding by Tortall at 2009-01-21 17:42:30
Tip: Click the line numbers to toggle highliting on that line.

Paste followup:

Language:
Author:
Subject:


    Tabstop:     bigger biggest
Note: You can prefix a line with "@@@" to highlight it.