Enzore vous salue
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Enzore vous salue

Venez discuté de tout et de rien ^^
 
AccueilPortailGalerieDernières imagesRechercherS'enregistrerConnexion
Le deal à ne pas rater :
Bon plan achat en duo : 2ème robot cuiseur Moulinex Companion ...
600 €
Voir le deal

 

 crée un serveur ragnarok sous linux

Aller en bas 
AuteurMessage
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 21:21

Guide complet pour installer un serveur eathena sous linux ainsi que pour créer le client ragnarok associé


Ce tutorial a pour but de vous guider dans l'installation d'un serveur ragnarok eathena SQL sur un environnement Linux ainsi que la création du client associé. Il vous est impératif d'avoir un accés ssh au serveur.

Menu général :


Indice type
Serveur - Client - Outils et autres


Les outils


[*] Gestion serveur


-- PuttY --
Pour la connexion distante au serveur sur console ssh (pour taper toutes nos commandes)
Telecharger


-- WinSCP3 --

Client SFTP mais qui permet surtout d'éditer des fichiers directement en ligne (pratique pour les fichiers de configuration)
Telecharger


-- MIME Lite 3.01 --
Optionnel car utilisé pour la gestion contrôlée des sauvegardes. Ce point est abordé en fin de tutoriel
Telecharger




[*] Création du client


-- ResourceHack --
Pour la modification rapide d'un éxécutable
Telecharger


-- GRF Factory --

Pour l'extraction ou le repack de grf
Telecharger


-- GRF Tool --
Pour l'extraction, le repack, ou simplement la visualisation simple du contenu de grf
Telecharger


-- Unbollox --
Pour convertir les noms ASCII en unicode
Telecharger


-- Difftools --
On l'utilisera pour créer notre exe du client
Telecharger


-- Diff Patch [Zephiris] --
On utilisera l'approprié pour créer notre exe du client
Dernier en date


-- Diff Patch -o- --
On utilisera l'approprié pour créer notre exe du client
A ne pas utiliser avec une version eAthena antérieur à la SVN 9004
Dernier en date


-- 77 palettes par [umage] --

c'est assez explicit
Telecharger


-- Triad Patcher 1.3.0.3 --

Un outils pour les mises à jour de votre client trés puissant
Telecharger


-- Sprite Conview v0.11 --

Un outils utile pour visualiser ses sprite
Telecharger


-- HexWorkshop --
On l'utilisera modifier le nom de notre exe du client
Telecharger




1ère étape : Mise à jour du serveur et installation des outils.



Théoriquement, les manipulations pour Ubuntu/Kubuntu/Edubuntu sont identiques à celle de Debian Linux
[...]$ correspond au prompt affiché après votre connexion console où [...] est remplacé par le nom de votre machine.
Astuce : pour les commandes longues à passer dans putty, sélectionnez le texte, copiez, puis dans putty à l'invite, faites un clic droit.


Debian Linux 3.1 Sarge


Il convient en premier lieu de vérifier ses sources synaptic.
Vérifiez donc le fichier /etc/apt/sources.list
Voici ce qu'il devrait contenir si vous désirez être assuré de n'avoir aucun problème :

Citation :
QUOTE
deb http://ftp.fr.debian.org/debian/ sarge main non-free contrib

deb http://security.debian.org/ sarge/updates main contrib non-free

deb-src http://ftp.fr.debian.org/debian/ sarge main non-free contrib

Maintenant, il faut dire au serveur de mettre sa liste de packages disponibles à jour, de mettre à jour les packages installés, et au passage de mettre à jour la distribution.

Citation :
QUOTE

[...]$ apt-get update
[...]$ apt-get upgrade
[...]$ apt-get dist-upgrade

Désormais notre serveur est à jour et il ne nous reste qu'à lui fournir les outils qui seront nécessaires, ou les mettre à jour ces derniers.

Citation :
QUOTE

[...]$ apt-get install gcc gcc-3.3 g++ g++-3.3 zlibc make subversion mysql-client mysql-server mysql-common libmysqlclient14 libmysqlclient14-dev apache php4 php4-mysql php4-common apache-common apache-utils apache-doc libapache-mod-php4 libapache-mod-auth-mysql phpmyadmin



Debian Linux 4.0 Etch




Il convient en premier lieu de vérifier ses sources synaptic légèrement différentes de Sarge.
Vérifiez donc le fichier /etc/apt/sources.list
Voici ce qu'il devrait contenir si vous désirez être assuré de n'avoir aucun problème :

Citation :
QUOTE
deb http://ftp.fr.debian.org/debian/ stable main non-free contrib

deb http://security.debian.org/ stable/updates main contrib non-free

deb-src http://ftp.fr.debian.org/debian/ stable main non-free contrib


Maintenant, il faut dire au serveur de mettre sa liste de packages disponibles à jour, de mettre à jour les packages installés, et au passage de mettre à jour la distribution.

Citation :
QUOTE

[...]$ apt-get update
[...]$ apt-get upgrade
[...]$ apt-get dist-upgrade


Désormais notre serveur est à jour et il ne nous reste qu'à lui fournir les outils qui seront nécessaires, ou les mettre à jour ces derniers.

Citation :
QUOTE

[...]$ apt-get install gcc g++ zlibc make subversion mysql-client-5.0 mysql-server-5.0 mysql-common libmysqlclient15off libmysqlclient15-dev apache2 php5 php5-mysql php5-common apache2-common apache2-utils apache2-doc libapache2-mod-php5 phpmyadmin


/!\Contrairement à Debian 3.1 Sarge, ici c'est MySQL 5, Apache2 et PHP5 qui sont installés./!\



Linux Fedora Core




Ici, les sources par défaut sont correctes. Il suffit donc d'installer les outils.

Depuis Fedora Core 3, il est simplement nécessaire de créer un fichier pour chaque dépôt dans le dossier /etc/yum.repos.d avec un nom de la forme nomdepot.repo

Consultez la fiche de chaque dépôt pour avoir plus de renseignements sur son contenu et sa configuration sur http://doc.fedora-fr.org

Citation :

Pour tous : les dépôts obligatoires[/color]* Dépôt base (FC 4 ou antérieur), Dépôt core (FC 5 & 6) ou Depot fedora : les RPM fournis avec la distribution
* Dépôt updates-released : les mises à jour officielles
* Dépôt extras (FC 6 ou antérieur) : des RPM supplémentaires


Pour tous

* Dépôt fedoralegacy : pour les anciennes versions
* Dépôt livna : indispensable pour les pilotes matériels et le multimédia


Remarque : le Dépôt livna est privilégié par rapport au Dépôt rpmforge car il fournit des pilotes matériels introuvables ailleurs. Ces deux dépôts étant notoirement incompatibles, il est fortement déconseillé, sauf aux habitués, de mélanger les RPM en provenance de ces deux sources.

Pour les habitués

* Dépôt dag : une partie de rpmforge
* Dépôt dries : une partie de rpmforge
* Dépôt freshrpms : pour le multimédia
* Dépôt jpackage : pour les applications Java
* Dépôt macromedia : pour Macromedia Flash Player
* Dépôt rpmforge : recommandé pour sa variété et sa richesse


Pour les experts

* Dépôt atrpms : des RPM scientifiques et bien d'autres
* Dépôt kde-redhat : dépôt spécialisé KDE
* Dépôt newrpms : un dépôt généraliste
* Dépôt remi : dépôt spécialisé Lamp (Linux Apache Mysql PHP)
* Dépôt drpixel : quelques paquets non trouvés ailleurs, modules pour certaines webcams
* Dépôt kwizart : dépôts de test. Les paquets ont pour vocation de finir dans extras.


Une fois ceci configuré, il ne reste qu'à mettre à jour yum, puis installé les packages.

Citation :
QUOTE

[...]$ yum update

[...]$ yum install zlib-*
[...]$ yum install mysql-*
[...]$ yum install mysql-devel-*
[...]$ yum install make
[...]$ yum install compat-gcc-32
[...]$ yum install compat-gcc-32-c++
[...]$ yum install compat-libstdc++-33
[...]$ yum install compat-libstdc++-296
[...]$ yum install subversion
[...]$ yum install httpd-*
[...]$ yum install *php4*



SuSe Linux


Dans ce cas-ci, il faut utiliser les sources rpm.
Citation :

QUOTE

[...]$ rpm -qi mysql-*
[...]$ rpm -qi mysql-devel-*
[...]$ rpm -qi zlib-*
[...]$ rpm -qi gcc
[...]$ rpm -qi gcc-c++
[...]$ rpm -qi cpp
[...]$ rpm -qi subversion
[...]$ rpm -qi apache
[...]$ rpm -qi php5
[...]$ rpm -qi phpmyadmin

Au besoin, vous pouvez aller faire un tour ici :

Mysql 5 - http://laffers.net/howtos/howto-install-mysql
Apache 2 - http://laffers.net/howtos/howto-install-apache
PHP 5 - http://laffers.net/howtos/howto-install-php

Si un utilisateur de SuSe Linux peut confirmer ou améliorer cette partie, cela serait intéressant.


Gentoo

Pour cette distribution, tout se fait avec emerge.

Citation :
QUOTE

[...]$ emerge --sync

On met le système à jour
[...]$ emerge -Duv world

Note : Il n'est pas obligatoire d'utiliser l'argument world, vous pouvez en effet spécifier le paquet que vous désirez mettre à jours.

On installe Apache2, PHP5, MySQL
Veillez à bien avoir les USE suivants : "apache2 mysql php ssl "
[...]$ emerge -av apache dev-lang/php dev-db/mysql

On edite /etc/conf.d/apache2 en changeant la ligne suivante ainsi :
PACHE2_OPTS=-D DEFAULT_VHOST -D PHP5 -D SSL"

On edite /etc/apache2/httpd.conf en changeant le paramètre suivant ainsi :
ServerName localhost

On configure MySQL
[...]$ emerge --config dev-db/mysql

On peut lancer les serveur
[...]$ /etc/init.d/apache2 start ; /etc/init.d/mysql start

On installe maintenant Phpmyadmin
[...]$ emerge -av phpmyadmin

