• 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!

Syntax erro boosted_monsters

Azerty

Active Member
Joined
Apr 15, 2022
Messages
316
Solutions
4
Reaction score
32
Syntax error in the mooh'tah warrior monster, due to ' ...Does anyone know how to solve it?

SQL:
[Error - mysql_real_query] Query: INSERT INTO `boosted_monsters` (`name`, `position`) VALUES ('mooh'tah warrior', 1);
Message: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'tah warrior', 1)' at line 1


Lua:
boostedMonsters = {}
boostedMonstersExperienceMultiplier = 2 -- 1 = default, 2 = 200% (aka, double experience)
boostedMonstersLootChanceMultiplier = 2 -- 1 = default, 2 = 200% (aka, double chance of loot.) (1.36% -> 2.72%)(88% -> 100%)

local boostedMonstersAmount = 2 -- how many arrays from boostedMonstersList will be chosen
-- NOTE: Ensure that this amount does not exceed the amount of arrays in boostedMonstersList.. or your server will crash.

local boostedMonstersList = {
    {"rat", "cave rat"}, -- setup like this, so an entire monster race can become boosted
    {"troll"},
    {"cyclops"}, -- don't put the same monster twice.. or bad things might happen. xP
    {"demon"},
    {"rotworm", "carrion worm"},
    {"dwarf", "dwarf soldier", "dwarf guard"},
    {"manta ray"},
    {"mooh'tah warrior"}
}

local function generateBoostedMonstersText()
    local text = ""
    for i = 1, #boostedMonsters do
        if text ~= "" then
            if i == #boostedMonsters then
                text = text .. " and "
            else
                text = text .. ", "
            end
        end
        text = text .. boostedMonsters[i].name
    end
    text = "Today's boosted monsters are " .. text .. "."
    return text
end

local function chooseBoostedMonsters()
    local boostedMonstersCount = 0
    while boostedMonstersCount < boostedMonstersAmount do
        local randomMonster = math.random(#boostedMonstersList)
        if not table.contains(boostedMonsters, boostedMonstersList[randomMonster][1]:lower()) then
            for i = 1, #boostedMonstersList[randomMonster] do
                local monsterName = boostedMonstersList[randomMonster][i]:lower()
                local position = #boostedMonsters + 1 -- Calculate the position
                table.insert(boostedMonsters, {name = monsterName, position = position})
                -- Insert the new monster into the 'boosted_monsters' table
                db.query("INSERT INTO `boosted_monsters` (`name`, `position`) VALUES ('" .. monsterName .. "', " .. position .. ");")
            end
            boostedMonstersCount = boostedMonstersCount + 1
        end
    end

    print(generateBoostedMonstersText())
end

local global = GlobalEvent("globalEvent_boostedMonsters")

function global.onStartup()
    -- Clear the 'boosted_monsters' table on server startup
    db.query("TRUNCATE TABLE `boosted_monsters`")
    addEvent(chooseBoostedMonsters, 0)
    return true
end

global:register()

local loginEvent = CreatureEvent("onLogin_boostedMonsters")
loginEvent:type("login")

function loginEvent.onLogin(player)
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, generateBoostedMonstersText())
    return true
end

loginEvent:register()
Post automatically merged:

Solved.

below:
Lua:
local monsterName = boostedMonstersList[randomMonster][i]:lower()

Add:
Lua:
monsterName = monsterName:gsub("'", "''")
 
Last edited:
Back
Top