Aller au contenu
Funky-Emulation Recrute

Toute l’activité

Ce flux se met à jour automatiquement     

  1. Hier
  2. en cours problème avec ma quête

    game/src: questlua_mysql.cpp, à remplacer. // mysql_query(string) - 'returns a lua mysql table' int _mysql_query(lua_State* L) { string query = lua_tostring(L,1); SQLMsg* run = DBManager::instance().DirectQuery(query.c_str()); MYSQL_RES* res = run->Get()->pSQLResult; //Error in the query if (!run) { sys_err("MySQL query failed!"); lua_pushnil(L); return 0; } if(!res) { lua_newtable(L); return 1; } lua_newtable(L); //Fetch field list unsigned long rowcount = 1; set<MYSQL_FIELD*> fieldList; while(MYSQL_FIELD *f = mysql_fetch_field(res)) { fieldList.insert(f); } MYSQL_ROW row; while (row = mysql_fetch_row(res)) { lua_newtable(L); int i = 0; set<MYSQL_FIELD*>::iterator iter; for(iter = fieldList.begin(); iter != fieldList.end(); ++iter) { MYSQL_FIELD *f = *iter; lua_pushstring(L, f->name); lua_pushstring(L, row[i]); lua_settable(L, -3); //stack: [arg] table table2 i++; } lua_pushnumber(L, rowcount); lua_insert(L, -2); //stack: [arg] table rowcount table2 lua_settable(L, -3); rowcount++; } M2_DELETE(run); return 1; }
  3. en cours problème avec ma quête

    Non...
  4. en cours problème avec ma quête

    Le problème est résolu ?
  5. en cours problème avec ma quête

    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 ! :-)
  6. en cours problème avec ma quête

    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
  7. en cours problème avec ma quête

    Si se sont les seuls lignes à propos de cette quête, c'est que ce n'est pas elle qui contient un problème ^^'
  8. en cours problème avec ma quête

    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.
  9. en cours problème avec ma quête

    Anyshop, c'est l'itemshop IG partagé je crois ^^'
  10. en cours problème avec ma quête

    La provenance de la quête, et un screen avec plus d'informations aurait été utile pour voir si une information était utile au débogage.
  11. en cours problème avec ma quête

    Passe pas par là, vas directement dans le /usr/metin2/share/locale/france/quest et tape make !
  12. en cours problème avec ma quête

    Montre est-ce que tu as récupéré cette quête ? J'ai pas compris ta réponses @ASIKOO
  13. en cours problème avec ma quête

    Screen s'il te plait + Montre ou est-ce que tu as récupéré cette quête ?
  14. en cours problème avec ma quête

    J'ai uniquement ça sur putty, rien dans les syserr !
  15. en cours problème avec ma quête

    Il faut la ligne de l'erreur qu'il doit te retourner.
  16. en cours problème avec ma quête

    Salut ! On peut juste avoir l'erreur entière pour avoir le numéro de la ligne ? Car tout lire.... U_u
  17. creation Correction des brillances Metin2

    J'aime bien! Possible de voir ce que ça donne sur un perso féminin ? Quand tu as le temps bien-sûr 🤭
  18. 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.
  19. resolu [Question]Bonus

    Je m'en occupe
  20. resolu [Question]Bonus

    Vous pouvez clôturer ce post
  21. resolu [Question]Bonus

    Pas de soucis
  22. resolu [Question]Bonus

    M**de je pensais pas que c'était aussi complexe que sa en faite.. ! ^^ je reviendrai vers vous une fois que j'aurais trouver autre choses merci de vos intervention
  23. resolu [Question]Bonus

    Honnêtement ce serait très très compliqué à mettre ton idée en production. D'une part parce qu'il faudrait modifier une bonne partie de sources et qu'en cas de faille tu pourras Raz ta base de donnée et tout recommencer... Mon avis : trouve une autre idée plus facile à mettre en place
  24. resolu [Question]Bonus

    Sa serais long a produire ?
  25. resolu [Question]Bonus

    ça reste envisageable , cependant ça demande un certain niveau de maîtrise des sources selon moi pour faire cohabiter 2 types de gameplay.
  1. Charger plus d’activité
×

Information importante

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