SHOW:
|
|
- or go back to the newest paste.
1 | - | --[[ 1 first is beginning section checking if the location exsists in the -->sql<-- |
1 | + | -- arcemu core using ALE |
2 | - | if it doesn't then it creates it using CreateLocation. |
2 | + | |
3 | - | if it does exsist then it gets location entryid using GetLocationId ]]-- |
3 | + | ACCDATA = {} -- Table that contains all data |
4 | - | function GWcommands(event, pPlayer, msg, type, language) |
4 | + | |
5 | - | local Xentrydb = WorldDBQuery("SELECT `entry` FROM guild_warz.zones WHERE `map_id` = '"..pPlayer:GetMapId().."' AND `area_id` = '"..pPlayer:GetAreaId().."' AND `zone_id` = '"..pPlayer:GetZoneId().."';"); |
5 | + | function LoadAccDataFromDB() |
6 | - | if(Xentrydb==nil)then |
6 | + | ACCDATA = {} -- For reload case, empty table |
7 | - | CreateLocation(pPlayer:GetMapId(), pPlayer:GetAreaId(), pPlayer:GetZoneId()) |
7 | + | local Q = WorldDBQuery("SELECT acct, login, vip, votes, mg FROM logon.accounts;"); |
8 | - | end |
8 | + | if(Q)then |
9 | - | local LocId = GetLocationId(pPlayer) |
9 | + | repeat |
10 | -- Save account data under account name in ACCDATA lua table | |
11 | - | --[[ 2 this again scans sql to get the location id. |
11 | + | local name = Q:GetColumn(1):GetString() -- (vip column) num value 1-20 |
12 | - | I have been trying to get it to scan the table to match up the |
12 | + | ACCDATA[name] = { |
13 | - | map,area,zone values to the players map,area,zone with no luck so far. |
13 | + | acct = Q:GetColumn(0):GetULong(), -- (vip column) num value 1-20 |
14 | - | if I can get it to find the location by table then I can |
14 | + | vip = Q:GetColumn(2):GetULong(), -- (vip column) num value 1-20 |
15 | - | get it to check if it exists in the table and if not then CreateLocation. |
15 | + | votes = Q:GetColumn(3):GetULong(), -- (vote column) total votes count |
16 | - | even tried to create a table just for this trying to use multiple keys(location mapid,areaid,zoneid |
16 | + | mg = Q:GetColumn(4):GetULong(), -- (mg column) total magic gold |
17 | - | but it fell flat on its face lol even tried sub table setup GWTloc.map.area.zone.Entryid |
17 | + | } |
18 | - | local function GetLocationId(player, unit) |
18 | + | until not Q:NextRow() |
19 | - | local Locdb=WorldDBQuery("SELECT `entry` FROM guild_warz.zones WHERE `map_id`='"..player:GetMapId().."' AND `area_id`='"..player:GetAreaId().."' and `zone_id`='"..player:GetZoneId().."';"); |
19 | + | end |
20 | - | return Locdb:GetColumn(0):GetULong() or 0; |
20 | + | |
21 | LoadAccDataFromDB() | |
22 | ||
23 | - | --[[ 3 this should be fine it does only insert/update |
23 | + | function GetAcct(player) |
24 | - | local function CreateLocation(map, area, zone) |
24 | + | -- Returns acct or 0 |
25 | - | local CLentrydb = WorldDBQuery("SELECT `entry` FROM guild_warz.zones;"); |
25 | + | local name = player:GetAccountName() |
26 | - | repeat |
26 | + | return ACCDATA[name] and ACCDATA[name].acct or 0 |
27 | - | CLentry = CLentrydb:GetColumn(0):GetLong() |
27 | + | |
28 | - | until(CLentrydb:NextRow()~=true) |
28 | + | |
29 | - | CLentry=(CLentry+1) |
29 | + | function GetVip(player) |
30 | - | WorldDBQuery("INSERT INTO guild_warz.zones SET `entry` = '"..CLentry.."';"); |
30 | + | -- Returns vip or 0 |
31 | - | WorldDBQuery("UPDATE guild_warz.zones SET `map_id` = '"..map.."' WHERE `entry` = '"..CLentry.."';"); |
31 | + | local name = player:GetAccountName() |
32 | - | WorldDBQuery("UPDATE guild_warz.zones SET `area_id` = '"..area.."' WHERE `entry` = '"..CLentry.."';"); |
32 | + | return ACCDATA[name] and ACCDATA[name].vip or 0 |
33 | - | WorldDBQuery("UPDATE guild_warz.zones SET `zone_id` = '"..zone.."' WHERE `entry` = '"..CLentry.."';"); |
33 | + | |
34 | - | WorldDBQuery("UPDATE guild_warz.zones SET `guild_name` = '"..Server.."' WHERE `entry` = '"..CLentry.."';"); |
34 | + | |
35 | - | GWARZ[CLentry] = {} |
35 | + | local function Viptest(event, pPlayer, msg, type, language) |
36 | - | GWARZ[CLentry].Entryid = CLentry |
36 | + | local command = ".vip" |
37 | - | GWARZ[CLentry].Mapid = map |
37 | + | if (msg == command)then |
38 | - | GWARZ[CLentry].Areaid = area |
38 | + | local name = pPlayer:GetAccountName() |
39 | - | GWARZ[CLentry].Zoneid = zone |
39 | + | print("acctid direct request value") |
40 | - | GWARZ[CLentry].Guildname = Server |
40 | + | print(ACCDATA[name]) -- table that contains the account data |
41 | - | GWARZ[CLentry].Team = 2 |
41 | + | print(ACCDATA[name].acct) -- accessing data inside the table |
42 | - | GWARZ[CLentry].Buildingcnt = 0 |
42 | + | print(ACCDATA[name].vip) |
43 | - | GWARZ[CLentry].Pigcnt = 0 |
43 | + | print(ACCDATA[name].votes) |
44 | - | GWARZ[CLentry].Guardcnt = 0 |
44 | + | print(ACCDATA[name].mg) |
45 | - | GWARZ[CLentry].Flagid = 0 |
45 | + | print() |
46 | - | print(""..CLentry..": created") |
46 | + | print("custom function request values") |
47 | - | end |
47 | + | print(GetAcct(player)) |
48 | print(GetVip(player)) | |
49 | print() | |
50 | print("Alternate way to print contents") | |
51 | for k, v in pairs(ACCDATA[name] or {}) do | |
52 | print(k, v) | |
53 | end | |
54 | end | |
55 | end | |
56 | ||
57 | RegisterServerHook(16, Viptest) |