Planeshift
messages.h File Reference
#include "net/netbase.h"
#include "net/message.h"
#include <csutil/csstring.h>
#include <csutil/array.h>
#include <csutil/stringarray.h>
#include <csutil/strset.h>
#include <csutil/databuf.h>
#include <csutil/md5.h>
#include "util/psscf.h"
#include <csgeom/vector3.h>
#include "rpgrules/psmoney.h"
#include "util/psconst.h"
#include "util/skillcache.h"
#include <ivideo/graph3d.h>
#include "bulkobjects/activespell.h"

Go to the source code of this file.

Classes

struct  psAttackQueueMessage::AAttack
 
struct  psBuddyListMsg::BuddyData
 
struct  psViewContainerDescription::ContainerContents
 
struct  psDialogMenuMessage::DialogResponse
 
struct  psFactionMessage::FactionPair
 
struct  psGMSpawnItems::Item
 
struct  psGUIInventoryMessage::ItemDescription
 A small struct to hold item info after read out of message. More...
 
struct  psGMSpawnMods::ItemModifier
 
struct  psWeatherMessage::NetWeatherInfo
 
struct  psAttackBookMessage::NetworkAttack
 
struct  psCharacterDetailsMessage::NetworkDetailSkill
 
struct  psRequestGlyphsMessage::NetworkGlyph
 
struct  psSpellBookMessage::NetworkSpell
 
struct  psGMGuiMessage::PlayerInfo
 
class  psAdminCmdMessage
 Admin commands. More...
 
class  psAdviceMessage
 
class  psAttackBookMessage
 
class  psAttackQueueMessage
 sends a message tot he client with the attack queue list More...
 
class  psAuthApprovedMessage
 Message sent from server to client if login was valid. More...
 
class  psAuthenticationMessage
 The message sent from client to server on login. More...
 
class  psAuthRejectedMessage
 Message sent from server to client if login was not valid. More...
 
class  psBuddyListMsg
 
class  psBuddyStatus
 
class  psCachedFileMessage
 Class to send a possibly cached file to the client. More...
 
class  psChannelJoinedMessage
 Message from the server with a channel id. More...
 
class  psChannelJoinMessage
 Message from a client for a request to join a chat channel. More...
 
class  psChannelLeaveMessage
 Message from a client for a request to leave a chat channel. More...
 
class  psCharacterApprovedMessage
 
class  psCharacterDescriptionUpdateMessage
 
class  psCharacterDetailsMessage
 
class  psCharacterDetailsRequestMessage
 
class  psCharacterPickerMessage
 
class  psCharCreateCPMessage
 The message sent from client to server to request a cp value for creation. More...
 
class  psCharCreateTraitsMessage
 
class  psCharDeleteMessage
 The message sent from client to server to request a char deletion. More...
 
class  psCharIntroduction
 The message sent from client to server to request a new introduction. More...
 
class  psChatMessage
 Message sent with chat info. More...
 
class  psClientStatusMessage
 
class  psCmdDropMessage
 
class  psCombatEventMessage
 Messages sent from server to client containing each detailed combat event. More...
 
class  psCraftCancelMessage
 Spell Cancel Message This message is used to send a cancel message, and to send the time left before the item is crafted. More...
 
class  psDialogMenuMessage
 The message sent from server to client when a menu of possible responses is available. More...
 
class  psDisconnectMessage
 
class  psDRMessage
 
class  psEffectMessage
 Effect Message. More...
 
class  psEntranceMessage
 Message from the server to handle entrances into and out of map instances. More...
 
class  psEquipmentMessage
 General Equipment Message. More...
 
class  psExchangeAcceptMsg
 
class  psExchangeAddItemMsg
 Notification of an item added to an exchange. More...
 
class  psExchangeEndMsg
 
class  psExchangeMoneyMsg
 
class  psExchangeRemoveItemMsg
 Notification of an item removed from an exchange. More...
 
class  psExchangeRequestMsg
 A request to start an exchange with your current target. More...
 
class  psExchangeStatusMsg
 
class  psFactionMessage
 Faction Message to get faction info from the server. More...
 
class  psForcePositionMessage
 
class  psGenericCmdMessage
 Generic commands. More...
 
class  psGlyphAssembleMessage
 
