Planeshift
Server

gmeventmanager.h More...

Classes

class  AttackerHistory
 A record in a gemActor's attacker history. More...
 
class  DamageHistory
 An AttackerHistory entry for a regular, one-time damaging attack. More...
 
class  DOTHistory
 An AttackerHistory entry for a DOT (damage over time) attack. More...
 
class  Exchange
 A basic exchange. More...
 
class  ExchangeManager
 
class  ExchangingCharacter
 ExchangingCharacter holds relevant information about character that is participating in exchange of items with another character. More...
 
class  FrozenBuffable
 
class  gemActionLocation
 
class  gemActiveObject
 Any PS Object with which a player may have interaction (i.e. More...
 
class  gemActor
 Any semi-autonomous object, either a player or an NPC. More...
 
class  gemContainer
 gemContainers are the public containers in the world for crafting, like forges or ovens. More...
 
class  gemItem
 
class  gemMesh
 This is a helper class that defines a mesh on the server. More...
 
class  gemNPC
 
class  gemObject
 A gemObject is any solid, graphical object visible in PS with normal physics and normal collision detection. More...
 
class  gemPet
 
class  GEMSupervisor
 This class holds the refs to the core factories, etc in CEL. More...
 
class  GMEventManager
 GameMaster Events manager class. More...
 
class  GuildManager
 
class  GuildNotifySubscription
 Information about client that asked us to tell him when some guild data change. More...
 
struct  LootEntry
 This class holds one loot possibility for a killed npc. More...
 
class  LootEntrySet
 This class stores an array of LootEntry and calculates required loot on a newly dead mob. More...
 
struct  LootModifier
 This class holds one loot modifier The lootRandomizer contions arrays of these. More...
 
class  LootRandomizer
 This class stores an array of LootModifiers and randomizes loot stats. More...
 
class  MessageManager< SubClass >
 Provides a manager to facilitate subscriptions. More...
 
class  MessageManagerBase
 Base server-side class for subscriptions. More...
 
class  MiniGameManager
 Handles minigame sessions. More...
 
struct  MinigamePlayer
 Structure to hold player data. More...
 
class  NetManager
 This is the network thread handling packets sending/receiving to/from network other threads can register a message queue and the network thread will sort messages for them and put them in their queue. More...
 
class  PlayerToNPCExchange
 
class  PlayerToPlayerExchange
 
class  ProgressionManager
 
class  psDespawnGameEvent
 When an NPC or mob is killed in the spawn manager, its respawn event is immediately created and added to the schedule to be triggered at the appropriate time. More...
 
class  psGEMEvent
 This class automatically implements timed events which depend on the existence and validity of a gemObject of any kind. More...
 
class  psGemServerMeshAttach
 Helper class to attach a PlaneShift gem object to a particular mesh. More...
 
class  psItemSpawnEvent
 
class  psMarriageManager
 This class manages all marriage related stuff. More...
 
class  psMiniGameSession
 Implements one minigame session. More...
 
class  psRespawnGameEvent
 When an NPC or mob is killed in the spawn manager, its respawn event is immediately created and added to the schedule to be triggered at the appropriate time. More...
 
class  psResurrectEvent
 
class  psServer
 The main server class. More...
 
class  SpawnManager
 This class is periodically called by the engine to ensure that monsters (and other NPCs) are respawned appropriately. More...
 
class  SpawnRange
 This class is used to store respawn ranges for NPCs. More...
 
class  SpawnRule
 This class is used to store respawn rules for NPCs. More...
 
struct  ValueModifier
 This structure contains the parsed data from Attributes recarding script variables. More...
 

Macros

#define BUFF_INDICATOR   "+"
 
#define DEBUFF_INDICATOR   "-"
 
#define EVAL_LOCKOUT_TIME   24*60*60*1000
 how much time the player should be allowed to evalute an event (24 hours here) More...
 
#define MAX_EVENT_NAME_LENGTH   40
 
#define MAX_PLAYERS_PER_EVENT   100
 
#define MAX_REGISTER_RANGE   100.0
 
#define NO_RANGE   -1.0
 
#define NO_VALIDATION   0x00
 These flags define the tests that are centrally done before subclasses get the message. More...
 
#define REQUIRE_ACTOR   0x08
 
#define REQUIRE_ALIVE   0x10
 
#define REQUIRE_ALREADY_READY_CLIENT   0x04
 
#define REQUIRE_ANY_CLIENT   0x01
 
#define REQUIRE_READY_CLIENT   0x02
 
#define REQUIRE_TARGET   0x20
 
#define REQUIRE_TARGETACTOR   0x40
 
#define REQUIRE_TARGETNPC   0x80
 
#define SUPPORT_GM_LEVEL   GM_LEVEL_4
 
#define UNDEFINED_GMID   0
 
#define UNSTICK_TIME   15000
 

Enumerations

enum  GMEventStatus { EMPTY = 0, RUNNING, COMPLETED }
 
enum  MinigameStyle { MG_GAME, MG_PUZZLE }
 
enum  RangeSpecifier { ALL, IN_RANGE, INDIVIDUAL }
 

Functions

void handleGroupLootItem (psItem *item, gemActor *obj, Client *client, CacheManager *cacheManager, GEMSupervisor *gem, uint8_t lootAction=0)
 Handles looting of an item, whether there is a group or not. More...
 

Detailed Description

gmeventmanager.h

Copyright (C) 2006 Atomic Blue (info@.nosp@m.plan.nosp@m.eshif.nosp@m.t.it, http://www.atomicblue.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; 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.

Manages Game Master events for players.

Macro Definition Documentation

#define BUFF_INDICATOR   "+"

Definition at line 86 of file gem.h.

#define DEBUFF_INDICATOR   "-"

Definition at line 87 of file gem.h.

#define EVAL_LOCKOUT_TIME   24*60*60*1000

how much time the player should be allowed to evalute an event (24 hours here)

Definition at line 44 of file gmeventmanager.h.

#define MAX_EVENT_NAME_LENGTH   40

Definition at line 42 of file gmeventmanager.h.

#define MAX_PLAYERS_PER_EVENT   100

Definition at line 41 of file gmeventmanager.h.

#define MAX_REGISTER_RANGE   100.0

Definition at line 43 of file gmeventmanager.h.

#define NO_RANGE   -1.0

Definition at line 60 of file gmeventmanager.h.

#define NO_VALIDATION   0x00

These flags define the tests that are centrally done before subclasses get the message.

Definition at line 50 of file msgmanager.h.

#define REQUIRE_ACTOR   0x08

Definition at line 54 of file msgmanager.h.

#define REQUIRE_ALIVE   0x10

Definition at line 55 of file msgmanager.h.

#define REQUIRE_ALREADY_READY_CLIENT   0x04

Definition at line 53 of file msgmanager.h.

#define REQUIRE_ANY_CLIENT   0x01

Definition at line 51 of file msgmanager.h.

#define REQUIRE_READY_CLIENT   0x02

Definition at line 52 of file msgmanager.h.

#define REQUIRE_TARGET   0x20

Definition at line 56 of file msgmanager.h.

#define REQUIRE_TARGETACTOR   0x40

Definition at line 57 of file msgmanager.h.

#define REQUIRE_TARGETNPC   0x80

Definition at line 58 of file msgmanager.h.

#define SUPPORT_GM_LEVEL   GM_LEVEL_4

Definition at line 48 of file gmeventmanager.h.

#define UNDEFINED_GMID   0

Definition at line 46 of file gmeventmanager.h.

#define UNSTICK_TIME   15000

Definition at line 89 of file gem.h.

Enumeration Type Documentation

Enumerator
EMPTY 

no GM event

RUNNING 

GM event is running.

COMPLETED 

GM event is complete.

Definition at line 53 of file gmeventmanager.h.

Enumerator
MG_GAME 

normally 2 or more player mini-game

MG_PUZZLE 

single player mini-game

Definition at line 49 of file minigamemanager.h.

Enumerator
ALL 
IN_RANGE 
INDIVIDUAL 

Definition at line 62 of file gmeventmanager.h.

Function Documentation

void handleGroupLootItem ( psItem item,
gemActor obj,
Client client,
CacheManager cacheManager,
GEMSupervisor gem,
uint8_t  lootAction = 0 
)

Handles looting of an item, whether there is a group or not.

Parameters
itemThe item to loot (at best returned from RemoveLootItem)
objThe actor to loot the item from
clientThe client which is looting
cacheManagerThe CacheManager to use for the PendingLootPrompt
gemThe GEMSupervisor to use for the PendingLootPrompt
lootActionEither 0 for LOOT_SELF or 1 for LOOT_ROLL