Aller au contenu
Funky-Emulation Recrute Tu es curieux ? Clique ICI Files 2018 - Metin2
  • Compteur de contenus

    252
  • Inscription

  • Dernière visite

  • Points

    583 [ Donner ]

Réputation sur la communauté

28 Aimé

1 abonné

À propos de thomasx3

  • Rang
    Pas d'aide, pas de chocolats !
  • Date de naissance 28/05/1999

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. En effet, ce n'est pas la quête en elle même, J'ai tester la fonction mysql_query et il s'avere bien que celle ci bug, j'ai exactement la même erreur sur putty. Merci a tous pour votre aide ! :-)
  2. Oui je ne sais pas du tout d'ou vient ce probleme ! De l'execution de la query ?Donc de la fonction dans 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) -- 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
  3. En tapant sh make, voici ce que j'obtien pour la quête concerné ! La quête proviens d'ici. [Contenu Masqué] J'ai effectué quelques nouvelles fonctions dans les root afin de la relier a la piece en bas a Gauche.
  4. Montre est-ce que tu as récupéré cette quête ? J'ai pas compris ta réponses @ASIKOO
  5. J'ai uniquement ça sur putty, rien dans les syserr !
  6. Domaine (Base de données, Client, Core...) : Base de donnée/Core Votre niveau (Débutant, Intermédiaire, Avancé..) : Intermédiaire Bonjour, Bonsoir, J'ai un petit soucis auquel je ne trouve aucune réponse malgré de nombreuses recherches. Lors de l'execution d'une quête utilisant MYSQL, j'ai une erreur qui s'affiche sur putty Et la quête ne s’exécute pas du tout, savez vous d'ou cela peut t'il provenir ? Voici la quête en question ! -- Quest File written by Kilroy. -- Function: AnyShop Lua/Python/Sql -- Questpart: 1/1 quest AnyShop begin state start begin when login begin cmdchat(string.format("AnyShop index/%d", q.getcurrentquestindex())) end when button begin cmdchat("getinputbegin") local INPUT = AnyShop.stringSplit(input(cmdchat("AnyShop input/")), "/") cmdchat("getinputend") if INPUT[1]=="open" then if not AnyShop.AntiFlood_(1, 3) then return end local stringTable, tableItems = {}, mysql_query("SELECT shopitems.vnum, shops.shop_id, categories.name as category, shopitems.preis, shopitems.rabatt, IFNULL(TIMESTAMPDIFF(second, NOW(), shopitems.angebot),0) as seconds, shops.suffix, categories.cat_id FROM anyshop.shopitems JOIN anyshop.shops ON shops.shop_id = shopitems.shop_id JOIN anyshop.categories ON categories.cat_id = shopitems.cat_id ORDER BY verkauft DESC;") if (tableItems==nil or tableItems[1]==nil) then syschat("Erreur. Configuration incorrecte dans la table 1") return end local tableCount = table.getn(tableItems) cmdchat("AnyShop ClearBoard/") local moneyQuery, cashs = "", mysql_query("SELECT coin_column, suffix, name, shop_id FROM anyshop.shops;") if (cashs==nil or cashs[1]==nil) then syschat("Erreur. Configuration incorrecte dans la table 2") return end for i=1, table.getn(cashs), 1 do moneyQuery = moneyQuery..(i==1 and "" or ",")..cashs[i][1] end local money = mysql_query("SELECT "..moneyQuery.." FROM account.account WHERE id = "..pc.get_account_id()..";") if (money==nil or money[1]==nil) then syschat("Erreur. Configuration incorrecte dans la table 3") return end local moneyCMD = "AnyShop config/" for i=1, table.getn(money[1]), 1 do moneyCMD = moneyCMD..(i==1 and "" or "|")..money[1][i]..","..cashs[i][2]..","..cashs[i][3]..","..cashs[i][4] end cmdchat(moneyCMD) item.select_cell(204) money = item.get_socket(0) cmdchat("AnyShop setmoney/3/"..money) if tableCount==0 then return end for i=1, tableCount, 1 do table.insert(stringTable, string.format("%d,%d,%s,%d,%d,%d,%s,%d", unpack(tableItems[i]))) end local AddToListCMD = "AnyShop AddToList/"..stringTable[1] for i=2, tableCount, 1 do if string.len(AddToListCMD)+string.len(stringTable[i])>=490 then cmdchat(AddToListCMD) AddToListCMD = "AnyShop AddToList/"..stringTable[i] else AddToListCMD = AddToListCMD.."|"..stringTable[i] end if i==tableCount then cmdchat(AddToListCMD) break end end cmdchat("AnyShop FinishSending/") elseif INPUT[1]=="buy" then if not AnyShop.AntiFlood_(2, 3) then return end local itemVnum = tonumber(INPUT[2]) local itemCount = tonumber(INPUT[3]) local shopId = tonumber(INPUT[4]) if (itemVnum==nil or itemVnum<10) or (itemCount==nil or itemCount<1) then return end local choosenItem = mysql_query("SELECT shopitems.vnum, shopitems.preis, shopitems.rabatt, IFNULL(TIMESTAMPDIFF(second, NOW(), shopitems.angebot),0) as seconds, shops.coin_column, shops.suffix, shops.shop_id FROM anyshop.shopitems JOIN anyshop.shops ON shops.shop_id = shopitems.shop_id WHERE shopitems.vnum="..itemVnum.." and shopitems.shop_id="..shopId..";") if (choosenItem[1]~=nil or table.getn(choosenItem[1]))==0 then syschat("L'article n'est plus disponible !") return end local sqlVnum, itemPrice, itemRabatt, itemAngebotSek, cash, Suffix, sqlShopId = tonumber(choosenItem[1][1]),tonumber(choosenItem[1][2]),tonumber(choosenItem[1][3]),tonumber(choosenItem[1][4]),choosenItem[1][5],choosenItem[1][6],tonumber(choosenItem[1][7]) if (sqlVnum~=itemVnum) or (sqlShopId~=shopId) then return end itemPrice = itemPrice * itemCount if (itemAngebotSek>=0 and itemRabatt>0) then itemPrice = itemPrice-math.floor(itemPrice*(itemRabatt/100)) end if shopId == 1 then local money = mysql_query("SELECT cash FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] if money < itemPrice then syschat("<Shop> Vous n'avez pas assez de "..Suffix.." pour cette article !") cmdchat("AnyShop setmoney/"..shopId.."/"..money) return end mysql_query("UPDATE account.account, anyshop.shopitems SET account.cash = account.cash-"..itemPrice..", shopitems.verkauft = shopitems.verkauft+1 WHERE account.id = "..pc.get_account_id().." AND (shopitems.vnum="..itemVnum.." AND shopitems.shop_id="..shopId..") ;") money = mysql_query("SELECT cash FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] cmdchat("AnyShop setmoney/"..shopId.."/"..money) -- mysql_query("INSERT INTO anyshop.islog (pseudo, id_compte, id_item, prix_item, quantite) VALUES('"..pc.get_name().."', '"..pc.get_account_id().."', '"..itemVnum.."', '"..itemPrice.."', '"..itemCount.."') ;") if itemVnum != 80014 and itemVnum != 80015 and itemVnum != 80016 then mysql_query("UPDATE account.account SET account.mileage = account.mileage+"..itemPrice.." WHERE account.id = "..pc.get_account_id()..";") money2 = mysql_query("SELECT mileage FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] local shopId2 = 2 cmdchat("AnyShop setmoney/"..shopId2.."/"..money2) end pc.give_item2_select(itemVnum, 1) itemCount = itemCount - 1 if item.has_flag(4) and itemCount>0 then for i=1, math.floor(itemCount/200), 1 do pc.give_item2(itemVnum, 200) end pc.give_item2(itemVnum, (itemCount - math.floor(itemCount/200)*200)) else for i=1, itemCount, 1 do pc.give_item2(itemVnum) end end end if shopId == 2 then local money = mysql_query("SELECT mileage FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] if money < itemPrice then syschat("<Shop> Vous n'avez pas assez de "..Suffix.." pour cette article !") cmdchat("AnyShop setmoney/"..shopId.."/"..money) return end mysql_query("UPDATE account.account, anyshop.shopitems SET account.mileage = account.mileage-"..itemPrice..", shopitems.verkauft = shopitems.verkauft+1 WHERE account.id = "..pc.get_account_id().." AND (shopitems.vnum="..itemVnum.." AND shopitems.shop_id="..shopId..") ;") money = mysql_query("SELECT mileage FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] cmdchat("AnyShop setmoney/"..shopId.."/"..money) mysql_query("INSERT INTO anyshop.islog (pseudo, id_compte, id_item, prix_item, quantite) VALUES('"..pc.get_name().."', '"..pc.get_account_id().."', '"..itemVnum.."', '"..itemPrice.."', '"..itemCount.."') ;") pc.give_item2_select(itemVnum, 1) itemCount = itemCount - 1 if item.has_flag(4) and itemCount>0 then for i=1, math.floor(itemCount/200), 1 do pc.give_item2(itemVnum, 200) end pc.give_item2(itemVnum, (itemCount - math.floor(itemCount/200)*200)) else for i=1, itemCount, 1 do pc.give_item2(itemVnum) end end end if shopId == 3 then item.select_cell(204) local money = item.get_socket(0) if money < itemPrice then syschat("<Shop> Vous n'avez pas assez de "..Suffix.." pour cette article !") cmdchat("AnyShop setmoney/"..shopId.."/"..money) return end item.set_socket(0, (item.get_socket(0)-itemPrice)) money = item.get_socket(0) cmdchat("AnyShop setmoney/"..shopId.."/"..money) mysql_query("INSERT INTO anyshop.islog (pseudo, id_compte, id_item, prix_item, quantite) VALUES('"..pc.get_name().."', '"..pc.get_account_id().."', '"..itemVnum.."', '"..itemPrice.."', '"..itemCount.."') ;") pc.give_item2_select(itemVnum, 1) itemCount = itemCount - 1 if item.has_flag(4) and itemCount>0 then for i=1, math.floor(itemCount/200), 1 do pc.give_item2(itemVnum, 200) end pc.give_item2(itemVnum, (itemCount - math.floor(itemCount/200)*200)) else for i=1, itemCount, 1 do pc.give_item2(itemVnum) end end end end end function stringSplit(str, sep) local sep, fields = sep or ",", {} local pattern = string.format("([^%s]+)", sep) string.gsub(str, pattern, function(c) table.insert(fields, c) end) return fields end function AntiFlood_(n, t) if pc.getqf("AntiFlood"..n)>get_time() then syschat(string.format("Veuillez patientez %d seconde avant de pouvoir effectuer un autre achat.", pc.getqf("AntiFlood"..n)-get_time())) return false end pc.setqf("AntiFlood"..n, get_time()+t) return true end end end Merci à tous pour vos réponses En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.
  7. Voila ce qu'il y a dans mon qc.core (Lecture a partir de la VM de compilation, non du dedié) [Contenu Masqué]
  8. Même aprés modification, j'obtien une nouvelle erreur : RunState: LUA_ERROR: locale/france/quest/questlib.lua:2676: attempt to index a nil value La ligne 2676 correspond a celle ci ! math.randomseed(os.time())
  9. Exactement, lors de l'application sur putty, elle renvoie un empty set. Jepossede actuellement 3item dans celui ci. Merci
×

Information importante

By using this site, you agree to our Conditions d’utilisation.