View Full Version: commande Hearall

RunUO.FR Support > Le vivier > commande Hearall


Title: commande Hearall


Injall - February 27, 2004 06:17 PM (GMT)
bien voila j'ai trouvé ce petit script qui permet d'entendre tout ce qui se dit dans le monde, activable par la commande [hearall mais le problème c'est qu'il faut retapper [hearall a chaque connection, en gros ca sauvergarde pas l'état actif de la commande.

si l'un de vous savais faire en sorte que ca sauvegarde (bien sur si ca ne prend pas trop de temps et que c pas trop dure a réaliser), ce serait vraiment sympas, en plus j'imagine que ca servira a plus d'une personne.

voici l'original :
QUOTE

using System;
using System.Collections;
using Server;
using Server.Mobiles;

namespace Server.Misc
{
public class HearAll
{
  private static bool m_ConsolePrint;
  private static ArrayList m_HearAll = new ArrayList();

  public static void Initialize()
  {
  Commands.Register( "HearAll", AccessLevel.Administrator, new CommandEventHandler( HearAll_OnCommand ) );
  Commands.Register( "ConsoleHearAll", AccessLevel.Administrator, new CommandEventHandler( ConsoleHearAll_OnCommand ) );

  EventSink.Speech += new SpeechEventHandler( OnSpeech );
  }

  private static void OnSpeech( SpeechEventArgs args )
  {
  string msg;
  if ( args.Mobile.Region.Name.Length > 0 )
    msg = String.Format( "{0} ({1}): {2}", args.Mobile.Name, args.Mobile.Region.Name, args.Speech );
  else
    msg = String.Format( "{0}: {1}", args.Mobile.Name, args.Speech );
  if ( m_ConsolePrint )
    Console.WriteLine( msg );

  ArrayList remove = null;
  for(int i=0;i<m_HearAll.Count;i++)
  {
    if ( ((Mobile)m_HearAll[i]).NetState == null )
    {
    if ( remove == null )
      remove = new ArrayList( 1 );
    remove.Add( m_HearAll[i] );
    }
    else
    {
    ((Mobile)m_HearAll[i]).SendMessage( msg );
    }
  }

  if ( remove != null )
  {
    for(int i=0;i<remove.Count;i++)
    m_HearAll.Remove( remove[i] );
  }
  }

  private static void HearAll_OnCommand( CommandEventArgs args )
  {
  if ( m_HearAll.Contains( args.Mobile ) )
  {
    m_HearAll.Remove( args.Mobile );
    args.Mobile.SendMessage( "Hear all disabled." );
  }
  else
  {
    m_HearAll.Add( args.Mobile );
    args.Mobile.SendMessage( "Hear all enabled, type [hearall again to disable it." );
  }
  }

  private static void ConsoleHearAll_OnCommand( CommandEventArgs args )
  {
  m_ConsolePrint = !m_ConsolePrint;

  if ( m_ConsolePrint )
    args.Mobile.SendMessage( "Now sending all speech to the console." );
  else
    args.Mobile.SendMessage( "No longer sending speech to the console." );
  }
}
}

Juliunus - March 1, 2004 06:00 AM (GMT)
Il faudrait tout simplement stocker un flag sur le joueur (disons bool hearAll), et au login si le joueur a ce flag à "true", on exécute la même chose que le hearall_oncommand

J'ai la flemme de l'écrire par contre :P

Injall - March 1, 2004 10:51 AM (GMT)
QUOTE
tout simplement stocker un flag

QUOTE
bool hearAll

QUOTE
flag à  "true"


ah ben tout de suite !
non ^^ j'avous j'ai du mal a suivre
il faut créer un nouveau script ou on pe inclure ca dans un?
quelqu'un pourrais m'expliquer comment on fait ca pas à pas? j'aimerais vraiment savoir :rolleyes:

je parle de la mise en forme du script, j'ai bien sur déjà essayé de regarder, on commence par introduire les dossiers des scripts ( :blink: ), >using etc
aprés viens le private void et aprés je comprend plus trop :(




Hosted for free by InvisionFree