added source folders
This commit is contained in:
1 parent
f23521f720
commit
cfdc19df45
145 files changed
+54574
No files matched your search
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
Rose Online Server Emulator
|
||||
Copyright (C) 2006,2007 OSRose Team http://www.osrose.net
|
||||
|
||||
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; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
depeloped with Main erose/hrose source server + some change from the original eich source
|
||||
*/
|
||||
#ifndef __ROSE_MAP__
|
||||
#define __ROSE_MAP__
|
||||
#include "worldserver.h"
|
||||
#include "player.h"
|
||||
#include "character.h"
|
||||
#include "worldmonster.h"
|
||||
#include "datatypes.h"
|
||||
class CMonster;
|
||||
|
||||
class CMap
|
||||
{
|
||||
public:
|
||||
CMap( );
|
||||
~CMap( );
|
||||
|
||||
bool AddPlayer( CPlayer* player );
|
||||
bool RemovePlayer( CPlayer* player, bool clearobject=true );
|
||||
|
||||
//CMonster* AddMonster( UINT montype, fPoint position, UINT owner=0, UINT spawnid=0, bool GetDropData=false );
|
||||
CMonster* AddMonster( UINT montype, fPoint position, UINT owner=0, UINT spawnid=0, UINT aggro = 0, bool IsTD = false, UINT limit = 0, UINT AI = 0);
|
||||
bool DeleteMonster( CMonster*, bool clearobject=false, UINT i=0 );
|
||||
bool AddDrop( CDrop* drop );
|
||||
bool DeleteDrop( CDrop* drop );
|
||||
bool AddNPC( CNPC* npc );
|
||||
bool DeleteNPC( CNPC* npc );
|
||||
|
||||
CMonster* ConverToMonster( CMonster* monster, UINT newmonttype, bool heal=true );
|
||||
CMonster* ConverToMonster( CNPC* npc, UINT newmonttype );
|
||||
|
||||
bool TeleportPlayer( CPlayer* player, fPoint coord, bool TelePassenger=true );
|
||||
bool pakTeleport( CPlayer* player, unsigned int Map, fPoint coord, bool TelePassenger );
|
||||
|
||||
CRespawnPoint* GetNearRespawn( CPlayer* player );
|
||||
CRespawnPoint* GetFirstRespawn( );
|
||||
CRespawnPoint* GetStartRespawn( );
|
||||
|
||||
CCharacter* GetCharInMap( unsigned int id );
|
||||
CPlayer* GetPlayerInMap( UINT id );
|
||||
CMonster* GetMonsterInMap( UINT id );
|
||||
CPlayer* GetCharIDInMap( UINT id );
|
||||
CDrop* GetDropInMap( UINT id );
|
||||
CNPC* GetNPCInMap( UINT id );
|
||||
void UpdateTime( );
|
||||
void CleanDrops( );
|
||||
void RespawnMonster( );
|
||||
void UpdateSpawnCounter( UINT montype, UINT spawnid, UINT key );
|
||||
bool IsNight( );
|
||||
|
||||
void LoadZon(strings zon);
|
||||
void LoadData(strings zonpath, CStrStb* stbEvent);
|
||||
void AddIfo(strings ifo, CStrStb* stbEvent);
|
||||
|
||||
UINT id; // id from map
|
||||
UINT dayperiod; // duration of 1 day
|
||||
UINT morningtime; // morning start time
|
||||
UINT daytime; // day start time
|
||||
UINT eveningtime; // evening start time
|
||||
UINT nighttime; // nighttime start time
|
||||
UINT ZoneTime; // how many 6 minute segments since start of the day
|
||||
UINT ghost; // ghosttime?
|
||||
BYTE allowpvp; // pvp allowed?
|
||||
bool dungeon; // Map is a dungeon?
|
||||
bool allowpat; // pat allowed?
|
||||
// Time values
|
||||
UINT MapTime; // Past time in this map
|
||||
UINT Date;
|
||||
UINT hour;
|
||||
UINT minute;
|
||||
UINT ObjVar[20]; //for storing map variables used in AIP
|
||||
clock_t LastUpdate;// Last time update in the map
|
||||
UINT CurrentTime; // 0 = morning | 1 = day | 2 = evening | 3 = night | 4+ = invalid
|
||||
//TDMobList
|
||||
UINT TDMobList[100]; //List of TD monsters waiting to be spawned
|
||||
UINT TDNextSpawn; //index pointer for next spawn in TDMobList
|
||||
UINT TDNextMon; //index pointer for next addition to TDMobList
|
||||
clock_t lastTDSpawnTime; //time of the last spawn
|
||||
UINT TDMobDelay; // delay between spawns (ms)
|
||||
UINT crystalhealth; // current health of the base crystal
|
||||
UINT portalhealth; // current health of the spawn portal
|
||||
UINT mapXPRate; // exp rate for this map
|
||||
|
||||
|
||||
|
||||
vector<CRespawnPoint*> RespawnList; // RespawnZones List
|
||||
vector<CSpawnArea*> MonsterSpawnList; // Monster spawn in this map
|
||||
#ifdef USEIFO
|
||||
vector<CMobGroup*> MobGroupList; // Spawn "Zones"
|
||||
#endif
|
||||
vector<CMonster*> MonsterList; // Monster List in this map
|
||||
vector<CDrop*> DropsList; // Droped Items
|
||||
vector<CPlayer*> PlayerList; // Client list in this map;
|
||||
vector<CNPC*> NPCList; // NPC in this map
|
||||
vector<CTeleGate*> TeleGateList; // Telegates from this map
|
||||
std::vector<SZonPoint*> PointList;
|
||||
|
||||
pthread_mutex_t MonsterMutex, DropMutex;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user