-
Compteur de contenus
232 -
Inscription
-
Dernière visite
-
Jours gagnés
3
Type de contenu
Profils
Forums
Boutique
Calendrier
Tout ce qui a été posté par thomasx3
-
Bonjour, Bonsoir, Je possede des files 2016 modifié en dedié. Recemment, j'ai voulu installer le Anyshop(Item-Shop In game) Cependant, j'ai cette erreur : SYSERR: Sep 3 04:49:51 :: RunState: LUA_ERROR: locale/france/quest/questlib.lua:2680: attempt to index a nil value SYSERR: Sep 3 04:49:51 :: WriteRunningStateToSyserr: LUA_ERROR: quest AnyShop.start click Voici la fonction de la ligne 2680 : 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); <---------Celle ci la 2680 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 Et maintenant la quête : -- Quest File written by Kilroy. -- 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_direct_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_direct_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_direct_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_direct_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_direct_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_direct_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_direct_query("SELECT cash FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] cmdchat("AnyShop setmoney/"..shopId.."/"..money) -- mysql_direct_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_direct_query("UPDATE account.account SET account.mileage = account.mileage+"..itemPrice.." WHERE account.id = "..pc.get_account_id()..";") money2 = mysql_direct_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_direct_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_direct_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_direct_query("SELECT mileage FROM account.account WHERE id = "..pc.get_account_id()..";")[1][1] cmdchat("AnyShop setmoney/"..shopId.."/"..money) mysql_direct_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_direct_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 J'ai cherché mainte et mainte fois, toujours sans succé. Merci pour votre aide !
-
Ne cerais-ce pas une mauvaise configuration du My.cnf ?
-
-
merci
-
Python - Interface Bonus
thomasx3 a répondu à un(e) sujet de Daymortel dans Programmation & Développement / Codes
mrc -
Multi Logo GM / SGM / GA
thomasx3 a répondu à un(e) sujet de Snobi dans Programmation & Développement / Codes
Merci ! -
Merci
-
Resolu, Merci.
-
Quel serais le fichier donc ? Merci
-
Version des fichiers/ Type d'émulateur : Files FE2016 Domaine (Base de données, Client, Core...) : Source, Base de donnée ? Votre niveau (Débutant, Intermédiaire, Avancé..) : Intermédiaire Bonjour, Voulant reprendre l'émulation, je me demande, comment par exemple bride t'on la protection MN, ou on augmente les dégats des Guerrier Mental ...? Skill_proto ? Fichiers dans Srcs ? Merci à tous pour vos réponses
-
Compiler le Client Binary
thomasx3 a répondu à un(e) sujet de Calypso dans Programmation & Développement / Codes
Merci -
Merci
-
Implanter un SwitchBot sur Metin2
thomasx3 a répondu à un(e) sujet de Kijaru dans Programmation & Développement / Codes
Merci -
Certain serveur aiment les mettent en P, je trouve cela dommage egalement, mais l'actuelle population de metinien préfère la facilité....
-
Centre de Téléchargement Télécharger ( Interne ) Bonsoir, Ce matin je rechercher la quête pour le skill P, mais elle ne ma pas trop plus, j'ai alors décidé de la refaire en la simplifiant. Elle met les skills ainsi que les competence en P En espérant qu'elle voit soit utile !
-
Merci beaucoup pour l'aide !
-
Non non , j'ai touché a rien , j'ai juste installé les files
-
Bonjour , bonsoir, J'ai decidé de me "moderniser" en passant par les files 2016, cependant, j'ai une erreur de Timed Out, je ne sais pas comment la résoudre... Version des files : 2016 Domaine (Base de données, Core, etc.) : Cores Votre niveau (débutant, intermédiaire, avancé) : Intermediaire Description du problème : Je viens d'installer les files 2016 sur mon dedier , mais lorsque je le open , tout va bien 2 minutes grand max puis plein de connection Timed Out Recherches et tests effectué : Suite à l'utilisation de la commande Ps et a l'inactivité de DB , j'ai regardé le syserr et le syslog. Résultat des recherches et tests : Fin du syslog : [Hidden Content] Fin du syserr : [Hidden Content] Merci a tous pour votre aide. En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.
-
Installer un serveur sous Windows
thomasx3 a répondu à un(e) sujet de Kijaru dans Création & Gestion de Serveur
Superbe tuto Kiki Merci ! +1 -
Merci , je déplace.
-
Problème d'installation burning board
thomasx3 a répondu à un(e) question de zemna dans Questions & Réponses
Quelle version du Burning ? -
Peux tu nous partager ta solution ? Merci.
-
Sujet résolu , je déplace.
-
Merci Azasal d'avoir posté la réponse. Je déplace.
-
Sujet résolu , je déplace.