View Full Version: Parler des objets !

RunUO.FR Support > comment on fait ... > Parler des objets !


Title: Parler des objets !


Uta - July 27, 2003 08:05 PM (GMT)
Tout d'abord bonjour a tous et a toutes.

je suis un neebies dans le script, mais j'apprend relativement vite bref.

J'aimerais que vous m'aidiez a faire un script qui ferais parler des choses.
Une nouvelle commandes.
J'explique.

Un gm taperais la commande .Emote +un texte a coter ( .Emote Vibre. (ces un exemple hein))

Ensuite il devra selectioner quelques choses, un objet ou un pj.
Et quand il aura clicker dessus ca donnera : *Vibre* (sur l'objet.)

Voilà et super ce forum :)

crystal - July 27, 2003 09:52 PM (GMT)
TODO list :)

crée une commande "emote" qui stock la variable string .

créé un target qui envoie cette variable au dessus de la tete du "target"

esaye avec le tuto target et le tuto Wisp tu as tout dedans .

dans 2 jour , je te met le code complet ou je t'aide si tu montre des exemples avant .

P.S: ce n'est pas de la mauvaise volonté c'est je crois le meilleur moyen de t'aider a apprendre le langage c#

Uta - July 27, 2003 11:00 PM (GMT)
Bouhouhou.
Ca m'aide pas trop en fait , car des commandes j'en ai fait aucune.
Pour le moment les seul truc que j'ai fait ce sont des Items.
Bref, j'veux bien apprendre par moi meme, mais je peut pas avoir un tit exemple pour me baser dessus ? :)

tout ce que j'ai reussi a faire , et je pense etre a coter de la plaque ces ca :

CODE
using System;
using Server;
using Server.Mobiles;
using Server.Network;

namespace Server.Scripts.Commands
{
  public class Emote
  {
     public static void Initialize()
     {
        Server.Commands.Register( "Emote", AccessLevel.GameMaster, new CommandEventHandler( Emote_OnCommand ) );

     }

     [Usage( "Emote" )]
     [Description( "Introduiser l'emote" )]
     public static void Emote_OnCommand( CommandEventArgs e )
     {
        Mobile from = e.Mobile;

        {
           return;
        }

        foreach ( NetState state in NetState.Instances )
        {

        }
     }

  }
}

crystal - July 28, 2003 02:46 AM (GMT)
c'est une commande .emote ou [emote

mais elle n'a aucune variable . il est tard je te montre cette apres-midi .

crystal - July 28, 2003 12:00 PM (GMT)
CODE
using System;
using Server;
using Server.Mobiles;
using Server.Network;

namespace Server.Scripts.Commands
{
 public class Emote  /* Une classe tu peu stocker dedans Plusieur commande , c'est un peu comme un tiroir
 {
    public static void Initialize()
    {
       Server.Commands.Register( "Emote", AccessLevel.GameMaster, new CommandEventHandler( Emote_OnCommand ) ); // cette ligne sert définir la commande a taper et a regler la securité dans ce cas tu a mis GameMaster et +

    }

    [Usage( "Emote" )]    //ceci ne sert que pour la doc générée IG
    [Description( "Introduiser l'emote" )]     //ceci ne sert que pour la doc générée IG
   
    public static void Emote_OnCommand( CommandEventArgs e ) // ici le code a exécuter et on appelle la variable CommandEventArgs e
    {
       Mobile from = e.Mobile; // une variable  il faut la lire ainsi Mobile s'appellera from et est egal au mobile qui lance la commande
string EmoteCible ="";  // ont defini une variable de type string (texte) et on appelle la variable EmoteCible
       {
          from.Target = new EmoteTarget( from ); // ici on dit From donc celui qui lance la commande  va avoir un target , le code de ce target sera dans la class EmoteTarget et vient avec les arguments de from .
       }

    }

 }
}


/* mais pour que cela fonctionne , il faut encore le code d'un target , et aussi que CE script sache que l'on va utilisez Target .*/

QUOTE
using System;
using Server;
using Server.Mobiles;
using Server.Network;
using Server.Targeting;

namespace Server.Scripts.Commands
{
  public class Emote  /* Une classe tu peu stocker dedans Plusieur commande , c'est un peu comme un tiroir
  {
    public static void Initialize()
    {
        Server.Commands.Register( "Emote", AccessLevel.GameMaster, new CommandEventHandler( Emote_OnCommand ) ); // cette ligne sert définir la commande a taper et a regler la securité dans ce cas tu a mis GameMaster et +

    }

    [Usage( "Emote" )]    //ceci ne sert que pour la doc générée IG
    [Description( "Introduiser l'emote" )]    //ceci ne sert que pour la doc générée IG
   
    public static void Emote_OnCommand( CommandEventArgs e ) // ici le code a exécuter et on appelle la variable CommandEventArgs e
    {
        Mobile from = e.Mobile; // une variable  il faut la lire ainsi Mobile s'appellera from et est egal au mobile qui lance la commande
string EmoteCible ="";  // ont defini une variable de type string (texte) et on appelle la variable EmoteCible
        {
          from.Target = new EmoteTarget( from ); // ici on dit From donc celui qui lance la commande  va avoir un target , le code de ce target sera dans la class EmoteTarget et vient avec les arguments de from .
        }

    }

  }
  public class EmoteTarget : Target
  {

   
    public EmoteTarget(Mobile from ) : base( 10, false, TargetFlags.None )
    {
   
    }
   
    protected override void OnTarget( Mobile from, object o )
    {

    }
}

}



Voila on a ajouter ce qu'il faut pour la Target , mais il faut maintenant la programmé pour qu'elle face faire l'emote a la personne/objet que l'on va choisir

Uta - July 28, 2003 04:59 PM (GMT)
Thx, grace a tes expliquation a coté des commande je capte :)

Note : J'avais quand meme un peu de bon :)

Jusre un truc a la ligne 9 tu a mis /* mais ca fait erreur, j'ai mis // et ca marche :)
La commande marche, j'ai le target, mais l'emote pas, donc faut l'activée, et on fait comment?


crystal - July 28, 2003 11:54 PM (GMT)
CODE
using System;
using Server;
using Server.Mobiles;
using Server.Network;
using Server.Targeting;
using Server.Prompts;

namespace Server.Scripts.Commands
{
 public class Xemote
 {
 
   public static void Initialize()
   {
       Server.Commands.Register( "Xemote", AccessLevel.GameMaster, new CommandEventHandler( Emote_OnCommand ) ); // cette ligne sert définir la commande a taper et a regler la securité dans ce cas tu a mis GameMaster et +

   }

   [Usage( "Emote <texte>" )]
   [Description( "Introduiser l'emote" )]
 
   public static void Emote_OnCommand( CommandEventArgs e  )
   {
   
       Mobile from = e.Mobile;

       {
         from.Target = new EmoteTarget( e.ArgString );
       }

   }

 }
 public class EmoteTarget : Target
 {
private string m_Emoticon;
 
   public EmoteTarget( string args ) : base( 10, false, TargetFlags.None )
   {
  m_Emoticon = args;
   }
 
   protected override void OnTarget( Mobile from, object targeted )
   {
   
Mobile Cible = targeted as Mobile;
if (Cible!=null) // si c'est un mobile
            {
               Cible.Emote(m_Emoticon);
             }
       else // sinon y a de mobile
       {
         
       }
   
   }
}
}


voila pour les PJ , te reste plus qu'a faire les items ( c'est facile si tu cherche sur ce forum il y a 4 ou 5 exemples.)

Uta - July 29, 2003 07:18 PM (GMT)
Marci bicoup :)




* Hosted for free by InvisionFree