mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-07 13:45:42 +12:00
Fix map data hopefully.
This commit is contained in:
parent
b80984b92e
commit
83e274c828
7 changed files with 170 additions and 144 deletions
Binary file not shown.
|
@ -105,7 +105,7 @@ namespace HISP.Game.Items
|
|||
public static void DespawnItems()
|
||||
{
|
||||
Database.DecrementDroppedItemDespawnTimer();
|
||||
|
||||
Database.RemoveDespawningItems(); // GO-GO-GO-GOGOGOGO GOTTA GO FAST!!!
|
||||
for (int i = 0; i < droppedItemsList.Count; i++)
|
||||
{
|
||||
if (droppedItemsList[i] == null) // Item removed in another thread.
|
||||
|
@ -120,7 +120,7 @@ namespace HISP.Game.Items
|
|||
|
||||
Logger.DebugPrint("Despawned Item at " + droppedItemsList[i].X + ", " + droppedItemsList[i].Y);
|
||||
droppedItemsList.Remove(droppedItemsList[i]);
|
||||
Database.RemoveDroppedItem(droppedItemsList[i].Instance.RandomId);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,20 +134,26 @@ namespace HISP.Game.Items
|
|||
droppedItemsList.Add(droppedItem);
|
||||
Database.AddDroppedItem(droppedItem);
|
||||
}
|
||||
public static void GenerateItems()
|
||||
public static void GenerateItems(bool isFirstLoad=false)
|
||||
{
|
||||
|
||||
if (isFirstLoad)
|
||||
Logger.InfoPrint("Generating items, (this may take awhile on a fresh database!)");
|
||||
else
|
||||
Logger.InfoPrint("Generating items.");
|
||||
|
||||
int newItems = 0;
|
||||
foreach (Item.ItemInformation item in Item.Items)
|
||||
{
|
||||
int count = GetCountOfItem(item);
|
||||
while (count < item.SpawnParamaters.SpawnCap)
|
||||
do
|
||||
{
|
||||
if (count < item.SpawnParamaters.SpawnCap)
|
||||
{
|
||||
|
||||
count++;
|
||||
int despawnTimer = 1440;
|
||||
if (isFirstLoad)
|
||||
despawnTimer = GameServer.RandomNumberGenerator.Next(0, 1440 + 1);
|
||||
|
||||
if (item.SpawnParamaters.SpawnInZone != null)
|
||||
{
|
||||
|
@ -315,20 +321,20 @@ namespace HISP.Game.Items
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} while (isFirstLoad && (count < item.SpawnParamaters.SpawnCap));
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
ReadFromDatabase();
|
||||
GenerateItems();
|
||||
GenerateItems(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ namespace HISP.Game
|
|||
Logger.ErrorPrint("Map file not found.");
|
||||
return;
|
||||
}
|
||||
|
||||
Logger.InfoPrint("Loading Map Data (" + ConfigReader.MapFile + ")");
|
||||
|
||||
byte[] worldMap = File.ReadAllBytes(ConfigReader.MapFile);
|
||||
|
||||
|
@ -118,7 +118,6 @@ namespace HISP.Game
|
|||
oMapData = new byte[Width * Height];
|
||||
int ii = 8;
|
||||
|
||||
|
||||
for (int i = 0; i < MapData.Length; i++)
|
||||
{
|
||||
oMapData[i] = worldMap[ii];
|
||||
|
@ -127,6 +126,7 @@ namespace HISP.Game
|
|||
}
|
||||
|
||||
worldMap = null;
|
||||
Logger.InfoPrint("Map Data Loaded!");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -191,7 +191,11 @@ namespace HISP.Game
|
|||
return;
|
||||
|
||||
if (UdlrScriptPos >= UDLRScript.Length)
|
||||
{
|
||||
X = UDLRStartX;
|
||||
Y = UDLRStartY;
|
||||
UdlrScriptPos = 0;
|
||||
}
|
||||
|
||||
switch (UDLRScript.ToLower()[UdlrScriptPos])
|
||||
{
|
||||
|
|
|
@ -3936,6 +3936,21 @@ namespace HISP.Server
|
|||
}
|
||||
}
|
||||
|
||||
public static void RemoveDespawningItems()
|
||||
{
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
{
|
||||
db.Open();
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
|
||||
sqlCommand.CommandText = "DELETE FROM droppeditems WHERE despawnTimer <=0";
|
||||
sqlCommand.Prepare();
|
||||
sqlCommand.ExecuteNonQuery();
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void RemoveDroppedItem(int randomId)
|
||||
{
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
|
@ -3984,7 +3999,7 @@ namespace HISP.Server
|
|||
|
||||
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
sqlCommand.CommandText = "UPDATE DroppedItems SET DespawnTimer=DespawnTimer-5";
|
||||
sqlCommand.CommandText = "UPDATE DroppedItems SET DespawnTimer=DespawnTimer-1";
|
||||
sqlCommand.ExecuteNonQuery();
|
||||
sqlCommand.Dispose();
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ namespace HISP.Server
|
|||
item.Effects = effectsList;
|
||||
item.SpawnParamaters = new Item.SpawnRules();
|
||||
item.SpawnParamaters.SpawnCap = gameData.item.item_list[i].spawn_parameters.spawn_cap;
|
||||
item.SpawnParamaters.SpawnInZone = gameData.item.item_list[i].spawn_parameters.spawn_in_zone;
|
||||
item.SpawnParamaters.SpawnInZone = gameData.item.item_list[i].spawn_parameters.spawn_in_area;
|
||||
item.SpawnParamaters.SpawnOnTileType = gameData.item.item_list[i].spawn_parameters.spawn_on_tile_type;
|
||||
item.SpawnParamaters.SpawnOnSpecialTile = gameData.item.item_list[i].spawn_parameters.spawn_on_special_tile;
|
||||
item.SpawnParamaters.SpawnNearSpecialTile = gameData.item.item_list[i].spawn_parameters.spawn_near_special_tile;
|
||||
|
|
|
@ -130,8 +130,6 @@ namespace HISP.Server
|
|||
if (totalMinutesElapsed % 5 == 0)
|
||||
{
|
||||
Treasure.AddValue();
|
||||
DroppedItems.DespawnItems();
|
||||
DroppedItems.GenerateItems();
|
||||
}
|
||||
|
||||
|
||||
|
@ -171,6 +169,9 @@ namespace HISP.Server
|
|||
Database.TpOfflinePlayersBackToUniterForOfflinePlayers();
|
||||
Database.DeleteExpiredLeasedHorsesForOfflinePlayers();
|
||||
|
||||
DroppedItems.DespawnItems();
|
||||
DroppedItems.GenerateItems();
|
||||
|
||||
|
||||
WildHorse.Update();
|
||||
Npc.WanderNpcs();
|
||||
|
|
Loading…
Add table
Reference in a new issue