Code:
case 1005:
{
sbyte AddX = 0;
sbyte AddY = 0;
byte Dir = (byte)(Data[8] % 8);
MyChar.Direction = Dir;
switch (Dir)
{
case 0:
{
AddY = 1;
break;
}
case 1:
{
AddX = -1;
AddY = 1;
break;
}
case 2:
{
AddX = -1;
break;
}
case 3:
{
AddX = -1;
AddY = -1;
break;
}
case 4:
{
AddY = -1;
break;
}
case 5:
{
AddX = 1;
AddY = -1;
break;
}
case 6:
{
AddX = 1;
break;
}
case 7:
{
AddY = 1;
AddX = 1;
break;
}
int LocX = 0;
int LocY = 0;
Struct.GameMap DMD = new Struct.GameMap("gamemap.dat");
foreach (Struct.DMap _Map in DMD.Maps)
{
if (!General.Maps.ContainsKey((int)_Map.MapId))
{
Struct.DmapData Mapping = General.Maps[(int)_Map.MapId];
if (!Mapping.CheckLoc((ushort)(LocX + AddX), (ushort)(LocY + AddY)))
{
MyChar.LocX = MyChar.PrevX;
MyChar.LocY = MyChar.PrevY;
}
}
}
}
World.PlayerMoves(MyChar, Data);
MyChar.PrevX = MyChar.LocX;
MyChar.PrevY = MyChar.LocY;
MyChar.LocX = (ushort)(MyChar.LocX + AddX);
MyChar.LocY = (ushort)(MyChar.LocY + AddY);
MyChar.TargetUID = 0;
MyChar.MobTarget = null;
MyChar.PTarget = null;
MyChar.TGTarget = null;
MyChar.AtkType = 0;
MyChar.SkillLooping = 0;
MyChar.Action = 100;
World.SpawnMeToOthers(MyChar, true);
World.SpawnOthersToMe(MyChar, true);
World.SurroundNPCs(MyChar, true);
World.SurroundMobs(MyChar, true);
World.SurroundDroppedItems(MyChar, true);
MyChar.Attacking = false;
if (MyChar.Mining)
MyChar.Mining = false;
break;
}






