Bonjour tout le monde,
Je suis sous file 2012 et je test de rendre le System de costume fonctionnel malheureusement j'ai une erreur assez surprenante qui est survenu sur putty
ni mon client ni mes log serveur n'ont d'erreur juste putty qui me dit
syntax error; "(" unexpected
quest costume_system_equip begin
state start begin
function get_real_hair_id(vnum)
Query = mysql_query("SELECT item_proto.value3 FROM player.item_proto WHERE item_proto.vnum = '"..vnum.."'")
return Query.value3[1]
end
when 41003.use begin
local vnum = item.get_vnum()
local hair_vnum = costume_system_equip.get_real_hair_id(vnum)
end
end
end
la fonction split et mysql sont des fonctions qui on été partager dans diverse partage
-- MySQL
function split(str, delim, maxNb)
if str == nil then return str end
if string.find(str, delim) == nil then return { str } end
if maxNb == nil or maxNb < 1 then maxNb = 0 end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
return result
end
mysql_query = function(query)
if not pre then
local rt = io.open('CONFIG','r'):read('*all')
pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
end
math.randomseed(os.time())
local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- pour MySQL51
-- os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- pour MySQL55
for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
out[i-1] = out[i-1] or {}
out[i-1][a] = tonumber(b) or b or 'NULL'
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = tonumber(b) or b or 'NULL'
end) end
return out
end
-- End_Of_MySQl
Merci d'avance.
edit:
l'erreur est a cette instruction
Query = mysql_query("SELECT item_proto.value3 FROM player.item_proto WHERE item_proto.vnum = '"..vnum.."'")
si on lui met
query = mysql_query(select) ok pas de soucis ( la requette ne se fera jamais tout a fait normal )
en revanche si on met
query = mysql_query("select") la le problem syntax error; "(" unexpected revient donc ok sa viens des double cote " " avec des simple cote ' ' même soucis
donc si quelqu’un vois comment résoudre le problème