26 #ifndef __USERMANAGER_H__ 27 #define __USERMANAGER_H__ 46 class PendingDuelInvite;
136 int &theirPhysicalLevel,
int &theirMagicalLevel,
137 int &physicalDiff,
int &magicalDiff,
int &overallLevelComparison);
206 bool LoadEmotes(
const char* xmlfile, iVFS* vfs);
225 void Emote(csString general, csString specific, csString animation,
gemActor* actor);
262 bool WhoProcessClient(
Client* curr,
int guildId, csString* message, csString filter,
bool check,
unsigned* count);
void HandleTraining(psUserCmdMessage &msg, Client *client)
Handles a player command to start training with targeted entity.
void HandleGMEvents(Client *client)
Sends a client a list of their current assigned event.
void Guard(Client *client, gemObject *object, csString action)
Handles a player command to guard/unguard an item.
Manages CEL entities on the server.
void HandleMarriage(psUserCmdMessage &msg, Client *client)
Command to marry/divorce someone.
void Assist(psUserCmdMessage &msg, Client *client)
Handles an /Assist command comming from the client.
void HandleUserCommand(MsgEntry *me, Client *client)
Take a user command from a client, and send it to be handled by a function.
void HandleEntranceMessage(MsgEntry *me, Client *client)
void HandleBanking(psUserCmdMessage &msg, Client *client)
Handles a player command to start banking with the targeted entity.
bool Animation(csString animation, gemActor *actor)
This function will start an animation on the actor, it will not repeat, so if you need an animation l...
void HandleStopAttack(psUserCmdMessage &msg, Client *client)
Command to stop attacking your target.
void Emote(csString general, csString specific, csString animation, gemActor *actor)
Process an emote command.
CacheManager * cacheManager
csHash< EMOTE *, csString > emoteHash
Used to manage incoming user commands from a client.
void RollDice(psUserCmdMessage &msg, Client *client)
Calculates a dice roll from a player based on number of die and sides.
void HandleAttack(psUserCmdMessage &msg, Client *client)
Command to start attacking something.
void HandleUnmount(psUserCmdMessage &msg, Client *client)
Handles a player command to unmount.
void StopTrading(psUserCmdMessage &msg, Client *client)
Handle the /stoptrading command.
The structure of 1 queue entry (pointer to a message)
void HandleLoot(psUserCmdMessage &msg, Client *client)
Handles a /loot command from a player to loot something.
void LootMoney(gemActor *actor, Client *client)
Attempt to loot money from the target.
void StartTrading(psUserCmdMessage &msg, Client *client)
Handle the /starttrading command.
void HandleQuests(Client *client)
Sends a client a list of their current assigned quests.
void HandleDie(psUserCmdMessage &msg, Client *client)
Handles a player command to die.
void ChallengeToDuel(psUserCmdMessage &msg, Client *client)
Command to challenge someone to a duel.
void Mount(gemActor *rider, gemActor *mount)
Handles the /mount command.
void BuddyList(Client *client, int clientnum, bool filter)
Send a buddy list to a player.
void NotifyPlayerBuddies(Client *client, bool loggedon)
Send a notification to all player (non GM/Dev) clients on a person buddy list that they have logged o...
void Pickup(Client *client, csString target)
Handles a player command to pickup an item.
virtual bool Initialize(GEMSupervisor *gemsupervisor)
void ReportPosition(psUserCmdMessage &msg, Client *client)
Sends the player their current position and sector.
void GiveTip(psUserCmdMessage &msg, Client *client)
Give a tip from the database to the client.
void HandleTakeStackAll(psUserCmdMessage &me, Client *client)
Handle taking all items from a container ignoring some qualities when stacking.
void HandleGuard(psUserCmdMessage &msg, Client *client)
Handle the /guard command, send it to Guard()
Any semi-autonomous object, either a player or an NPC.
void HandleCharDetailsRequest(MsgEntry *me, Client *client)
Handle a request to send a character description.
void HandleUse(Client *client, bool on)
Handles a player request to 'use' the targeted item.
void HandleAdminCommand(psUserCmdMessage &msg, Client *client)
Handles the /admin command.
void HandleQueueAttack(psUserCmdMessage &msg, Client *client)
command to add an attack to the attackQueue
void HandleMount(psUserCmdMessage &msg, Client *client)
Handles a player command to mount.
void HandleRotate(psUserCmdMessage &msg, Client *client)
Handle the /rotate command, send it to Rotate()
void HandleTakeAll(psUserCmdMessage &me, Client *client)
Handle taking all items from a container.
void UserStatRegeneration()
void AcceptDuel(PendingDuelInvite *invite)
This is called by the Pending Invite if the duel is accepted.
void HandleRename(psUserCmdMessage &msg, Client *client)
void YieldDuel(Client *client)
Command to surrender to someone in a duel.
bool WhoProcessClient(Client *curr, int guildId, csString *message, csString filter, bool check, unsigned *count)
Formats output of a player and adds it to a message.
void HandleTargetEvent(MsgEntry *me, Client *client)
void SendCharacterDescription(Client *client, gemActor *actor, bool full, bool simple, const csString &requestor)
Sends detail information about 'charData' to 'client'.
void HandleUnstick(psUserCmdMessage &msg, Client *client)
Moves a player back to his last valid position.
void SendPlayerMoney(Client *client)
UserManager(ClientConnectionSet *pCCS, CacheManager *cachemanager, BankManager *bankmanager, EntityManager *entitymanager)
csHash< userCmdPointer, csString > userCommandHash
Hash of the user commands, the key is the command name.
void ShowNpcMenu(psUserCmdMessage &msg, Client *client)
Handles a player command to show the popup dialog menu of the currently targeted NPC, if any.
EntityManager * entityManager
This class collects data of a netclient.
void HandleClientReady(MsgEntry *me, Client *client)
void Rename(Client *client, csString *target, psItem *item)
void LootItems(gemActor *actor, Client *client, csString categories="all", uint8_t lootAction=0)
Attempt to loot all or certain items from target.
void Loot(Client *client)
Attempt to loot the target using the loot window.
bool CheckTargetLootable(gemActor *actor, Client *client)
Checks whether target is lootable.
void Attack(Stance stance, Client *client)
void HandleStand(psUserCmdMessage &msg, Client *client)
Handles a player command to stand up.
BankManager * bankManager
void HandlePickup(psUserCmdMessage &msg, Client *client)
Handle the /pickup command, send it to Pickup()
This class manages the caching of data that is unchanging during server operation.
void LogStuck(Client *client)
Helper function to log a stuck character's details.
A gemObject is any solid, graphical object visible in PS with normal physics and normal collision det...
void HandleYield(psUserCmdMessage &msg, Client *client)
Handle the yield command.
This class holds the refs to the core factories, etc in CEL.
void NotifyAllianceBuddies(Client *client, bool loggedon)
Send a notification to all clients on a person alliance if they log on/off.
void HandleMOTDRequest(MsgEntry *me, Client *client)
Sends to client the MOTD and tip, and his guild's MOTD if needed.
void(UserManager::* userCmdPointer)(psUserCmdMessage &msg, Client *client)
pointer to member function typedef, improves readability
void SwitchAttackTarget(Client *targeter, Client *targeted)
void StopAllCombat(Client *client)
Helper function to make the character stop attacking.
This class is a list of several CLient objects, it's designed for finding clients very fast based on ...
void HandleCharDescUpdate(MsgEntry *me, Client *client)
Handle a message to update a character's description.
void Rotate(Client *client, gemObject *target, csString action)
Handles a player command to rotate an item.
void CalculateComparativeDifference(psCharacter *myCharData, psCharacter *theirCharData, int &theirPhysicalLevel, int &theirMagicalLevel, int &physicalDiff, int &magicalDiff, int &overallLevelComparison)
Calcualte a comarative difference between two characters for physical, magical, and overall level...
void StrToLowerCase(csString &str)
Converts a string to lowercase.
void HandleSit(psUserCmdMessage &msg, Client *client)
Handles a player command to sit down.
void Buddy(psUserCmdMessage &msg, Client *client)
Adds/removes a person to a player's buddy list.
void GiveMOTD(psUserCmdMessage &msg, Client *client)
Sends the MOTD to the client.
void Who(psUserCmdMessage &msg, Client *client)
Send a list of the players that are online to a client.
Struct to hold our emote data.
void HandleQuestsCommand(psUserCmdMessage &msg, Client *client)
Sends a client a list of their current assigned quests and events.
void NotifyBuddies(Client *client, bool loggedon)
Send a notification to all clients on a person buddy list if they log on/off.
void NotifyGuildBuddies(Client *client, bool loggedon)
Send a notification to all clients on a person guild if they log on/off.
bool CheckForEmote(csString command, bool execute, gemActor *actor)
Check to see if command is an emote.
bool LoadEmotes(const char *xmlfile, iVFS *vfs)
Load emotes from xml.
ClientConnectionSet * clients
This class embodies item instances in the game.
Provides a manager to facilitate subscriptions.