Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
156
Scripts/Services/XmlSpawner/XmlSpawner Core/ItemFlags.cs
Normal file
156
Scripts/Services/XmlSpawner/XmlSpawner Core/ItemFlags.cs
Normal file
@@ -0,0 +1,156 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using Server;
|
||||
using Server.Targeting;
|
||||
using Server.Commands;
|
||||
using Server.Commands.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class ItemFlags
|
||||
{
|
||||
public const int StealableFlag = 0x00200000;
|
||||
public const int TakenFlag = 0x00100000;
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
CommandSystem.Register( "Stealable", AccessLevel.GameMaster, new CommandEventHandler( SetStealable_OnCommand ) );
|
||||
CommandSystem.Register( "Flag", AccessLevel.GameMaster, new CommandEventHandler( GetFlag_OnCommand ) );
|
||||
}
|
||||
|
||||
public static void SetStealable(Item target, bool value)
|
||||
{
|
||||
if(target != null)
|
||||
target.SetSavedFlag( StealableFlag, value);
|
||||
}
|
||||
|
||||
public static bool GetStealable(Item target)
|
||||
{
|
||||
if(target != null)
|
||||
return target.GetSavedFlag(StealableFlag);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void SetTaken(Item target, bool value)
|
||||
{
|
||||
if(target != null)
|
||||
{
|
||||
target.SetSavedFlag( TakenFlag, value);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetTaken(Item target)
|
||||
{
|
||||
if(target != null)
|
||||
return target.GetSavedFlag(TakenFlag);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
[Usage( "Flag flagfield" )]
|
||||
[Description( "Gets the state of the specified SavedFlag on any item" )]
|
||||
public static void GetFlag_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
int flag=0;
|
||||
bool error = false;
|
||||
if( e.Arguments.Length > 0 )
|
||||
{
|
||||
if(e.Arguments[0].StartsWith( "0x" ))
|
||||
{
|
||||
try{flag = Convert.ToInt32( e.Arguments[0].Substring( 2 ), 16 ); } catch { error = true;}
|
||||
} else
|
||||
{
|
||||
try{flag = int.Parse(e.Arguments[0]); } catch { error = true;}
|
||||
}
|
||||
|
||||
}
|
||||
if(!error)
|
||||
{
|
||||
e.Mobile.Target = new GetFlagTarget(e,flag);
|
||||
} else
|
||||
{
|
||||
try{
|
||||
e.Mobile.SendMessage(33,"Flag: Bad flagfield argument");
|
||||
} catch {}
|
||||
}
|
||||
}
|
||||
|
||||
private class GetFlagTarget : Target
|
||||
{
|
||||
private CommandEventArgs m_e;
|
||||
private int m_flag;
|
||||
|
||||
public GetFlagTarget( CommandEventArgs e, int flag) : base ( 30, false, TargetFlags.None )
|
||||
{
|
||||
m_e = e;
|
||||
m_flag = flag;
|
||||
}
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
if(targeted is Item)
|
||||
{
|
||||
bool state = ((Item)targeted).GetSavedFlag(m_flag);
|
||||
|
||||
from.SendMessage("Flag (0x{0:X}) = {1}",m_flag,state);
|
||||
} else
|
||||
{
|
||||
from.SendMessage("Must target an Item");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Usage( "Stealable [true/false]" )]
|
||||
[Description( "Sets/gets the stealable flag on any item" )]
|
||||
public static void SetStealable_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
bool state = false;
|
||||
bool error = false;
|
||||
if( e.Arguments.Length > 0 ){
|
||||
try{state = bool.Parse(e.Arguments[0]); } catch { error = true;}
|
||||
|
||||
}
|
||||
if(!error)
|
||||
{
|
||||
e.Mobile.Target = new SetStealableTarget(e, state);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class SetStealableTarget : Target
|
||||
{
|
||||
private CommandEventArgs m_e;
|
||||
private bool m_state;
|
||||
private bool set = false;
|
||||
|
||||
public SetStealableTarget( CommandEventArgs e, bool state) : base ( 30, false, TargetFlags.None )
|
||||
{
|
||||
m_e = e;
|
||||
m_state = state;
|
||||
if( e.Arguments.Length > 0 )
|
||||
{
|
||||
set = true;
|
||||
}
|
||||
}
|
||||
protected override void OnTarget( Mobile from, object targeted )
|
||||
{
|
||||
if(targeted is Item)
|
||||
{
|
||||
if(set)
|
||||
{
|
||||
SetStealable(((Item)targeted), m_state);
|
||||
}
|
||||
|
||||
bool state = GetStealable((Item)targeted);
|
||||
|
||||
from.SendMessage("Stealable = {0}",state);
|
||||
|
||||
} else
|
||||
{
|
||||
from.SendMessage("Must target an Item");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user