Project

Profile

Help

Actions

StarWarsProg » History » Revision 3

« Previous | Revision 3/8 (diff) | Next »
Vincent Le Goff, 01/24/2017 04:06 AM


Programmes et scripts de Star Wars MUD FR

Scripter dans un MUD permet aux bâtisseurs de rajouter des fonctionnalités personnalisées à l'univers. Ces scripts, ou programmes (le terme est utilisé indifféremment dans ce document) sont reliés à des évènements précis, souvent déclenchés par les actions des joueurs.

Par exemple, on peut scripter un mobile de l'univers pour qu'il réagisse si un joueur dit quelque chose de précis dans la salle où il se trouve. Des quêtes relativement complexes, des zones un peu particulières, d'autres moyens de déplacement, tout ceci peut être scripté avec plus ou moins de temps. Ce document est fait pour servir de tutoriel au scripting sur Star Wars MUD FR, ainsi que d'index pour retrouver rapidement une fonctionnalité ou une syntaxe.

Index des commandes de scripting

Un programme peut ne contenir que des commandes. Ces commandes sont sous la forme que les joueurs connaissent, comme say ou emote, mais il y a des commandes particulières que seuls les mobiles, objes ou salles peuvent faire dans leur script.

Le tableau ci-dessous décrit la liste des commandes spécifiques au scripting. La première colonne contient le nom de la commande, la seconde sa syntaxe, la troisième une description très courte de son utilisation. Le nom de la commande est un lien, vous pouvez cliquer dessus pour avoir une explication plus détaillée, ainsi qu'un exemple de sa syntaxe.

Commande Syntaxe Utilité
mpadvance mpadvance <nom du joueur> <niveau> Change le niveau d'un joueur.
mpapply mpapply <nom du joueur> Passe un joueur en statut "non autorisé, en attente d'autorisation".
mpapplyb mpapplyb <nom du joueur> Passe un joueur en statut "autorisé à jouer dans l'univers réel".
mpasound mpasound <phrase> Envoie un message dans les salles alentour.
mpat mpat <vnum de la salle> <commande> Exécute la commande dans la salle indiquée.
mpdamage mpdamage <victime> <montant> Inflige des dégâts à la victime.
mpdeposit mpdeposit <montant> Dépose de l'argent dans la zone du script
mpdream mpdream <victime> <phrase> Envoie un message à un joueur qui dort.
mpecho mpecho <phrase> Affiche une phrase à la salle dans laquelle se trouve le mobile, objet.
mpecharound mpechoaround <nom> <phrase> Envoie un message à la salle, SAUF au joueur précisé.
mpechoat mpechoat <nom> <phrase> Envoie un message uniquement à un joueur.
mpforce mpforce <victime/all> <commande> Force la victime (ou tous ceux présents dans la salle) à faire une commande.
mpgain mpgain <victime> <niveau> <nombre> Donne de l'XP à la victime dans le niveau indiqué (le niveau est un nombre).
mpgoto mpgoto <vnum de salle> Téléporte le mobile du script dans une salle quelconque.
mpinvis mpinvis (niveau) Rend le mobile du script invisible.

Aide détaillée des commandes

mpadvance

Syntaxe : mpadvance <nom du joueur> <numéro du niveau>

Cette commande fait passer le joueur précisé à un niveau indiqué. Cette commande ne marchera pas si le programme est dans un mobile prototype.

Exemple d'utilisation :

mpadvance $n 3

mpapply

Syntaxe : mpapply <nom du joueur>

Cette commande passe un joueur en statut "non autorisé". Il devra être autorisé pour rentrer dans l'univers réel, ce qui peut se faire par script (voir mpapplyb) ou par la commande authorize.

Exemple d'utilisation :

mpapply $n

mpapplyb

Syntaxe : mpapplyb <nom du joueur>

Cette commande autorise un joueur, lui permettant d'entrer dans l'univers réel, au-delà de la zone de départ.

mpapplyb $n

mpasound

Syntaxe : mpasound <phrase>

Envoie la phrase passée en paramètre aux salles autour de la salle du programme (la salle dans laquelle se trouve le mobile ou objet, par exemple).

Exemple d'utilisation :

mpasound Il commence à faire froid...

mpat

Syntaxe : mpat <vnum de la salle> <commande>

Cette commande permet d'exécuter une autre commande dans une salle différente. C'est l'équivalent de la commande at que les immortels peuvent utiliser : elle peut permettre à un mobile d'exécuter une commande dans une salle distante sans avoir à se déplacer.

Exemple d'utilisation :

mpat 2200 drop all

(Cette commande, si exécuté dans un programme de mobile, demandra au dit mobile de poser tous eses objets dans la salle de vnum 2200, et ceci sans quitter la salle où il se trouve.

note importante: on utilise souvent mpat pour "cacher" certaines actions au joueur. Par exemple, on demande au mobile d'aller dans une salle fermée au joueur pour exécuter des commandes sans que le joueur ne le voit. Il existe cependant la commande silence qui reste plus lisible.

mpdamage

Syntaxe : mpdamage <victime> <montant>

Cette commande permet d'infliger des dégâts à la victime précisée en premier argument. L'aide iindique que ces dégâts seront influencés par le sanctuaire, mais pas la protection, saving throws ou résistances.

Exemple d'utilisation :

mpdamage $n 200

Il semble que, si le programme inflige des dég6ats au mobile acteur du programme, et si le nombre de dégâts est suffisamment important pour le tuer, le programme fera planter le MUD.

mpdeposit

Syntaxe : mpdeposit <montant>

Cette commande permet de déposer de l'argent dans la zone où se trouve le script (la zone de la salle, du mobile ou de l'objet). Elle prend en unique paramètre le montant à déposer dans la zone. Chaque zone a sa propre économie, et les programmes peuvent être utilisés pour influer sur l'économie de zone (par exemple, donner moins d'argent si la zone a moins dans son trésor).

