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

Hystos

Membre
  • Compteur de contenus

    256
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Hystos

  1. C'est parce que le script ne tient pas compte du faite que l'item puisse être empilable ou non. Je ne sais pas quelle tête à ta fonction verif_place_is() mais elle doit être comme ceci (adaption pour PDO faite à l'arrache, non testée) : function verif_place_is($account_id, $nb_item=1) { if(is_numeric($account_id)) { $requete = "SELECT COUNT(*) AS nb_safebox FROM player.safebox WHERE account_id = '$account_id'"; $retour = $connexion->query($requete) $donnees = $retour->fetch(); if($donnees['nb_safebox'] == 1)//Si l'user a bien un entrepôt { $pos = 0; $go = false; while($go == false) { $retour = $connexion->query("SELECT COUNT(*) AS nb_pos FROM player.item WHERE owner_id = '$account_id' AND pos = '$pos' AND window = 'MALL'"); $donnees = $retour->fetch(); if($donnees['nb_pos'] >= 1) {$pos++;} else {$go = true;} } if($pos > (44-$nb_item)) { return false; } // Si le MALL est plein else {return $pos;} // On renvoi le numéro de la position libre } else {return false;} } else { return false; } // Si account n'est pas un chiffre } Ensuite, pour ton code, essaie de remplacer par ça. J'ai fais une sorte de mixe avec MT2-CMS un peu en live, j'ai pas testé donc c'est possible qu'il y ait quelques bugs Bienvenue dans l'item Shop de <?php echo $nomServeur; ?> <?php if(empty($_GET['action'])){ $sqlCategories = "SELECT * FROM yurima.catIs"; $resultCategories = $connexion->query($sqlCategories); // on va chercher tous les membres de la table qu'on trie par ordre croissant $resultCategories->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet while($dataCategories = $resultCategories->fetch()) // on récupère la liste des membres { if(@$lignes->mAuthority == "IMPLEMENTOR") { $_SESSION['categorie'] = $dataCategories->categorie; $_SESSION['id_cat'] = $dataCategories->id; echo' '.$dataCategories->categorie.'Supprimer'; }else{ echo' '.$dataCategories->categorie.' '; } } }elseif(isset($_GET['action']) && $_GET['action'] == "categorie") { echo' Vous avez '.$cash.' '.$nomCash.' - Recharger mon compte '; $myVar = intval($_GET['id']); $sqlVide = "SELECT * FROM yurima.itemIs WHERE categorie= '".$myVar."' AND actif = 1 "; $resultVide = $connexion->prepare($sqlVide); $resultVide->execute(); $countVide = $resultVide->rowCount(); if($countVide == 0) { echo'Il n\'y a aucun objet dans cette Catégorie'; } $sqlItems = "SELECT * FROM yurima.itemIs WHERE categorie= '".$myVar."' AND actif = 1"; $resultItems = $connexion->query($sqlItems); // on va chercher tous les membres de la table qu'on trie par ordre croissant $resultItems->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet while($dataItems = $resultItems->fetch()) // on récupère la liste des membres { if(@$lignes->mAuthority == "IMPLEMENTOR") { $_SESSION['item'] = $dataItems->nameItem; $_SESSION['actif'] = $dataItems->actif; echo' '; } echo' x'.$dataItems->nbItem.' '.$dataItems->nameItem.' '.$dataItems->infoItem.' '.$dataItems->prix.' Monnaie '; } echo' < Retour'; }elseif(isset($_GET['action']) && $_GET['action'] == "acheter"){ $myVar = intval($_GET['id']); $sqlItems = "SELECT * FROM yurima.itemIs WHERE actif = '1' AND id =".$myVar." "; $resultItems = $connexion->query($sqlItems); // on va chercher tous les membres de la table qu'on trie par ordre croissant $resultItems->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet while($dataItems = $resultItems->fetch()) // on récupère la liste des membres { echo'Vous êts sur le point d\'acheter x'.$dataItems->nbItem.' '.$dataItems->nameItem.' '.$dataItems->infoItem.' '.$dataItems->prix.' Monnaie < Retour'; } }elseif(isset($_GET['action']) && $_GET['action'] == "valide") { $myVar = intval($_GET['id']); $sqlItem = "SELECT * FROM yurima.itemIs WHERE id= '".$myVar."'"; $resultItem = $connexion->query($sqlItem); // on va chercher tous les membres de la table qu'on trie par ordre croissant $resultItem->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet while($dataItem = $resultItem->fetch()) // on récupère la liste des membres { //on liste les variable utiliser $prix_item = $dataItem->prix; $nb_item = $dataItem->nbItem; $item = $dataItem->idItem; $nom_item = $dataItem->nameItem; $flag = $dataItem->flag; $temps = $dataItem->value0; if ($cash >= $prix_item) { if($flag==4 or $flag==20 or $flag==132 or $flag==2052 or $flag==8212) { //Si l'entrepot n'est pas plein if (is_numeric(verif_place_is($id_membre))) { //On le débite $debite=$connexion->exec("UPDATE account.account SET cash=cash-'".$prix_item."' WHERE id = '".$id_membre."' LIMIT 1"); //On entre dans les logs $ajoutHistorique=$connexion->exec("INSERT INTO yurima.historiqueIs (idItem,nomItem,nbItem, nomMembre, idMembre,prix,type,date) VALUES ('".$item."','".$nom_item."','".$nb_item."', '".$login."', '".$id_membre."', '".$prix_item."','1',NOW())"); //On ajoute l'objet $pos = verif_place_is($id_membre); $connexion->exec("INSERT INTO player.item (owner_id, window, pos, count, vnum, socket2) VALUES ('$id_membre', 'MALL', '$pos', '$nb_item', '$item', '$temps')"); echo'Votre Objet a été ajouter avec succé dans votre item Shop Recuperez votre Objet avant d\'en racheter un Cela Evitera de faire beuguer votre item shop Redirection sur la page de l\'item shop dans 8 secondes '; } else { echo'Votre entrepot est plein Redirection sur la page de l\'item shop dans 5 secondes '; } } //Sinon on regroupe les items else { //Si l'entrepot n'est pas plein if (is_numeric(verif_place_is($id_membre, $nb_item))) { //On le débite $debite=$connexion->exec("UPDATE account.account SET cash=cash-'".$prix_item."' WHERE id = '".$id_membre."' LIMIT 1"); //On entre dans les logs $ajoutHistorique=$connexion->exec("INSERT INTO yurima.historiqueIs (idItem,nomItem,nbItem, nomMembre, idMembre,prix,type,date) VALUES ('".$item."','".$nom_item."','".$nb_item."', '".$login."', '".$id_membre."', '".$prix_item."','1',NOW())"); //On ajoute l'objet for ($i = 1; $i <= $nb_item; $i++) { $pos = verif_place_is($id_membre); $connexion->exec("INSERT INTO player.item (owner_id, window, pos, count, vnum, socket2) VALUES ('$id_membre', 'MALL', '$pos', '1', '$item', '$temps')"); } echo'Votre Objet a été ajouter avec succé dans votre item Shop Recuperez votre Objet avant d\'en racheter un Cela Evitera de faire beuguer votre item shop Redirection sur la page de l\'item shop dans 8 secondes '; } else { echo'Votre entrepot est plein Redirection sur la page de l\'item shop dans 5 secondes '; } } } else { echo'Vous n\'avez pas assez de '.$nomCash.' Redirection sur la page de l\'item shop dans 5 secondes '; } } }
  2. Transmet nous la page qui contient l'itemshop pour que l'on puisse t'aider
  3. Quel CMS utilises-tu ? Peux-tu nous en donner le lien de téléchargement ?
  4. Hystos

    Problemes partage BDD

    C'est un serveur en no-ip ou sur hamachi² ? Dans le premier cas, il faut qu'il se connecte avec l'adresse no-ip et non l'adresse de la machine dans ton LAN. Dans le second, c'est avec l'adresse hamachi et non celle-ci.
  5. As-tu essayé ce que j'ai indiqué ?
  6. Essaie de mettre 1 dans limittype0 (item_proto serveur ET client).
  7. Quelques pistes : Pour toute variable utilisée dans la quête tu dois utiliser le préfixe local lors de sa déclaration, ce n'est pas le cas pour sub_set. Tu as des espaces en trop ligne 27 : sa y_title("Anneau de téléportation:")
  8. Pourrais-tu nous transmettre les queries données par le logiciel ?
  9. Hystos

    [PVE] Chasse

    On s'est parfaitement compris t'inquiète pas Relis bien mon message C'est juste que c'est comme si tu écrivais en mathématiques 5 - (-5) = 10 à la place de 5 + 5 = 10 ce qui pour moi est du tournage en bourrique vu que tu utilises 2 négations pour dire une chose que tu peux dire en une affirmation, ainsi plus facilement et plus logiquement (c'est tout de même plus logique de dire qu'un niveau doit être égal à 100 plutôt que de dire qu'un niveau ne doit pas être différent de 100 ). Bref, trêve de flood :angel:
  10. Hystos

    [PVE] Chasse

    when login or levelup or enter with pc.get_level() >=100 and pc.get_level() <= 100 begin Je traduis Quand on se connecte ou qu'on change de niveau ou qu'on change de map avec le niveau plus grand ou égal à 100 (donc de 100 compris à + l'infini) et le niveau plus petit ou égal à 100 (donc de 0 à 100 compris). J'ai pas compris le truc là Le seul niveau qui réunira les 2 conditions, c'est 100. Je pense qu'un simple pc.get_level() == 100 aurait suffi, non ? PS : Sparkk, l'art de tourner les choses en bourriques "pas avec le niveau de différent de 100"
  11. Bonjour, C'est l’algorithme qui est incorrect. Quand l'user clique sur un des boutons de vote, l'url prend 2 paramètres : action qui est égal à "ok" et site qui est égal au nom du site de vote. Hors pour choisir quelle action effectuer (soit afficher les boutons, soit récompenses) le script vérifie le paramètre action. S'il est différent de ok on affiche les boutons sinon on crédite le compte. Le problème est que quand l'utilisateur arrive sur la page normalement, ce paramètre n'existe pas d'où l'erreur retournée. Remplace la ligne 33 par ceci : if ($_GET['p'] == "Vote" && empty($_GET['action'])) A la place de vérifier sa valeur, je vérifie qu'elle n'existe pas ce qui revient au même vu que sa valeur n'a aucune importance.
  12. Hystos

    Aide quest

    Hum... Première question toute bête : la quête est-elle bien mise dans locale_list avec une ligne vide après ? Ensuite, je n'aime pas trop ceci when login begin if pc.getqf("debut") == 0 then pc.setqf("debut", 1) set_state(etape1) end end Ce n'est pas très logique... S'il n'existe pas il ne peut théoriquement pas avoir la valeur 0 D'un point de vue algorythmique, ça serait mieux de vérifier qu'il n'est pas égal à 1. De plus, je ne suis pas certain mais le set_state() pourrait peut être prendre des guillemets. when login begin if pc.getqf("debut") != 1 then pc.setqf("debut", 1) set_state("etape1") end end Essaie comme ça.
  13. Hystos

    Classement des joueurs.php

    WHERE player.name NOT IN(SELECT mName FROM common.gmlist) player.name NOT LIKE '[%]%' AND account.status!='BLOCK' Ca serait mieux avec un AND WHERE player.name NOT IN(SELECT mName FROM common.gmlist) AND player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  14. Hystos

    Classement des joueurs.php

    C'est plus compliqué et les requêtes utilisées sont déjà carrément tordues. S'ils ont d'autres caractères spécifiques, genre des { } ça marche aussi. WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK' devient comme ceci : WHERE player.name NOT LIKE '{%}%' AND account.status!='BLOCK'
  15. Hystos

    Classement des joueurs.php

    Bonjour, Les membres du staff ont-ils bien des crochets dans leur pseudo ?
  16. La manière la plus simple est qu'à chaque fois que le joueur tue le monstre voulu on génère un nombre aléatoire et on teste sa valeur. Voici un petit exemple : when VNUM_MOB.kill begin if number(1, 100) == 1 then game.drop_item_with_ownership(VNUM_ITEM) end end Ici, le joueur à 1% de chances de retrouver l'item. Il faut que le nombre aléatoire number(1, 100) tombe sur 1 Si on avait voulu 10%, on aurait fait : if number(1, 10) == 1 then ou if number(1, 100) <= 10 then Les combinaisons sont infinies
  17. Hystos

    configuration CMS N°1

    Une connexion à des bases de données MySQL n'utilise théoriquement pas le port 80 mais le port 3306 ou 3307.
  18. Hystos

    configuration CMS N°1

    L'erreur est ici un échec de connexion aux bases de données de ton serveur. Vérifie bien les logs SQL que tu as rentré dans le formulaire. (elles doivent être identiques à celles de navicat)
  19. Hystos

    quete

    Est-ce que le tableau empire est bien défini ? Il faut que tu aies ce code là avant : local empire = {"Shinsoo", "Chunjo", "Jinno"}
  20. Hystos

    Erreur CMS/VOTE

    Il faut les mettre dans la base site, relies le tutoriel.
  21. Hystos

    Erreur CMS/VOTE

    Ce message s'affiche lorsque le membre n'est pas connecté. S'il l'est, vérifie que tu as bien installé les pages et les tables. Commence par nous passer un screen de tes tables history_vote et liens_vote.
  22. Au pire tu réinstalles le logiciel, ou tu prends WAMP...
  23. Bonjour, Premièrement, je te conseille d'utiliser MT2-CMS qui est le meilleur d'un point de vue sécuritaire. Ensuite, ton problème vient du faite que le site n'arrive pas à se connecter à la base de données de ton serveur. Tu dois remplir dans les champs la même chose que ce que tu as mis dans navicat (quand tu as créé la nouvelle connexion). Si ça ne marche pas, vérifie auprès de l'hébergeur de ton dédié qu'il accepte les connexions distantes.
  24. Hystos

    Problème de vote

    Oui, si tu suis le tutoriel à la lettre (en particulier les tables comme précisé au dessus), il n'y a pas de raison que ça ne marche pas. Au pire, ajoute moi sur skype (dans ma signature).

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.