Alright,I added the following code in Database.cs
Database.cs
After this I added the following code in Spawn.cs
Spawn.cs
But monsters / guards still doesn't spawn =\
Any help?
Database.cs
Code:
public static void GetSpawns()
{
//I've changed mob spawn code like 5 times.. this should still work though so w/e.
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
cmd.Select("MobSpawns");
uint Count = 0;
MySqlReader r = new MySqlReader(cmd);
while (r.Read())
{
MobSpawn S = new MobSpawn(r.ReadUInt16("Amount"), Dictionary.BaseMobs[r.ReadUInt16("SpawnMob")], r.ReadUInt16("X"), r.ReadUInt16("Y"), r.ReadUInt16("Spread"), r.ReadUInt16("Map"));
Count += (uint)S.Members.Count;
}
Console.WriteLine(Program.Title + " Spawning " + Count + " monsters into the world");
}
Spawn.cs
Code:
public class MobSpawn
{
public Mob MobCoords(Mob M)
{
M.X = (ushort)Program.Rand.Next(X - Spread, X + Spread);
M.Y = (ushort)Program.Rand.Next(Y - Spread, Y + Spread);
return M;
}
public MobSpawn(uint Amount, BaseMob Type, ushort BindX, ushort BindY,ushort Dist, ushort BindMap)
{
MobType = Type;
TotalSpawn = Amount;
X = BindX;
Y = BindY;
Spread = Dist;
if (!Dictionary.Maps.ContainsKey(BindMap))
{
Map = new Map(Enum.PkType.None);
Dictionary.Maps.ThreadSafeAdd(BindMap, Map);
}
else
Map = Dictionary.Maps[BindMap];
for (uint I = 0; I < Amount; I++)
{
Mob M = new Mob();
M.Map = BindMap;
M.Name = Type.Name;
M.Instance = 0;
M.Mesh = Type.Mesh;
M.MobHP = (ushort)Type.MaxHp;
M.MobLevel = Type.Level;
M.Dir = (byte)new Random().Next(1, 8);
M = MobCoords(M);
int Tries = 10;
while (Tries > 0 && !Calculations.FreeCoord(M.X, M.Y, M.Map, M.Instance))
{ M = MobCoords(M); Tries--; }
M.UID = this.Map.MobCounter + I;
Map _map = Handler.PullMap(M.Map);
this.Members.Add(M.UID, M);
_map.AddMonster(M, _map.MakeCoord(M.X, M.Y, M.Instance));
}
Map.MobCounter += Amount;
}
public Dictionary<uint, Mob> Members = new Dictionary<uint, Mob>();
BaseMob MobType;
public uint TotalSpawn;
public uint TotalDead
{
get
{
uint Count = 0;
foreach (Mob M in Members.Values)
if (!M.Alive)
Count++;
return Count;
}
}
public ushort X, Y, Spread;
public Map Map;
}
Any help?