class  psGMEventInfoMessage
 Sends messages to the client listing the assigned events for the player. More...
 
class  psGMEventListMessage
 GM Event List Message. More...
 
class  psGMGuiMessage
 Messages that are sent to the GM GUI windowManager. More...
 
class  psGMSpawnGetMods
 
class  psGMSpawnItem
 
class  psGMSpawnItems
 
class  psGMSpawnMods
 
class  psGMSpawnTypes
 
class  psGroupCmdMessage
 Group commands. More...
 
class  psGUIActiveMagicMessage
 GUI Active Magic Message. More...
 
class  psGUIBankingMessage
 GUI Banking Message. More...
 
class  psGUIGroupMessage
 GUI Group Message. More...
 
class  psGUIGuildMessage
 GUI Guild Message. More...
 
class  psGUIInteractMessage
 Sends messages to the client interaction window. More...
 
class  psGUIInventoryMessage
 This message class deals with the inventory messages. More...
 
class  psGuildCmdMessage
 Guild commands sent from client to server. More...
 
class  psGuildMOTDSetMessage
 
class  psGUIMerchantMessage
 GUI Exchange Message. More...
 
class  psGUISkillMessage
 GUI Skill Message. More...
 
class  psGUIStorageMessage
 GUI Merchant Message. More...
 
class  psGUITargetUpdateMessage
 GUI Target Update This class is used to notify the client that data it is showing in the GUI target window has changed serverside, and should be refreshed. More...
 
class  psHeartBeatMsg
 
class  psHiredNPCScriptMessage
 Handle scripting of hired NPCs. More...
 
class  psLockpickMessage
 
class  psLootItemMessage
 Sends messages to the server to indicate what to loot. More...
 
class  psLootMessage
 Sends messages to the client listing the available loot on a mob. More...
 
class  psLootRemoveMessage
 
class  psMapActionMessage
 Messages that are sent to/from the ActionManager. More...
 
class  psMarriageMsgDivorce
 The message sent when someone divorces someone. More...
 
class  psMarriageMsgDivorceConfirm
 The message is sent when someone requests marriage details of a player. More...
 
class  psMarriageMsgPropose
 The message sent to the player being proposed for marriage. More...
 
class  psMechanismActivateMessage
 This message is used by the server to activate one mechanism client side. More...
 
class  psMessageCracker
 All net messages inherit from this class. More...
 
class  psMGBoardMessage
 Message from the server to setup/update the minigame board on the client side. More...
 
class  psMGStartStopMessage
 Message from the client to start a minigame. More...
 
class  psMGUpdateMessage
 Message from the client with a minigame board update. More...
 
class  psModeMessage
 Sends messages to the client indicating player combat stance. More...
 
class  psMOTDMessage
 
class  psMOTDRequestMessage
 
class  psMoveLockMessage
 Sends messages to the client informing of server-side movement lockouts. More...
 
class  psMovementInfoMessage
 
class  psMoveModMsg
 
class  psMsgCraftingInfo
 Defines all the info about crafting for an item. More...
 
class  psMsgRequestMovement
 
class  psMsgStringsMessage
 Message sent from server to client containing the message strings hash table. More...
 
class  psMusicalSheetMessage
 Message used by to send a musical sheet. More...
 
class  psNameCheckMessage
 Used to check to see if a name chosen is a valid name to be picked from. More...
 
class  psNewSectorMessage
 Sends messages to the client indicating that a sector portal has been crossed. More...
 
class  psOrderedMessage
 Class to implement sequential delivery of net messages. More...
 
class  psOverrideActionMessage
 Indicates that an OverrideAction is being done and not a loop as covered in DR msgs. More...
 
class  psPersistActionLocation
 
class  psPersistActor
 
class  psPersistActorRequest
 
class  psPersistAllEntities
 
class  psPersistItem
 
class  psPersistWorld
 
class  psPersistWorldRequest
 
struct  psPetitionInfo
 Contains data for one petition. More...
 
class  psPetitionMessage
 Messages sent to user with petition information. More...
 
class  psPetitionRequestMessage
 Messages sent by the user to the server with requests for petition information. More...
 
class  psPetSkillMessage
 Pet Skill Message. More...
 
class  psPingMsg
 
class  psPlaySongMessage
 This message is used by the server to make clients play a song. More...
 
