2014-06-10 50 views
1

想要從陣列中的數組獲取信息,基本上沒有確切的信息。Lua陣列深度陣列搜索打開脛骨腳本

local cfg_raids = { 
    [2] = 
    { 
     ["10:17"] = { 
      raidName = "Rats - Thais", 
      Event_Type = "Raid Activated", 
      Storage = 1234, 
      alreadyExecuted = false 
     }, 
     ["10:20"] = { 
      raidName = "Testing this shit", 
      Event_Type = "Raid Activated", 
      Storage = 1235, 
      alreadyExecuted = false 
     }, 
    }, 
    [3] = 
    { 
     ["12:00"] = { 
      raidName = "OrcsThais", 
      Event_Type = "Raid Activated", 
      Storage = 1236, 
      alreadyExecuted = false 
     }, 
    }, 

試圖隨機抓取時間而沒有確切的時間戳。

所以喜歡當腳本激活時間戳陣列[「10:17」]它抓住所有的下一個陣列信息[「10:20」]實際上不知道[「10:20」]

OPEN脛骨信息:http://otland.net/threads/looking-for-some-assistance-on-a-script.216303/

回答

2

使用非整數鍵就像你不能這樣做。您可以嘗試使用next函數從當前密鑰獲取下一個密鑰,但是如果表中有兩個以上的密鑰,則無法保證您將獲得哪個下一個密鑰(您甚至不能保證它將始終如一下一個鍵)。

您可以在該表中使用整數索引,併爲該表的某個字段創建時間,然後只需使用下一個整數作爲下一個鍵即可。

您還可以將任何用作鍵的次數以您想要的任何順序存儲在表(或其他表)中的整數索引中,並使用該次數而無需重做表本身(例如cfg_raids = { [2] = { "10:17", "10:20", ["10:17"] = {...}, ["10:20"] = {...} } })。

+0

哦,這就是我有點想象,太糟糕了,這不是一個使用像0-10000等的方式來調用的地方,所以你可以使用for語句,這是我唯一能想到的將是真正可能的,但有沒有辦法做到這一點?,就像打電話給第一個,然後第二個等...陣列/表的地方 – user3726694

+0

嗯?您絕對可以使用循環遍歷索引逐個索引。無論是手動'對於我= 1,#標籤做...結束'或使用'ipairs'('對於我,v在ipairs(標籤)做...結束')。 –

+0

嘗試使用這兩個,仍然無法讓他們從第一個發佈的表/數組讀取。 '對於i,行ipairs(cfg_raids)做 pre_text = pre_text ..'\ n'..行 結束' – user3726694