View Full Version: Systeme de messagerie pour joueurs.

RunUO.FR Support > System > Systeme de messagerie pour joueurs.


Title: Systeme de messagerie pour joueurs.
Description: Systeme simple.


Shariz - July 25, 2003 09:20 PM (GMT)
Un petit systeme de messagerie baser sur le .Smsg.

CODE

// Wasted Commands Mod
// wcmdmod.cs

using System;
using Server;
using Server.Network;
using Server.Menus;
using Server.Menus.Questions;
using Server.Spells;
using Server.Targeting;

namespace Server.Scripts.Commands
{
  public class WastedCommandHandlers
  {
     public static void Initialize()
     {
        // Staff Messaging System
        Server.Commands.Register ( "Dire", AccessLevel.Player, new CommandEventHandler( DireMessage_OnCommand ) );
        Server.Commands.Register ( "D", AccessLevel.Player, new CommandEventHandler( DireMessage_OnCommand ) );
        Server.Commands.Register ( "dit", AccessLevel.Player, new CommandEventHandler( DireMessage_OnCommand ) );
     
        // Broadcast Messaging System
        Server.Commands.Register ( "Raconte", AccessLevel.Player, new CommandEventHandler( BroadCastMessage_OnCommand ) );
        Server.Commands.Register ( "RP", AccessLevel.Player, new CommandEventHandler( BroadCastMessage_OnCommand ) );
        Server.Commands.Register ( "PR", AccessLevel.Player, new CommandEventHandler( BroadCastMessage_OnCommand ) );
     }
     
     private static void DireMessage_OnCommand( CommandEventArgs e )
     {
        string s_message = CmdArgsToString ( e );
         
        BroadcastMessage ( AccessLevel.Player, e.Mobile.SpeechHue, "[" + e.Mobile.Name + "] " + s_message );
         
        return;
     }

     private static void BroadCastMessage_OnCommand( CommandEventArgs e )
     {
        string s_message = CmdArgsToString ( e );
         
        BroadcastMessage ( AccessLevel.Player, 0x482, "Message de " + e.Mobile.Name + ":" );
        BroadcastMessage ( AccessLevel.Player, 0x482, s_message );
         
        return;
     }
     
     // Useful functions.
     
     private static void BroadcastMessage ( AccessLevel ac, int hue, string message )
     {
        foreach ( NetState n in NetState.Instances ) {
           Mobile m = n.Mobile;
           if ( m.AccessLevel >= ac )
           {
              m.SendMessage ( hue, message );
           }
        }
     }
     
     public static string CmdArgsToString ( CommandEventArgs e )
     {
        string s_retval="";
         
        for ( int arg = 0; arg < e.Length; arg++ )
        {
           s_retval += e.GetString( arg );
           if ( (arg+1) < e.Length )
           {
           s_retval += " ";
           }
        }
         
        return s_retval;
     }

  }
}


Signé : Shariz l'ami des plus petits.

crystal - July 26, 2003 12:53 PM (GMT)
Merci pour ta contribution .

Shariz - July 27, 2003 04:18 PM (GMT)
Voici un système de messagerie privée. Pour envoyer un message à un joueur spécifique.
(C'est pas moi qui l'ais fait, et je l'ai pas tester. <_< )

Dite : .MSG nomdujoueur phrase
CODE

using System;
using System.Text;
using Server;
using Server.Network;

namespace Server.Scripts.Commands
{
  public class Msg
  {
     public static void Initialize()
     {
        Server.Commands.Register( "MSG", AccessLevel.Player, new CommandEventHandler( MSG_OnCommand ) );
     }

     [Usage( "MSG <player> <text>" )]
     [Description( "Envoi un message à un joueur." )]
     public static void MSG_OnCommand( CommandEventArgs e )
     {
        string MsgToSend ="";
           bool match = false;
           Mobile SendTo = null;
           foreach ( NetState state in NetState.Instances )
           {
              Mobile m = state.Mobile;
           if ( m != null ) {
              if ( e.ArgString.ToLower().StartsWith( state.Mobile.Name.ToLower() ) ){
                 MsgToSend = e.ArgString.Substring( state.Mobile.Name.Length ).Trim();
                 match = true;
                 SendTo = m;
                 }
        }
           }
           if (match) {
              SendTo.SendMessage( 0x2C, String.Format( "Message de {0}: {1}", e.Mobile.Name, MsgToSend ) );
              e.Mobile.SendMessage("Message envoyer");
           } else {
              e.Mobile.SendMessage("Il n'y a pas de membres de votre guilde en ligne!");
           }
     }
  }
}


Signé : Shariz l'ami des plus petits.


Shariz - July 27, 2003 04:23 PM (GMT)
Voici un système de messagerie qui envoi un message à tous les membres de votre guilde qui sont en ligne.
(C'est pas moi, non plus, qui l'ais fait, et je l'ais tester, mais j'étais pas membre d'une guilde :P .)

CODE

using System;
using System.Text;
using System.Collections;
using Server;
using Server.Network;
using Server.Guilds;

namespace Server.Scripts.Commands
{
  public class Guilde
  {
     public static void Initialize()
     {
        Server.Commands.Register( "Guilde", AccessLevel.Player, new CommandEventHandler( GC_OnCommand ) );
     }

     [Usage( "Guilde <text>" )]
     [Description( "Envoi un message à tous les membres de votre guilde en ligne." )]
     public static void GC_OnCommand( CommandEventArgs e )
     {
        Guild GuildC = e.Mobile.Guild;
        if ( GuildC == null )
        {
           e.Mobile.SendMessage( "Vous n'êtes membre d'aucune guilde!" );
        }
        else
        {
           foreach ( NetState state in NetState.Instances )
           {
              Mobile m = state.Mobile;
              if ( m != null && GuildC.IsMember( m ) )
                 m.SendMessage( 0x2C, String.Format( "[Guild MSG-{0}]:{1}", e.Mobile.Name, e.ArgString ) );
           }
        }
     }
  }
}


Signé : Shariz l'ami des plus petits.




* Hosted for free by InvisionFree