1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
using System; using System.IO; namespace Server { public class ShrinkTable { private const int DefaultItemID = 0x1870; // Yellow virtue stone private static int[] m_Table; public static int Lookup( Mobile m ) { return Lookup( m.Body.BodyID, DefaultItemID ); } public static int Lookup( int body ) { return Lookup( body, DefaultItemID ); } public static int Lookup( Mobile m, int defaultValue ) { return Lookup( m.Body.BodyID, defaultValue ); } public static int Lookup( int body, int defaultValue ) { if ( m_Table == null ) Load(); int val = 0; if ( body >= 0 && body < m_Table.Length ) val = m_Table[body]; if ( val == 0 ) val = defaultValue; return val; } private static void Load() { string path = Path.Combine(Core.Config.ConfigDirectory, "shrink.cfg"); if ( !File.Exists( path ) ) { m_Table = new int[0]; return; } m_Table = new int[1000]; using ( StreamReader ip = new StreamReader( path ) ) { string line; while ( (line = ip.ReadLine()) != null ) { line = line.Trim(); if ( line.Length == 0 || line.StartsWith( "#" ) ) continue; try { string[] split = line.Split( '\t' ); if ( split.Length >= 2 ) { int body = Utility.ToInt32( split[0] ); int item = Utility.ToInt32( split[1] ); if ( body >= 0 && body < m_Table.Length ) m_Table[body] = item; } } catch { } } } } } }