FR/A propos des Map

From Multi Theft Auto: Wiki

Le "Map manager" est une ressource inclue dans la suite serveur de MTA DM. Elle offre des commandes, fonctions et événements pour les modes de jeu afin de dynamiser vos maps. Par exemple, quand un serveur doit charger plusieurs routes pour plusieurs maps, au lieu d'avoir le tout dans un seul script principal, ces routes peuvent êtres stockée dans plusieurs ressources et chargée simplement grâce à la fonction "changeGamemodeMap" quand une map démarre.

Plus spécifiquement, le "Map manager" liste les modes de jeux et maps chargés sur le serveur. Il inclut un listing sur l'interface web, il rafraîchit cette liste fréquemment et met en gras les ressources et/ou maps actuellement entrain d'être utilisées.

Un Simple Tutoriel

Dans cette section nous allons poursuivre le travail commencé dans Introduction to Scripting. Nous allons ajouter une ressource qui enregistre l'endroit de spawn des joueurs sur la map, le chargement de ce script se fera depuis le script principal.

Premièrement, créez un dossier dans /Your MTA Server/mods/deathmatch/resources/, nommez-le "mymap". Ensuite dans ce dossier, créez un fichier texte et nommez-le "meta.xml", ce fichier est présent dans chaque scripts.

Ecrivez les lignes suivantes dans le fichier meta.xml :

<meta>
   <info type="map" gamemodes="myserver"/>
   <map src="mymap.map"/>
</meta>

Prenez garde car ce fichier est "lié" avec le gamemodes="" choisit, qui contient le nom de la ressource principale qu'utilise ce mode. le paramètre map, indique le nom de la map qui sera afficher sur le serveur.

Maintenant créez un nouveau fichier texte dans /mymap/ et nommez le "mymap.map", écrivez y les lignes suivantes:

<map>
   <spawnpoint id="spawnpoint1" posX="1959.5487060547" posY="-1714.4613037109" posZ="18" rot="63.350006103516" model="0"/>
</map>

Notez que "spawnpoint" est le type de l'élément utilisé dans la fonction getElementsByType, "id" est utilisée dans la fonction getElementByID

Pour charger la map, le script principal doit pouvoir accéder aux maps par lui même. Quelques modifications sont à apportées dans script.lua situé dans "myserver". Entrez les lignes suivantes :

function loadMap(startedMap)
	mapRoot = getResourceRootElement(startedMap)
end

addEventHandler("onGamemodeMapStart", getRootElement(), loadMap)

Par défaut, l'evênement "onGamemodeMapStart" nous donne le "handle"(?) de la map ("startedMap"), lequel nous avons utilisé pour le "handle"(?) de la ressource contenant la map ("mapRoot").

Avec la ressource "handle"(?), nous pouvons extraire les informations relatives au spawnpoint. Jetez un œil à la fonction joinHandler() dans script.lua, à la place de x, y and z, nous pouvons utiliser les informations de la map comme suit :

function joinHandler()
	local spawn = getElementsByType("spawnpoint", mapRoot)
	local x,y,z,r
	for key, value in pairs(spawn) do
		x = getElementData(value, "posX")
		y = getElementData(value, "posY")
		z = getElementData(value, "posZ")
		r = getElementData(value, "rot")
	end
	spawnPlayer(source, x, y, z)
	fadeCamera(source, true)
end

Lancez maintenant votre gamemode avec la commande suivante via la console:

gamemode myserver mymap

Utilisation

Pour utiliser le map manager, vos ressources doivent d'abord être reconnues en tant que gamemodes ou maps.

Vous devez remplir quelques informations pour votre fichier de configuration du gamemode resource :

<info description="Votre Gamemode" type="gamemode" />

Map resources Les maps ont aussi besoin d'information dans le meta.xml, type="map" et un ou plusieurs gamemodes. Une map peut en effet être compatible avec plusieurs mode de jeu pour se faire il faudra séparer les modes par une virgule sans espaces.

<info description="A gamemode map" type="map" gamemodes="ctv,koth" />

Il ne peut y avoir qu’un mode de jeu 'Gamemode' Actif ou une map chargée à la fois.