class  psPlaySoundMessage
 Sound Message. More...
 
class  psPreAuthApprovedMessage
 Message sent from server to client that holds random number (clientnum). More...
 
class  psPreAuthenticationMessage
 The message sent from client to server before login. More...
 
class  psPurifyGlyphMessage
 
class  psQuestInfoMessage
 Sends messages to the client listing the assigned quests for the player. More...
 
class  psQuestionCancelMessage
 
class  psQuestionMessage
 
class  psQuestionResponseMsg
 
class  psQuestListMessage
 Sends messages to the client listing the assigned quests for the player. More...
 
class  psQuestRewardMessage
 
class  psReadBookTextMessage
 
class  psRemoveObject
 
class  psRequestAllObjects
 
class  psRequestGlyphsMessage
 
class  psSequenceMessage
 Sends messages to the client to control sequences. More...
 
class  psSimpleRenderMeshMessage
 Class to send a csSimpleRenderMesh to the client. More...
 
class  psSimpleStringMessage
 Class to send a single arbitrary string to the client or server. More...
 
class  psSketchMessage
 Class to send client directions on how to render a Sketch. More...
 
class  psSlotMovementMsg
 
class  psSoundEventMessage
 Sound Events Message. More...
 
class  psSpecialCombatEventMessage
 Messages from the server to the client, similar to combat events below, but for special attacks. More...
 
class  psSpellBookMessage
 
class  psSpellCancelMessage
 
class  psSpellCastMessage
 Spell Cast Message. More...
 
class  psStatDRMessage
 
class  psStatsMessage
 This message is sent to the client to let it know the basic stats of the player. More...
 
class  psStopEffectMessage
 
class  psStopSongMessage
 This message is used by both server and client to stop a song. More...
 
class  psSystemMessage
 
class  psSystemMessageSafe
 Messages with system information sent to user. More...
 
class  psTraitChangeMessage
 Message to change a character's trait. More...
 
class  psTutorialMessage
 Class to send instructions from server to client on a tutorial event. More...
 
class  psUpdateObjectNameMessage
 
class  psUpdatePlayerGroupMessage
 
class  psUpdatePlayerGuildMessage
 
class  psUserActionMessage
 
class  psUserCmdMessage
 User commands. More...
 
class  psViewActionLocationMessage
 
class  psViewContainerDescription
 General Message for sending information about an containter to a client. More...
 
class  psViewItemDescription
 General Message for sending information about an item to a client. More...
 
class  psViewItemUpdate
 
class  psWeatherMessage
 Sends messages to the client indicating rain and time of day. More...
 
class  psWorkCmdMessage
 Work commands. More...
 
class  psWriteBookMessage
 

Macros

#define MAXSYSTEMMSGSIZE   1024
 Messages with system information sent to user. More...
 
#define MSG_ACK   0x00010005
 
#define MSG_COMBAT   0x00020000
 
#define MSG_COMBAT_BLOCK   0x00020002
 
#define MSG_COMBAT_DEATH   0x00020009
 
#define MSG_COMBAT_DODGE   0x00020001
 
#define MSG_COMBAT_HITOTHER   0x00020004
 
#define MSG_COMBAT_HITYOU   0x00020003
 
#define MSG_COMBAT_MISS   0x00020007
 
#define MSG_COMBAT_NEARLY_DEAD   0x0002000c
 
#define MSG_COMBAT_OTHERHIT   0x00020006
 
#define MSG_COMBAT_OWN_DEATH   0x00020008
 
#define MSG_COMBAT_STANCE   0x0002000b
 
#define MSG_COMBAT_VICTORY   0x0002000a
 
#define MSG_COMBAT_YOURHIT   0x00020005
 
#define MSG_ERROR   0x00000000
 
#define MSG_INFO   0x00010000
 
#define MSG_INFO_BASE   0x00010006
 
#define MSG_INFO_SERVER   0x00010001
 
#define MSG_LOOT   0x00030000
 
#define MSG_OK   0x00010003
 
#define MSG_PURCHASE   0x00400000
 
#define MSG_RESULT   0x00010002
 
#define MSG_SEC   0x00300000
 
#define MSG_WHO   0x00010004
 
#define PINGFLAG_HASBEENREADY   0x0004
 
