UO-Dev Arama


Yazar: Bilinmiyor
Tarih: 26-08-2009 13:36


Paylaş : Paylaş

Kod:
using System;
using System.Collections;
using Server;
using Server.Gumps;

namespace Server.Commands.Generic
{
public enum ObjectTypes
{
Both,
Items,
Mobiles,
All
}

public abstract class BaseCommand
{
private string[] m_Commands;
private AccessLevel m_AccessLevel;
private CommandSupport m_Implementors;
private ObjectTypes m_ObjectTypes;
private bool m_ListOptimized;
private string m_Usage;
private string m_Description;

public bool ListOptimized
{
get{ return m_ListOptimized; }
set{ m_ListOptimized = value; }
}

public string[] Commands
{
get{ return m_Commands; }
set{ m_Commands = value; }
}

public string Usage
{
get{ return m_Usage; }
set{ m_Usage = value; }
}

public string Description
{
get{ return m_Description; }
set{ m_Description = value; }
}

public AccessLevel AccessLevel
{
get{ return m_AccessLevel; }
set{ m_AccessLevel = value; }
}

public ObjectTypes ObjectTypes
{
get{ return m_ObjectTypes; }
set{ m_ObjectTypes = value; }
}

public CommandSupport Supports
{
get{ return m_Implementors; }
set{ m_Implementors = value; }
}

public BaseCommand()
{
m_Responses = new ArrayList();
m_Failures = new ArrayList();
}

public static bool IsAccessible( Mobile from, object obj )
{
if ( from.AccessLevel >= AccessLevel.Administrator || obj == null )
return true;

Mobile mob;

if ( obj is Mobile )
mob = (Mobile)obj;
else if ( obj is Item )
mob = ((Item)obj).RootParent as Mobile;
else
mob = null;

if ( mob == null || mob == from || from.AccessLevel > mob.AccessLevel )
return true;

return false;
}

public virtual void ExecuteList( CommandEventArgs e, ArrayList list )
{
for ( int i = 0; i < list.Count; ++i )
Execute( e, list[i] );
}

public virtual void Execute( CommandEventArgs e, object obj )
{
}

public virtual bool ValidateArgs( BaseCommandImplementor impl, CommandEventArgs e )
{
return true;
}

private ArrayList m_Responses, m_Failures;

private class MessageEntry
{
public string m_Message;
public int m_Count;

public MessageEntry( string message )
{
m_Message = message;
m_Count = 1;
}

public override string ToString()
{
if ( m_Count > 1 )
return String.Format( "{0} ({1})", m_Message, m_Count );

return m_Message;
}
}

public void AddResponse( string message )
{
for ( int i = 0; i < m_Responses.Count; ++i )
{
MessageEntry entry = (MessageEntry)m_Responses[i];

if ( entry.m_Message == message )
{
++entry.m_Count;
return;
}
}

if ( m_Responses.Count == 10 )
return;

m_Responses.Add( new MessageEntry( message ) );
}

public void AddResponse( Gump gump )
{
m_Responses.Add( gump );
}

public void LogFailure( string message )
{
for ( int i = 0; i < m_Failures.Count; ++i )
{
MessageEntry entry = (MessageEntry)m_Failures[i];

if ( entry.m_Message == message )
{
++entry.m_Count;
return;
}
}

if ( m_Failures.Count == 10 )
return;

m_Failures.Add( new MessageEntry( message ) );
}

public void Flush( Mobile from, bool flushToLog )
{
if ( m_Responses.Count > 0 )
{
for ( int i = 0; i < m_Responses.Count; ++i )
{
object obj = m_Responses[i];

if ( obj is MessageEntry )
{
from.SendMessage( ((MessageEntry)obj).ToString() );

if ( flushToLog )
CommandLogging.WriteLine( from, ((MessageEntry)obj).ToString() );
}
else if ( obj is Gump )
{
from.SendGump( (Gump) obj );
}
}
}
else
{
for ( int i = 0; i < m_Failures.Count; ++i )
from.SendMessage( ((MessageEntry)m_Failures[i]).ToString() );
}

m_Responses.Clear();
m_Failures.Clear();
}
}
}



Yorumlar

Henüz yorum yapılmamıştır.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Base Image Tile Buttons Gump0Rowall01-09-2009
Base Grid Gump0Rowall01-09-2009
Base Extension0Amesron26-08-2009
Command0Amesron26-08-2009


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,