• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lua Table's or arrays...

Codinablack

Dreamer
Content Editor
Joined
Dec 26, 2013
Messages
2,124
Solutions
14
Reaction score
1,518
Location
USA
GitHub
Codinablack
Hello if someone could please show me how to reduce the amounts of "or" and isBlahblah, using a table the correct way, I would very very very much appreciate it..

Code:
 function onSay(cid, words, param)
 
 if (isSquire(cid) or isWarrior(cid) or isTyro(cid) or isEngineer(cid) or isNeophyte(cid) or isSentry(cid) or isArcher(cid) or isKnight(cid) or isMonk(cid) or isSoldier(cid) or isTechnician(cid) or isTheif(cid) or isKnave(cid) or isSentinel(cid) or isMarkesman(cid)) then
 
 local count = getPlayerInstantSpellCount(cid)
 local text = ""
 local t = {}

 for i = 0, count - 1 do
 local spell = getPlayerInstantSpellInfo(cid, i)
 if spell.level ~= 0 then
 if spell.manapercent > 0 then
 spell.mana = spell.manapercent .. "%"
 end
 table.insert(t, spell)
 end
 end

 table.sort(t, function(a, b) return a.level < b.level end)
 local prevLevel = -1
 for i, spell in ipairs(t) do
 local line = ""
 if prevLevel ~= spell.level then
 if i ~= 1 then
 line = "\n"
 end
 line = line .. "Spells for Level " .. spell.level .. "\n"
 prevLevel = spell.level
 end
 text = text .. line .. "  " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n"
 end

 doShowTextDialog(cid, 2175, text)
 return true
 else 
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You must be a non-magical based vocation otherwise say !spells")
 end
 end
 
OMG Thank you so much!

So if I ever wanted to make my own table I can it check for a simple value and compare like this...

local playerlevel = {1, 2, 3, 4,}
if isInArray(vocations, getPlayerLevel(cid) then

but could you possibly show me how to make the table hold more than just a simple int value?
 
Back
Top