#define PINGFLAG_READY   0x0002
 
#define PINGFLAG_REQUESTFLAGS   0x0001
 
#define PINGFLAG_SERVERFULL   0x0008
 
#define PS_NETVERSION   0x00B9
 
#define PS_NPCNETVERSION   0x1035
 
#define PSF_DECLARE_MSG_FACTORY()
 
#define PSF_IMPLEMENT_MSG_FACTORY(Class, MsgType)
 
#define PSF_IMPLEMENT_MSG_FACTORY_ACCESS_POINTER(Class, MsgType)
 
#define PSF_IMPLEMENT_MSG_FACTORY_CREATE1(Class)
 
#define PSF_IMPLEMENT_MSG_FACTORY_CREATE2(Class)
 
#define PSF_IMPLEMENT_MSG_FACTORY_REGISTER(Class, MsgType)
 
#define PSF_IMPLEMENT_MSG_FACTORY_TYPENAME(Class, MsgType)
 
#define SEC_LEVEL0   0x00300000
 
#define SEC_LEVEL1   0x00300001
 
#define SEC_LEVEL2   0x00300002
 
#define SEC_LEVEL3   0x00300003
 
#define SEC_LEVEL4   0x00300004
 
#define TOP_SHORT_INT_VAL   65535
 

Typedefs

typedef psMessageCracker *(* psfMsgFactoryFunc) (MsgEntry *me, NetBase::AccessPointers *accessPointers)
 

Enumerations

enum  {
  CHAT_SYSTEM, CHAT_COMBAT, CHAT_SAY, CHAT_TELL,
  CHAT_GROUP, CHAT_GUILD, CHAT_ALLIANCE, CHAT_AUCTION,
  CHAT_SHOUT, CHAT_CHANNEL, CHAT_TELLSELF, CHAT_REPORT,
  CHAT_ADVISOR, CHAT_ADVICE, CHAT_ADVICE_LIST, CHAT_SERVER_TELL,
  CHAT_GM, CHAT_SERVER_INFO, CHAT_NPC, CHAT_NPCINTERNAL,
  CHAT_SYSTEM_BASE, CHAT_PET_ACTION, CHAT_NPC_ME, CHAT_NPC_MY,
  CHAT_NPC_NARRATE, CHAT_AWAY, CHAT_END
}
 
enum  {
  PETITION_LIST = 0, PETITION_CANCEL = 1, PETITION_CLOSE = 2, PETITION_CHANGE = 3,
  PETITION_ASSIGN = 4, PETITION_DEASSIGN = 5, PETITION_ESCALATE = 6, PETITION_DESCALATE = 7,
  PETITION_DIRTY = 8
}
 
enum  DESCTYPE { DESC_IC = 1, DESC_OOC, DESC_CC }
 
