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. Comme l'ont dis mes prédécesseurs, tu vas sur la page "Réglage du site" accessible dans le menu d'administration. De là, tu remplies dans le champs "Nom du site" le nom de ton serveur et tu cliques sur envoyer.

     

    Si ça ne marche vraiment pas, tu peux le faire manuellement. Va dans le répertoire templates/default/fr/includes/ et éditer le fichier header.tpl.

    Repère ceci :

    {config_site_name}

     

     

    Remplace le par

     

    Le nom de ton serveur

     

     

    et le tour est joué ! Si tu choisies cette deuxième méthode, tu ne pourras plus le modifier via la page de règlage :)

  2. Ce CMS est moisi, ne l'utilisez pas ! Il est codé d'une façon PUREMENT dégueulasse et il laisse sans aucun doute d'énormes failles.Pour ton problème, essaie quelque chose dans ce genre :

    if(isset($_POST['idd']))	{			//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")			{					$search=mysql_query("SELECT $db_account.account.cash FROM $db_account.account WHERE $db_account.account.login='$sess'");					$fi=mysql_fetch_array($search);					$argent=$fi["cash"]+300;					mysql_query("UPDATE $db_account.account set $db_account.account.cash='$argent' WHERE $db_account.account.login='$sess'");											header('location:http://eternal-online.net/teste/index.php?p=12');			}			else			{				header('location:http://eternal-online.net/teste/index.php?p=10');			}		}		else		{			header('location:http://eternal-online.net/teste/index.php?p=10');		}	}		/**	 *Si on ne recoit pas de payement	 **/	else	{		?>				Veuillez activer le Javascript de votre navigateur s'il vous plaît.
    Micro Paiement StarPass				
    Pour tout code acheté: 300 Gold
    	N'oubliez pas de garder le numero starpass, il vous sera redemande en cas de problemes.
    
    	<?php	}?>

  3. Il vous faut pour cela toucher à la table item qui contient tous les objets actuellement en circulation dans le jeu.

     

    Les bonus sont les champs de type "attrtypeX" et attrvalueX". Les premiers font référence à l'ID du bonus et les secondes à sa valeur.

     

    Les bonus sont écris dans deux tables séparées : item_attr (1 à 5) et item_attr_rare (6 à 7).

     

    Si vous avez modifié les valeurs maximales d'un bonus, il vous faut les harmoniser dans votre table item.

    Plusieurs solutions s'offrent à vous.

    Premièrement, vous pouvez opter pour la solution "hard" qui consciste à supprimer le bonus en question de toutes les armes.

    Secondement, vous pouvez faire en sorte que les valeurs au dessus de la nouvelle valeur maximale passent à cette dernière valeur.

    Troisièmement, vous pouvez prendre en compte les anciennes valeurs, et changer à chaque fois pour la nouvelle.

     

    Dans les 3 cas, c'est faisable relativement facilement en SQL (je vous conseille d'utiliser un langage annexe pour traiter les données plus facilement, comme PHP).

     

    Si vous ne savez pas comment faire, dites moi quelle solution vous voulez choisir et je vous écrirai le code.

  4. Remplace

     

    function get_horse_summon_prob_pct() 
               local prob = {10,15,20,30,40,50,60,70,80,90,100}
               local skill_level = pc.get_skill_level(131) + 1
               return prob[skill_level]
           end
    

     

    par

     

    function get_horse_summon_prob_pct() 
    local skill_level=pc.get_skill_level(131) 
    if skill_level==1 then 
    return 15 
    elseif skill_level==2 then 
    return 20 
    elseif skill_level==3 then 
    return 30 
    elseif skill_level==4 then 
    return 40 
    elseif skill_level==5 then 
    return 50 
    elseif skill_level==6 then 
    return 60 
    elseif skill_level==7 then 
    return 70 
    elseif skill_level==8 then 
    return 80 
    elseif skill_level==9 then 
    return 90 
    elseif skill_level>=10 then 
    return 100 
    end 
    return 10	
    end
    

  5. Tout d'abord, merci pour ce tutoriel fort intéressant !

     

    Cependant, une petite chose me turlupine :

     

    $chaine = mysql_real_escape_string(htmlspecialchars($_POST['chaine]));

     

    Ceci me semble totalement inutile. La fonction htmlspecialchars() n'est utile que pour l'affichage (protection contre les failles XSS) et n'a rien a faire ici ! En effet, la fonction mysql_real_escape_string() est là pour parer les éventualités d'injections SQL. Utiliser ces deux fonctions me semble inapproprié.

    Après c'est possible je sois dans l'erreur évidemment...

  6. Il est également de faire un système instancié en codage brut mais il sera beaucoup plus compliqué. Je m'explique :

    On peut créer une instance sur toute map avec une bonne maîtrise des quest. On écrit par exemple une zone d'attente (une map intermédiaire) en attendant que les actuels possesseurs de la map instanciées aient fini.

     

    Cependant, il est bien plus pratique et agréable d'utiliser des maps en dungeons. En effet, celles-ci "se dupliquent" sur plusieurs canaux automatiquement. C'est à dire que 2 personnages peuvent être au même endroit sans se voir ni se rencontrer car ils seront sur deux canaux différents : c'est le cas de la tour ou des catacombes du diable.

     

    Astuce : il me semble que les donjons du singe sont considérés comme des instances. Ils ne sont que très peu utilisés sur la majorité des serveurs. Il est donc possible de les exploiter pour faire des instances (en changeant la map évidemment)...

     

    Prindo99 m'a fait remarqué que cette affirmation n'était pas vrai. A vérifier :)

  7. Aucune limite. Ce n'est que du design.

     

    Un exemple de template téléchargeable sur le site officiel :

     

    vector.png

     

    Son principal avantage c'est qu'il n'y a pas besoin de toucher à PHP pour refondre le design. Il suffit d'avoir des bases en HTML/CSS.

     

    Le site http://proleptylmt2.com a pour base MT2-CMS (il n'est pas des plus esthétiques, je l'admets :angel: )

  8. Créé un nouveau répertoire dans ton site : sitenew

     

    Envoie tous les fichiers que tu as dans ce dossier. Ensuite, tu vas dans ton navigateur et tu vas dessus. Il va te falloir rentrer tes logs quelque part, soit dans la page index.php soit dans une page de configuration annexe.

     

    Attention ! Certains CMS ne sont pas sécurisés comme MT2-CMS et présentent de nombreuses failles pouvant être exploitées par des utilisateurs malveillants !

  9. Bonjour,

     

    Dans la page index.php de votre site, vérifiez les attributions de droits (1, 2, 3, 4).

    Par défaut, mettez 1 (accessible aux membres connectés). 2 équivaut à des utilisateurs preniums, 3 modérateurs et 4 administrateurs.

    Si c'est bon, allez dans votre table account et vérifiez que le champs rang est au moins à 1 pour tous les comptes.

  10. Peut être une confusion au niveau des requêtes. Remplace tout par ça :

    Si ça ne marche toujours pas, je vais écrire un tuto complet là dessus.

    Le fait de voter pour Empires-MT2 nous permet d'augmenter la population du serveur tout en vous récompensant et en vous encourageant à le faire régulièrement!
    
    Comment recevoir les DR ?
    C'est très simple, il suffit de cliquer sur les logo ci dessous, saisir un code de vérification et le tour est joué !      
    Votez les 6 Pour gagnez un max de DR par vote 10DR! (Toutes les 2Heures)Vote        DR    1 Vote        10 DR    2 Vote        20 DR    3 Vote        30 DR     4 Vote        40 DR    5 Vote        50 DR     6 Vote        60 DR     les vote sont exceptionnellement fermés        <?php $ip = $_SERVER['REMOTE_ADDR']; if(isset($_GET['vote']) and ! empty($_GET['vote'])){        $i = 0;                $sql = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote FROM account.account WHERE ip = '$ip'");        while($donnees = mysql_fetch_array($sql))                {                                                $last_vote = str_replace('-', '', $donnees['last_vote']);                                                                                                    if($last_vote >= 5400)                            {                                                $i = 0;                                                        }                                                else                            {                                                                $i = 1;                                                            }                                                            }                    if($i == 1) { ?>                 
    Vous avez voté il y a moins d'une heure trentes minutes, sur un autre compte ...            <?php }                    else {         		$sql1 = mysql_query("SELECT (UNIX_TIMESTAMP(last_vote) - UNIX_TIMESTAMP()) AS last_vote, cash, vote FROM account.account WHERE login = '$pseudo_membre'");    $donnees1 = mysql_fetch_array($sql1);                $last_vote = str_replace('-', '', $donnees1['last_vote']);                                                                        $cash = $donnees1['cash'] + 10; /* Nombre de point ajouté au compte */        $vote = $donnees1['vote'] + 1;                			if($last_vote >= 5400)            {                                                        $sql2="UPDATE account.account SET last_vote = '$date', cash = '$cash', vote = '$vote', ip = '$ip' WHERE login = '$pseudo_membre'";                        mysql_query($sql2) or die (mysql_error());                                     ?> 
    Votre vote a été comptabilisé avec succès ! <?php                                        }                        else { ?> 
    Vous avez voté il y a moins d'une heure trente minutes ! <?php }                } }else { ?>N°1
    N°2
    N°3N°4N°5N°6<?php } ?> 
  11. Ok. En faite tu as simplement pris le code sans réfléchir du tout. Je comprends mieux...

     

    Il faut donc que tu créées 3 nouveaux champs dans ta table account :

    last_vote (DATETIME)

    vote (INT)

    ip (VARCHAR 15)

     

    Ceci fait, reviens dans le code.

     

    A cette ligne :

    $sql="UPDATE account.account SET last_vote = '$date', cash = '$cash', vote = '$vote', ip = '$ip' WHERE login = '$pseudo_membre'";

     

    Remplace '$date' par NOW() comme ceci :

     

    $sql="UPDATE account.account SET last_vote = NOW(), cash = '$cash', vote = '$vote', ip = '$ip' WHERE login = '$pseudo_membre'";

     

    Je pense que ça devrait mieux marcher désormais.

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.