Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

Core Dumped mysql_query


luuzia

Question

Bonjour a tous , 

 

J'ai une petit problème avec une quest , pour crée des item directement In Game vicie la quest

 

J'ai nommer le fichier : itemIG.quest  -> 

                                    J'ai ajouter parmi les autres quest < /usr/metin2/share/locale/france/quest>

                                    Dans les proprieter j'ai mis l'autorisation "0777"

                                    j'ai ajouter dans local_list "j'ai laisser une ligne a la fin "

                                    est j'ai modifier dans navicat le table  : Player -> Item-> Ctrl+D tout la colone Type par varchar sauf la ligne "window"

Fini tout ça j'ai reload q Ig est BDD ./quest.sh

  Est voila ce que ça me met :

v68T0.jpg

 

8n57M.jpg

 

UwD3.jpg

 

OWacm.jpg

 

Quand ils faut choisir les pierres plus aucune fenêtre s 'ouvre :/

--------------------------------------------------------------------

 

-- Quête: Item avec bonus  --

-- By: Prof-Stof                --

-- Skype: XProfStof  --

-- Cette quête est créé par Prof-Stof sur son serveur Fechkel-MT2 --

-- Merci de ne pas effacer ce commentaire  --

--------------------------------------------------------------------

quest objet_bonus begin

state start begin

when 40002.use with pc . is_gm ( ) begin

say_title("Item avec bonus:")

say("")

---                                                   l

say("Ici vous pouvez créer des items avec des bonus et")

say("des pierres de votre choix.")

say("")

say("N'abusez pas !")

say("Un bug est prévu en cas d'abuse d'utlisation")

say("")

local s = select("Commencer la fabriquation", "Fermer")

if s==2 then

return

else

say("Entrez l'ID du joueur:")

local id = tonumber(input())

say("Entrez l'ID de l'objet:")

local item = tonumber(input())

mysql_query("INSERT INTO player.item (owner_id, window, pos, count, vnum) VALUES ('".. id .."', 'MALL', '34', '1', '".. item .."')");

say("Entrez l'ID de la pierre 1:")

local p1 = tonumber(input())

mysql_query("UPDATE player.item SET socket0='".. p1 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID de la pierre 2:")

local p2 = tonumber(input())

mysql_query("UPDATE player.item SET socket1='".. p2 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID de la pierre 3:")

local p3 = tonumber(input())

mysql_query("UPDATE player.item SET socket2='".. p3 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 1:")

local b1 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype0='".. b1 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 1:")

local vb1 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue0='".. vb1 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 2:")

local b2 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype1='".. b2 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 2:")

local vb2 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue1='".. vb2 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 3:")

local b3 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype2='".. b3 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 3:")

local vb3 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue2='".. vb3 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 4:")

local b4 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype3='".. b4 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 4:")

local vb4 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue3='".. vb4 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 5:")

local b5 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype4='".. b5 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 5:")

local vb5 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue4='".. vb5 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 6:")

local b6 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype5='".. b6 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 6:")

local vb6 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue5='".. vb6 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez l'ID du bonus 7:")

local b7 = tonumber(input())

mysql_query("UPDATE player.item SET attrtype6='".. b7 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

say("Entrez la valeur du bonus 7:")

local vb7 = tonumber(input())

mysql_query("UPDATE player.item SET attrvalue6='".. vb7 .."' WHERE (owner_id='".. id .."' and window='MALL' and pos=34 and count=1)");

end

say_title("Item avec bonus:")

say("")

---                                                   l

say("Votre item a été bien créer !")

say("Vérifiez votre inventaire d'Item-Shop.")

say("")

say("")

syschat("Vérifiez votre inventaire d'Item-Shop.")

end

end

end

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 15
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans cette question

15 réponses à cette question

Messages recommandés

  • 0
  • Robot

Essayes de déclarer ta fonction mysql_query dans le fichier quest_functions et dis moi quoi tu copies colles juste mysql_query dedans ^^

Il y a aussi un code à mettre dans le questlib

 

Pour ma part j'ai ça dans le miens :

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) -- f? MySQL51
   os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- f? 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

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Salut,

Il te manque tout bonnement la fonction mysql_query.

Ajoute ceci à ton questlib : 

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)
   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

N'oublie pas d'ajouter la fonction :

mysql_query

dans ton fichier quest_function.

Petit plus dont tu auras surement besoin si tu prends ce genre de quête :

function execute_query(db, query)

local PROGRAM_PATH = "/game/mysql_query/"
query = string.gsub(query, "`", "")
local out_file = PROGRAM_PATH..math.random(100000,1000000).."_"..os.time()
os.execute("cd "..PROGRAM_PATH.." && ./mysql_query "..db.." \""..query.."\" \""..out_file.."\"")
if io.open(out_file) == nil then
	return -3, "Unable to read query result"
end
local _func = loadfile(out_file)
os.remove(out_file)
if _func == nil then
	return -2, "Invalid query result"
end
local out_array = _func()
return out_array[1], out_array[2]
end

A ajouter comme l'autre dans ton questlib et bien sur, la fonction "execute_query" dans ton quest_function.

A mon avis ton module est déjà installé.

Dernier détail si tu es en mysql 51 (par défaut mysql55), modifie :

    os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)

dans ta fonction mysql_query par : 

      os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)

simple détail.

Voilà, tu disposes de deux fonctions utilisées dans pas mal de quête partagé dans les divers forums.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai tout fait tout marche bien , il y a plus le core dumped , la quette marche parfaitement mais je reçoit pas l'item dans l'item shop

 

est je vienne de remarquer que j'ai une erreur BD

wYkb4.jpg

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Tu insert une position déjà existante '1'

 

mysql_query("INSERT INTO player.item (owner_id, window, pos, count, vnum) VALUES ('".. id .."', 'MALL', '34', '1', '".. item .."')");

 Et deuxième chose, pourquoi faire sa ? déjà il faudrait calculer une position libre, et deuxièmement, un insert en SQL dans la table item n'a pas un résultat immédiat IG

Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 6

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    2. 2

      problème de lancement serveur

    3. 9
    4. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    5. 2

      problème de lancement serveur

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.