enum  MSG_TYPES {
  MSGTYPE_PING = 1, MSGTYPE_AUTHENTICATE, MSGTYPE_PREAUTHENTICATE, MSGTYPE_PREAUTHAPPROVED,
  MSGTYPE_AUTHAPPROVED, MSGTYPE_AUTHREJECTED, MSGTYPE_DISCONNECT, MSGTYPE_CHAT,
  MSGTYPE_CHANNEL_JOIN, MSGTYPE_CHANNEL_JOINED, MSGTYPE_CHANNEL_LEAVE, MSGTYPE_GUILDCMD,
  MSGTYPE_USERCMD, MSGTYPE_SYSTEM, MSGTYPE_CHARREJECT, MSGTYPE_DEAD_RECKONING,
  MSGTYPE_FORCE_POSITION, MSGTYPE_CELPERSIST, MSGTYPE_CONFIRMQUESTION, MSGTYPE_USERACTION,
  MSGTYPE_ADMINCMD, MSGTYPE_GUIINTERACT, MSGTYPE_GUIINVENTORY, MSGTYPE_VIEW_ITEM,
  MSGTYPE_VIEW_CONTAINER, MSGTYPE_VIEW_SKETCH, MSGTYPE_VIEW_ACTION_LOCATION, MSGTYPE_READ_BOOK,
  MSGTYPE_WRITE_BOOK, MSGTYPE_UPDATE_ITEM, MSGTYPE_MODE, MSGTYPE_WEATHER,
  MSGTYPE_NEWSECTOR, MSGTYPE_GUIGUILD, MSGTYPE_EQUIPMENT, MSGTYPE_GUIEXCHANGE,
  MSGTYPE_EXCHANGE_REQUEST, MSGTYPE_EXCHANGE_ADD_ITEM, MSGTYPE_EXCHANGE_REMOVE_ITEM, MSGTYPE_EXCHANGE_ACCEPT,
  MSGTYPE_EXCHANGE_STATUS, MSGTYPE_EXCHANGE_END, MSGTYPE_EXCHANGE_AUTOGIVE, MSGTYPE_EXCHANGE_MONEY,
  MSGTYPE_GUIMERCHANT, MSGTYPE_GUISTORAGE, MSGTYPE_GROUPCMD, MSGTYPE_GUIGROUP,
  MSGTYPE_STATDRUPDATE, MSGTYPE_SPELL_BOOK, MSGTYPE_GLYPH_REQUEST, MSGTYPE_GLYPH_ASSEMBLE,
  MSGTYPE_PURIFY_GLYPH, MSGTYPE_SPELL_CAST, MSGTYPE_SPELL_CANCEL, MSGTYPE_EFFECT,
  MSGTYPE_EFFECT_STOP, MSGTYPE_NPCAUTHENT, MSGTYPE_NPCLIST, MSGTYPE_GUITARGETUPDATE,
  MSGTYPE_MAPLIST, MSGTYPE_NPCCOMMANDLIST, MSGTYPE_NPCREADY, MSGTYPE_ALLENTITYPOS,
  MSGTYPE_PERSIST_ALL_ENTITIES, MSGTYPE_NEW_NPC, MSGTYPE_PETITION, MSGTYPE_MSGSTRINGS,
  MSGTYPE_CHARACTERDATA, MSGTYPE_AUTHCHARACTER, MSGTYPE_AUTHCHARACTERAPPROVED, MSGTYPE_CHAR_CREATE_CP,
  MSGTYPE_COMBATEVENT, MSGTYPE_LOOT, MSGTYPE_LOOTITEM, MSGTYPE_LOOTREMOVE,
  MSGTYPE_GUISKILL, MSGTYPE_OVERRIDEACTION, MSGTYPE_QUESTLIST, MSGTYPE_QUESTINFO,
  MSGTYPE_GMGUI, MSGTYPE_WORKCMD, MSGTYPE_BUDDY_LIST, MSGTYPE_BUDDY_STATUS,
  MSGTYPE_MOTD, MSGTYPE_MOTDREQUEST, MSGTYPE_QUESTION, MSGTYPE_QUESTIONRESPONSE,
  MSGTYPE_SLOT_MOVEMENT, MSGTYPE_QUESTIONCANCEL, MSGTYPE_GUILDMOTDSET, MSGTYPE_PLAYSOUND,
  MSGTYPE_CHARACTERDETAILS, MSGTYPE_CHARDETAILSREQUEST, MSGTYPE_CHARDESCUPDATE, MSGTYPE_FACTION_INFO,
  MSGTYPE_QUESTREWARD, MSGTYPE_NAMECHANGE, MSGTYPE_GUILDCHANGE, MSGTYPE_LOCKPICK,
  MSGTYPE_GMSPAWNITEMS, MSGTYPE_GMSPAWNTYPES, MSGTYPE_GMSPAWNITEM, MSGTYPE_ADVICE,
  MSGTYPE_ACTIVEMAGIC, MSGTYPE_GROUPCHANGE, MSGTYPE_MAPACTION, MSGTYPE_CLIENTSTATUS,
  MSGTYPE_TUTORIAL, MSGTYPE_BANKING, MSGTYPE_CMDDROP, MSGTYPE_REQUESTMOVEMENTS,
  MSGTYPE_MOVEINFO, MSGTYPE_MOVEMOD, MSGTYPE_MOVELOCK, MSGTYPE_CHAR_DELETE,
  MSGTYPE_CHAR_CREATE_PARENTS, MSGTYPE_CHAR_CREATE_CHILDHOOD, MSGTYPE_CHAR_CREATE_LIFEEVENTS, MSGTYPE_CHAR_CREATE_UPLOAD,
  MSGTYPE_CHAR_CREATE_VERIFY, MSGTYPE_CHAR_CREATE_NAME, MSGTYPE_PERSIST_WORLD_REQUEST, MSGTYPE_PERSIST_WORLD,
  MSGTYPE_PERSIST_ACTOR_REQUEST, MSGTYPE_PERSIST_ACTOR, MSGTYPE_PERSIST_ITEM, MSGTYPE_PERSIST_ACTIONLOCATION,
  MSGTYPE_PERSIST_ALL, MSGTYPE_REMOVE_OBJECT, MSGTYPE_CHANGE_TRAIT, MSGTYPE_DAMAGE_EVENT,
  MSGTYPE_DEATH_EVENT, MSGTYPE_TARGET_EVENT, MSGTYPE_ZPOINT_EVENT, MSGTYPE_BUY_EVENT,
  MSGTYPE_SELL_EVENT, MSGTYPE_PICKUP_EVENT, MSGTYPE_DROP_EVENT, MSGTYPE_LOOT_EVENT,
  MSGTYPE_CONNECT_EVENT, MSGTYPE_MOVEMENT_EVENT, MSGTYPE_GENERIC_EVENT, MSGTYPE_SOUND_EVENT,
  MSGTYPE_CHAR_CREATE_TRAITS, MSGTYPE_STATS, MSGTYPE_PET_COMMAND, MSGTYPE_PET_SKILL,
  MSGTYPE_CRAFT_INFO, MSGTYPE_PETITION_REQUEST, MSGTYPE_HEART_BEAT, MSGTYPE_NPC_COMMAND,
  MSGTYPE_MINIGAME_STARTSTOP, MSGTYPE_MINIGAME_BOARD, MSGTYPE_MINIGAME_UPDATE, MSGTYPE_ENTRANCE,
  MSGTYPE_GMEVENT_LIST, MSGTYPE_GMEVENT_INFO, MSGTYPE_SEQUENCE, MSGTYPE_NPCRACELIST,
  MSGTYPE_INTRODUCTION, MSGTYPE_CACHEFILE, MSGTYPE_DIALOG_MENU, MSGTYPE_SIMPLE_STRING,
  MSGTYPE_ORDEREDTEST, MSGTYPE_GENERICCMD, MSGTYPE_CRAFT_CANCEL, MSGTYPE_MUSICAL_SHEET,
  MSGTYPE_PLAY_SONG, MSGTYPE_STOP_SONG, MSGTYPE_SIMPLE_RENDER_MESH, MSGTYPE_NPC_WORKDONE,
  MSGTYPE_PATH_NETWORK, MSGTYPE_LOCATION, MSGTYPE_MECS_ACTIVATE, MSGTYPE_NPC_DELETED,
  MSGTYPE_HIRED_NPC_SCRIPT, MSGTYPE_GMSPAWNGETMODS, MSGTYPE_GMSPAWNMODS, MSGTYPE_ATTACK_QUEUE,
  MSGTYPE_ATTACK_BOOK, MSGTYPE_SPECCOMBATEVENT
}
 
enum  Slot_Containers {
  CONTAINER_INVENTORY_BULK = -1, CONTAINER_INVENTORY_EQUIPMENT = -2, CONTAINER_EXCHANGE_OFFERING = -3, CONTAINER_EXCHANGE_RECEIVING = -4,
  CONTAINER_INVENTORY_MONEY = -5, CONTAINER_OFFERING_MONEY = -6, CONTAINER_RECEIVING_MONEY = -7, CONTAINER_WORLD = -8,
  CONTAINER_GEM_OBJECT = -9, CONTAINER_SPELL_BOOK = -10
}
 

Functions

void DecodeMessage (MsgEntry *me, NetBase::AccessPointers *accessPointers, bool filterhex, csString &msgText, int &filterNumber)
 
csString GetMsgTypeName (int msgType)
 
psMessageCrackerpsfCreateMsg (int msgtype, MsgEntry *me, NetBase::AccessPointers *accessPointers)
 
int psfMsgType (const char *msgTypeName)
 
csString psfMsgTypeName (int msgType)
 
void psfRegisterMsgFactoryFunction (psfMsgFactoryFunc factoryfunc, int msgtype, const char *msgtypename)
 
void psfUnRegisterMsgFactories (void)