Configurez le simplement (sans fioritures comme on en trouve partout) :
[...]$ cd /var/www/localhost/htdocs/phpmyadmin
[...]$ cp libraries/config.default.php config.inc.php

Etape clé : Importez le .sql idoine de configuration (commande pour la version 2.9.1.1 à adapter suivant votre version) :
[...]$ mysql -u root -p emerge -av subversion
[...]$ emerge -av gcc g++


La méthode suivante peut ne pas fonctionner, malgrès qu'elle soit plus rapide.
En théorie, emerge fonctionne de la même panière qu'un [color="#3366FF"]apt-get install
Ainsi, la commande pour installer les outils serait :

Citation :
QUOTE

[...]$ emerge --sync
[...]$ emerge -Duv world
[...]$ emerge gcc g++ zlibc make subversion mysql-client-5.0 mysql-server-5.0 mysql-common libmysqlclient15off libmysqlclient15-dev apache2 php5 php5-mysql php5-common apache2-common apache2-utils apache2-doc libapache2-mod-php5 phpmyadmin

Note pour PHP :
Pour ceux qui auraient loupé le choix d'apache pour l'installation de php4, allez éditer le fichier /etc/apache/httpd.conf et cherchez les lignes suivantes pour enlever le paramètre de commentaire #

Citation :
QUOTE

# LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
# AddType application/x-httpd-php .php

Une fois votre choix effectué, relancez apache

Citation :
QUOTE

[...]$ /etc/init.d/apache reload

ou

[...]$ /etc/init.d/apache2 reload

Suivant votre version d'apache.

Voilà notre serveur est enfin prêt à recevoir eAthena



2ème étape : Récupération de la dernière svn et compilation.

Ceci est valable pour toute distribution Linux.
Pour des raisons de clareté, nous créerons un dossier nommé eathena qui contiendra notre émulateur dans le dossier home

Citation :
QUOTE
[...]$ cd /home/
[...]$ mkdir eathena
[...]$ cd eathena
[...]$ svn co http://svn.eathena.ws/svn/ea/branches/stable/ .

Attention, le . a son importance, donc ne l'oubliez pas. Notez aussi qu'il y a un espace entre la fin de l'url et le point.

[15/10/07]
Si à cet instant, vous avez opté pour une version Trunk et non Stable, veillez à ien utiliser la commande suivante avant de continuer
[...]$ ./configure


[...]$ make clean

Pour une version TXT, on utilisera ensuite ceci :
[...]$ make txt

Pour une version SQL, on utilisera plutôt ceci :
[...]$ make sql

Vérifiez bien pendant le processus de compilation qu'aucune erreur ne survient.
Dans le cas contraire, copiez l'erreur sur google entre des guillements.
Généralement, votre problème n'est pas unique en son genre, et a déjà été résolu.

Si aucune erreur n'est survenue, vous aurez alors 3 nouveaux fichiers dans votre dossier :

Citation :
QUOTE
login-server_sql
char-server_sql
map-server_sql
[quote]
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:04

3ème étape : Configuration de la base sql.



Commençons par récupérer les fichiers qui vont servir de base à tout ça.
Récupérez donc les fichier suivants dans votre dossier /home/eathena/ :


Citation :
QUOTE

./sql-files/db_tables.sql <-- a été intégré à main.sql depuis [15/10/07]
./sql-files/main.sql



Optionnellement, vous pouvez aussi récupérer les fichiers :

./sql-files/logs.sql pour une gestion des log par la sql
./sql-files/item_db.sql pour une gestion des items par la sql
./sql-files/mob_db.sql pour une gestion des mobs par la sql
./sql-files/mail.sql

Une fois le nécessaire en main, allez sur http://"ip_de_votre_serveur"/phpmyadmin
Ou bien si vous avez au préalable configuré Apache sur votre nom de domaine, allez sur http://votre_domaine/phpmyadmin

La première fois, les informations de connexion sont les suivantes :
Citation :

QUOTE
Login : root
Mot de passe : aucun n'est défini pour l'instant donc laissez vierge.



Commencez par aller dans la section Privilèges.

A la ligne où figure l'utilisateur root, cliquez sur l'icône en bout de ligne ("changer les privilèges")

Dans la section "Modifier le mot de passe", définissez donc un mot de passe pas trop simple tant

