#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-03 20:19:48 -04:00
commit 8eae46895e
7512 changed files with 416187 additions and 0 deletions

304
Scripts/Regions/LandMap.cs Normal file
View file

@ -0,0 +1,304 @@
using System;
using Server;
using Server.Gumps;
using Server.Network;
using Server.Mobiles;
using Server.Commands;
namespace Server.Misc
{
public class MapFunctions
{
public static void Initialize()
{
CommandSystem.Register( "Map", AccessLevel.Player, new CommandEventHandler( EventSink_OnCommand ) );
}
[Usage( "Map" )]
[Description( "Brings up the World Map." )]
public static void EventSink_OnCommand( CommandEventArgs e )
{
(e.Mobile).CloseGump( typeof( MapGump ) );
(e.Mobile).SendGump( new MapGump( e.Mobile ) );
}
public static int NumLocations()
{
return 83;
}
public static bool HasLocation( PlayerMobile pm, int location )
{
string s = pm.MapMarkers;
int i = (location-1) * 2;
char c = s[i];
if ( c == '1' )
return true;
return false;
}
public static string SetLocations( PlayerMobile pm )
{
string locations = pm.MapMarkers;
if ( locations == null || locations.Length < ( NumLocations() * 2 ) )
{
int cycle = NumLocations();
while ( cycle > 0 )
{
cycle--;
locations = locations + "1#"; // CHANGE THIS AFTER TESTING ------------------------------------------------------------------
}
pm.MapMarkers = locations;
}
return locations;
}
public static void AddLocations( Mobile m, int location )
{
if ( m != null && m is PlayerMobile )
{
string locations = ((PlayerMobile)m).MapMarkers;
locations = SetLocations( (PlayerMobile)m );
if ( locations.Length > 0 )
{
string[] discoveries = locations.Split('#');
string entry = "";
int num = 1;
foreach ( string keyset in discoveries )
{
string sets = "1";
if ( keyset != "1" ){ sets = "0"; }
if ( location == num ){ entry = entry + "1#"; }
else { entry = entry + sets + "#"; }
num++;
}
while ( num < NumLocations()+1 )
{
entry = entry + "0#";
num++;
}
((PlayerMobile)m).MapMarkers = entry;
}
}
}
public static int Pin( int x, int n )
{
if ( x < 1 )
n++;
else
n=0;
return n;
}
public static string LocationInfo( int loc, int section )
{
string name = "";
int x = 0;
int y = 0;
string c = "";
string i = "true";
int d = 0;
int nxt = 1;
int hue = 0;
int s = 0;
if ( loc == nxt ){ name = "Britain"; x=2169; y=1579; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Yew"; x=1534; y=863; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Prison"; x=1003; y=969; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Minoc"; x=2879; y=486; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Skara Brae"; d = 2; x=738; y=1871; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Jhelom"; x=1065; y=3157; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Trinsic"; x=2029; y=2630; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Paws"; x=1983; y=2163; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Buccaneer's Den"; x=2644; y=2213; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Magincia"; x=3429; y=2427; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Moonglow"; x=4153; y=1982; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Lyceum"; d = 1; x=3865; y=1627; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Zoo"; x=4048; y=1681; } nxt = Pin( x, nxt );
if ( x < 1 ){ hue++; }
if ( loc == nxt ){ name = "Deceit"; d = 2; x=4194; y=1308; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Despise"; x=1649; y=1223; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Destard"; x=1536; y=2636; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Wrong"; x=2403; y=625; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Covetous"; x=2888; y=658; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Shame"; x=1383; y=1741; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Hythloth"; x=4240; y=3397; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Stygian Abyss"; d = 1; x=4209; y=2962; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Terathan Keep"; x=5298; y=1132; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Ancient Pyramid"; x=5494; y=678; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Wailing Halls"; x=1548; y=1081; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Exodus Ruins"; x=669; y=3480; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Silent Tomb"; d = 1; x=2048; y=1935; } nxt = Pin( x, nxt );
if ( x < 1 ){ hue++; s=0; }
if ( loc == nxt ){ name = "Deep Forest"; x=1081; y=1110; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Lock Lake"; x=2453; y=1301; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Lost Hope Bay"; x=2569; y=720; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "High Steppes"; x=2297; y=885; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Bog of Desolation"; x=1925; y=2381; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Brittany Bay"; x=2017; y=1721; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Drylands"; x=3685; y=1017; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Bloody Plains"; x=3033; y=825; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Isle of the Avatar"; x=3951; y=3545; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Terfin"; x=3419; y=3189; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Abandoned Isles"; x=1325; y=3440; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Deadman Isles"; x=2437; y=3273; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Valorian Isles"; x=997; y=2641; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Spiritwood"; x=1061; y=2001; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Isle of Fire"; x=537; y=3273; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Verity Isle"; x=4053; y=1801; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Dagger Isle"; x=4141; y=960; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Janus Isle"; x=4268; y=1245; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Spektran"; x=3193; y=3001; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Cape of Heroes"; x=1770; y=3161; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Serpent Isle"; x=5277; y=858; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Restful Dunes"; x=6084; y=2237; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Daemon Islands"; x=4888; y=2105; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Isles of the Dead"; x=2185; y=1928; } nxt = Pin( x, nxt );
if ( x < 1 ){ hue++; s=0; }
if ( loc == nxt ){ name = "Humility"; d = 2; x=4127; y=3000; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Honesty"; x=4137; y=1091; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Sacrifice"; x=3743; y=927; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Justice"; d = 1; x=1653; y=548; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Compassion"; x=2488; y=1482; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Spirituality"; d = 1; x=1003; y=1852; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Valor"; d = 1; x=1244; y=3411; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Honor"; x=1876; y=2824; } nxt = Pin( x, nxt );
if ( x < 1 ){ hue++; s=1; }
if ( loc == nxt ){ name = "Brigands"; x=1165; y=1177; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Hobgoblins"; x=1231; y=1059; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Graveyard"; x=1548; y=1016; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Graveyard"; x=2655; y=524; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Savages"; d = 1; x=5648; y=626; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Savages"; x=5774; y=1301; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Cemetery"; x=3432; y=1041; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Brigands"; x=3074; y=1120; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Orcs"; x=2209; y=819; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Graveyard"; x=547; y=1758; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Ratmen"; x=1291; y=2253; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Brigands"; x=4245; y=1721; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Cemetery"; x=4012; y=1879; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Hobgoblins"; x=5747; y=1869; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Savages"; x=6386; y=1744; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Graveyard"; d = 1; x=3517; y=2363; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Brigands"; x=2078; y=2904; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Cemetery"; d = 2; x=1888; y=2658; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Ratmen"; x=1602; y=2790; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Graveyard"; x=989; y=3025; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Orcs"; x=2349; y=3425; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Cemetery"; x=2203; y=2104; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Spider Cave"; x=739; y=1206; } nxt = Pin( x, nxt );
if ( x < 1 ){ hue++; s=0; }
if ( loc == nxt ){ name = "Goblin Keep"; x=1951; y=1274; } nxt = Pin( x, nxt );
if ( loc == nxt ){ name = "Plunderer's Port"; x=6589; y=2370; } nxt = Pin( x, nxt );
if ( hue == 0 ){ c = "#FCFF00"; } // YELLOW Towns
else if ( hue == 1 ){ c = "#FF0000"; } // RED Dungeons
else if ( hue == 2 ){ c = "#00FF0C"; i = "false"; } // GREEN Lands
else if ( hue == 3 ){ c = "#00A8FF"; } // BLUE Shrines
else if ( hue == 4 ){ c = "#FFA200"; i = "false"; } // ORANGE Places
else if ( hue == 5 ){ c = "#D200FF"; } // PURPLE Danger
else if ( hue == 6 ){ c = "#00FFFF"; } // AQUA ???????
string xx = ((int)(x/4)).ToString();
string yy = ((int)(y/4)).ToString();
if ( section == 1 )
return xx;
else if ( section == 2 )
return yy;
else if ( section == 3 )
return c;
else if ( section == 4 )
return i;
else if ( section == 5 )
return d.ToString();
else if ( section == 6 )
return s.ToString();
return name;
}
}
public class MapGump : Gump
{
public MapGump( Mobile m ) : base( 0, 0 )
{
MapFunctions.SetLocations( (PlayerMobile)m );
int cycle = MapFunctions.NumLocations();
int spot = 0;
int xx = 30;
int yy = 5;
int x = 0;
int y = 0;
this.Closable=true;
this.Disposable=true;
this.Dragable=true;
this.Resizable=false;
AddPage(0);
AddImage(xx, yy, 12105);
AddImage(0, 0, 12104);
bool icon = true;
int d = 0;
int s = 0;
string s1 = "";
string s2 = "";
while ( cycle > 0 )
{
cycle--;
spot++;
if ( MapFunctions.HasLocation( (PlayerMobile)m, spot ) )
{
x = xx-7 + int.Parse( MapFunctions.LocationInfo( spot, 1 ) );
y = yy-7 + int.Parse( MapFunctions.LocationInfo( spot, 2 ) );
icon = bool.Parse( MapFunctions.LocationInfo( spot, 4 ) );
d = int.Parse( MapFunctions.LocationInfo( spot, 5 ) );
s = int.Parse( MapFunctions.LocationInfo( spot, 6 ) );
if ( x > 0 )
{
s1 = "<BIG>";
s2 = "</BIG>";
if ( s == 1 )
{
s1 = "";
s2 = "";
}
if ( icon ){ AddImage(x, y, 12106); x=x+15; }
if ( d == 1 ){ x = x - 16; y = y - 18; }
else if ( d == 2 ){ x = x - 15; y = y + 12; }
AddHtml( x, y, 200, 48, @"<BODY><BASEFONT Color=" + MapFunctions.LocationInfo( spot, 3 ) + ">" + s1 + MapFunctions.LocationInfo( spot, 0 ) + s2 + "</BASEFONT></BODY>", (bool)false, (bool)false);
}
}
}
}
}
}