- 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