Paramètres Supplémentaires

Ces paramètres sont aussi à ajouter dans meta.xml.

name: Entrez ici un message sympa qui sera afficher lors du démarrage de la ressource. C'est en quelques sorte un alias au cas ou le nom de votre ressource ne vous correspond pas.

Commandes

changemap newmap [gamemode] (changer le 'Gamemode' d'une map)

changemode newgamemode [map] (lancer un mode de jeu 'Gamemode' et démarrez une map)

gamemode newgamemode [map] (idem que la précédente)

stopmode (Arrête le mode de jeu et la map en cours)

stopmap (Arrête la map en cours)

maps [gamemode] (liste toutes les maps sur le serveurs, ajoutez en option le mode pour lequel vous voulez connaître les maps)

gamemodes (Liste tout les mode de jeu)

Paramètres

*mapmanager.color [string couleur hex] (change la couleur de sortie des message du mapmanager) (Par défaut : #E1AA5A)

*mapmanager.messages [boolean] (si les changements de map/gm sont activés) (Par défaut : true)

*mapmanager.ASE [boolean] (si le manager doit charger en mode ASE) (Par défaut : true)

Autres fonctions

bool changeGamemode ( resource newGamemode, [ resource mapToLoadWith ] )

Changement de mode de jeu, on peut aussi lui donner une map initial à charger.

bool changeGamemodeMap ( resource newMap, [ resource gamemodeToChangeTo ] )

Change le mode de jeu d'une map pour un nouveau, on peut choisir un mode de jeu à charger une fois cette map rechargée.

table getGamemodes ( )

Renvoie une table des tout les modes de jeu et leur pointeurs.

table getGamemodesCompatibleWithMap ( resource theMap )

Retourne une table de tout les modes de jeu compatibles.

table getMaps ( )

Reourne une table de toutes les ressources en rapport avec la map.

table getMapsCompatibleWithGamemode ( [ resource theGamemode ] )

Retourne une table de tout les modes de jeu compatibles. Si l'argument "theGamemode" est inexistant, ça retourne toutes les maps qui n'ont aucun mode de jeu compatible..

resource getRunningGamemode ( )

Renvoie le mode de jeu actif.

resource getRunningGamemodeMap ( )

Renvoie le mode de jeu de la map en cours.

bool isGamemode ( resource theGamemode )

Déterminie si une ressources est un mode de jeu ou pas.

bool isGamemodeCompatibleWithMap ( resource theGamemode, resource theMap )

Déterminie si une map est compatible avec un mode de jeu ou pas.

bool isMap ( resource theMap )

Détermine si ressources est une map ou pas.

bool isMapCompatibleWithGamemode ( resource theMap, resource theGamemode )

Déterminie si une map est compatible avec un gamemode ou pas.

bool stopGamemode ( )

Arrêter le mode de jeux actif ainsi que la map chargée.

bool stopGamemodeMap ( )

Arrêter la map active.

Evênement Appelés

(Pour tous ces évênements, "source" est la ressource racine des élément.)

onGamemodeStart ( resource startedGamemode )

Appelé lors du démarrage d'un mode de jeu.

onGamemodeStop ( resource stoppedGamemode )

Appelé quand on arrête un mode de jeu.

onGamemodeMapStart ( resource startedMap )

Appelé quand la map d'un mode de jeu démarre.

onGamemodeMapStop ( resource stoppedMap )

Appelé quand la map de mode de jeu est stoppée.

Paramètres d'une Map

Les paramètres suivants registry sont appliqué par le "Map Manager" quand une map est démarée :
gamespeed [nombre]: la vitesse du jeu sur la map.
gravity [nombre]: la gravité de la map.
time [Sous la forme suivante hh:mm]: l'heure du jeu avec cette map.
weather [nombre]: la météo de la map.
waveheight [nombre]: la hauteur de l'eau pour cette map.
locked_time [boolean]: décide si le temps est verouillé ou non.
minplayers [nombre]: décide du nombre minimum de joueurs pour démarrer la map.
maxplayers [nombre]: décide du nombre maximum de joueurs que peut accepter la map.