mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 03:08:26 +00:00
Add zone store
This commit is contained in:
+1
-1
@@ -249,7 +249,7 @@ public:
|
||||
bool LoadPTimers(uint32 charid, PTimerList &into);
|
||||
bool LoadZoneNames();
|
||||
|
||||
const char* GetZoneName(uint32 zoneID, bool ErrorUnknown = false);
|
||||
const char* GetZoneName(uint32 zone_id, bool ErrorUnknown = false);
|
||||
|
||||
uint32 GetZoneGraveyardID(uint32 zone_id, uint32 version);
|
||||
uint32 GetZoneID(const char* zonename);
|
||||
|
||||
@@ -44,10 +44,10 @@ public:
|
||||
float safe_y;
|
||||
float safe_z;
|
||||
float graveyard_id;
|
||||
int8 min_level;
|
||||
int8 min_status;
|
||||
int min_level;
|
||||
int min_status;
|
||||
int zoneidnumber;
|
||||
int8 version;
|
||||
int version;
|
||||
int timezone;
|
||||
int maxclients;
|
||||
int ruleset;
|
||||
@@ -57,46 +57,46 @@ public:
|
||||
float maxclip;
|
||||
float fog_minclip;
|
||||
float fog_maxclip;
|
||||
int8 fog_blue;
|
||||
int8 fog_red;
|
||||
int8 fog_green;
|
||||
int8 sky;
|
||||
int8 ztype;
|
||||
int fog_blue;
|
||||
int fog_red;
|
||||
int fog_green;
|
||||
int sky;
|
||||
int ztype;
|
||||
float zone_exp_multiplier;
|
||||
float walkspeed;
|
||||
int8 time_type;
|
||||
int8 fog_red1;
|
||||
int8 fog_green1;
|
||||
int8 fog_blue1;
|
||||
int time_type;
|
||||
int fog_red1;
|
||||
int fog_green1;
|
||||
int fog_blue1;
|
||||
float fog_minclip1;
|
||||
float fog_maxclip1;
|
||||
int8 fog_red2;
|
||||
int8 fog_green2;
|
||||
int8 fog_blue2;
|
||||
int fog_red2;
|
||||
int fog_green2;
|
||||
int fog_blue2;
|
||||
float fog_minclip2;
|
||||
float fog_maxclip2;
|
||||
int8 fog_red3;
|
||||
int8 fog_green3;
|
||||
int8 fog_blue3;
|
||||
int fog_red3;
|
||||
int fog_green3;
|
||||
int fog_blue3;
|
||||
float fog_minclip3;
|
||||
float fog_maxclip3;
|
||||
int8 fog_red4;
|
||||
int8 fog_green4;
|
||||
int8 fog_blue4;
|
||||
int fog_red4;
|
||||
int fog_green4;
|
||||
int fog_blue4;
|
||||
float fog_minclip4;
|
||||
float fog_maxclip4;
|
||||
float fog_density;
|
||||
std::string flag_needed;
|
||||
int8 canbind;
|
||||
int8 cancombat;
|
||||
int8 canlevitate;
|
||||
int8 castoutdoor;
|
||||
int8 hotzone;
|
||||
int8 insttype;
|
||||
int canbind;
|
||||
int cancombat;
|
||||
int canlevitate;
|
||||
int castoutdoor;
|
||||
int hotzone;
|
||||
int insttype;
|
||||
int shutdowndelay;
|
||||
int8 peqzone;
|
||||
int8 expansion;
|
||||
int8 suspendbuffs;
|
||||
int peqzone;
|
||||
int expansion;
|
||||
int suspendbuffs;
|
||||
int rain_chance1;
|
||||
int rain_chance2;
|
||||
int rain_chance3;
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
int snow_duration4;
|
||||
float gravity;
|
||||
int type;
|
||||
int8 skylock;
|
||||
int skylock;
|
||||
int fast_regen_hp;
|
||||
int fast_regen_mana;
|
||||
int fast_regen_endurance;
|
||||
|
||||
+153
-117
@@ -1,25 +1,27 @@
|
||||
/* EQEMu: Everquest Server Emulator
|
||||
Copyright (C) 2001-2016 EQEMu Development Team (http://eqemulator.org)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
||||
are required to give you total support for your newly bought product;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
/**
|
||||
* EQEmulator: Everquest Server Emulator
|
||||
* Copyright (C) 2001-2020 EQEmulator Development Team (https://github.com/EQEmu/Server)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY except by those people which sell it, which
|
||||
* are required to give you total support for your newly bought product;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SHAREDDB_H_
|
||||
#define SHAREDDB_H_
|
||||
|
||||
#define MAX_ITEM_ID 200000
|
||||
#define MAX_ITEM_ID 200000
|
||||
|
||||
#include "database.h"
|
||||
#include "skills.h"
|
||||
@@ -41,8 +43,7 @@ struct NPCFactionList;
|
||||
struct LootTable_Struct;
|
||||
struct LootDrop_Struct;
|
||||
|
||||
namespace EQEmu
|
||||
{
|
||||
namespace EQEmu {
|
||||
struct ItemData;
|
||||
class ItemInstance;
|
||||
class InventoryProfile;
|
||||
@@ -54,114 +55,149 @@ namespace EQEmu
|
||||
and is mainly here to facilitate shared memory, and other
|
||||
things which only world and zone need.
|
||||
*/
|
||||
class SharedDatabase : public Database
|
||||
{
|
||||
public:
|
||||
SharedDatabase();
|
||||
SharedDatabase(const char* host, const char* user, const char* passwd, const char* database, uint32 port);
|
||||
virtual ~SharedDatabase();
|
||||
class SharedDatabase : public Database {
|
||||
public:
|
||||
SharedDatabase();
|
||||
SharedDatabase(const char *host, const char *user, const char *passwd, const char *database, uint32 port);
|
||||
virtual ~SharedDatabase();
|
||||
|
||||
/*
|
||||
General Character Related Stuff
|
||||
*/
|
||||
bool SetGMSpeed(uint32 account_id, uint8 gmspeed);
|
||||
uint8 GetGMSpeed(uint32 account_id);
|
||||
bool SetHideMe(uint32 account_id, uint8 hideme);
|
||||
int32 DeleteStalePlayerCorpses();
|
||||
void LoadCharacterInspectMessage(uint32 character_id, InspectMessage_Struct* message);
|
||||
void SaveCharacterInspectMessage(uint32 character_id, const InspectMessage_Struct* message);
|
||||
bool GetCommandSettings(std::map<std::string, std::pair<uint8, std::vector<std::string>>> &command_settings);
|
||||
bool UpdateInjectedCommandSettings(const std::vector<std::pair<std::string, uint8>> &injected);
|
||||
bool UpdateOrphanedCommandSettings(const std::vector<std::string> &orphaned);
|
||||
uint32 GetTotalTimeEntitledOnAccount(uint32 AccountID);
|
||||
void SetMailKey(int CharID, int IPAddress, int MailKey);
|
||||
std::string GetMailKey(int CharID, bool key_only = false);
|
||||
/**
|
||||
* Character
|
||||
*/
|
||||
bool SetGMSpeed(uint32 account_id, uint8 gmspeed);
|
||||
uint8 GetGMSpeed(uint32 account_id);
|
||||
bool SetHideMe(uint32 account_id, uint8 hideme);
|
||||
int32 DeleteStalePlayerCorpses();
|
||||
void LoadCharacterInspectMessage(uint32 character_id, InspectMessage_Struct *message);
|
||||
void SaveCharacterInspectMessage(uint32 character_id, const InspectMessage_Struct *message);
|
||||
bool GetCommandSettings(std::map<std::string, std::pair<uint8, std::vector<std::string>>> &command_settings);
|
||||
bool UpdateInjectedCommandSettings(const std::vector<std::pair<std::string, uint8>> &injected);
|
||||
bool UpdateOrphanedCommandSettings(const std::vector<std::string> &orphaned);
|
||||
uint32 GetTotalTimeEntitledOnAccount(uint32 AccountID);
|
||||
void SetMailKey(int CharID, int IPAddress, int MailKey);
|
||||
std::string GetMailKey(int CharID, bool key_only = false);
|
||||
bool SaveCursor(
|
||||
uint32 char_id,
|
||||
std::list<EQEmu::ItemInstance *>::const_iterator &start,
|
||||
std::list<EQEmu::ItemInstance *>::const_iterator &end
|
||||
);
|
||||
bool SaveInventory(uint32 char_id, const EQEmu::ItemInstance *inst, int16 slot_id);
|
||||
bool DeleteSharedBankSlot(uint32 char_id, int16 slot_id);
|
||||
bool DeleteInventorySlot(uint32 char_id, int16 slot_id);
|
||||
bool UpdateInventorySlot(uint32 char_id, const EQEmu::ItemInstance *inst, int16 slot_id);
|
||||
bool UpdateSharedBankSlot(uint32 char_id, const EQEmu::ItemInstance *inst, int16 slot_id);
|
||||
bool VerifyInventory(uint32 account_id, int16 slot_id, const EQEmu::ItemInstance *inst);
|
||||
bool GetSharedBank(uint32 id, EQEmu::InventoryProfile *inv, bool is_charid);
|
||||
int32 GetSharedPlatinum(uint32 account_id);
|
||||
bool SetSharedPlatinum(uint32 account_id, int32 amount_to_add);
|
||||
bool GetInventory(uint32 char_id, EQEmu::InventoryProfile *inv);
|
||||
bool GetInventory(uint32 account_id, char *name, EQEmu::InventoryProfile *inv); // deprecated
|
||||
std::map<uint32, uint32> GetItemRecastTimestamps(uint32 char_id);
|
||||
uint32 GetItemRecastTimestamp(uint32 char_id, uint32 recast_type);
|
||||
void ClearOldRecastTimestamps(uint32 char_id);
|
||||
bool SetStartingItems(
|
||||
PlayerProfile_Struct *pp,
|
||||
EQEmu::InventoryProfile *inv,
|
||||
uint32 si_race,
|
||||
uint32 si_class,
|
||||
uint32 si_deity,
|
||||
uint32 si_current_zone,
|
||||
char *si_name,
|
||||
int admin
|
||||
);
|
||||
|
||||
/*
|
||||
Character InventoryProfile
|
||||
*/
|
||||
bool SaveCursor(uint32 char_id, std::list<EQEmu::ItemInstance*>::const_iterator &start, std::list<EQEmu::ItemInstance*>::const_iterator &end);
|
||||
bool SaveInventory(uint32 char_id, const EQEmu::ItemInstance* inst, int16 slot_id);
|
||||
bool DeleteSharedBankSlot(uint32 char_id, int16 slot_id);
|
||||
bool DeleteInventorySlot(uint32 char_id, int16 slot_id);
|
||||
bool UpdateInventorySlot(uint32 char_id, const EQEmu::ItemInstance* inst, int16 slot_id);
|
||||
bool UpdateSharedBankSlot(uint32 char_id, const EQEmu::ItemInstance* inst, int16 slot_id);
|
||||
bool VerifyInventory(uint32 account_id, int16 slot_id, const EQEmu::ItemInstance* inst);
|
||||
bool GetSharedBank(uint32 id, EQEmu::InventoryProfile* inv, bool is_charid);
|
||||
int32 GetSharedPlatinum(uint32 account_id);
|
||||
bool SetSharedPlatinum(uint32 account_id, int32 amount_to_add);
|
||||
bool GetInventory(uint32 char_id, EQEmu::InventoryProfile* inv);
|
||||
bool GetInventory(uint32 account_id, char* name, EQEmu::InventoryProfile* inv); // deprecated
|
||||
std::map<uint32, uint32> GetItemRecastTimestamps(uint32 char_id);
|
||||
uint32 GetItemRecastTimestamp(uint32 char_id, uint32 recast_type);
|
||||
void ClearOldRecastTimestamps(uint32 char_id);
|
||||
bool SetStartingItems(PlayerProfile_Struct* pp, EQEmu::InventoryProfile* inv, uint32 si_race, uint32 si_class, uint32 si_deity, uint32 si_current_zone, char* si_name, int admin);
|
||||
std::string GetBook(const char *txtfile, int16 *language);
|
||||
|
||||
/**
|
||||
* items
|
||||
*/
|
||||
EQEmu::ItemInstance *CreateItem(
|
||||
uint32 item_id,
|
||||
int16 charges = 0,
|
||||
uint32 aug1 = 0,
|
||||
uint32 aug2 = 0,
|
||||
uint32 aug3 = 0,
|
||||
uint32 aug4 = 0,
|
||||
uint32 aug5 = 0,
|
||||
uint32 aug6 = 0,
|
||||
uint8 attuned = 0
|
||||
);
|
||||
EQEmu::ItemInstance *CreateItem(
|
||||
const EQEmu::ItemData *item,
|
||||
int16 charges = 0,
|
||||
uint32 aug1 = 0,
|
||||
uint32 aug2 = 0,
|
||||
uint32 aug3 = 0,
|
||||
uint32 aug4 = 0,
|
||||
uint32 aug5 = 0,
|
||||
uint32 aug6 = 0,
|
||||
uint8 attuned = 0
|
||||
);
|
||||
EQEmu::ItemInstance *CreateBaseItem(const EQEmu::ItemData *item, int16 charges = 0);
|
||||
|
||||
std::string GetBook(const char *txtfile, int16 *language);
|
||||
void GetItemsCount(int32 &item_count, uint32 &max_id);
|
||||
void LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id);
|
||||
bool LoadItems(const std::string &prefix);
|
||||
const EQEmu::ItemData *IterateItems(uint32 *id);
|
||||
const EQEmu::ItemData *GetItem(uint32 id);
|
||||
const EvolveInfo *GetEvolveInfo(uint32 loregroup);
|
||||
|
||||
/*
|
||||
Item Methods
|
||||
*/
|
||||
EQEmu::ItemInstance* CreateItem(uint32 item_id, int16 charges = 0, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, uint32 aug6 = 0, uint8 attuned = 0);
|
||||
EQEmu::ItemInstance* CreateItem(const EQEmu::ItemData* item, int16 charges = 0, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, uint32 aug6 = 0, uint8 attuned = 0);
|
||||
EQEmu::ItemInstance* CreateBaseItem(const EQEmu::ItemData* item, int16 charges = 0);
|
||||
/**
|
||||
* faction
|
||||
*/
|
||||
void GetFactionListInfo(uint32 &list_count, uint32 &max_lists);
|
||||
const NPCFactionList *GetNPCFactionEntry(uint32 id);
|
||||
void LoadNPCFactionLists(void *data, uint32 size, uint32 list_count, uint32 max_lists);
|
||||
bool LoadNPCFactionLists(const std::string &prefix);
|
||||
|
||||
/*
|
||||
Shared Memory crap
|
||||
*/
|
||||
/**
|
||||
* loot
|
||||
*/
|
||||
void GetLootTableInfo(uint32 &loot_table_count, uint32 &max_loot_table, uint32 &loot_table_entries);
|
||||
void GetLootDropInfo(uint32 &loot_drop_count, uint32 &max_loot_drop, uint32 &loot_drop_entries);
|
||||
void LoadLootTables(void *data, uint32 size);
|
||||
void LoadLootDrops(void *data, uint32 size);
|
||||
bool LoadLoot(const std::string &prefix);
|
||||
const LootTable_Struct *GetLootTable(uint32 loottable_id);
|
||||
const LootDrop_Struct *GetLootDrop(uint32 lootdrop_id);
|
||||
|
||||
//items
|
||||
void GetItemsCount(int32 &item_count, uint32 &max_id);
|
||||
void LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id);
|
||||
bool LoadItems(const std::string &prefix);
|
||||
const EQEmu::ItemData* IterateItems(uint32* id);
|
||||
const EQEmu::ItemData* GetItem(uint32 id);
|
||||
const EvolveInfo* GetEvolveInfo(uint32 loregroup);
|
||||
/**
|
||||
* skills
|
||||
*/
|
||||
void LoadSkillCaps(void *data);
|
||||
bool LoadSkillCaps(const std::string &prefix);
|
||||
uint16 GetSkillCap(uint8 Class_, EQEmu::skills::SkillType Skill, uint8 Level);
|
||||
uint8 GetTrainLevel(uint8 Class_, EQEmu::skills::SkillType Skill, uint8 Level);
|
||||
|
||||
//faction lists
|
||||
void GetFactionListInfo(uint32 &list_count, uint32 &max_lists);
|
||||
const NPCFactionList* GetNPCFactionEntry(uint32 id);
|
||||
void LoadNPCFactionLists(void *data, uint32 size, uint32 list_count, uint32 max_lists);
|
||||
bool LoadNPCFactionLists(const std::string &prefix);
|
||||
/**
|
||||
* spells
|
||||
*/
|
||||
int GetMaxSpellID();
|
||||
bool LoadSpells(const std::string &prefix, int32 *records, const SPDat_Spell_Struct **sp);
|
||||
void LoadSpells(void *data, int max_spells);
|
||||
void LoadDamageShieldTypes(SPDat_Spell_Struct *sp, int32 iMaxSpellID);
|
||||
|
||||
//loot
|
||||
void GetLootTableInfo(uint32 &loot_table_count, uint32 &max_loot_table, uint32 &loot_table_entries);
|
||||
void GetLootDropInfo(uint32 &loot_drop_count, uint32 &max_loot_drop, uint32 &loot_drop_entries);
|
||||
void LoadLootTables(void *data, uint32 size);
|
||||
void LoadLootDrops(void *data, uint32 size);
|
||||
bool LoadLoot(const std::string &prefix);
|
||||
const LootTable_Struct* GetLootTable(uint32 loottable_id);
|
||||
const LootDrop_Struct* GetLootDrop(uint32 lootdrop_id);
|
||||
/**
|
||||
* basedata
|
||||
*/
|
||||
int GetMaxBaseDataLevel();
|
||||
bool LoadBaseData(const std::string &prefix);
|
||||
void LoadBaseData(void *data, int max_level);
|
||||
const BaseDataStruct *GetBaseData(int lvl, int cl);
|
||||
|
||||
void LoadSkillCaps(void *data);
|
||||
bool LoadSkillCaps(const std::string &prefix);
|
||||
uint16 GetSkillCap(uint8 Class_, EQEmu::skills::SkillType Skill, uint8 Level);
|
||||
uint8 GetTrainLevel(uint8 Class_, EQEmu::skills::SkillType Skill, uint8 Level);
|
||||
protected:
|
||||
|
||||
int GetMaxSpellID();
|
||||
bool LoadSpells(const std::string &prefix, int32 *records, const SPDat_Spell_Struct **sp);
|
||||
void LoadSpells(void *data, int max_spells);
|
||||
void LoadDamageShieldTypes(SPDat_Spell_Struct* sp, int32 iMaxSpellID);
|
||||
|
||||
int GetMaxBaseDataLevel();
|
||||
bool LoadBaseData(const std::string &prefix);
|
||||
void LoadBaseData(void *data, int max_level);
|
||||
const BaseDataStruct* GetBaseData(int lvl, int cl);
|
||||
|
||||
protected:
|
||||
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> skill_caps_mmf;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> items_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryHashSet<EQEmu::ItemData>> items_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> faction_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryHashSet<NPCFactionList>> faction_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> loot_table_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryVariableHashSet<LootTable_Struct>> loot_table_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> loot_drop_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryVariableHashSet<LootDrop_Struct>> loot_drop_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> base_data_mmf;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> spells_mmf;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> skill_caps_mmf;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> items_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryHashSet<EQEmu::ItemData>> items_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> faction_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryHashSet<NPCFactionList>> faction_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> loot_table_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryVariableHashSet<LootTable_Struct>> loot_table_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> loot_drop_mmf;
|
||||
std::unique_ptr<EQEmu::FixedMemoryVariableHashSet<LootDrop_Struct>> loot_drop_hash;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> base_data_mmf;
|
||||
std::unique_ptr<EQEmu::MemoryMappedFile> spells_mmf;
|
||||
};
|
||||
|
||||
#endif /*SHAREDDB_H_*/
|
||||
|
||||
Reference in New Issue
Block a user