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

Messages posté(e)s par Hystos

  1. Essaie de rajouter sur la première requête :

     

    $sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'");
    

     

    ceci :

     

    $sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'") or die(mysql_error());
    

     

     

    Il est possible que l'erreur vienne de cette requête mais qu'elle ne te soit pas affichée.

  2. Nan : je te le fais pour une et tu fais parreil pour les autres :

     

    $sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account WHERE ip = '$ip'");
    

     

     

    On rajoute un account. devant la table :

     

    $sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'");
    

  3. $cash = $donnees['cash'] 100; /* Nombre de point ajouté au compte */
    $vote = $donnees['vote'] 1;
    

     

    Pas du tout, ce qui bloque, c'est cette condition :

     

    if($last_vote >= 5400)
    

     

    En effet, ça lui affiche l'erreur. C'est donc qu'il y a un problème avec la variable $last_vote :)

     

    De plus, là, je vois pas trop ce que tu veux faire ? ça veut rien dire ce que tu as écris... Mettre 2 valeurs comme ça, ça ne fera uniquement que planter encore plus le script :P

  4. Ton site utilise PDO.

     

    Essaie comme ça :

     

    <?php if($key_secu != "Kotus&MonsterSontGeniaux:97528643@B$") { exit(); }
    /**
    *        MT2-CMS
    *    @author JigSaw 
    *    @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
    *    @version b1.002 24/04/2010
    *    @link http://mt2cms.free.fr
    *
    *        [payement.php]
    *    Page de Recharge de compte. Cette page permet aux joueurs de recharger leurs comptes en Cash.
    *    L'achat se fait via Allopass. La configuration se fait sur 'config_is.php'
    *
    **/
    
    
    /**
    *Configuration de l'IS
    **/
    $sql = bdd('website')->query("SELECT * FROM payement LIMIT 1");
    $CONFIG_is = $sql->fetch();
    foreach ($CONFIG_is as $k => $v)
    {
       if(!is_numeric($k))
       {
       $tpl->assign('config_is_'.$k, $v);
       }
    }
    //On met le payement a false
    $payement=false;
    
    /**
    *Si on Utilise Allopass
    **/
    if($CONFIG_is['method'] == 1)
    {
       /**
        *Si on recoit un payement validé
        **/
       if(isset($_GET['valid']) and $_GET['valid']=='ok' and @!empty($_GET['RECALL']))
       {
           //Vérification du code par allopass
           $RECALL = urlencode($_GET['RECALL']);
           $AUTH = urlencode($CONFIG_is['auth']);
    
           $r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" );
    
           //Si le code est validé, on crédite le compte
           if( substr( $r[0],0,2 ) == "OK" )
           {    
               $payement=true;
           }
           // Sinon on affiche un essage d'erreur
           else 
           {
               $tpl->assign('valid_pay', 'nok');
    
           }
    
       }
       /**
        *Si on recoit un payement érroné
        **/
       elseif(isset($_GET['valid']) and $_GET['valid']=='nok')
       {
           $tpl->assign('valid_pay', 'nok');
       }
       /**
        *Si on ne recoit pas de  payement
        **/
       else
       {
           $tpl->assign('valid_pay', '0');
       }
    
    }
    /**
    *Si on Utilise Starpass
    **/
    if($CONFIG_is['method'] == 2)
    {
       /**
        *Si on  a envoyé le code
        **/
       if(isset($_POST['idd']) and $_GET['valid']=='ok')
       {    
           //Déclaration des variables
           $ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas='';
           //On récupère les identifiants sous la forme "xxx;xxx;xxx"
           if(isset($_POST['idp'])) $idp = $_POST['idp'];
           if(isset($_POST['ids'])) $ids = $_POST['ids'];
           //$ids n'est plus utilisé, mais il faut conserver la variable pour une question de compatibilité
           if(isset($_POST['idd'])) $idd = $_POST['idd'];
           $ident=$idp.";".$ids.";".$idd;
           //On récupère le(s) code(s) sous la forme "xxxxxxxx;xxxxxxxx"
           if(isset($_POST['code1'])) $code1 = $_POST['code1'];
           if(isset($_POST['code2'])) $code2 = ";".$_POST['code2'];
           if(isset($_POST['code3'])) $code3 = ";".$_POST['code3'];
           if(isset($_POST['code4'])) $code4 = ";".$_POST['code4'];
           if(isset($_POST['code5'])) $code5 = ";".$_POST['code5'];
           $codes=$code1.$code2.$code3.$code4.$code5;
           //On récupère le champ DATAS"
           if(isset($_POST['DATAS'])) $datas = $_POST['DATAS'];
           //On encode les trois chaines en URL
           $ident=urlencode($ident);
           $codes=urlencode($codes);
           $datas=urlencode($datas);
    
           /* Envoie de la requête vers le serveur StarPass
           Dans la variable tab[0] on récupère la réponse du serveur
           Dans la variable tab[1] on récupère l'URL d'accès ou d'erreur suivant la réponse du serveur */
           $get_f=@file("http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas");
           //Si on contact le serveur
           if($get_f)
           {
               $tab = explode("|",$get_f[0]);
    
               // dans $pays on a le pays de l'offre. exemple "fr"
               $pays = $tab[2];
               // dans $palier on a le palier de l'offre. exemple "Plus A"
               $palier = urldecode($tab[3]);
               // dans $id_palier on a l'identifiant de l'offre
               $id_palier = urldecode($tab[4]);
               // dans $type on a le type de l'offre. exemple "sms", "audiotel, "cb", etc.
               $type = urldecode($tab[5]);
               // vous pouvez à tout moment consulter la liste des paliers à l'adresse : http://script.starpass.fr/palier.php
    
               //Si $tab[0] répond "OUI" 
               if(substr($tab[0],0,3) == "OUI")
               {
                      $payement=true;
    
               }
               else
               {
                   $tpl->assign('valid_pay', 'nok');
               }
           }
           else
           {
               $tpl->assign('valid_pay', 'error');
           }
       }
    
       /**
        *Si on ne recoi pas de payement
        **/
       else
       {
           $tpl->assign('valid_pay', '0');
       }
    }
    
    /**
    *Sinon on désactive
    **/
    else
    {
       //Action en début du fichier payement.tpl
    }
    
    /**
    *On teste si le payement est OK
    *Si oui, on crédite le compte
    **/
    if($payement)
    {
    $sql = bdd('account')->query("UPDATE account SET cash = cash+".$CONFIG_is['nb_cash']." WHERE id = $id_membre");
    
       $tpl->assign('valid_pay', 'ok');
    }
    
    
    
    
    $tpl->parse('account/payement.tpl');
    ?>
    

    • Love 1
  5. Tu peux en supprimant le pack de ta map et en au même chemin sur ton ordinateur mettant les fichiers.

     

    Je m'explique :

     

    Pour les textures, mon client fait appel aux fichiers présents dans D:/Ymir work/terrainmaps, même quand je n'ai pas le pack dedans. Ainsi j'ai supprimé mon pack, mis les fichiers à l'endroit demandé et ça marche pareil, et pas besoin de repack pour tester :)

  6. Théoriquement, il n'y a que 2 statuts possibles : OK et BLOCK. Cela reviendra au même. Cependant, il faut voir au niveau temps d'exécution. Après quelques tests, la version "!=" est meilleur.

                                                                                              Pilori        
                                                    
    
    #                        Compte                        Début du ban                        Fin du ban                        Raison                        Banni par                                                                                                                                            <?php echo $joueurs2['login']; ?>                                                                                                                                                                                                                                                                                                                                                                                                                   
                    
                                                                             

  7. L'erreur te signale qu'il y a quelque chose qui n'est pas fermé dans la page, ici c'est la boucle while.Cependant, ton code, même corrigé, ne fonctionnera pas. Je vais essayer de te faire comprendre pourquoi.

    <?php    $nb3=mysql_query("SELECT * FROM $db_account.account WHERE status='BLOCK'")or die(mysql_error());    while($joueurs2 = mysql_fetch_assoc($nb3));                     {    ?>

    Ce code PHP va sélectionner tous les comptes dont le status est bloqué, ce qui est correct. Ensuite, on créé une boucle pour lire le contenu de toutes les entrées conscernées, une à une.On sait que toute boucle commence par un { et se termine par }. L'erreur que t'affiche PHP vient du fait que là tu n'as pas fermé la boucle. Cependant, tout le code entre les accolades sera exécute pour chaque boucle de la boucle. Ce n'est pas ce qu'on veut ici. En effet, on veut un tableau fixe dans lequel on va afficher pour chaque ligne un compte. Le code PHP est donc mal placé.Voici le code corrigé :

        					                                                                                        Pilori        
                                                    
    
    #                        Compte                        Début du ban                        Fin du ban                        Raison                        Banni par                                                                                                                                            <?php echo $joueurs2['login']; ?>                                                                                                                                                                                                                                                                                                                                                                                                                   
                    
                                                                             

    Attention : Il te manque des informations pour remplir ton tableau !

  8. Je ne suis pas certain que ça soit possible facilement en jeu.

     

    Pour moi, la meilleure méthode est de proposer ce système sur le site, ce qui permet l'actualisation quasi instantanée.

     

    De ce fait, pour le système, c'est assez simple et complexe à la fois. Lorsque le joueur veut redevenir niveau 1, il passe par le site. Le système le fait d'abord patienter quelques minutes en bloquant son compte jeu (ban). Au bout d'un temps défini, il modifie les données dans la table player. Dès que c'est fait, il peut encore attendre pendant un petit temps avant de debloquer le compte.

     

    Pour le temps, je pense que la manière la plus simple est de faire un compteur en javascript qui dira à l'utilisateur d'actualiser sa page après le temps défini écoulé.

     

    Je ne sais pas si j'ai été très clair... Si tu as des questions, n'hésite pas.

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.