Exemple d'utilisation :

mpdeposit 5000

Parmi la plupart des commandes utilisées avec mpat, ce..e-ci est peut-être l'une des plus fréquentes. On peut déposer ou retirer de l'argent facilement dans une autre zone :

mpat 3311 mpdeposit 5000

Voir aussi :

  • mpdwithdraw pour retirer de l'argent de la zone actuelle.

mpdream

Syntaxe : mpdream <victime> <phrase>

Cette commande envoie un message à un joueur ou mob qui dort. Par défaut, si on utilise mpecho o]] par exemple, un joueur qui dort ne voit pas le message. mpdream permet d'envoyer spécifiquement un message à un joueur qui dort.

mpecho

Syntaxe : mpecho <phrase>

Cette commande prend en argument une phrase, et affiche cette phrase dans la salle dans laquelle se trouve le programme (la salle du mobile, la salle de l'objet ou la salle-même, pour les programmes de salle). Le message est envoyé sans aucun préfixe, et le joueur n'a pas le moyen de savoir d'où vient le message.

Exemples d'utilisation :

mpecho La vitrine explose dans un vacarme infernal !
mpecho $n arrive de nullepart.

Voir aussi :

  • mpechoat pour afficher un message uniquement à un joueur ;
  • mpechoaround pour afficher un message pour la salle, à l'exception d'un joueur ;
  • N'oubliez pas, vous pouvez utiliser les commandes say et emote pour faire dire à un mobile quelque chose, ou le faire agir. Ce sera plus clair qu'utiliser mpecho si c'est tout ce que vous voulez faire ;
  • Cette commande est identique à la commande d'immortel recho que vous ne pouvez pas utiliser dans vos programmes.

mpechoaround

Syntaxe : mpechoaround <nom> <phrase>

Cette commande permet d'envoyer un message à la salle du programme, comme mpecho, mais elle permet de ne pas envoyer le message à un joueur précisé en premier paramètre. En combinant mpechoat et mpechoaround, on peut faire des messages d'ambiance assez personnalisés.

Exemple d'utilisation :

mpdamage $n 30
mpechoat $n Vous recevez une fléchette dans la peau, sans doute empoisonnée !
mpechoaround $n $n reçoit une fléchette dans la peau, sans doute empoisonnée !

Explications :

  1. La première ligne inflige 30 de dégâts à $n, c'est-à-dire l'acteur du script appelé ;
  2. La ligne 2 envoie le message seulement à $n ;
  3. La ligne 3 envoie un message à toute la salle, sauf à $n.

mpechoat

Syntaxe : mpechoat <nom> <phrase>

Envoie un message uniquement à la cible passée en premier paramètre. Cette commande peut être utile avec mpechoaround (voir mpechoaround pour un exemple).

Exemple d'utilisation :

mpechoat $n Le jour se lève.

mpforce

Syntaxe : mpforce <victime/all> <commande>

Force une victime à faire une commande. Si le premier paramètre est all, force tous ceux présents dans la salle du script à faire la commande.

Exemples d'utilisation :

mpforce $n remove blaster
mpforce all drop 5000 credit

On peut aussi le faire silencieusement, comme toute commande de programme :

silent mpforce $n remove all

mpgain

Syntaxe : mpgain <victime> <niveau> <nombre>

Donne de l'XP à une victime dans le niveau indiqué. Le niveau est à préciser sous la forme d'un nombre entre 0 et 7 (voir le tableau ci-dessous).

Nombre Niveau
0 Combat
1 Pilotage
2 Ingénierie
3 Chasseur de primes
4 Contrebande
5 Diplomatie
6 Commandement
7 Force

Exemple d'utilisation :

pmgain $n 1 50000

Cet exemple donne 50.000 XP à $n dans le niveau pilotage.

mpgoto

Syntaxe : mpgoto <vnum de la salle<

Cette commande permet de téléporter le mobile du script dans la salle dont le vnum est passé en paramètre. Cette commande ne marchera pas si la salle dans laquelle on souhaite se déplacer est privée.

mpinvis

Syntaxe : mpinvis (niveau)

Cette commande demande au mobile du programme de devenir invisible. On peut passer en paramètre optionnel le niveau qu'il faut avoir pour voir ce mobile. Les mobiles ou joueurs d'un niveau inférieur à celui précisé ne verront pas ce mobile. Si le mobile invisible fait une action visible aux joueurs, ils verront simplement "someone"(quelqu'un) faisant l'action.

La documentation indique qu'une attaque de zone n'inclut pas les mobiles invisibles.

Exemple d'utilisation :

mpinvis
mpinvis 3

Note : utilisez cette commande une nouvelle fois pour lever le flag d'invisibilité du mobile.

Updated by Vincent Le Goff almost 8 years ago · 3 revisions

Also available in: PDF HTML ODT TXT