Ce guide est adressé à tous les possesseurs d’un serveur Minecraft souhaitant rajouter une touche de PvE à leur jeu multijoueur. Pour rappel, le PvE (ou Player versus Environement) est une discipline tirée des plus grands MMORPG (ou Meuporgs pour les intimes), qui consiste à ce qu’un groupe de joueur défie des monstres scriptés et dirigés par le serveur. En l’occurrence, le plugin MobArena vous permettra de faire arriver des monstres (que vous aurez choisi) par vagues, avec des boss, des évènements spéciaux, et les joueurs pourront choisir entre différentes classes qu’une fois encore vous aurez configuré.

Installation du plugin

 

Si vous n’avez pas installé CraftBukkit sur votre serveur, rendez vous sur ce topic et téléchargez la version de craftbukkit correspondant à votre système d’exploitation (ou celui du dédié sur lequel tourne votre serveur). Une fois l’archive téléchargée, ouvrez la et dans le dossier Craftbukkit se trouve un fichier en .url : ouvrez le, cela va vous télécharger automatiquement la dernière version recommandée de CraftBukkit (en ce moment, version 1337). Enregistrez le fichier dans le dossier contenant le fichier « Craftbukkit Starter ». Enfin, une fois ce fichier téléchargé, lancez le « Craftbukkit Starter » et le tour est joué !

Maintenant, installons le plugin :

Rendez vous sur cette page, et dans la section « Recent files », téléchargez la dernière version sortie. Une fois l’archive téléchargée, déplacez-là dans le dossier plugins de votre serveur, et, après avoir redémarré ledit serveur, vérifiez que dans ce dossier plugins, un dossier MobArena a été créé, contenant des fichiers *.properties entre autres.

Le plugin est maintenant installé ! Il reste à le configurer, et cela se fait en deux parties : fichiers de configuration, puis configuration en jeu ensuite.

 

Configuration du fichier du plugin

 

Il y a plusieurs choses à faire dans les fichiers de configuration : Nous allons commencer par les paramètres globaux.

Configuration des paramètres globaux

Dans le dossier MobArena des plugins, vous trouverez le fichier config.yml. Au tout début de ce fichier, vous trouverez la configuration global-settings :

global-settings:
    update-notification: true
    enabled: true
    allowed-commands: /list

update-notification : s’il est « true », cela affiche un message dans le chat que le plugin est périmé, et si une nouvelle version est disponible

enabled : s’il est « true », le plugin est activé.

allowed-commands : Ce sont les commandes autorisées aux joueurs lorsqu’ils sont dans l’arène. Dès qu’ils rejoignent l’arène (en spectateur ou on gladiateur), seules les commandes écrites dans ce paramètre seront autorisées aux joueurs. Par défaut, tout est désactivé. Si vous voulez rajouter des commandes, écrivez les ainsi :

allowed-commands: /list, /me, /who, /kick

Par exemple. Par contre, il ne faut pas mettre les sous commandes (exemple : « /kill Hapistorique » ne fonctionnera pas, mettez juste « /kill »)

Configuration des classes

Sous les paramètres globaux, vous aurez les classes :

classes:
    Knight:
        items: diamond_sword, grilled_pork:2
        armor: 306,307,308,309
    Archer:
        items: wood_sword, bow, arrow:128, grilled_pork
        armor: 298,299,300,301

Remplacez les « Knight » et « Archer » par ce que vous voulez, mais attention, les accents et symboles en tous genres ne fonctionneront pas !

Ensuite, pour les items et armures à disposition pour chaque classe, vous avez le choix entre rentrer les IDs des objets ou bien leur nom. Si vous voulez mettre un nombre x du même objet, prenez exemple sur le « arrow:128 » : OBJET:NOMBRE

Si vous voulez rajouter une nouvelle classe, rajoutez-la en dessous des deux autres et suivez la même structure pour les objets et l’armure.

Configuration de l’arène

Vous pouvez configurer plusieurs arènes de différentes manières : cela se fait au début de la configurations des arènes :

