Playzer
Membre-
Compteur de contenus
112 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Boutique
Calendrier
Tout ce qui a été posté par Playzer
-
Donc, j'ai décider de refaire tout de moi meme. Voici mon code : (Code fonctionnel) Mais maintenant je veux vérifier si l'entrepôt possède assez de place, mais malheuresement je ne sait pas trop comment m'y prendre // Si la valeur passé par l'url est numericif (isset($_GET['id']) AND !empty($_GET['id']) AND is_numeric($_GET['id'])) { // On procède à la vérification de la soumission du form if (isset($_POST['achat_item_accept'])) { // On définit les variables dans un tableau pour gérer les evenements d'erreur et de succes $erreurs = []; $succes = []; /* * 1 - On vérifie si le joueur possède un entrepot en donnant * comme paramètre la valeur si il existe dans le safebox. * * 2 - On vérifie s'il possède assez de monnaie * * 3 - On vérifie s'il possède assez de place dans son entrepôt * * 4 - Si aucune erreurs est détecté * * 5 - On insert l'item dans la table item */ // Vérification de l'existance d'un entrepôt // On prépare une requete afin de tous selectionner $requete = $pdo1->prepare("SELECT * FROM safebox WHERE account_id = :account_id"); // On passe en paramètres l'id de la session attribuer lors de la connexion $requete->bindParam(":account_id", $_SESSION['id']); // On execute le tout $requete->execute(); // On compte le nombre de ligne $recup_entrepot = $requete->rowCount(); // Si les lignes retourne 0 par apport à l'id de la session if ($recup_entrepot == 0) { // On lui affiche un jolie message d'erreur $erreurs[] = "Malheuresement, je ne peux pas donner suite à votre achat, vous n'avez dont pas d'entrepôt où stocker vos achats."; } // On fait une requete pour selectionner tous les champs des items de la boutique $rc = $pdo3->prepare("SELECT * FROM items WHERE id = :id"); // On passe en paramètres l'id passé par l'url qui correspond à l'id de l'item $rc->bindParam(":id", $_GET['id']); // On execute le tout $rc->execute(); // On fetch le tout $recup_coins = $rc->fetch(); if ($_SESSION['coins'] < $recup_coins->prix_item) { $erreurs[] = "Malheuresement, vous n'avez pas assez de monnaie pour acheter cette objet"; } // Si aucune erreurs est détecté if (empty($erreurs)) { // Insertion de l'item dans la table item } } include CHEMIN_VUE. 'achat_item.php';} else { include CHEMIN_VUE. 'erreur_index.php';}
-
J'avais pensé à une sécurité en plus. J'ai tout refait, et j'ais fais ca : if (isset($_GET['id']) AND !empty($_GET['id']) AND is_numeric($_GET['id'])) { // On procède à la vérification de la soumission du form if (!empty($_POST)) { // On définit les variables dans un tableau pour gérer les evenements d'erreur et de succes $erreurs = []; $succes = []; /* * 1 - On vérifie si le joueur possède un entrepot en donnant * comme paramètre la valeur si il existe dans le safebox. * * 2 - On vérifie s'il possède assez de monnaie * * 3 - On vérifie s'il possède assez de place dans son entrepôt * * 4 - Si aucune erreurs est détecté * * 5 - On insert l'item dans la table item */ $sth = $pdo1->prepare("SELECT account_id FROM safebox WHERE account_id = :account_id"); $sth->bindParam(':account_id', $_SESSION['id']); $result = $sth->rowCount(); // S'il le joueur ne possède pas un entrepôt if ($result == 0) { $erreurs[] = "Vous n'avez pas d'entrepôt !"; } // On vérfieie s'il possède assez de monnaie } include CHEMIN_VUE. 'achat_item.php';} else { include CHEMIN_VUE. 'erreur_index.php';}
-
Up Svp
-
J'ai donc fait ceci, mais sa me dit tout le temps que je n'ai pas d'entrepôt : if (isset($_GET['id']) AND !empty($_GET['id']) AND is_numeric($_GET['id'])) {if (isset($_POST['achat_item_accept'])) { $erreurs = []; $succes = []; // Si le membre a accepté l'achat // Vérification s'il a assez de monnaie $infossafe = $pdo1->prepare("SELECT COUNT (* ) AS nb_safebox FROM 'safebox' WHERE account_id = :account_id"); $infossafe->bindParam(':account_id', $_SESSION['id']); $infos_safebox = $infossafe->fetch(); // Si le joueur possède un entrepôt if ($infos_safebox->nb_safebox == 1){ //Si l'user a bien un entrepôt if (!empty($infos_safebox->password) AND $infos_safebox->password != '000000') { $pos = 0; $go = false; while ($go == false) { $req = $pdo1->prepare("SELECT COUNT(*) AS nb_pos FROM item WHERE owner_id = :owner_id AND pos = :pos AND window = 'MALL'"); $req->bindParam(':owner_id', $_SESSION['id']); $req->bindParam(':pos', $pos); $re = $req->fetch(); if ($re->nb_pos >= 1) { $pos++; // On débite les monnaies // On récupère toute les infos de l'objet $reqitem = $pdo3->prepare("SELECT * FROM items"); $reqitem->bindParam(":id", $_SESSION['id']); $recup_item = $reqitem->fetch(); // Si le compte possède la valeur en monnaie du prix de l'item ou plus if ($_SESSION['coins'] == $recup_item->prix_item AND $_SESSION['coins'] >= $recup_item->prix_item) { // On crédite Les monnaies du compte - le prix de l'item $resultat = $_SESSION['coins'] - $recup_item->prix_item; // On update le nouveau resultat $req1 = $pdo->prepare("UPDATE account SET coins = :coins WHERE id = :id"); $req1->bindParam(':coins', $resultat); $req1->bindParam(':id', $_SESSION['id']); $req1->execute(); $succes[] = "Votre objet a bien été placé dans votre entrepôt spécial !"; } } else { $go = true; } } if ($pos >= (44 - $nb_item)) { $erreurs[] = "Votre entrepôt est plein !"; } } else { $erreurs[] = "Vous n'avez pas saisi de mot de passe pour votre entrepôt spécial. Merci d'aller voir le magasinier pour en définir un. (Ceci est pour éviter une erreur de notre part)."; } } else { // Sinon $erreurs[] = "Vous ne possédez pas encore d'entrepôt, aller voir le mgasinier en jeu et revenez !"; }}include CHEMIN_VUE. 'achat_item.php';} else {include CHEMIN_VUE. 'erreur_index.php';}
-
D'accord merci Galet, je vais essayer
-
Bonjour Galet, pourrais-tu être plus explicite s'il te plaît ?
-
Un énorme merci Takuma, tu as bien mérité ton pouce vert ! Je vais tester tout ca et je te dis. -- Laissez le post ouvert svp --
-
Bonjour à tous et à toute ! En ce moment même, je développe un système d'item-shop (Web). J'ai déjà créer : - Connexion - Apercu des catégories - Apercu des sous catégorie en ayant sa catégorie parente - Apercu des item de la sous catégorie - Panel Administrateur Comme vous pouvez le voir, il me manque la partie pour l'achat d'un item, donc je me pose plusieurs question : - Quel traitement dois-je faire ? - Comment l'item va se loger directement dans l'inventaire item-shop (In Game) ? - Une base de données existe pour cela ? Je vous remercie par avance, de toute aide que vous pourriez me proposer, Cordialement,
-
Cette quête a été créer par moi, je l'ai testé sous files 2012, 2013, 2014, 2016 et elle est fonctionnel. Elle a même été testé par plusieurs Developpeur. Quand je donne une de mes créations, je m'assure qu'elle fonctionne. A moins que tu remette en cause mon travail ?
-
Je veux juste pouvoir avoir acces au différents modules : -Lancement du client - Connexion - Sélection d'Empire - Sélection de Personnage - Création de personnage
-
J'ai du mal m'exprimer désolé. En faite j'ai deux clients. - Un client ou je ferais plein de test et un ou je garde en sauvegarde qui est complet. Sur mon client de test je veux garder que les fichiers qui correspondent au modules suivants : -Lancement du client - Connexion - Sélection d'Empire - Sélection de Personnage - Création de personnage Tous les autres fichiers je veux les virer. Merci.
-
Je te remercie de ta réponse ainsi rapide. Ce que je voualit savoir c'est tout les fichiers. Les fichiers cités comme tu viens de le faire je le savais ça. Je cherche les fichiers indispensable. Surement Ui ?
-
D'accord merci beaucoup, je comrpend mieux. Maintenant j'aurais besoin de savoir si quelqu'un pourrait me dire quels sont les fichiers d'un client qui permettent d'afficher le client, l'interface de connexion, selectempire, selectperso, et creation de personnage.
-
Veuillez m'excuser du double-post Ps : J'avais oublié, j'aurais besoin de savoir quel sont les fichiers qui permettent le lancement du client ?
-
Merci beaucoup de ta réponse qui m'aide beaucoup Kijaru. Je t'en remercie. J'aurais une question. Si genre je voudrais reproduire un GUI (Graphical User Interface) déjà existant. Quel sont les fichiers à reproduire ? Quel code ? Que Partie ?
-
Bonjour à tous. Je suis ici aujourd'hui afin de récupérer pas mal de renseignement. Cette demande d'aide affecte -- TOUS LES FICHIERS -- d'un client metin2, car je souhaiterais en apprendre plus sur l'émulation metin2 et évidemment connaitre le moindre fichiers. Je suis déterminé à cette demande. Tout d'board je souhaiterais que l'on m'explique à quoi servent les différents fichiers du pack "Root" ci-dessous : ! Pour éviter le surchargement du poste, au fur et à mesure de chaque pack qui me seront detaillé, je posterais un nouveau pack. ! Infos : Les personnes ayant des reflexion du genre, "A quoi sa sert ?", "C'est inutile" ou autre merci de vous les garder. (Copier simplement cette liste en complétant les petits points se seras plus simple ) ROOT/ 936mob_proto : 936skilldesc.txt : 936skilltable.txt : 20110915_ymir_item_proto : assassin_m.msm : assassin_w.msm : atlasinfo.txt : colorinfo.py : consolemodule.py : constinfo.py : debuginfo.py : dragon_soul_refine_settings.py : emotion.py : exception.py : game.py : grpblk.txt : interfacemodule.py : introcreate.py : introempire.py : introloading.py : intrologin.py : intrologo.py : introselect.py : locale.py : localeinfo.py : mousemodule.py : musicinfo.py : networkmodule.py : npclist.txt : playersettingmodule.py : prototype.py : servercommandparser.py : serverinfo.py : shaman_m.msm : shaman_w.msm : stringcommander.py : sura_m.msm : sura_w.msm : switchbot.py : system.py : test_affect.py : ui.py : uiacce.py : uiaffectshower.py : uiattachmetin.py : uiauction.py : uiautoban.py : uicandidate.py : uicharacter.py : uichat.py : uicommon.py : uicube.py : uidragonsoul.py : uiequipmentdialog.py : uiex.py : uiexchenge.py : uigamebutton.py : uigameoption.py : uiguild.py : uihelp.py : uiinventory.py : uimapnameshower.py : uimessenger.py : uiminimap.py : uiofflineshop.py : uiofflineshopbuilder.py : uioption.py : uiparty.py : uiphasecurtain.py : uipickmoney.py : uiplayerjauge.py : uipointreset.py : uiprivateshopbuilder.py : uiquest.py : uirefine.py : uirestart.py : uisafebox.py : uiscriptlocale.py : uiselectitem.py : uiselectmusic.py : uishop.py : uisystem.py : uisystemoption.py : uitarget.py : uitaskbar.py : uitip.py : uitooltip.py : uiuploadmark.py : uiweb.py : uiwhisper.py : warrior_m.msm : warrior_w.msm : / Si quelqu'un aurait l'amiabilité de pouvoir m'aider ce serait sympas de pouvoir m'accorder un peu de votre temps. Je vous en remercie chaleuresement. Guillaume
-
Bonjour tout le monde ! Je suis là aujourd'hui pour vous montrer ma toute première création dans le Graphisme. Voici la maquette Pourquoi avoir fait une maquette ? J'ai toujours rêver d'avoir l'opportunité de créer une maquette graphique pour une interface. Beh voila c'est fait x) Cette maquette est decomposé en plusieurs images. Elle sera codé par la suite. N'hesiter pas à me faire part de vos critiques et de vos impressions. Merci, Bonne journée
-
Merci, Tout simplement par la bonne et simple raison que je trouve cela beaucoup plus propore d'avoir un beau fichier txt et l'autre parti traitement, car une bêtise arrive facilement ^^
-
Merci, c'est avec plaisir
-
Centre de Téléchargement Télécharger ( Interne ) Bonsoir tout le monde Je reviens pour mon deuxième tutoriel / partage. Je vais vous partager un système vous permettant de mettre de la couleurs dans les titres et dans les textes. (Je suis au courant qu'il existe déjà un tutoriel, mais pas assez approfondie et trop peu d'explications.) Quels sont les fichiers concernés ? - questlib.lua - quest_functions - Eh, evidemment une quête Infos : Toutes les modifications se feront dans le répertoire suivant : cd /usr/metin2/share/locale/france/quest (Pour files 2011 ou +) cd /usr/rain/channel/share_data/locale/hongkong/quest (Pour files 2010 ou -) Première étape : - Ouvrer le fichier nommé ' questlib.lua ' Et insérer-y ceci tout en bas (une fois collé, ne pas oublié de laisser une ligne vide) : function say_color(color,text) if color=="blue" then say(color256(0, 0, 255)..text..color256(196, 196, 196)) elseif color == "green" then say(color256(0, 255, 0)..text..color256(196, 196, 196)) elseif color == "red" then say(color256(255, 0, 0)..text..color256(196, 196, 196)) elseif color == "yellow" then say(color256(255, 255, 0)..text..color256(196, 196, 196)) elseif color == "white" then say(color256(255, 255, 255)..text..color256(196, 196, 196)) elseif color == "black" then say(color256(0, 0, 0)..text..color256(196, 196, 196)) elseif color == "cyan" then say(color256(0, 255, 255)..text..color256(196, 196, 196)) elseif color == "pink" then say(color256(255, 0, 255)..text..color256(196, 196, 196)) elseif color == "orange" then say(color256(255, 145, 0)..text..color256(196, 196, 196)) elseif color == "purple" then say(color256(100, 0, 255)..text..color256(196, 196, 196)) else say(color256(196, 196, 196)..text..color256(196, 196, 196)) end end function say_title_color(color,text) if color=="blue" then say_title_color(color256(0, 0, 255)..name..color256(196, 196, 196)) elseif color == "green" then say_title_color(color256(0, 255, 0)..name..color256(196, 196, 196)) elseif color == "red" then say_title_color(color256(255, 0, 0)..name..color256(196, 196, 196)) elseif color == "yellow" then say_title_color(color256(255, 255, 0)..name..color256(196, 196, 196)) elseif color == "white" then say_title_color(color256(255, 255, 255)..name..color256(196, 196, 196)) elseif color == "black" then say_title_color(color256(0, 0, 0)..name..color256(196, 196, 196)) elseif color == "cyan" then say_title_color(color256(0, 255, 255)..name..color256(196, 196, 196)) elseif color == "pink" then say_title_color(color256(255, 0, 255)..name..color256(196, 196, 196)) elseif color == "orange" then say_title_color(color256(255, 145, 0)..name..color256(196, 196, 196)) elseif color == "purple" then say_title_color(color256(100, 0, 255)..name..color256(196, 196, 196)) else say_title_color(color256(196, 196, 196)..name..color256(196, 196, 196)) end end function say_color(color, text) local rgb = rawget(colors_data, color) say(color256(rgb[1],rgb[2],rgb[3])..text..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3])) end function say_color_title(color, text) local rgb = rawget(colors_data, color) say_title(color256(rgb[1],rgb[2],rgb[3])..name..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3])) end function set_text_color(color) local rgb = rawget(colors_data, color) raw_script(color256(rgb[1],rgb[2],rgb[3])) end colors_data = { ['green'] = {0,190,0}, ['light green'] = {0,255,0}, ['dark green'] = {0,110,0}, ['semi light green'] = {144,238,144}, ['teal'] = {102,205,170}, ['red'] = {240,0,0}, ['semi light red'] = {255,69,51}, ['rose'] = {255,64,160}, ['dark rose'] = {255,0,128}, ['light rose'] = {255,182,193}, ['light orange'] = {255,127,80}, ['orange'] = {255,130,0}, ['dark orange'] = {255,90,0}, ['semi dark violet'] = {255,0,255}, ['violet'] = {224,129,255}, ['dark violet'] = {148,0,148}, ['light violet'] = {200,162,200}, ['brown'] = {161,63,0}, ['dark brown'] = {120,66,0}, ['light brown'] = {200,164,115}, ['yellow'] = {255,255,53}, ['light yellow'] = {255,255,128}, ['gold'] = {255,191,24}, ['blue'] = {0,0,250}, ['dark blue'] = {0,0,150}, ['cyan'] = {128,255,255}, ['light cyan'] = {180,255,255}, ['turquoise'] = {0,255,255}, ['white'] = {255,255,225}, ['gray'] = {128,128,128}, ['black'] = {0,0,0}, ['default'] = {196,196,196} } Deuxieme étape : - Ouvrer le fichier nommé ' quest_functions ' Et insérer-y ceci tout en bas (une fois collé, ne pas oublié de laisser une ligne vide) : say_color say_color_title set_text_color Après avoir copié collé, ce que je vous ai dit de faire, vous allez bien lire mes explications, comme ça vous ne reviendrais pas en me disant 'j'ai des bugs'. En copiant bêtement, on n'apprend rien ^^ Explications des différents fichiers A quoi sert le fichier ' questlib.lua ' ? Ce fichier, répertorie toutes les fonctions qui ont été créer et servant a coder une quête. A quoi sert le fichier ' quest_functions ' ? Dans ce fichier, c'est dans celui-ci que l'on va renseigner notre function récemment créer, afin qu'elle soit indexée. A quoi correspond cette fonction ' function say_color(color, text) ' ? function say_color(color, text) local rgb = rawget(colors_data, color) say(color256(rgb[1],rgb[2],rgb[3])..text..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3])) end Avant pour écrire un say on faisait tout simplement, say("Bla Bla ...") Maintenant c'est encore plus simple, il suffit d'écrire : [i]say_color("nom_couleur", "Bla Bla ...") Mais, d'où sors-tu le "nom_couleur" ? Tout simplement que dans ma fonction, on attribut directement une couleur au texte, pour ce faire, on la sépare du texte, afin que cela soit beaucoup plus propre. Dont le say_color, affecte que une ligne, exemple pour vous aider à comprendre : say("Pas de couleurs") say_color("blue", "Une couleur bleu") say("Pas de couleurs") Ce n'est pas plus bête que ça ^^ A quoi correspond cette fonction ' function say_color_title(color, text) ' ? function say_color_title(color, text) local rgb = rawget(colors_data, color) say_title(color256(rgb[1],rgb[2],rgb[3])..name..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3])) end Ceci est le même système que le say_color sauf que a cet effet, cela affecte juste le say_title, qu'on transformerai en say_color_title("color", "texte") A quoi correspond cette fonction ' function set_text_color(color) ' ? Cette fonction possède une différence comparé aux 2 autres fonctions, elle permet d'affecter une couleur a plusieurs say, comme ci-dessous, par exemple : set_text_color("red") say("Texte en rouge") say("Texte en rouge") set_text_color("orange") say("texte en orange") say("texte en orange") set_text_color("blue") say("texte en bleu") say("texte en bleu") Ne pas oublier de faire un p'tit reboot du serveur ! Voilà, ce petit tutoriel est fini. Je vous souhaite une très bonne implantation. Bonne soirée
-
Un petit exemple ? Car je vois pas trop comment tu veux procéder
-
Merci de vos réponses a tous les deux, c'est très sympas de votre part de m'avoir aidé. Je vous souhaite une très bonne soirée. Sujet Résolu, Sujet a Archiver Please
-
Merci de ta réponse, Comme ceci ? quest mission_level_1 beginstate start begin when login set_state(explications) endendstate explications begin when letter begin send_letter_ex("Informations sur le staff's", "blue,ex", "scroll_open_blue.tga") end when button or info begin say_title("Texte") say("Texte") say("Texte") say("Texte") say("Texte") say("Texte") say_reward("Texte") say_reward("Texte") say("") set_state (premiere_etape) end endstate premiere_etape begin when letter begin send_letter_ex("Texte", "blue,ex", "scroll_open_blue.tga") end when button or info begin say("") say("Texte") say("Texte") say("Texte") say("Texte") say_reward("Texte") set_state (deuxieme_etape) endendstate deuxieme_etape begin when letter begin send_letter_ex("Texte", "blue,ex", "scroll_open_blue.tga") end when button or info begin say("") say("Texte") say("Texte") say("Texte") say("Texte") say_reward("Texte") set_state (remerciements) endendstate remerciements begin when letter begin send_letter_ex("Informations sur le staff's", "blue,ex", "scroll_open_blue.tga") end end when button or info begin say("") say("Texte") say("Texte") say("Texte") say("Texte") say_reward("Texte") endset_quest_state("mission_level_2", "run") endend
-
Quest du level 2 : Tous les pnjs a aller voir, tuer des mobs et tout ... Si le joueur n'a pas terminé la mission du niveau 2, il ne reçoit pas la 3
