Phasor

Tutoriels pour installer et gérer un serveur de Halo 1 et Halo 2.
Avatar de l’utilisateur
@lex666
Administrateur
Messages : 270
Inscription : 05 Novembre 2006, 13:39
Robots : Non
Quel est le nom du site ? : GradARom
Contact :

Phasor

Message par @lex666 » 03 Juin 2011, 14:29


I. Généralités
II. Téléchargements
III. Installation
IV. Configuration


I. Généralités

Phasor est un logiciel complémentaire aux serveurs de Halo 1 Combat Evolved PC.

Ce logiciel permet de mettre des autos-messages, d'obtenir les journaux du tchats des joueurs, de kicker automatiquement les joueurs absents (AFK/SOK), de mettre en place un système de vote pour passer certaines cartes et modes de jeu, et plein d'autres choses encore.

Phasor est un logiciel très complet pour les serveurs de Halo. Cependant, ce tutoriel explique qu'une infime partie de l'utilisation possible de Phasor (l'installation et la configuration des "autos-messages").
Ce tutoriel pourra être complété par l’expérience des membres du forum qui souhaitent partager leurs configurations. De plus, une ressource documentaire est présente dans l'archive, ainsi qu'un forum à l'adresse suivante : http://phasor.proboards.com/index.cgi

Je tiens également à préciser que je ne fais pas le support de Phasor, mais je pourrais éventuellement essayer de vous apporter de l'aide :wink: .


II. Téléchargements

- Phasor version 01.00.03.104 :
http://haloapps.wordpress.com/2011/03/0 ... 00-03-104/

Une nouvelle version est peut-être disponible sur le site officiel :
HaloApps.

Important : Le serveur doit être en version v1.09 pour que Phasor puisse fonctionner.
- Patch Serveur dédié v1.09 :
Télécharger

III. Installation

- Fermer le serveur de Halo si celui-ci est en cours d'exécution,

- Décompresser l'archive après avoir l'avoir téléchargée,
Image
- Dans le répertoire "Phasor", copier les fichiers "aliasViewer.exe", "Phasor.dll", "RConAccessEditor.exe" et "strings.dll",
Image
- Coller ces fichiers dans le répertoire d'installation du serveur de Halo (répertoire par défaut dans : "C:\Program Files\Microsoft Games\Halo Server"),
Attention : un fichier "strings.dll" existe déjà dans le répertoire d'installation du serveur. Il est conseillé de renommer ce fichier pour en faire une sauvegarde avant de l'écraser.
Dans le cas où vous auriez malencontreusement remplacé le fichier "strings.dll" et que vous souhaitez remettre le fichier d'origine, vous pouvez le télécharger sur notre site : Télécharger
.
Image
Image
- Dans le répertoire "Phasor", copier le dossier "scripts", puis coller le dans le répertoire "My Game\Halo" (répertoire par défaut présent dans "Mes documents")
Image
Image
- Pour terminer l’installation, dans le fichier de configuration "init.txt", il suffit de placer à chaque fin de ligne "sv_mapcycle_add" le texte "AutomatedMessages", ce qui donne par exemple :

Code : Tout sélectionner

sv_mapcycle_add bloodgulch CTF AutomatedMessages
Ceci a pour effet d'appeler le script AutoMessage pour cette carte et mode de jeu.

D'autres scripts peuvent également être appelés. Pour cela, il suffit de remplacer "AutoMessage" par "Infection", ce qui donnerait :

Code : Tout sélectionner

sv_mapcycle_add bloodgulch CTF Infection
De plus, vous pouvez cumuler plusieurs paramètres, par exemple "AutoMessage" et "Infection", ce qui donnerait :

Code : Tout sélectionner

sv_mapcycle_add bloodgulch CTF AutomatedMessages Infection
Évidemment, vous pouvez mixer le nombre de paramètres par ligne de cette façon :

Code : Tout sélectionner

sv_mapcycle_add bloodgulch CTF AutomatedMessages Infection
sv_mapcycle_add ratrace Slayer Infection
sv_mapcycle_add deathisland CTF Slayer AutomatedMessages
L’installation est donc terminée, vous pouvez dès à présent exécuter votre serveur.
Cependant, la configuration du script AutomatedMessage est par défaut et je vous invite parcourir la catégorie Configuration ci-après :wink:

Serveur en exécution sans Phasor :
Image
Serveur avec Phasor (ceci montre que Phasor est opérationnel sur votre serveur) :
Image
Information sur les logs :

Lors de la première exécution du serveur avec Phasor, le logiciel créer automatiquement un répertoire "logs" dans "My Games\Halo". Ce répertoire contient 3 fichiers :
- Phasors_Events.log : journal concernant les événements du logiciel Phasor (exécution, (re)chargement des scripts, plantage ...),
- Phasor_GameLog.log : journal comprenant tous les événements des parties (lorsqu'un joueurs arrive et quitte le serveur, les tchats (publique et équipe), tel joueur à tué tel joueur et les autos messages diffusés), ce fichier contient également les hashkey des joueurs (hashkey : longue chaine de caractère alphanumérique correspondant à un identifiant unique issue de la clé CD du joueur),
- Phasor_RConLog.log : journal comprenant la liste des commandes RCon utilisées, avec le nom du joueur, et éventuellement son hashkey si le joueur ne fait pas partit de la liste des admins.


IV. Configuration :

IV.a Préambule
IV.b Automated Messages
IV.c Message quand un nouveau joueur arrive
IV.d Commandes


IV.a Préambule
Les scripts de Phasor se trouvent dans le répertoire "My Games\Halo\scripts". Ces scripts ont une extension .lua et sont facilement éditable avec le Bloc-Notes (notepad).
Ces fichiers étant des scripts, ils comportent une syntaxe particulière, je vous invite à télécharger Notepad ++ pour pouvoir éditer aisément ces fichiers :wink: .

Pour ouvrir un fichier, vous pouvez procéder de la même manière avec le Bloc-Notes ou avec le logiciel Notepad++.

1ère méthode :
- Ouvrer le logiciel (Bloc-Notes ou Notepad++),
- Se rendre dans le répertoire ou se trouvent les scripts,
- Effectuer un glisser-déposer du script à éditer dans le logiciel.

2ème méthode (éditer le script avec un logiciel par défaut) :
- Se rendre dans le répertoire ou se trouvent les scripts,
- Effectuer un clic droit sur le script,
- Cliquer sur "Ouvrir",
- Cliquer sur "Sélectionner un programme dans la liste des programmes installés, cliquer sur "OK"
- Vous pouvez avoir "Bloc-Notes" dans la liste des "Programmes recommandés", si vous souhaitez utiliser ce logiciel par défaut, sélectionner "Bloc-Note" et cliquer sur "OK"
- Sinon, cliquer sur "Autres programmes", sélectionner "Notepad++ : a free (GNU) source code editor" et cliquer sur "OK".

3ème méthode (Notepad++) :
- Se rendre dans le répertoire ou se trouvent les scripts,
- Effectuer un clic droit sur le script,
- Cliquer sur "Edit With Notepad++".


IV.b Automated Messages

Configurer et éditer le message :
- Ouvrir le fichier "AutomatedMessages.lua".
- "message_table" correspond à un tableau contenant le message à afficher à intervalle régulier.
- Éditer à votre guise le texte placé entre incollade.
Attention : veillez à respecter l'utilisation des guillemets pour ouvrir et fermer une ligne de texte.

N.B. Pour passer à la ligne suivante, il suffit de placer une virgule à la fin de la chaine de texte. Il n'est pas nécessaire de placer une virgule à la fin du paragraphe.
N.B. Certains caractères (notamment des accents) ne sont peut être pas supportés. Effectuer des tests.

Exemple :

Code : Tout sélectionner

message_table = {
				"Coucou a tous",
				"Bienvenue sur mon serveur :)"
				}
Cet exemple affichera :
Coucou a tous
Bienvenue sur mon serveur :)
Il est à noter qu'il n'y a pas de virgule à la fin de la ligne "Bienvenue sur mon serveur :)".

Changer l'intervalle de temps des messages :
- La fonction "OnScriptLoad" permet de configurer l'intervalle de temps.
- Pour configurer l'intervalle de temps, aller dans la fonction "registertimer" :

Code : Tout sélectionner

function OnScriptLoad(process)

	-- create the message timer with id 1 and a delay of 5 minutes. The third parameter '0' is userdata, which we don't need.
	-- When the timer is finished the function OnMessageTimer will be called.
	-- You should note that the timers are removed when the script unloads (at the start of a new game). This cannot be avoided.
	-- You should note that OnMessageTimer is called when we register the timer too
	registertimer(1, 5 * 60000, 0, "OnMessageTimer")

end
- L'intervalle de cet exemple est de 5 minutes. C'est-à-dire que le message s'affichera toutes les 5 minutes sur le serveur.
- Pour changer l'intervalle, éditer simplement le 5 par une autre valeur en minute. Exemple, si vous souhaitez que votre message apparaisse toutes les 10 minutes, remplacer le 5 par 10 :

Code : Tout sélectionner

registertimer(1, 10 * 60000, 0, "OnMessageTimer")
IV.c Message quand un nouveau joueur arrive

Configurer et éditer les messages pour les nouveaux joueurs :
- Ouvrir le fichier "AutomatedMessages.lua".
- La fonction "OnPlayerJoin" est chargée dès qu'un nouveau joueur arrive sur le serveur.
- Éditer le texte présent entre guillemets dans la fonction "privatesay".

Exemple :

Code : Tout sélectionner

function OnPlayerJoin(player, team)
	-- send a message to the player as they join.
		privatesay(player, "Bonjour a toi joueur de Halo, défenseur de l'univers et de la galaxie")
end
Le message "Bonjour a toi joueur de Halo, défenseur de l'univers et de la galaxie" apparaitra en privé pour le nouveau joueur arrivant sur le serveur.
Attention : veillez à respecter l'utilisation des guillemets pour ouvrir et fermer une ligne de texte.

N.B. Certains caractères (notamment des accents) ne sont peut être pas supportés. Effectuer des tests.

Pour afficher un texte sur plusieurs lignes, il suffit d'ajouter des fonctions "privatesay" à la suite les unes des autres, comme ceci :

Code : Tout sélectionner

function OnPlayerJoin(player, team)
	-- send a message to the player as they join.
		privatesay(player, "Bonjour a toi joueur de Halo, défenseur de l'univers et de la galaxie")
		privatesay(player, "1")
		privatesay(player, "2")
		privatesay(player, "3")
		privatesay(player, "Soleil !")
end
Vous l'aurez compris, je m'éclate à faire ce petit tutoriel :D

Plus sérieusement, ceci affichera :
Bonjour a toi joueur de Halo, défenseur de l'univers et de la galaxie
1
2
3
Soleil !
Configurer et éditer un message pour un ou plusieurs joueurs en particulier :
- Vous pouvez afficher des messages personnalisés à certains joueurs de votre entourage grâce à leurs hashkey.
- Exemple du code à appliquer :

Code : Tout sélectionner

function OnPlayerJoin(player, team)

	-- send a message to the player as they join.
	if gethash(player) == "hashkey_admin" then
		privatesay(player, "Bonjour a toi SuperAdmin")
	elseif gethash(player) == "haskey_amie_tres_chere" then
		privatesay(player, "Rameuneuse de drapeau en force")
	elseif gethash(player) == "haskkey_admin" then
		privatesay(player, "Salutation Admin, tu as le droit de jouer :)")
	elseif gethash(player) == "hashkey_amis" then
		privatesay(player, "Ne passez pas par la case depart, ne toucher pas 20 000 euros")
	else
		privatesay(player, "Bonjour a toi joueur de Halo, défenseur de l'univers et de la galaxie")
		privatesay(player, "1")
		privatesay(player, "2")
		privatesay(player, "3")
		privatesay(player, "Soleil !")
	end
	

end
Le code ci-dessus n'utilise qu'une simple condition qui vérifie si le hashkey, obtenue avec la fonction "gethash(player)" du joueur correspond à l'une des conditions.
"hashkey" indiqué entre guillemets dans la condition est le hashkey du joueur à qui vous destinez ce message (vous, un autre administrateur, des amis). Le hashkey est récupérable dans le journal "Phasor_GameLog.log" (hashkey : longue chaine de caractère alphanumérique correspondant à un identifiant unique issue de la clé CD du joueur).
Le "else" (sinon) contient évidemment le message générique pour tous les autres joueurs, et seuls ceux faisant partit d'une condition particulière auront droit à un message particulier :D

Écriture d'une condition en français :

Code : Tout sélectionner

	Si le hashkey du joueur est égal à cette valeur alors
		action à realiser
	Sinon Si le hashkey du joueur est égal à cette valeur alors
		action à realiser
	Sinon
		action à realiser
	Fin de la condition
"action à réaliser" correspond en pratique à la commande" privatesay", mais celle-ci peut être de tout autre nature en théorie comme en pratique :twisted: .

Syntaxe équivalente pour le script "AutomatedMessages.lua" :

Code : Tout sélectionner

	if gethash(player) == "hashkey" then
		action
	elseif gethash(player) == "hashkey" then
		action
	else
		action
	end
IV.d Commandes

- sv_reloadscripts : recharge les scripts chargés en mémoire. La phrase "The script(s) have been reloaded" indique que les scripts ont correctement rechargés.
Attention : lors de mauvaises modifications d'un script, Phasor peut ne plus fonctionner. Revenez dans une version précédente du fichier ou résolvez le problème. Il est parfois nécessaire de relancer le serveur si Phasor ne semble plus réagir, notamment si vous n'obtenez plus la phrase "The script(s) have been reloaded".
- sv_say "message" : affiche un message à tous les joueurs sur le serveur (message : remplacer message par votre texte :wink: ).

Verrouillé