arenas:
    default:

Par défaut, l’arène s’appelle default. Si vous voulez changer son nom, changez la ligne default par ce que vous voulez (mais laissez les deux points)

Configuration globale de l’arène

settings:
            world: ''
            enabled: true
            protect: true
            entry-fee: ''
            logging: true
            clear-wave-before-next: false
            detonate-creepers: false
            detonate-damage: false
            lightning: true
            auto-equip-armor: true
            force-restore: false
            soft-restore: false
            soft-restore-drops: false
            require-empty-inv-join: false
            require-empty-inv-spec: false
            hellhounds: false
            pvp-enabled: false
            monster-infight: false
            allow-teleporting: false
            spectate-on-death: true
            share-items-in-arena: true
            min-players: 0
            max-players: 0
            max-join-distance: 0
            repair-delay: 5
            first-wave-delay: 5
            wave-interval: 20
            special-modulo: 4
            max-idle-time: 0
            spout-class-select: true
            final-wave: 0

Explications :

[spoiler]world : le nom de la map sur laquelle se trouvera l’arène.

enabled : si il est « true », l’arène en question est activée.

protect : si il est « true », cela empêche aux joueurs de casser des blocs de n’importe quelle manière dans la zone de l’arène, que nous définirons plus tard.

entry-fee : Il s’agit d’un objet que l’on doit avoir dans son inventaire pour pouvoir rentrer dans l’arène. Si vous avez un système d’économie, vous pouvez rentrer $xx, xx étant l' »argent » à retirer du compte du joueur.

logging : si « true », à la fin de chaque match, quelques statistiques seront inscrites dans le fichier de stats du plugin.

clear-wave-before-next : si « true », il n’y aura pas de nouvelle vague tant que tous les monstres de la vague précédente ne sont pas morts.

detonate-creepers : si « true », tous les creepers doivent exploser pour lancer la vague suivante (inutile si la variable précédente est « true »)

detonate-damage : si « false », les joueurs n’auront pas de dégâts d’explosion des creepers. A besoin de detonate-creepers : true pour fonctionner

lightning : si « true », un éclair sera lancé sur chaque spawn lors des vagues spéciales

auto-equip-armor : si « true », le stuff est équipé automatiquement lors de la sélection de la classe.

force-restore : si « true », sauvegarde l’arène sur le disque dur avant de lancer le jeu

soft-restore : si « true », effectue une liste de réparations à exécuter à la fin du combat en cours, rien n’est sauvegarde (fait moins laguer). Si « true », il ignore le force-restore et le protect

soft-restore-drops : si « true », tous les blocs détruits par les joueurs sont droppés et récupérables par les joueurs pour qu’ils les replacent ensuite.

require-empty-inv-join : si « true », les joueurs doivent avoir un inventaire vide pour rentrer dans l’arène

require-empty-inv-spec : si « true », les joueurs doivent avoir un inventaire vide pour rentrer dans les gradins

hellhounds : si « true », tous les animaux de compagnie seront enflammés (mais ne subiront pas de dégâts), pour les différencier des monstres.

pvp-enabled : si « true », les joueurs pourront se taper entre eux dans l’arène.

monster-inflight : si « false », les monstres ne se feront pas de dégâts entre eux.

allow-teleporting : si « false », les joueurs ne pourront pas se téléporter hors de l’arène.

spectate-on-death : si « true », quand on meurt, on rejoint les spectateurs.

share-items-in-arena : si « false », les joueurs ne pourront pas se donner d’objets.

min-players : nombre de joueurs minimum pour lancer l’arène

max-players : nombre maximum de joueurs autorisés.

max-join-distance : distance maximum en blocs à laquelle les joueurs peuvent rejoindre l’arène (si 0, distance infinie, peu importe la map)

repair-delay : le temps en « ticks » (20 ticks = 1s) entre le moment ou un bloc est cassé et le moment où il se répare (ne fonctionne pas avec soft-restore)

first-wave-delay : le temps en secondes après lequel la première vague sera lancée

wave-interval : temps en secondes entre chaque vague, sauf si clear-wave-before-next est « true »

special-modulo : toutes les <NOMBRE> vagues seront des vagues spéciales

max-idle-time : temps en secondes avant lequel un monstre doit être tué, sinon les joueurs sont kickés.

spout-class-select : si « true », permet de sélectionner les classes avec spout (non essayé)

final-wave : numéro de la vague finale.[/spoiler]

 Configuration des vagues de monstres

Plutôt que de configurer à la main toutes les vagues, un développeur a mis au point un éditeur web pour configurer vos vagues de monstres. Il est très simple d’utilisation, et une petite explication va suivre pour créer vos vagues.

Mais avant ces explications, voici comment débuter votre configuration de vagues :

  • Allez sur l’éditeur de vagues et chargez votre fichier config.yml en cliquant sur le bouton « Load Config » en bas de l’éditeur. Si vous ne chargez pas le fichier avant de commencer, c’est foutu d’avance.
  • Vous pouvez désormais commencer votre oeuvre, mais sachez que vous ne pourrez pas revenir en arrière sur ce que vous avez fait, autrement que manuellement (donc, pas de toucher « Annuler », faites attention à vos actes !)

Comment créer des vagues ?

Nous allons commencer par créer une vague « récurrente », c’est à dire qu’elle apparaîtra aléatoirement parmi d’autres selon des critères de probabilité. Pour commencer, cliquez sur « New Wave » à côté de « Reccurent Waves »

Une première vague, vide, va s’afficher.

Explications sur les différents menus :

[spoiler]Name : nom de la vague, si vous voulez lui donner un nom spécial pour la reconnaitre

Category : Recurrent/Single : Laissez en Recurrent pour faire une vague normale, mettez en Single pour une vague spéciale

Type :

  • Default : Vague de base, vous tapez les monstres
  • Special : Vague ne faisant spawn qu’un seul type de monstre, à un nombre que vous aurez choisi
  • Swarm : Même chose que pour les vagues spéciales, mais les monstres en question n’ont qu’un point de vie (Cela rend très bien avec des Slimes !)
  • Boss : Vague comportant un unique monstre que vous aurez choisi, et vous pouvez lui donner des capacités spéciales, telles que lancer des boules de feu, provoquer des inondations… il y a beaucoup de possibilités de sorts que peut lancer le monstre, et tout est affiché dans la petite liste à côté du bouton « Add »

Wave : Pour spécifier la première fois que cette vague doit apparaître, ou bien la vague unique d’apparition.

Priority : Pour les vagues récurrentes, permet de donner une probabilité que cette vague tombe (nombre entier). Plus le nombre est grand, plus la probabilité que cette vague tombe est grande (par rapport aux priorités des autres vagues)

Frequency : Définit la fréquence à laquelle cette vague peut apparaître. Si, par exemple, vous avez défini une fréquence de 3, alors si cette vague tombe, elle ne pourra pas retomber avant 3 vagues.

Growth : Détermine la vitesse d’apparition des monstres. Old est le plus simple, les autres sont basés sur des calculs mathématiques plus complexes, bref, Old reste un bon compromis.[/spoiler]

Pour ajouter par exemple un monstre à la vague, sélectionnez ledit monstre dans la liste en bas à droite (il y a parfois des choix surprenants !), puis déterminez la probabilité d’apparition du monstre en lui attribuant un nombre dans le carré à côté (plus le nombre est grand plus la probabilité est grande). Enfin, appuyez sur add, il s’ajoute à la liste, avec à côté le pourcentage de probabilité d’apparition.

Le principe est le même pour les autre types de vagues ou pour les boss, seuls les choix de la liste changent. Il ne vous reste qu’à faire votre petite sauce !

Une fois votre petite tambouille faite, ré-enregistrez votre config en cliquant sur « Save Config As »