qu'on y est pour des raisons de sécurité.
(vous ne voulez pas bien sûre que n'importe qui accède tranquillement à vos bases et puisse modifier à sa volonté tout ce

qu'il désire)

Ensuite validez.
Il vous sera alors redemandé de vous connecter.
Cette fois-ci, mettez toujours root en login, mais votre nouveau mot de passe donc.

Il se peut qu'après modification du mot de passe, phpmyadmin vous affiche un message de se type sans même vous demander de

vous logger :
Citation :

QUOTE
phpMyAdmin a tenté de se connecter au serveur MySQL, et le serveur a rejeté la connexion.
Veuillez vérifier les valeurs de "host", "username" et "password" dans config.inc.php et vous assurer qu'elles correspondent

aux informations fournies par l'administrateur du serveur MySQL.


Dans cette situation, éditez le fichier /usr/share/phpmyadmin/config.inc.php

Commencez déjà par renseigner le champ $cfg['blowfish_secret]
Mettez-y entre les " une phrase mémo pour retrouver votre mot de passe en cas de perte.

Editez ensuite la valeur de $cfg['Servers][$i]['auth_type]
Par défaut, ceci est configuré sur config. Changez le pour cookie

Enfin, éditez les valeurs de $cfg['Servers][$i]['user] et $cfg['Servers][$i]

['password] pour mettre vierges. (laissez juste les ")

Sauvegardez, puis réessayez à nouveau de vous connecter sur phpmyadmin.


Allez maintenant dans la section Base de données
Créez une base appelée ragna-perso par exemple (ou un autre nom à votre convenance)
Une fois créée, rentrez dedans puis allez sur l'onglet SQL
En dessous du cadre de texte, cliquez sur parcourir puis allez sélectionner le fichier

db_tables.sql que vous avez précédement récupéré.
Faites de même avec le fichier main.sql
(optionnellement faite aussi pareil pour les autres fichiers si vous en avez l'utilité)
Voilà, notre base est prête.

NB : à l'époque, il était nécessaire d'initialiser l'utilisateur s1 p1 correspondant au serveur.
Désormais cela est pré-fait dans les scritps.
Vous pouvez cependant changer les valeur s1 et p1 par un login pour les serveurs que vous aurez choisi, et un mot de passe

associé à la place de p1.
Cependant il ne faudra pas oublier de reporter tout ça dans la configuration des serveurs (voir char_athena.conf et

map_athena.conf)


Il nous faut maitennant créer un utilisateur mysql pour l'accés à cette base.
Retournez donc sur l'onglet Privilèges
Choisissez cette-fois ci Créer un nouvel utilisateur
Citation :

QUOTE
Nom d'utilisateur : ragnarok ou un autre à votre convenance à reporter dans la config du serveur

ragnarok
Mot de passe / Répéter le mot de passe : ragnarok ou un autre à votre convenance à reporter dans

la config du serveur ragnarok


Ensuite exécutez directement sans cocher une seule case.
Repérez alors dans la section Privilèges spécifiques à une base de données
Choisissez alors dans la liste déroulante votre base ragnarok que vous avez créé précédement.

Cochez les options suivantes :
Citation :

QUOTE
SELECT CREATE
INSERT ALTER
UPDATE INDEX
DELETE DROP
CREATE TEMPORARY TABLES

Puis éxécutez.

Il nous reste à définir un compte GM.
Dans le panneau de gauche, sélectionnez donc votre base ragnarok puis cliquez sur login
Faites alors insérer (en haut dans les onglets) et modifiez les valeurs suivantes :

Citation :
QUOTE
account_id : 2000001

userid : le_login_de_votre_futur_compte_gm

user_pass : le_mdp_de_votre_futur_compte_gm

sex : M ou F au choix

email : votre mail (servira à delete éventuellement les perso de votre compte)

level : 99 (c'est ca qui défini le fait que vous êtes GM et que vous avez donc drotis d'admin)
level peut prendre les valeurs de 1 à 99, selon les droits accordés au GM en question

Une fois cela fait, validez (nul besoin de modifier le reste).


Finissez maintenant par modifier le fichier /home/eathena/conf/inter_athena.conf pour y

mettre donc vos paramètres SQL.

Pour information, afin que tout fonctionne, il est nécessaire de mettre localhost pour la valeur

server.


Voilà, la SQL de notre serveur ragnarok est fin prête.


4ème étape : Configuration de l'émulateur.


Pour la configuration des rates et autres paramètre inGame, cela se passe dans le dossier /home/eathena/conf/battle/

De ce qui est de la configuration réseaux, voici la marche à suivre :

Citation :
QUOTE

SANS Routeur

/home/eathena/conf/char_athena.conf :
Login ip : 127.0.0.1
Char ip : WAN IP

/home/eathena/conf/map_athena :
Char ip : 127.0.0.1
Map ip : WAN IP

/home/eathena/conf/subnet_athena :
Subnet: 255.0.0.0:127.0.0.1:127.0.0.1


AVEC Routeur

/home/eathena/conf/char_athena.conf :
Login ip : 192.168.x.x
Char ip : WAN IP

/home/eathena/conf/map_athena :
Char ip : 192.168.x.x
Map ip : WAN IP

/home/eathena/conf/subnet_athena :
Subnet: 255.255.255.0:192.168.x.x:192.168.x.x


Pour ceux qui on un WAN IP non-fixe, utiliser no-ip , www.no-ip.com et changer WAN IP pour xxxxxx-no-ip.com

Pour bien différencier IP LAN de IP WAN, voici une brève explication :

Citation :
QUOTE

Afin d'identifier, et donc de pouvoir accéder aux ressources de telle ou telle machine sur un réseaux local ou sur internet, une adresse ip est attribué à chaque machine.
Cette adresse IP est une sorte d'adresse postale numérique pour schématiser.

Il existe des adresses IP de version 4 et de version 6. Les plus utilisées sont les IP de version 4 (IPV4), l'IPV6 étant récente et peu utilisée encore.
L'IPV4 est généralement notée avec quatre nombres compris entre 0 et 255, séparés par des points.
exemple : 126.080.049.213

Pour ne pas trop se mélanger, des groupes d'adresses IP communément appelés plages ip ont été désignéés pour tel ou tel autre type de réseaux.
Ce sont des standards.
Parmis ces standards, voici ce qu'il faut retenir :

* une adresse LAN, c'est à dire une adresse de réseaux local ou "réseaux privé" est du type :
192.168.xxx.xxx
ou
172.16.xxx.xxx
ou encore
10.xxx.xxx.xxx
selon l'étendu du réseaux (le nombre de machines)
je ne m'étendrai pas sur ce sujet.

* une adresse locale, donc sur la machine même et uniquement, et non sur un réseaux est du type :
127.xxx.xxx.xxx
sur ce principe aussi, 127.0.0.1 est l'adresse physique même de la machine. Ces adresses ne peuvent être utilisées que localement dans une application pour indiquer n'importe quelle interface réseau.

* une adresse de difusion, généralement utilisée pour qualifier un masque sous réseaux, une adresse de diffusion broadcast est du type :
255.255.255.255 / 255.255.255.0 / 255.255.0.0 / 255.0.0.0

* une adresse WAN, c'est à dire une adresse internet, est une adresse ne rentrant dans aucune de ces catégories.
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:15

5ème étape : Création des grf client/serveur.


Commencez par régler votre explorateur internet ou votre gestionnaire de téléchargements pour qu'il passe par un serveur proxy sud coréen sur par exemple :proxy4free

Ragnarok 0726 (26juillet 2007)
lien a venir

Sakray 0726 (26juillet 2007)
lien a venir

Il est possible de n'utiliser que Sakray à condition de lui fournir certains fichiers

Installez donc ragnarok puis sakray.
Mettez à jour ragnarok puis Sakray simplement en les lançant.
Commencez par dupliquer le dossier d'installation pour avoir une sorte de backup.
Ensuite utilisez GRF Factory pour ouvrir le fichier data.grf puis cliquez sur extraire tout
Faites de même pour sdata.grf

/!\ Attention cela risque de prendre un certain temps en fonction de votre machine.

Une fois que cela est réalisé, modifiez les fichiers que vous désirez personnaliser pour votre client.

exemples :
- bgi_temp.bmp
- bgi_temp.jpg (login screen)
- scr_logo.bmp (image signature serveur sur les screen)
- sclientinfo.xml (avec les information de connexion à votre serveur depuis internet)
etc...

Contenu général du sclientinfo.xml :


Citation :
QUOTE
<xml>

<clientinfo>

<desc>Ragnarok Client Information - Taiwan Version</desc>

<servicetype>korea</servicetype>
<servertype>sakray</servertype>

<connexion>
<display>Nom de votre serveur</display>
<desc>Description rapide de votre serveur</desc>
<address>Adresse IP WAN / Adresse no-ip de votre serveur</address>
<port>6900 (le port de votre serveur)</port>
<version>Version du serveur</version>
<langtype>Langue supportée par le serveur</langtype>
<registrationweb>L'url de l'inscription au serveur</registrationweb>
</connexion>

</clientinfo>

Pour le langtype, voici comment cela fonctionne :

Code:
CODE
+-----+------------------------+-------------------+
| int | enum SERVICETYPE      | "servicetype" tag |
+-----+------------------------+-------------------+
| 0  | SERVICETYPE_KOREA      | korea            |
| 1  | SERVICETYPE_AMERICA    | america          |
| 2  | SERVICETYPE_JAPAN      | japan            |
| 3  | SERVICETYPE_CHINA      | china            |
| 4  | SERVICETYPE_TAIWAN    | taiwan            |
| 5  | SERVICETYPE_THAI      | thai              |
| 6  | SERVICETYPE_INDONESIA  | indonesia        |
| 7  | SERVICETYPE_PHILIPPINE | philippine        |
| 8  | SERVICETYPE_MALAYSIA  | malaysia          |
| 9  | SERVICETYPE_SINGAPORE  | singapore        |
| 10  | SERVICETYPE_GERMANY    | germany          |
| 11  | SERVICETYPE_INDIA      | india            |
| 12  | SERVICETYPE_BRAZIL    | brazil            |
| 13  | SERVICETYPE_AUSTRALIA  | australia        |
| 14  | SERVICETYPE_RUSSIA    | russia            |
| 15  | SERVICETYPE_VIETNAM    | vietnam          |
| 17  | SERVICETYPE_CHILE      | chile            |
| 18  | SERVICETYPE_FRANCE    | france            |
+-----+------------------------+-------------------+

Pensez pour avoir les textes en français plutôt que coréen à intégrer les txt correspondants.

Pour les 77 palettes, le pack vous est fourni dans les outils.
Il s'agit de celui de [umage] gérant aussi le peco noir


Dans un coin à part, créez un dossier data qui nous servira pour créer nos différents grf.
Commencez par déplacer dans ce dossier les fichiers .txt, les fichiers .gat, et les fichiers .rsw en prennant soin de respecter leur emplacement dans l'arborescence.
Ouvrez ensuite GRF Factory puis cliquez sur Ajout dir et allez sélectionner votre dossier data fraichement créé.

Version de GRF : choisissez 0x200
Compression : laissez medium ou passez à high... au choix

Cliquez alors sur Repack, choisissez l'emplacement où stoquer votre grf, et donnez lui un nom de votre choix. Par exemple, donnez lui le nom abrégé de votre serveur.

Voilà déjà notre GRF de base qui servira aussi à notre serveur est fin prêt.

Vous pouvez déjà commencer à uploader ce fichier sur votre serveur dans le dossier /home/eathena/data/ que vous aurez créé.
Revennez alors sur la configuration de l'émulateur... et plus précisement /home/eathena/conf/grf-files.txt
Ce fichier ne doit contenir que la ligne suivante :
Citation :

QUOTE
grf: /home/eathena/data/nom_de_votre_grf.grf

Vous pouvez désormais supprimer le dossier data que vous aviez créé.

Relancez GRF Factory, cliquez à nouveau sur Ajout dir, et spécifiez cette fois ci le dossier data présent dans le dossier d'installation de Ragnarok (celui où vous avez éventuellement modifié, et d'où vous avez déplacé les fichiers txt, gat et rsw)
De même que précédement :

Version de GRF : choisissez 0x200
Compression : laissez medium ou passez à high... au choix

Cliquez alors sur Repack, choisissez un endroit où le placer et un nom comme par exemple mon_serveur_bis.grf
Placez ce grf ainsi créé à la racine de votre répertore d'installation ragnarok.
Vous pouvez désormais supprimer le dossier data.

Voilà, nos grf sont fin prêts




6ème étape :Création de l'éxécutable du client.


Lancez le diff patcher contenu dans le pack difftool

Indiquez lui alors l'emplacement du fichier .diff et du fichier sakexe.exe disponnibles dans l'archive rar du diff patch correspondant à votre version d'émuleur.

Laissez Validate CRC coché et faites simplement Next

Vous avez alors plusieurs options qui s'offrent à vous.
A droite ce sont les options activées qui seront présentes, et à gauche celles disponnibles et non activées.

Voici une explication de chaque option :

Citation :
QUOTE

Note : les options ici présentées sont tirées du diff de -o- (http://www.eathena.ws/board/index.php?showtopic=143951)
Elles sont pas toutes présentes dans les diff de Zephiris comme les custom color, mais ces derniers possèdent les principales et générales présentés ici dans le lot.

Avis: Recommandé, Optionel, Deprecated (option à ne pas activer de préférence).

[UI] Adjust Font Size
- Utilise une taille de police plus petite. Soit 6 ou 8pt.
Optionel

[UI](F) All Maps Have Red Fog
[UI](F) All Maps Have Snow
- Toutes les maps auront un brouillard rouge ou de la neige.
Optionel

[UI](1) Allow Chat Flood (25 lines)
[UI](1) Allow Chat Flood (50 lines)
[UI](1) Allow Chat Flood (100 lines)
[UI](1) Unlimit Chat Flood
- Désactive la protection du flood limitée à 3 fois, et la force à la valeur voulue. (ou aucune protection contre le flood)
Optionel

[UI](A) Change GM Chat Color (Blue)
[UI]( A ) Change GM Chat Color (Green)
[UI]( A ) Change GM Chat Color (Orange)
[UI]( A ) Change GM Chat Color (Pink)
[UI]( A ) Change GM Chat Color (Purple)
[UI]( A ) Change GM Chat Color (Turquoise)
- Change la couleur du texte des GM en la couleur voulue.
Optionel

[UI]( B ) Change Guild Chat Color (Blue)
[UI]( B ) Change Guild Chat Color (Green)
[UI]( B ) Change Guild Chat Color (Orange)
[UI]( B ) Change Guild Chat Color (Pink)
[UI]( B ) Change Guild Chat Color (Purple)
[UI]( B ) Change Guild Chat Color (Turquoise)
- Change la couleur du texte du chan Guilde en la couleur voulue.
Optionel

[UI]( C ) Change Other Chat Color (Blue)
[UI]( C ) Change Other Chat Color (Green)
[UI]( C ) Change Other Chat Color (Orange)
[UI]( C ) Change Other Chat Color (Pink)
[UI]( C ) Change Other Chat Color (Purple)
[UI]( C ) Change Other Chat Color (Turquoise)
- Change la couleur du texte des autres joueurs en la couleur voulue.
Optionel

[UI](D) Change Party Chat Color (Blue)
[UI]( D ) Change Party Chat Color (Green)
[UI]( D ) Change Party Chat Color (Orange)
[UI]( D ) Change Party Chat Color (Pink)
[UI]( D ) Change Party Chat Color (Purple)
[UI]( D ) Change Party Chat Color (Turquoise)
- Change la couleur du texte du chan Groupe en la couleur voulue.
Optionel

[UI]( E ) Change Your Chat Color (Blue)
[UI]( E ) Change Your Chat Color (Green)
[UI]( E ) Change Your Chat Color (Orange)
[UI]( E ) Change Your Chat Color (Pink)
[UI]( E ) Change Your Chat Color (Purple)
[UI]( E ) Change Your Chat Color (Turquoise)
- Change la couleur de votre texte en la couleur voulue.
Optionel

[UI](2) Disable lv99 Aura
[UI](2) Enable Aura over lv99
- Désactive les auras ou les rend visible au-delà du level 99 (visible qu'au level 99 par défaut).
Optionel

[UI] Enable ASCII in text
- Supprime le bridage d'utilisation de certains caractères. Comme par exemple les caractères accentués
Recommandé

[UI] Enable Flag1 Emote
[UI] Enable Flag2 Emote
[UI] Enable Flag3 Emote
[UI] Enable Flag4 Emote
[UI] Enable Flag5 Emote
[UI] Enable Flag6 Emote
[UI] Enable Flag7 Emote
[UI] Enable Flag8 Emote
[UI] Enable Flag9 Emote
- Active les drapeaux en emots :
Ctl+1 (Corée), Ctrl+2 (Indonésie), Ctrl+3 (Philippine), Ctrl+4 (Malaisie), Ctrl+5 (Singapour), Ctrl+6 (Brésil), Ctrl+7 (Inde), Ctrl+8 (Russie), Ctrl+9 (??)
Optionel

[UI](10) Enable /showname
[UI](10) Enforce iRO Font
- Active /showname (pour voir seulement le nom du personnage et son titre de Guilde en gras) ou utilise la police d'iRO (Serveur Officiel International de RO).
Optionel,

[UI] Enable Stats over 99
- Permet de voir les stats au-delà de 99.
Recommandé (pour certains serveurs)

[UI] Enable /w and /who commands
- Active ces 2 commandes, elles permettent de voir le nombre de joueurs connectés.
Optionel

[UI](3) Enforce New Login Background
[UI](3) Enforce Old Login Background
- Auparavant été utilisé trois images pour le background: #1: La licence, #2: La selection de Service, et #3: Le login/char-select. Actuellement le client utilise le thème "Comodo Beach" en tant qu'image #2, et le thème "Einbroch" en tant qu'image #3. Cette option force l'utilisation par le client de la seconde image pour #2 et #3.
Optionel

[UI](4) Fix Camera Angles (less)
[UI](4) Fix Camera Angles (FULL)
- Débloque l'angle de vue de la caméra. La version "FULL" permet de se mettre à l'horizontal, la version "less" permet moins de possibilitée (à peut près 30 degrés).
- La déformation de Sprite survient lors d'une "vue plongeante" pour le paramètre "FULL".
- Si vous utilisez shift+click-droit vous pourrez quand même avoir une large plage de liberté pour la caméra.
Optionel

[UI] Ignore Changed Alert Messages
- Change les messages d'alertes générés par gameguard/nprotect lorsqu'il détecte que les fichiers ont été altérés.
- Semble être une alternative pour désactiver complètement nprotect/gameguard.
Deprecated (inutile, il y a "Disable nProtect & GameGuard")

[UI] Ignore Missing File Errors
[UI] Ignore Missing Palette Errors
- Evite que le client à afficher un message d'erreur lorsqu'il ne trouve pas un fichier (comme "Can't find a sprite").
Optionel

[UI](5) Increase Zoom Out 2x
[UI](5) Increase Zoom Out 10x
- Débloque le zoom de la caméra. La caméra peut ainsi être très proche du joueur ou bien très éloignée.
Optionel

[UI] Play Openning.bik
- Au lancement du client, permet de lancer une vidéo ("Openning.bik"). La vidéo doit être au format Bink (.bik).
Optionel

[UI] Show All Buttons In Login Windows
- Active le bouton Register pour tous les langtypes, ce bouton lance le navigateur sur l'adresse spécifié dans le fichier sclientinfo.xml, dans la balise <registrationweb>.
Optionel

[UI] Show EXP/Job Bars up to 255
- Débloque la barre d'expérience de la fenêtre principale pour pouvoir afficher la progression même au dessus du level de base 99 et job 70.
Recommandé (pour certains serveurs)

[UI](6) Show Licence Screen Always
- Affiche une licence du serveur (on peut mettre ce que l'on veut dans le fichier prévu à cette effet).
Optionel

[UI] Skip Service Select
- N'affiche pas la fenêtre du choix de serveur, passe directement à la fenêtre de Login.
Recommandé

[UI](9) Use Arial on All Langtypes
[UI](9) Use Custom Font
- Utilise la police "Arial" ou une custom (comme "iRO Fonts") pour n'importe quel langtypes (définie dans sclientinfo.xml)
Optionel

[UI] Use Normal Guild Brackets
- Cette option remet les crochets à la normal ("[" et ]").
Optionel

[UI] Use Ragnarok Icon
- Utilise l'icône de Ragnarok (comme celui de "sakray.exe") pour votre launcher, au lieu de l'icône générique d'applications Win32.
Recommandé

[Data](7) Enable Multiple GRFs
[Data](7) GRF Adata/Bdata Support
- Active le support de GRF alternatif avant la lecture de data/sdata.grf.
- Lors de l'utilisation du multiGRF, il faudra alors utiliser le fichier Data.ini qui liste les differents GRF dans l'ordre de lecture/priorité (valeurs valide 0-]9).
Recommandé (pour ceux utilisant le système GRF)

[Data] Unlimited Loading Screens
- Active l'utilisation d'écran de chargement infini en les définissant dans le fichier sclientinfo.xml.
Optionel

[Data] Use Custom Aura Sprites
- A activer pour l'utilisation des fichiers aurafloat.tga, auraring.bmp et freezing_circle.bmp comme sprites d'aura.
- Les fichiers par défaut sont pikapika2.bmp, blue_ring.tga et freezing_circle.bmp, mais ils sont aussi utilisés pour d'autres effets.
Recommandé (pour une aura personalisée)

[Data](Cool Use Encoded Descriptions
- A activer si les fichiers TXT de votre DATA sont encryptés.
- C'est le mécanisme par défaut si le servertype est "Korea".
Optionel

[Fix] Allow Multiple Windows
- Permet de lancer le jeux plusieurs fois.
Deprecated (multi-comptes)

[Fix] Disable 4 Letter UserCharacter Limit
[Fix] Disable 4 Letter UserID Limit
[Fix] Disable 4 Letter UserPassword Limit
- Permet aux joueurs d'utiliser des pseudo/login/mot de passe plus petits que 4 caractères.
Optionel

[Add] Custom Mob Green Jaguar
[Add] Custom Mob Custom1
[Add] Custom Mob Custom2
[Add] Custom Mob Scorpion King
[Add] Custom Mob Hollow Poring
[Add] Custom Mob Dark Poring
[Add] Custom Mob Fire Poring
[Add] Custom Mob Custom3
[Add] Custom Mob Custom4
[Add] Custom Mob Pumpkinring
[Add] Custom Mob Mastering
[Add] Custom Mob Ayame Man
[Add] Custom Mob Giant Baphomet
[Add] Custom Mob Custom5
- Support pour les nouveaux sprites et sons de mob personnalisés.
Optionel

[Add] Enable DNS Support
- Active le support d'adresse DNS au lieu d'une Ip dans le sclientinfo. Par exemple, le serveur à pour adresse monserveur.no-ip.com.
Recommandé

[Add] Enable Proxy Support
- Fix pour les clients qui voient leurs palettes réinitialisés lors d'utilisation d'un proxy en local.
Optionel

[Old] Disable New Login Packet
- Les nouveaux paquets de login utilisé par les nouveaux clients peuvent poser problèmes lors de la connexion à certains serveurs.
Deprecated (Obligatoire pour Aegis)

La configuration ici est à votre guise, mais prennez soin tout de même de bien sélectionner Enable Multiple Grfs


Dès à présent, pensez à modifier le fichier DATA.ini pour y mettre la liste de vos grf
En premier spécifiez le grf serveur contenant les gat et txt, puis le/les autres

Pour changer l'app name de l'exe de votre client, rien de plus facile.
Installez HexWorkshop puis ouvrez votre exe avec ce dernier.
Une colone avec plein de 'signes bizards' apparait.
Pas de panique ! Descendez tout doucement (à l'aide de la flèche par exemple xD) jusqu'à trouver Ragnarok ou Sakexe by mrmagoo (par exemple)
Vous n'avez qu'à réécrire votre titre par dessus =) !
Si des champs en trop restent (au cas ou votre nom serait plus court que le précédent), il vous suffit simplement de remplir les champs restant avec ces 'points', (0000 dans la colone de gauche), ou simplement des espaces.


Pour changer l'icône, utiliser RessourceHacker, puis faites ressource, remplacer l'icône et choisissez votre nouvelle icône, puis enregistrez.


Voilà, votre éxécutable est fin prêt.
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:32

7ème étape : Mise en place de l'outil de mise à jour du client (Triad).


Triad est un updater trés puissant, rapide, simple d'emploi, et entièrement personnalisable.
Vous stockez vos mises à jour sur un serveur, et dès le lancer du Patcher, la mise à jour des GRF client se fait conformément à vos indications.

Allez c'est parti !
Décompressez l'archive rar dans un dossier connexe du nom par exemple de /defaut/config.ini

Code:
CODE
; Options de base - Base options
      [baseoptions]
    ;Langue des textes
    ;Texts language
    ;(français, english, ...)
      language=français
    ;Ceci sert configurer le langages du Patcher
     
    ;Langue du texte de "A propos"
    ;"About" text language
    ;0=Francais, 1=English
      about_lang=0
    ;Ceci sert configurer le langages du "A propos"
     
    ;En-tete du texte de "A propos", |=retour à la ligne
    ;"About" text header, |=carriage return
      about_header=Configuration par défaut.|Skin par défaut.|Bannière désactivée.|Log activé.||Tales of Ragnarök > [url=http://www.talesofragnarok.net]http://www.talesofragnarok.net[/url]
    ;Ceci sert à configurer le bouton "About" ou "A propos" du Patcher
     
    ;Ne pas spécifiez de path signifie que le skin se situe au même endroit que le fichier config.ini
    ;Leaving blank mean the skin is in the same folder as the config.ini file
    ;Couleur de transparence=FF00FF
    ;Transparent][color=FF00FF
      bmpskin_path =
      bmpskin_file=skin.bmp
    ;Ceci sert configurer l'emplacement du skin de votre Patcher
     
    ;Ne pas spécifiez de path signifie que la bannière se situe au même endroit que le fichier config.ini
    ;Leaving path blank mean the banner is in the same folder as the config.ini file
    ;Format ???x88
      banner_width=545
      banner_path =
      banner_file =
     
    ;0=Aucun, 1=SWF (Flash), 2=BMP, 3=JPG/JPEG, 4=PNG
    ;0=None, 1=SWF (Flash), 2=BMP, 3=JPG/JPEG, 4=PNG
      banner_type=0
     
    ;Musique de fond - 0=Désactivé, 1=Activé
    ;Background music - 0=Disabled, 1=Enabled
      bgm_enabled=0
    ;Ceci sert à activer ou désactiver le son de votre Patcher
     
    ;Fichier MP3 pour la musique de fond
    ;MP3 file for the background music
      (Ex: MyMusic.mp3, BMG\TriadBGM.mp3, etc...)
      bgm_file=BMG\votre_MP3.mp3
    ;Ceci sert à mettre une music de fond à votre Patcher (fichier mp3 à mettre dans le dossier BGM de votre client)
     
    ;Sons des boutons - 0=Désactivé, 1=Activé
    ;Button's sounds - 0=Disabled, 1=Enabled
      btnsnd_enabled=1
    ;Ceci sert à activer ou désactiver le sons des boutons
     
    ;Création d'un fichier de log des actions effectué par Triad Patcher
    ;Creation of a log file that will logs all actions made by Triad Patcher
    ;0=Désactivé/Disabled, 1=Activé/Enabled
      create_log=1
    ;Ceci sert à créer un fichier log des événement de votre Patcher
     
     
    ; Diverses URLs requis pour le fonctionnement de Triad Patcher - Some URLs used by Triad Patcher
      [urls]
     
    ;URL de votre page d'actualité
    ;URL of your news page
      news=http://votre_site/votre_page_news.html
    ;Ceci sert à mettre le lien de votre site web
     
    ;URL de votre page d'inscription (afficher dans la fenêtre A propos)
    ;URL of your registering page (displayed in About form)
      register=http://votre_site/votre_page_inscription.html
    ;Ceci sert à mettre le lien de votre page d'enregistrement (pas de page laissez vide)
     
    ;URL du fichier contenant la liste des patchs (.ini)
    ;URL of the file containing the patchs list (.ini)
      patchs_list=http://votre_site/triad/patchs_list.ini
    ;Ceci sert à renseigner l'emplacement de votre serveur ou sont stocké vos mise à jour
     
    ;Nom du fichier exécutable de votre client Ragnarök Online à lancer (.exe)
    ;Executable file of your Ragnarok Online client filename to launch (.exe)
      exec_file=Sakexe.exe
    ;Ceci sert à renseigner le nom de votre lancer. (si ce n'est pas le bon nom le client ne se lancera pas)
     
    ;Arguments à passer a votre fichier exécutable, peut être laissé vide
    ;Arguments to pass to your executable file, can be empty
    ;(Ex: 1rag1, 1sak1, etc...)
      exec_args =
    ;Ceci sert à donner des instruction a votre lancer. (Pas testé)
     
     
    ; Zonage des éléments du skin - Skin's elements mapping
      [skinmap]
    ;Corp
    ;Body
      body_left=0
      body_top=0
      body_width=545
      body_height=469
    ;Ceci sert à configurer la taille du Patcher (si je ne me trompe pas
     
    ;Boutons lorsque la souris n'est pas au dessus
    ;Buttons when the mouse is not over
      button_start_left=0
      button_start_top=0
      button_start_width=0
      button_start_height=0
      button_quit_left=0
      button_quit_top=0
      button_quit_width=0
      button_quit_height=0
      button_about_left=0
      button_about_top=0
      button_about_width=0
      button_about_height=0
    ;Ceci sert à configurer l'effets des boutons (A tester ?)
     
     
    ;Boutons lorsque la souris est au dessus
    ;Buttons when the mouse is over
      button_startb_left=1
      button_startb_top=470
      button_startb_width=84
      button_startb_height=22
      button_quitb_left=86
      button_quitb_top=470
      button_quitb_width=84
      button_quitb_height=22
      button_aboutb_left=171
      button_aboutb_top=470
      button_aboutb_width=84
      button_aboutb_height=22
    ;Ceci sert à configurer l'effets des boutons (A tester ?)
     
     
    ; Coordonnées des éléments de l'interface - Interface's éléments coordinates
      [interface]
      body_width=545
      body_height=469
      button_start_left=395
      button_start_top=69
      button_start_width=84
      button_start_height=22
      button_quit_left=395
      button_quit_top=90
      button_quit_width=84
      button_quit_height=22
    ;Le bouton A propos doit être visible (minimum 5x5 pixels)
    ;About button must be visible (5x5 pixels at least)
      button_about_left=395
      button_about_top=111
      button_about_width=84
      button_about_height=22
      progressbar_left=18
      progressbar_top=438
      progressbar_width=509
      progressbar_height=18
      webbrowser_left=17
      webbrowser_top=161
      webbrowser_width=511
      webbrowser_height=252
    ;Ceci sert à configurer l'emplacement des boutons
     
     
    ; Options des éléments de l'interface - Interface's éléments options
    ; 0=Désactivé/Disbled, 1=Activé/Enabled
      [interface_options]
    ;Note: Le bouton A propos n'est pas désactivable
    ;Note: About button cannot be disabled
      button_start_enabled=1
      button_quit_enabled=1
      progressbar_enabled=1
      webbrowser_enabled=1
    ;Ceci sert à activer ou desactiver certain bouton
     
     
    ; Bar de progression et navigateur web - Progress bar and web browser
      [progressbar_webbrowser]
    ;Ne pas y toucher
     
    ;Couleur de la bordure de la bar de progression, format HTML (RRVVBB)
    ;Border color of the progress bar, HTML format (RRGGBB)
      progressbar_bordercolor=C0C0C0
    ;Ceci sert à configurer la couleur de la bordure de la bar de progression du navigateur web
     
    ;Couleur de fond de la bar de progression, format HTML (RRVVBB)
    ;Background color of the progress bar, HTML format (RRGGBB)
      progressbar_backcolor=FFFFFF
    ;Ceci sert à configurer la couleur de fond de la bar de progression du navigateur web
     
    ;Couleur de remplissage de la bar de progression, format HTML (RRVVBB)
    ;Foreground color of the progress bar, HTML format (RRGGBB)
      progressbar_forecolor=C0C0C0
    ;Ceci sert à configurer la couleur de remplissage de la bar de progression du navigateur web
     
    ;Couleur de la bordure du navigateur web, format HTML (RRVVBB)
    ;Border color of the web browser, HTML format (RRGGBB)
      webbrowser_bordercolor=C0C0C0
    ;Ceci sert à configurer la couleur de la bordure du navigateur web
     
     
    ; Style des textes
      [textfont]
    ;Nom de la fonte du texte (police de caractères)
    ;Font text name






      button_name=MS Sans Serif
    ;Ceci sert à configurer le style d'écriture des boutons du Patcher
     
    ;Taille du texte, en pixel (entre 6 et 16)
    ;Font size, in pixel (between 6 and 16)
      button_size=8
    ;Ceci sert à configurer la taille des textes des boutons du Patcher
     
    ;Couleur au format HTML (RRVVBB)
    ;Font color, HTML format (RRGGBB)
      button_color=000000
    ;Ceci sert à configurer la couleur des textes des boutons du Patcher
     
    ;0=Normal, 1=Gras
    ;0=Normal, 1=Bold
      button_bold=0
    ;Ceci sert a mettre en gras ou non les textes des boutons du Patcher
     
    ;Nom de la fonte du texte (police de caractères)
    ;Font text name
      body_name=MS Sans Serif
    ;Ceci sert à configurer le style d'écriture du dialogue du Patcher
     
    ;Taille du texte, en pixel
    ;Font size, in pixel
      body_size=8
    ;Ceci sert à configurer la taille du dialogue du Patcher
     
    ;Couleur au format HTML (RRVVBB)
    ;Font color, HTML format (RRGGBB)
      body_color=000000
    ;Ceci sert à configurer la couleur du dialogue du Patcher
     
    ;0=Normal, 1=Gras
    ;0=Normal, 1=Bold
      body_bold=0
    ;Ceci sert à mettre en gras ou non les dialogue du Patch
er

Une fois que le fichier config.ini est bien renseigné pour votre serveur, il ne reste qu'à créer le skin.bmp.
Pour cela, il vous suffit d'utilisez votre éditeur d'image favoris (The Gimp, Photoshop, Paint Shop, etc...)
Laissez parler votre sens de la création

Une fois cela prêt, lancez Triad Configurator.exe afin de créer le fichier config.tpc (.tpc=Triad Patcher Config)
Indiquez lui alors le fichier de langues (celui par défaut), le config.ini que vous avez créé, et votre skin.bmp
Le tout devrait générer un fichier config.tpc
Copiez alors ce fichier accompagné de Packer.exe et GRF.dll dans un dossier "mon_patcher".

La partie client est prête, il ne reste que la partie serveur.

A la racine de votre site web, créer un dossier triad
Dans ce même dossier, vous y placerez le fichier patchs_list.ini ainsi que vos patch.
Et voilà !
Pas difficile n'est-ce pas ?

Pour créer vos patch, il vous suffit de préparer un dossier data dans lequel vous y placerez vos modifications en respectant l'arborescence de chacun.
Ensuite, empactez votre dossier data dans un grf en 0x200 nommé par exemple avec la date du jour.
Une fois ce grf prêt, renomez le en .gpf (0807.grf deviendrait 0807.gpf) puis lancez Triad Packer.exe
Il vous sera alors demandé votre gpf et le grf de destination (celui dans lequel vos fichier de votre nouveau grf seront indexés/ajoutés)
Le tout devrait générer cette fois ci un fichier .tpp
Uploadez ce fichier sur votre site dans le dossier triad
Editez ensuite patchs_list.ini
Ajoutez en fin de fichier une ligne de type :

Citation :
QUOTE

http://votre_site/triad/votre_patch.tpp=x
où x prend la valeur 0 ou 1 suivant ce que vous désirez faire :
1 - le patch sera installé
0 - le patch sera ignoré et donc non-installé

Voilà, nous en avons fini avec cette partie
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:32


8ème étape :
Empactage du client dans un éxécutable pour installation futur.

Commencez par rassembler les divers éléments dans un dossier à votre convenance nommé par exemple "mon_client_v1" :

Citation :
QUOTE

Pour les fichiers cités que vous n'avez pas créé, il suffit de prendre ceux de votre dossier ragnarok/sakray originel.

[*]binkw32.dll (Bink Video Decoder)
[*] cps.dll (Microsoft Visual C++ Runtime Library)
[*] granny2.dll (RAD game tools, probablement lié à binkw32.dll)
[*] ijl15.dll (Intel JPEG Library)
[*] mp3dec.asi (Mp3 Decoder for Miles Sound System)
[*] mss32.dll (Miles Sound System)
[*] Mssfast.m3d (Miles Sound System)
[*] Setup.exe (Setup Game Options)
[*] ./BGM/ (les divers son de ragnarok)
[*] L'éxécutable (créé en 6ème partie)
[*] data.ini (vu en 6ème partie)
[*] Vos grf (créés en 5ème partie)
[*] Le contenu de votre dossier "mon_patcher" (créé en 7ème partie)
[*] ./AI/ (comportement des homunculus)

Vous avez alors ici de multiples choix dont par exemples :
[*] utiliser Inno Setup (Telecharger)
[*] utiliser Install Creator Pro (Telecharger)

Nous aborderons ici InnoSetup.


Lancez Inno Setup, puis dans la fenêtre de bienvenue, selectionnez "Create a new script file using the Script Wizard".
Cliquez sur Next.
Remplissez les champs avec le nom et l'adresse du site de votre serveur, à noter que seul les champs avec leurs noms en gras sont obligatoires.


(IMG:http://www.nyuro.com/ea/guide/img/is001.png)

Cliquez sur Next, selectionnez "Program Files directory" dans le menu et mettez le nom de votre serveur.

(IMG:url=http://www.nyuro.com/ea/guide/img/is002.png)

Cliquez sur Next.
Selectionnez alors votre updater (le fameux Packer.exe de Triad) dans le champ du haut.
Ajoutez également les autres fichiers de votre serveurs (le contenu complet de votre dossier dans lequel vous avez rassemblé les éléments)
Remarque : quand vous ajoutez un dossier Inno Setup vous demande si les sous dossiers doivent aussi être inclus dans l'installation. Répondez Oui bien sure.

(IMG:http://www.nyuro.com/ea/guide/img/is003.png)

Cliquez sur Next, et cochez les options qui vous intéréssent.

Citation :
QUOTE

"Allow user to change Start Menu folder name" => autoriser l'utilisateur a changer le nom du dossier dans le menu démarrer
"Allow user to disable Start Menu folder creation" => autoriser l'utilisateur a désactivé la création du dossier dans le menu démarrer
"Create an Internet shortcut in the Start Menu folder" => créé un raccourci Internet (vers le site de votre serveur, si spécifié) dans le dossier du menu démarrer
"Create an Uninstall icon in the Start Menu folder" => créé un icône de désinstallation dans le dossier du menu démarrer
"Allow user to create a desktop icon" => affiche une case à coché "Créé un racourci sur le bureau" lors de l'installation
"Allow user to create a Quick Launch icon" => affiche une case à coché "Créé un racourci dans la barre de lancement rapide" lors de l'installation.

Cliquez sur Next.

La page suivante vous permet d'afficher une licence ("License file") que l'utilisateur doit accepter avant de pouvoir installer votre client, des informations à afficher avant ("Information file shown before installation") et/ou aprés ("Information file shown after installation") l'installation.

Cliquez sur Next.

Cette page vous donne le choix de la langue à utiliser dans l'installation.
Cochez les langues qui vous intéréssent (French pour Français. Si vous voulez que votre installation soit disponible uniquement en français, vous devez décocher toutes les autres langues).

Cliquez sur Next.

Ici vous pouvez indiquer dans quel dossier votre installation sera créée ("Custom compiler output directory"), le nom du fichier ("Compiler output base file name") par exemple ragnarok.exe.
Vous pouvez aussi choisir un icône personnalisée ("Custom Setup icon file") et définir un mot de passe pour pouvoir installer votre client ("Setup password").

Cliquez sur Next, puis sur Finish.

Inno Setup vous demande si vous voulez compiler le script maintenant.

Cliquez sur Non.

Remplacez la ligne :

Citation :
QUOTE

DefaultDirName={pf}\Ragnarok

par
Citation :

QUOTE

DefaultDirName={pf}\Gravity\RO

(Pour que votre client soit installé dans le dossier de RO, si l'utilisateur a changé le dossier d'installation de RO sur son PC, il devra le modifier ici aussi. Si vous faites un client "tout en un" vous n'êtes pas obligé de mettre dans Gravity\RO)

Dans la partie [Run], vous devez ajouter ; WorkingDir: "{app}"; à la fin de toutes les lignes.
Par exemple si vous avez :
Citation :
QUOTE

Filename: "{app}\Ragnarok.exe"; Description: "{cm:LaunchProgram,Ragnarok}"; Flags: nowait postinstall skipifsilent

Vous devez mettre :
Citation :
QUOTE

Filename: "{app}\Ragnarok.exe"; Description: "{cm:LaunchProgram,Ragnarok}"; Flags: nowait postinstall skipifsilent; WorkingDir: "{app}";

Pareil pour la partie [Icons]


Votre installation est terminée
Appuyez sur F9 pour compiler et lancer votre installation. CTRL+F9 pour le compiler sans lancer.
(IMG:http://www.nyuro.com/ea/guide//img/is004.png)

Si vous voulez changer les images affichées dans l'installation, il vous suffit de rajouter ces deux lignes dans la partie [Setup] :
Citation :
QUOTE

WizardImageFile=votre_image.bmp
WizardSmallImageFile=votre_icone.bmp

WizardImageFile indique quel image afficher à gauche de l'installation. 164*314 pixels, en bitmap (.bmp).
WizardSmallImageFile indique la petite image affichée en haut à droite. 55*55 pixels, .bmp

Voilà, notre client complet est fin prêt.
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:37

9ème étape : Création du script bash de lancement et auto vérification d'état.


A ce niveau, nous avons donc un serveur configuré, compilé, et donc prêt à être lancé; ainsi qu'un client complet.

Pour nous simplifier la tâche, rendre plus simple le lancement du serveur, ainsi que le contrôle de son état et le relancement au besoin, pourquoi ne pas faire un petit script simple ?

Pour cela, rien de plus simple encore une fois
Copiez/collez ce qui suit dans notepad.
Ensuite, enregistrez en prennant soin de sélectionner Tous les fichiers au lieu de Fichier texte (.txt), et en codage UTF-8 en stipulant comme nom de fichier start.sh

Code:
CODE
#!/bin/bash
#eAthena start script

L_SRV=login-server_sql
C_SRV=char-server_sql
M_SRV=map-server_sql

printf "\n"
printf "Lancement automatisé de eAthena \n"

printf "$(date)\tLancement du serveur d'identification...\n"
screen -dmS ealogin nice ./${L_SRV}

printf "$(date)\tLancement du serveur des personnages...\n"
screen -dmS eachar nice ./${C_SRV}

printf "$(date)\tLancement du serveur des cartes...\n"
screen -dmS eamap nice ./${M_SRV}

printf "$(date)\tTout est lancé.\n"

while true; do
sleep 30
printf "$(date)\tSuivi de fonctionnement...\n"
if [ "$(ps x | grep -e login-server | wc -l)" = "0" ]; then
printf "$(date)\tErreur: Le login-server semble avoir crashé!\n"
printf "$(date)\tNouvelle vérification...\n"
sleep 10
if [ "$(ps x | grep -e login-server | wc -l)" = "0" ]; then
printf "$(date)\tToujours crashé. Relance du login-server...\n"
screen -dmS ealogin nice ./${L_SRV}
printf "$(date)\tTerminé.\n"
else
printf "$(date)\tIl semble tourner désormais.\n"
fi
else
printf "$(date)\tLe login-server fonctionne...\n"
fi
if [ "$(ps x | grep -e char-server | wc -l)" = "0" ]; then
printf "$(date)\tErreur: le char-server semble avoir crashé!\n"
printf "$(date)\tNouvelle vérification...\n"
sleep 10
if [ "$(ps x | grep -e char-server | wc -l)" = "0" ]; then
printf "$(date)\tToujours crashé. Relance du char-server...\n"
screen -dmS eachar nice ./${C_SRV}
printf "$(date)\tTerminé.\n"
else
printf "$(date)\tIl semble tourner désormais.\n"
fi
else
printf "$(date)\tle char-server fonctionne...\n"
fi
if [ "$(ps x | grep -e map-server | wc -l)" = "0" ]; then
printf "$(date)\tErreur: le map-server semble avoir crashé!\n"
printf "$(date)\tNouvelle vérification...\n"
sleep 10
if [ "$(ps x | grep -e map-server | wc -l)" = "0" ]; then
printf "$(date)\tToujours crashé. Relance du map-server...\n"
screen -dmS eamap nice ./${M_SRV}
printf "$(date)\tTerminé.\n"
else
printf "$(date)\tIl semble tourner désormais.\n"
fi
else
printf "$(date)\tLe map-server fonctionne...\n"
fi
printf "$(date)\tSuivi OK.\n"
done

Uploadez ce fichier sur votre serveur dans le dossier /home/eathena/
Ensuite, connectez vous en console ssh (PuttY) et tapez la commande suivante :
Citation :
QUOTE
[...]$ chmod +x /home/eathena/start.sh

Désormais, il vous sera alors facile de lancer votre serveur rapidement.
Pour cela, il vous faut quand même un dernier utilitaire sur votre serveur : screen.
Donc en console ssh, tapez ceci :
Citation :
QUOTE
Debian 3.1 / Debian 4.0
[...]$ apt-get install screen

Fedora Core
[...]$ yum install screen

SuSe Linux
[...]$ rpm -qi screen (en théorie)

/!\ Pour les utilisateur de SuSe Linux et Gentoo, je vous invite à vérifier l'équivalence dans vos dépôts.


Il ne vous reste qu'à procéder ainsi pour lancer le serveur :
(en console ssh toujours)
Citation :
QUOTE
[...]$ cd /home/eathena/
[...]$ screen -dmS nom_serveur ./start.sh



Histoire de vous faire gagner un peu de temps aux plus curieux, voici les principales commandes de screen :
Citation :
QUOTE
screen : pour ouvrir une session "screen"
CTRL-a d : pour détacher une session screen et revenir à son shell de connection
screen -r : pour revenir sur une session "screen"
screen -ls : pour afficher la liste des session "screen"

Pour les autres commandes, il suffit de lire le mannuel (IMG:style_emoticons/default/biggrin.gif)
Citation :
QUOTE
[...]$ [...]$ [color=#D08030]man screen

En théorie cette commande est commune à toute distribution Linux


Pour arrêter un "screen", revennez sur la session voulue, puis faites un simple CTRL-C pour arrêter l'application (le start.sh), puis CTRL-Z
Si votre "screen" est définitivement planté, faites un pkill screen
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:43

10ème étape : Inscription online par formulaire sur site en PHP.

Voici un script php qui une fois intégré sur votre site php vous permettra d'offrir à vos utilisateurs la possibilité de s'inscrire sur votre serveur via un simple formulaire et donc sans passer par le client.

Ce script intègre certains filtres permettant de :

# refuser l'inscription si le mail est déjà référencé dans la base de données du serveur ragnarok (double compte ?)
# refuser l'inscription si le login existe déjà dans la base de données du serveur ragnarok (conflit entre 2 compte)
# refuser l'inscription si un des champs n'est pas rempli
# refuser l'inscription si les conditions ne sont pas lues et acceptées
# refuser l'inscription si le login contient des caractères non-alphanumériques
# refuser l'inscription si l'utilisateur est référencé en liste noire
# générer automatiquement un mot de passe pour plus de sécurité et donc éviter les "hack" de compte
# générer une alerte administrateur après création d'un compte
# générer une clé de validation pour confimer l'existence de l'utilisateur (éviter les bots)


Note : Les bases SQL sont fournies à la suite du script

Code:
CODE
<?php

//information de connection à la base de donnée
$login = "votre_login_sql";
$dbpass = "votre_mdp_sql";
$host = "localhost";

// --------------------------------------------
//  FORMULAIRE D'INSCRIPTION
//
//  -------------------------------------------
//
//  variable initialisée à zero pour tester les conditions
$nb_faux = 0;
$dbp = "temp_login";
$db = "ragnarok"; //votre base ragnarok
$error = "";
settype($template, "string");
$template = "0123456789abcdefghijkmnopqrstuvwxyz";
function GetRandomString($length) {

      global $template;

      settype($length, "integer");
      settype($rndstring, "string");
      settype($a, "integer");
      settype($b, "integer");

      for ($a = 0; $a <= $length; $a++) {
              $b = rand(0, strlen($template) - 1);
              $rndstring .= $template[$b];
      }

      return $rndstring;

  }
//
//
if (isset($_POST['nick']) && isset($_POST['mail']) && isset($_POST['sex']))
{
$nick = $_POST['nick'];
$mail = $_POST['mail'];
$sex = $_POST['sex'];
//
@mysql_connect($host, $login, $dbpass) or die("<b><font color='red'>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
// incrémenter la variable $nb_faux si les champs du formulaire sont vides
  if (empty($_POST['nick']) || empty($_POST['mail']) || empty($_POST['sex']))
  {
  $error = $error."<font color='red'><b><br/>Champs non remplis</b><br/></font>";
  $nb_faux++;
  }
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le pseudo
  $atom  = '`^(\W{3,15})$`';  // caractères autorisés (entre crochets)
  // on autorise a à z, A à Z, 0 à 9 et +-*_~°†éèàùç et une taille min/max 4/16 caractères

  if (preg_match($atom, $nick))
  {
  $error = $error."<font color='red'><b><br/>Caractères non autorisés pour le pseudo</b><br/></font>";
      $nb_faux++;
  }
//
// incrementer la variable $nb_faux si le pseudo existe dans la base de donnée
    if ($nb_faux >= 0)
    {
      @mysql_select_db($db) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "SELECT * FROM `login` WHERE userid='$nick'";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t1 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $ligne = mysql_num_rows($resultat);
//
//
      if ($ligne > 0)
      {
      $error = $error."<font color='red'><b><br/>Ce pseudo existe déjà</b><br/></font>";
      $nb_faux++;
      }
      }
//
// incrementer la variable $nb_faux si le pseudo existe dans la base de donnée temporaire
    if ($nb_faux >= 0)
    {
      @mysql_select_db($dbp) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "SELECT * FROM slogin WHERE nick='$nick'";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t2 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $ligne = mysql_num_rows($resultat);
//
//
      if ($ligne > 0)
      {
      $error = $error."<font color='red'><b><br/>Un compte utilisant ce login a déjà été demandé.</b><br/></font>";
      $nb_faux++;
      }
      }

  // incrementer la variable $nb_faux si le mail existe dans la base de donnée temporaire
    if ($nb_faux >= 0)
    {
      @mysql_select_db($dbp) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "SELECT * FROM slogin WHERE mail='$mail'";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t3 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $ligne = mysql_num_rows($resultat);
//
//
      if ($ligne > 0)
      {
      $error = $error."<font color='red'><b><br/>Un mail d'activation sur ce compte mail a déjà été envoyé.</b><br/></font>";
      $nb_faux++;
      }
      }

    // incrementer la variable $nb_faux si le mail est référencé comme banni
    if ($nb_faux >= 0)
    {
      @mysql_select_db($dbp) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "SELECT * FROM banned WHERE mail='$mail'";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t4 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $ligne = mysql_num_rows($resultat);
//
//
      if ($ligne > 0)
      {
      $error = $error."<font color='red'><br/><b>Désolé mais votre demande a été refusée. Vous êtes sur liste noire.</b><br/></font>";
      $nb_faux++;
      }
      }

//
// incrementer la variable $nb_faux si le mail existe dans la base de donnée
    if ($nb_faux >= 0)
    {
      @mysql_select_db($db) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "SELECT * FROM login WHERE email='$mail'";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t5 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $ligne = mysql_num_rows($resultat);
    if ($ligne > 0)
      {
      $error = $error."<font color='red'><b><br/>Un compte existant est déjà rattaché à ce mail</b><br/></font>";
      $nb_faux++;
      }
      }
//
// incrémenter la variable $nb_faux si la case à cocher "conditions" est null
    if (isset($_POST['conditions']) == null)
    {
      $error = $error."<font color='red'><b><br/>Conditions non acceptées</b><br/></font>";
      $nb_faux++;
    }

    if ($nb_faux > 0)
    {

    echo "
<table width='480' border='0' cellpadding='0' cellspacing='0' align='center'>
<tr><td>
<form name='inscription' action='#' method='post'>
<br/><b><u><center>.: Inscription au serveur :.</center></u></b><br/>
$error<br/>
<br/>
<fieldset>
  <legend><b>Informations utilisateur</b></legend>
  <table align='center'>
  <tr>
    <td>
    <table>
      <tr><td colspan='2'>Prennez le temps de lire \"A savoir\" avant de continuer.</td></tr>
      <tr><td>Pseudo :</td><td><input type='text' name='nick' size='16' value='$nick'></td></tr>
      <tr><td>Mail :</td><td><input type='text' name='mail' size='16' value='$mail'></td></tr>";
      if ($sex == "M")
      {
      echo"
      <tr><td>Sexe :</td><td><input type='radio' name='sex' value='M' checked> Masculin <input type='radio' name='sex' value='F'> Féminin </td></tr>
      ";
      }
      else
      {
      echo"
      <tr><td>Sexe :</td><td><input type='radio' name='sex' value='M'> Masculin <input type='radio' name='sex' value='F' checked> Féminin </td></tr>
      ";
      }
      echo"
    </table>
    </td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  </table>
</fieldset><br/>
<fieldset>
  <legend><b>Règlement</b></legend>
  <table>";
  echo"
    <tr align='center'><td> - Veuillez prendre note du règlement avant tout - </td></tr>
    <tr align='center'><td><input type='checkbox' name='conditions'><a href='http://votre_site/vos_conditions' target='_blank'><font color='#A05050'>Conditions générales du serveur</font></a> lues et acceptées. <br/><br/><font color='#A05050'>Une fois votre inscription faite et donc cette case cochée, vous êtes tenus de respecter ces règles.</font></td></tr>
  </table>
</fieldset><br/>
<fieldset>
  <legend><b>A savoir...</b></legend>
    <p align='left'>
    <li><font color='red'>Le mail de confirmation peut être considéré comme indésirable. Pensez à surveiller le dossier concerné.</font><br />
    <li>Le mot de passe lui est automatiquement généré pour éviter les maladresses et les mots de passe trop simples.<br />
    <li>Toutes les informations du compte seront envoyées par mail accompagnées du lien pour activation du compte.<br />
    Votre mail doit donc être valide.<br />
    <li>Veillez à conserver précieusement les informations fournies donc dans le mail.<br />
    <li>Il se peut que le mail mette un peu de temps à arriver chez certains. <b>Inutile de réitérer votre inscription.</b><br />
    <li>Votre login doit impérativement comporter au minimum 4 caractères.<br />
    </p>
</fieldset><br/>
<center><input type='submit' value='Valider'></center>
</form></td></tr></table><br/>";

    }
    if ($nb_faux == 0)
    {
//
// on affecte à la clef d'activation un chaine aléatoire générée précédement de taille max = 10
      $clef = GetRandomString(9);
//
// on affecte au mot de passe un chaine aléatoire générée précédement de taille max = 7
      $passwd = GetRandomString(6);
//
// requette envoi les données de l utilisateur dans la table comptes_provisoirs
      @mysql_select_db($dbp) or die("<b><font color='red'>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
      $requete = "INSERT INTO `slogin` VALUES ('', '$nick', '$passwd', '$mail', '$sex', '$clef')";
      $resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t6 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>");
//
// Envoyer le mail si la requête à fonctionnée
      if ($resultat == true)
      {
      echo "<br/><center><b>Vous allez reçevoir un mail pour la validation de votre compte</b></center><br/>";
//
      $mail_destinataire = $_POST['mail'];
      $sujet = "votre_serveur, validation de l'inscription";
      $message = "
Cet email a été envoyé à partir de votre_serveur
Merci de ne pas y répondre.
Veuillez conserver ces informations sur votre compte.

Login : $nick
Mot de passe : $passwd

Pour valider votre inscription cliquez sur le lien suivant.
(Ce système a été prévu pour éviter certains abus ou maladresses.)

http://votre_site/votre_page_inscription.php?nick=$nick&clef=$clef

Le Staff de Legacy of votre_serveur";
      $head = "Bonjour $nick ";

      mail($mail_destinataire, $sujet, $message, $head);
      }
    }
@mysql_close($db);
@mysql_close($dbp);
}
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:46

Code:
//
//--------------------------------------------------------------------
// VALIDATION DU COMPTE APRES INSCRIPTION
//
//--------------------------------------------------------------------
//
elseif (isset($_GET['nick']) && isset($_GET['clef']))
{
  $nick = $_GET['nick'];
  $clef = $_GET['clef'];
//
//
// requette chercher les données lorsque le champs pseudo et le champs clef existent
  @mysql_connect($host, $login, $dbpass) or die('<br/>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
  @mysql_select_db($dbp) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
  $requete = "SELECT nick, passwd, mail, sex FROM `slogin` WHERE nick = '$nick' AND clef = '$clef'";
  $resultat = mysql_query($requete) or die('<br/>Exécution de la requête v1 impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
  $resultat2 = mysql_query("SELECT `mail` FROM `slogin` WHERE `nick` = '$nick'") or die('<br/>Exécution de la requête v2 impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');

//
// verification si user refusé ou non
if($donnees = mysql_fetch_array($resultat2))
  {
      $test = $donnees['mail'];
      $requete3 = "SELECT * FROM `banned` WHERE mail = '$test'";
      $resultat3 = mysql_query($requete3) or die('<br/>Exécution de la requête a1 impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
      if(mysql_num_rows($resultat3) > 0)
      {
        echo "<br/><b>Désolé mais votre demande a été refusée. Vous êtes sur liste noire.</b><br/>";
      }
      else
      {
// affecter les infos utilisateurs si la clef et le pseudo existent
  if($donnees = mysql_fetch_array($resultat))
  {
      $nick = $donnees['nick'];
      $passwd = $donnees['passwd'];
      $mail = $donnees['mail'];
      $sex = $donnees['sex'];
// requette transferer les données
      @mysql_select_db($db) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
      $requete = "INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`, `error_message`, `connect_until`, `last_ip`, `memo`, `ban_until`, `state`) VALUES ('','$nick','$passwd','','$sex','','$mail',0,'','','','','','')";
      $resultat = mysql_query($requete) or die('<br/>3 Exécution de la requête a2 impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
// requette suppression des données provisoires
      @mysql_select_db($dbp) or die('<br/>Sélection de la base de donnée echouée.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
      $requete = "DELETE FROM `slogin` WHERE clef = '$clef' AND nick = '$nick'";
      $resultat = mysql_query($requete) or die('<br/>Exécution de la requête s1 impossible.<br/>Contactez le webmaster si le problème n\'est pas résolu.<br/>');
      echo "<br/><center><b>Votre compte $nick a bien été validé</b></center><br/>";
      $mail2 = "votre_mail";
      $sujet2 = "$nick vient de rejoindre votre_serveur";
      $message2 = "
Cet email a été envoyé à partir de votre_serveur
Merci de ne pas y répondre.

$nick dont le mail est $mail vient de créer son compte $sex sur votre_serveur";
      $head2 = "Bonjour ";
      mail($mail2, $sujet2, $message2, $head2);
  }
  else
  {
    echo "<br/><b>Votre compte est déjà validé ou le lien de validation est incorrect</b><br/>";
  }

  }
  @mysql_close($db);
  @mysql_close($dbp);
}
}
else {
echo "
<table width='480' border='0' cellpadding='0' cellspacing='0' align='center'>
<tr><td>
<form name='inscription' action='#' method='post'>
<br/><b><u><center>.: Inscription au serveur :.</center></u></b><br/><br/>
<fieldset>
  <legend><b>Informations utilisateur</b></legend>
  <table align='center'>
  <tr>
    <td>
    <table>
      <tr><td colspan='2'>Prennez le temps de lire \"A savoir\" avant de continuer.</td></tr>
      <tr><td>Pseudo :</td><td><input type='text' name='nick' size='16'></td></tr>
      <tr><td>Mail :</td><td><input type='text' name='mail' size='16'></td></tr>
      <tr><td>Sexe :</td><td><input type='radio' name='sex' value='M' checked> Masculin <input type='radio' name='sex' value='F'> Féminin </td></tr>
    </table>
    </td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  </table>
</fieldset><br/>
<fieldset>
    <legend><b>Règlement</b></legend>
  <table>";
  echo"
    <tr align='center'><td> - Veuillez prendre note du règlement avant tout - </td></tr>
    <tr align='center'><td><input type='checkbox' name='conditions'><a href='http://votre_site/vos_conditions' target='_blank'><font color='#A05050'>Conditions générales des serveurs</font></a> lues et acceptées. <br/><br/><font color='#A05050'>Une fois votre inscription faite et donc cette case cochée, vous êtes tenus de respecter ces règles.</font></td></tr>
  </table>
</fieldset><br/>
<fieldset>
    <legend><b>A savoir...</b></legend>
    <p align='left'>
    <li><font color='red'>Le mail de confirmation peut être considéré comme indésirable. Pensez à surveiller le dossier concerné.</font><br />
    <li>Le mot de passe lui est automatiquement généré pour éviter les maladresses et les mots de passe trop simples.<br />
    <li>Toutes les informations du compte seront envoyées par mail accompagnées du lien pour activation du compte.<br />
    Votre mail doit donc être valide.<br />
    <li>Veillez à conserver précieusement les informations fournies donc dans le mail.<br />
    <li>Il se peut que le mail mette un peu de temps à arriver chez certains. <b>Inutile de réitérer votre inscription.</b><br />
    <li>Votre login doit impérativement comporter au minimum 4 caractères.<br />
    </p>
</fieldset><br/>
<center><input type='submit' value='Valider'></center>
</form></td></tr></table><br/>";}
?>
Revenir en haut Aller en bas
http://enzore.mescops.com
Admin
Admin
Admin


Messages : 132
Date d'inscription : 03/09/2008
Age : 32

crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitimeDim 23 Nov - 22:46

/!\ Bien sûre il vous faut remplacer certaines chaine par la bonne valeur.
- nom de votre serveur
- votre mail
- les différentes url de votre site
- les informations de connection sql


Ce formulaire une fois rempli est envoyé au serveur.
Si tout convient, les données sont stockées dans une table temporaire.
L'utilisateur lui reçoi un mail de confirmation contenant un lien suivi d'une clé d'activation auto-générée, et ses identifiants de connection (son login, le serveur choisi, et son mot de passe généré).
Une fois le compte activé, l'administrateur en est averti.
L'administrateur peut donc aussi bloquer l'inscription d'une personne comme dit précédement en interdisant l'utilisation de son mail via la db sql

Côté SQL justement, voici la base temp_login :

Code:
CODE
la table login :


CREATE TABLE `slogin` (
`id` bigint(10) NOT NULL auto_increment,
`nick` varchar(255) NOT NULL default '',
`passwd` varchar(255) NOT NULL default '',
`mail` varchar(255) NOT NULL default '',
`sex` varchar(50) NOT NULL default '',
`clef` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM PACK_KEYS=0;

la table banned * :
CREATE TABLE `banned` (
`mid` bigint(10) NOT NULL auto_increment,
`mail` varchar(255) NOT NULL default '',

PRIMARY KEY (`mid`)
) TYPE=MyISAM;

* la table banned permet de bloquer l'utilisation d'un mail spécifique, donc d'empecher l'inscription avec ce mail.

/!\ Les mail envoyés par le serveur sont en général considérés chez msn, hotmail, yahoo & co. comme messages indésirables, mais ils arrivent bien.
Il suffit pour les utilisateurs de surveiller leur dossier "courrier indésirable"



En ce qui concerne l'expéditeur du message serveur, par défaut ce dernier est "www-data@domain par défaut" ou www-data@votre_domaine.com.

Pour changer l'utilisateur www-data, c'est dans la configuration d'apache (user www-data)

Attention quand même car il faut fournir un utilisateur système existant

Pour le domaine, il suffit de configurer votre serveur mail (par défaut exim4) ou d'installer convenablement un autre serveur comme postfix (pour cela, consultez notre bon géni "gout-gueule")
Revenir en haut Aller en bas
http://enzore.mescops.com
Contenu sponsorisé





crée un serveur ragnarok sous linux Empty
MessageSujet: Re: crée un serveur ragnarok sous linux   crée un serveur ragnarok sous linux Icon_minitime

Revenir en haut Aller en bas
 
crée un serveur ragnarok sous linux
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» creation d'un serveur 3.2.2a avec wow-pi

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Enzore vous salue  :: Jeux et console :: PC-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser