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

Solved Help convert to lua

Status
Not open for further replies.

Sigoles

Discord: @sigoles
Joined
Nov 20, 2015
Messages
1,209
Solutions
2
Reaction score
154
I have this script:
Code:
function onKill(creature, target)
    if target:isPlayer() and target:getLevel() >= 200 then
        creature:setStorageValue(167912, math.max(0, creature:getStorageValue(167912)) + 1)
  
         db.query("UPDATE `players` SET `frag_points` = `frag_points` + '1' WHERE `name` = '"..creature:getName().."';")
    end
    return true
end

I got this error, because the name have symbol:

W5TpWY6.png


And I want to put something like this (in C++):

Code:
std::ostringstream query;
    std::string escapedName = Database::getInstance()->escapeString(getPlayerName());
    query << "UPDATE `players` SET `frag_points`=`frag_points` + '1' WHERE
"<< escapedName << ", .............


Help to fix this please
 
Last edited by a moderator:
Solution
Hey man, thanks I'll test

I was tested and got this error look please:
DVoFTo1g.png


@slawkens

Try now:
LUA:
function onKill(creature, target)
  if target:isPlayer() and target:getLevel() >= 200 then
        creature:setStorageValue(167912, math.max(0, creature:getStorageValue(167912)) + 1)
      
         db.query("UPDATE `players` SET `frag_points` = `frag_points` + '1' WHERE `name` = "..db.escapeString(creature:getName())..";")
    end
    return true
end
Use db.escapeString

like this:
Code:
function onKill(creature, target)
   if target:isPlayer() and target:getLevel() >= 200 then
        creature:setStorageValue(167912, math.max(0, creature:getStorageValue(167912)) + 1)
       
         db.query("UPDATE `players` SET `frag_points` = `frag_points` + '1' WHERE `name` = '"..db.escapeString(creature:getName()).."';")
    end
    return true
end
 
Use db.escapeString

like this:
Code:
function onKill(creature, target)
   if target:isPlayer() and target:getLevel() >= 200 then
        creature:setStorageValue(167912, math.max(0, creature:getStorageValue(167912)) + 1)
      
         db.query("UPDATE `players` SET `frag_points` = `frag_points` + '1' WHERE `name` = '"..db.escapeString(creature:getName()).."';")
    end
    return true
end

Hey man, thanks I'll test

I was tested and got this error look please:
DVoFTo1g.png


@slawkens
 
Last edited by a moderator:
Hey man, thanks I'll test

I was tested and got this error look please:
DVoFTo1g.png


@slawkens

Try now:
LUA:
function onKill(creature, target)
  if target:isPlayer() and target:getLevel() >= 200 then
        creature:setStorageValue(167912, math.max(0, creature:getStorageValue(167912)) + 1)
      
         db.query("UPDATE `players` SET `frag_points` = `frag_points` + '1' WHERE `name` = "..db.escapeString(creature:getName())..";")
    end
    return true
end
 
Solution
Status
Not open for further replies.
Back
Top