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. A noter tout de même qu'il y a ce que j'appellerais une énorme faille dans le fait que l'utilisateur peut chain kill un de ses propres personnages simplement dans le but de tuer des gens.

     

    PS : Un de mes joueurs a tué 1500 fois son propre perso la soirée de Noël, c'est vous dire que la tentation est grande...

  2. Très bien. Vous pouvez télécharger un CMS et lire sa page itemshop.php qui vous montrera son fonctionnement.

    Sinon, je vais vous expliquer EN GROS comment ça marche (sachant que ça peut être légèrement différent d'une structure à une autre) de manière simplifiée.

     

    Nous allons fonctionner avec 3 états : affichage de tous les items, affichage de la confirmation, ajout de l'item.

     

    Dans votre page index.php, par défaut (s'il n'y a pas de variables GET), vous sélectionnez les objets présents dans votre table d'itemshop (je ne sais pas comment elle s'appelle).

     

    Vous mettez un lien avec une variable $_GET['buy'] pour acheter qui contient le vnum de l'item.

     

    Si cette variable buy est présente et qu'il n'y a pas de variable POST, vous affichez une confirmation en sélectionnant les informations de cet item et pour varier mettez cette fois-ci une variable POST pour acheter (définitivement). Attention a bien vérifier l'authenticité de la variable GET *.*

     

    Si cette variable POST existe et que la variable buy est toujours là, vous vérifiez que l'item existe, que l'utilisateur a assez de monnaie, que son entrepôt n'est pas plein ou existe et enfin vous définissez la place disponible dans son entrepôt IS (je vous conseille personnellement de prendre la fonction de Jigsaw qui est très bien) et vous insérez l'item dans la table player.item. Vous modifiez le champs cash dans la table account.account en cash - prix item de l'utilisateur.

     

    Ce début d’algorithme est à améliorer. Il n'est pas rigoureux, je n'ai pas respecté l'ordre des choses mais je l'ai dis comme si je le faisais moi or ce n'est pas comme ça que l'ordinateur procédera. Vous avez cependant l'ensemble des choses pour comprendre comment marche un itemshop (la partie la plus compliquée étant l'insertion dans la table item). Après libre à vous de l'écrire comme bon vous semble si vous vous sentez assez expérimenté.

  3. Remplace ta requête par ça :

    $class = mysql_query("SELECT * FROM account.account WHERE status='BLOCK'  LIMIT $j,50");
    while ($ban = mysql_fetch_array($class))
    {
    

     

    J'ai enlevé l'ORDER BY car je n'étais pas sûr de ton champs debut. J'ai remplacé mysql_fetch_assoc() en mysql_fetch_array().

  4. J'ai la flemme de te l'écrire en code alors je te fais une description de ce qui doit être fait pour faire ce que tu veux.

     

    Je te propose déjà de créer dans ta table account 2 nouveaux champs : ban_motif (text) et ban_by (varchar - 25).

     

    Comme tu l'as sans doute deviné, ban_motif contiendra le motif et ban_by le pseudo du modérateur.

     

    Il te suffit ensuite de créer un formulaire avec le nom de compte et le pseudo de l'admin. Ensuite, une simple requête "UPDATE" suffit (après avoir bien sur vérifié toutes les informations fournies par l'utilisateur). Tu passes le champs status en "BLOCK", le champs ban_modif par le texte entré et ban_by par le pseudo (rentré ou bien le nom de compte du modérateur (attention cependant à la faille de sécurité à laisser un nom de compte accessible aux utilisateurs, GMs en plus)) là où le login est le nom de compte donné au départ.

     

    Pour débannir, il te suffit de passer le "BLOCK" en "OK". Les autres informations resteront mais le compte ne sera pas affiché dans le pilory. De plus, la prochaine fois qu'il sera bloqué elles seront supprimées et remplacées automatiquement.

     

    Il y a bien sur beaucoup à améliorer : écrire un système de durée (pour bannir par exemple 1 jour, 2 jours et que le compte soit débloqué automatiquement), écrire un système de points d'avertissements (un peu comme sur ce forum avec le %). Si tu as des questions, je serai heureux d'y répondre.

  5. Je vois que snow a répondu.Je t'envoie quand même mon script qui est fonctionnel (testé par moi même). Je l'ai commenté pour que tu comprennes bien chaque étape.

                Bannir une Ip                		<?php		if (isset($_POST['bannir'])) //Si le formulaire a été envoyé		{			if (isset($_POST['ip']) and $_POST['ip'] != "") //Si on a bien renseigné le champs IP			{				$ip_ban = mysql_real_escape_string($_POST['ip']); //On sécurise la variable ip (on sait jamais)								$req1 = mysql_query('SELECT COUNT(*) as nb FROM player.player WHERE ip = "'.$ip_ban.'"');				$dnn1 = mysql_fetch_array($req1);								if	($dnn1['nb'] > 0) //Si l'IP est celle d'un joueur				{					//On selectionne les ids de compte de tous les persos se rapportant à l'IP choisie					$req2 = mysql_query('SELECT account_id FROM player.player WHERE ip = "'.$ip_ban.'"');					while ($dnn2 = mysql_fetch_array($req2))					{						$account_id = $dnn2['account_id'];						//On bloque les comptes						mysql_query('UPDATE account.account SET status = "BLOCK" WHERE id = '.$account_id.'');					}															//On bloque l'IP dans le htaccess							$filename = "../.htaccess";					$fichier=fopen($filename, 'a+'); 					fwrite($fichier,"\nDeny from ".$ip_ban.""); 					fclose ($fichier);									//On informe l'utilisateur que les comptes et l'ip ont été bloqués.					echo 'Les comptes liés à l\'adresse '.$ip_ban.' ont été bloqué avec succès.';				}				else //Si on n'a pas trouvé l'ip dans les personnages				{					echo 'Aucun personnage n\'est relié à cette adresse IP.';				}							}			else //Si le champs IP n'a pas bien été renseigné			{				echo 'Le champs IP doit être rempli correctement.';			}		}		?>       									
    						IP : 															    

    Si tu constates un problème, hésite pas à me le faire savoir. Une erreur est si vite arrivée...

  6. L'erreur vient certainement de ta requête :

    $class=mysql_query("SELECT * FROM $db_account.account WHERE status='BLOCK' ORDER by debut DESC LIMIT $j,50");

     

    Quel est le nom de la base utilisée ainsi que de la table ? Il faut que tu mettes :

     

    SELECT * FROM base.table WHERE status='BLOCK' ORDER by debut DESC LIMIT $j,50

  7. La bannière ne s'affiche que pour les membres preniums ou bien dans le top 5. Elle n'a pas été enlevée mais n'est simplement plus affichée car vous n'êtes plus dans les cas précédents.

     

    Comme dit dans le MP, personnellement (et en toute franchise), je trouve louche votre montée fulgurante en si peu de temps, dépassant des serveurs bien plus peuplés que le votre. Après je n'ai aucune preuve, je ne parle qu'en mon unique parole (et c'est peut être totalement injustifié) mais si vos points ont été remis à zéro ce n'est pas pour rien :)

  8. Tous les objets en circulation sur votre serveur sont inscris dans une table de la base player : item.

     

    Depuis celle-ci, vous avez accès à tous les objets possédés par vos joueurs avec toutes les indications possibles dessus. C'est également dans cette dernière que sont inscris les bonus qui se rajoutent IG avec les ajouts de bonus et autre.

     

    Repérez les champs attrtypeX et attrvalueX. Vous en avez 7 (0 à 6) : ce sont les bonus de l'item ! Vous pouvez alors vous amuser à mettre toute sorte de bonus avec sa valeur correspondante.

     

    Il est possible d'automatiser ce système via PHP et SQL.

    • Love 1
  9. Le uid, c'est l'id du compte du joueur.

     

    Je ne connais pas bien le CMS que tu utilises, mais dans tes bases de données c'est dans account.account le champs id.

     

    Tu dois avoir une requête sql sur la page index.php te permettant d'y accéder juste en mettant la variable définie dans celle-ci ($pseudo_membre dans MT2-CMS de Jigsaw).

  10. Non, c'est m

    Tu peux par exemple copier la ligne pour un PNJ (dans le npc.txt) et le coller dans le regen.txt

    m	920	610	0	0	0	0	1m	100	1	9012

     

    et changer le vnum du monstre :

    m	920	610	0	0	0	0	1m	100	1	101

     

    Quelques infos en passant :

     

    Les 2 premiers nombres sont les coordonnées. Les 2 suivants sont des valeurs qui définissent l'aléatoire du spawn (c'est à dire que ça sera plus ou moins aux coordonnées à tant de X prêt, tant de Y prêt). Le 1m (= 1 minute, est exprimé par défaut en secondes 100 = 100s) est le temps de repop. Le 1, si je me souviens bien c'est le nombre et enfin la dernière valeur le vnum du groupe (si on est en r) ou du monstre (si on est en m).

  11. r	931	558	10	10	0	0	100s	100	1	404

     

     

    Dans le regen.txt, tu as pleins de lignes comme ça (avec des coordonnées différentes sur la 2e et 3e valeur).

     

    Ce qu'il te faut modifier, c'est le dernier nombre : l'identifiant du groupe de monstres (ici 404). Il est défini dans le fichier group.txt qui est avant le dossier map (le nom dépend de tes files).

     

    Tu y trouveras des groupes de lignes de ce genre :

     

    Group	L25_Èædz±Ã¼ö(PAWN)-Èædzµ¹°Ý´ë(PAWN)		
    {			
    Vnum	404	
    Leader	Èædz±Ã¼ö	403
    1	Èædzµ¹°Ý´ë	402
    2	Èædzµ¹°Ý´ë	402
    3	¿À¶ûÄÉÁ¹°³	502
    }	

     

     

    On retrouve l'ID du groupe qui est ici 404. Ce groupe est composé de 4 monstres de vnums 403, 402, 402 et 502.

     

    Si tu veux modifier les monstres du désert, il te faut :

    • soit créer de nouveaux groupes et changer les identifiants des groupes dans le regen.txt
    • Soit modifier les monstres des groupes présents dans le désert dans le group.txt

     

    En espérant t'avoir aidé.

    • Love 1
  12. Vous pouvez choisir de créer un nouveau thème dans le menu déroulant de "Style". Dans ce cas vous repartez avec le style basique et vous pouvez en faire ce que vous voulez.

     

    Vous pouvez également dans la liste des styles choisir de modifier un thème. Vous pouvez alors le transformer entièrement et faire ce que vous voulez dessus (changer les images, les emplacements, ...). Pour cela, il vous sera très utile d'avoir de bonnes connaissances en CSS.

  13. -> Sur la page principale de votre forum, cliquez sur "Administration" (en haut par défaut).

    -> Rentrez vos identifiants pour rentrer dans le panel d'administration.

    -> Cliquez sur affichage (milieu à gauche).

    -> Des liens apparaissent dans le menu entre le logo et le centre de la page. Cliquez sur "Style".

     

    Si votre problème est lors de l'importation, c'est que soit :

    - Vous n'avez pas téléchargé le bon fichier. Cliquez bien sur le bouton Download de la page comportant le style.

    - Le fichier style (une archive du genre XXX.tgz) est archivé dans une autre archive que vous avez téléchargé. Dans ce cas, dépackez ce que vous avez téléchargé et extrayez l'archive sous forme XXX.tgz.

     

    Je ne suis pas sur de m'être bien expliqué. Si vous avez des questions, n'hésitez 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.