Configuration des récompenses :

 rewards:
            waves:
                every:
                    '3': feather, bone, stick
                    '5': dirt:4, gravel:4, stone:4
                    '10': iron_ingot:10, gold_ingot:8
                after:
                    '7': minecart, storage_minecart, powered_minecart
                    '13': iron_sword, iron_pickaxe, iron_spade
                    '16': diamond_sword

Vous pouvez configurer des récompenses en fonction des vagues atteintes, c’est assez simple :

every : ce sont des récompenses récurrentes. Dans le cas présent, par exemple, toutes les 3 vagues, les joueurs recevront une plume, un os et un bâton. Pour changer les objets en récompense, c’est comme pour changer les objets attribués à chaque classe, que nous avons vu plus haut. Vous pouvez aussi rajouter de l’argent en entrant un nombre précédé de $.

after : ce sont des récompenses uniques, que l’on obtient si on atteint telle ou telle vague. Par exemple, après la vague 7, on obtient en plus des récompenses récurrentes, un minecart, un minecart-coffre et un minecart motorisé.

Configuration en jeu

Maintenant que tout est configuré, il reste (en gros), à définir l’arène, les gradins, les vestiaires, etc… Cela complète automatiquement votre fichier de configuration, mais c’est beaucoup plus simple à faire en jeu.

Définition de l’arène

Rendez vous en jeu, sur votre serveur, et créez une petite arène (ou une grande, c’est vous qui voyez). Le plus simple pour commencer est de la faire carrée ou rectangulaire, et une fois que vous aurez compris le système, vous pourrez en faire une circulaire ou de la forme que vous voulez si cela vous chante !

Pour l’exemple, nous avons créé une arène ultra-basique, mais qui contient les trois zones nécessaires : Arène, vestiaires et gradins.

Pour commencer, allons dans les vestiaires, et créons le système de choix de classe : On met des panneaux sur les murs, et les joueurs iront taper sur le panneau de leur choix, correspondant à la classe qu’ils auront choisi.

Aussi, il faut rajouter un bloc de fer, que les joueurs taperont pour signaler qu’ils sont prêts.

Maintenant, on va définir la zone de l’arène, qui sera protégée lors du jeu. Pour se faire, mettez vous aux deux extrémités extérieures de l’arène (gradins compris, vestiaires compris)

Allez à la première extrémité, et tapez cette commande :

 /ma setregion p1

Puis dans l’autre extrémité,

 /ma setregion p2

Ensuite, comptez approximativement le nombre de blocs de haut que prend votre arène (environ 10 pour l’exemple), et tapez les commandes suivantes :

/ma expandregion <nombreblocs> up
/ma expandregion <nombreblocs> down
/ma expandregion <nombreblocs> out

Ces trois commandes augmentent le périmètre de protection autour de l’arène. Mettez un nombre de blocs suffisant, mais pas extrême non plus. Choisissez aussi en fonction de l’éventuelle déco autour de votre arène, ou autre choses qui pourraient être malencontreusement abîmées.

Au milieu de l’arène, tapez ceci :

 /ma setwarp arena

pour définir le lieu d’arrivée des gladiateurs dans l’arène, quand ils sont prêts.

Dans les gradins, tapez ceci :

/ma setwarp spectator

pour définir où seront téléportées les joueurs souhaitant assister au jeu.

Dans les vestiaires, tapez ceci :

/ma setwarp lobby

pour définir le lieu des vestiaires.

 

Une fois que c’est fait, allez dans chaque lieu où vous voulez que les monstres apparaissent (pour faire simple, les 4 coins), et tapez dans chaque lieu la commande suivante :

/ma addspawn sX

X variant en fonction du spawn : si c’est le premier, X=1, si c’est le 2e, X=2, etc…

 

 

Ça y est, vous pouvez souffler, la configuration est terminée !

Toutefois, pour vérifier que tout est bon, tapez ceci :

/ma checkdata

Il ne reste plus aux joueurs qu’à taper « /ma join » pour rejoindre les vestiaires, puis la partie commencera quand tout le monde est prêt !

 

Démonstration