This commit is contained in:
kervala 2010-09-11 19:31:30 +02:00
commit 7cd92db05b
4 changed files with 195 additions and 200 deletions

View file

@ -45,7 +45,7 @@ using namespace NLMISC;
namespace R2
{
extern NLLIGO::CLigoConfig * LigoConfigPtr;
NLLIGO::CLigoConfig * LigoConfigPtr;
}
void CAiWrapperServer::init(NLLIGO::CLigoConfig * ligoConfig)
@ -56,7 +56,7 @@ void CAiWrapperServer::init(NLLIGO::CLigoConfig * ligoConfig)
{
CPrimitiveContext::instance().CurrentLigoConfig = R2::LigoConfigPtr;
// Read the ligo primitive class file
// Read the ligo primitive class file
// NLLIGO::Register();
}
@ -67,65 +67,65 @@ void CAiWrapperServer::init(NLLIGO::CLigoConfig * ligoConfig)
void CAiWrapperServer::streamToPdr(NLMISC::IStream& stream, const std::string& primName, CPersistentDataRecord& pdr)
{
H_AUTO_INST( streamToPdr );
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::init(&pdr);
AI_SHARE::parsePrimStream(stream, primName.c_str());
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::primsToPdr(NLLIGO::CPrimitives *prims, const std::string& primName, CPersistentDataRecord& pdr)
{
H_AUTO_INST( primsToPdr );
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::init(&pdr);
AI_SHARE::parsePrimNoStream(prims, primName.c_str());
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::pdrToFile(CPersistentDataRecord& pdr, const std::string& pdrName)
{
{
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::getInstance().writeFile(pdrName.c_str());
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::fileToPdr(const std::string& pdrName, CPersistentDataRecord& pdr)
{
{
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::getInstance().readFile(pdrName.c_str());
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::displayPdr( CPersistentDataRecord& pdr)
{
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::getInstance().display();
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::clearPdr( CPersistentDataRecord& pdr)
{
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::getInstance().clear();
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::primitiveFileToPdr(const std::string& primitiveName, CPersistentDataRecord& pdr)
{
pdr.clear();
CAIPrimitiveParser::init(&pdr);
CAIPrimitiveParser::init(&pdr);
AI_SHARE::parsePrimFile(primitiveName.c_str());
CAIPrimitiveParser::release();
CAIPrimitiveParser::release();
}
void CAiWrapperServer::stopTest(TSessionId sessionId, uint32 aiInstanceId)
{
nldebug("Stop Test in session %u (aiInstance %u)", sessionId.asInt(), aiInstanceId);
CMessage msgout("R2_STOPLIVE");
CMessage msgout("R2_STOPLIVE");
bool isBase = true;
msgout.serial(aiInstanceId);
msgout.serial(isBase);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
void CAiWrapperServer::startTest(TSessionId sessionId, uint32 aiInstanceId, CPersistentDataRecord& pdr)
{
@ -136,7 +136,7 @@ void CAiWrapperServer::startTest(TSessionId sessionId, uint32 aiInstanceId, CPe
if (!pdr.toBuffer(dest, totalDataSize))
{
nlwarning("can't serialise data");
return;
return;
}
{
@ -155,7 +155,7 @@ void CAiWrapperServer::startInstance(TSessionId sessionId, uint32 aiInstanceId)
{
nldebug("Start Instance in session %u (aiInstance %u)", sessionId.asInt(), aiInstanceId);
nlinfo("R2An: startInstance %u", aiInstanceId);
CMessage msgout("R2_STARTINSTANCE");
CMessage msgout("R2_STARTINSTANCE");
msgout.serial(aiInstanceId);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
@ -164,12 +164,12 @@ void CAiWrapperServer::startInstance(TSessionId sessionId, uint32 aiInstanceId)
void CAiWrapperServer::stopAct(TSessionId sessionId, uint32 aiInstanceId)
{
nldebug("Stop Act in session %u (aiInstance %u)", sessionId.asInt(), aiInstanceId);
CMessage msgout("R2_STOPLIVE");
CMessage msgout("R2_STOPLIVE");
msgout.serial(aiInstanceId);
bool isBase = false;
msgout.serial(isBase);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
void CAiWrapperServer::startAct(TSessionId sessionId, uint32 aiInstanceId, CPersistentDataRecord& pdr)
{
@ -179,7 +179,7 @@ void CAiWrapperServer::startAct(TSessionId sessionId, uint32 aiInstanceId, CPers
if (!pdr.toBuffer(dest, totalDataSize))
{
nlwarning("can't serialise data");
return;
return;
}
{
@ -209,7 +209,7 @@ namespace
static std::string aliasToString(uint32 alias)
{
uint32 staticPart = alias >> 20;
uint32 dynPart = alias & ((1 << 21)-1);
uint32 dynPart = alias & ((1 << 21)-1);
return NLMISC::toString("(A:%u:%u)", staticPart, dynPart);
}
}
@ -222,14 +222,14 @@ void CAiWrapperServer::despawnEntity(NLMISC::CEntityId entityId, uint32 alias)
std::string str = NLMISC::toString("()despawnBotByAlias(\"%s\");", aliasToString(alias).c_str());
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(str);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
@ -241,15 +241,15 @@ void CAiWrapperServer::setGrpHPLevel(NLMISC::CEntityId entityId, uint32 alias,
std::string hpstr = NLMISC::toString("()setHPScale(%f);", hp);
//CMessage msgout("EVENT_NPC_GROUP_SCRIPT");
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(hpstr);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
@ -264,18 +264,18 @@ void CAiWrapperServer::setHPLevel(NLMISC::CEntityId entityId, uint32 alias, floa
std::string hpstr = NLMISC::toString("()setBotHPScaleByAlias(%f, \"%s\");", hp, aliasToString(alias).c_str());
//CMessage msgout("EVENT_NPC_GROUP_SCRIPT");
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(hpstr);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
@ -289,13 +289,13 @@ void CAiWrapperServer::triggerGrpEvent(NLMISC::CEntityId entityId, float eventId
std::string str = NLMISC::toString("()setEvent(%f);", eventId);
eventId = (float)(int) eventId;
if (eventId < 0 || eventId > 10) return;
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(str);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
@ -307,13 +307,13 @@ void CAiWrapperServer::controlNpc(NLMISC::CEntityId clientId, NLMISC::CEntityId
uint32 nbString=2;
std::string eid = npc.toString();
std::string str = NLMISC::toString("()setPlayerController(\"%s\",\"%s\");", npc.toString().c_str(), clientId.toString().c_str());
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(str);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
@ -324,13 +324,13 @@ void CAiWrapperServer::stopControlNpc(NLMISC::CEntityId clientId, NLMISC::CEntit
uint32 nbString=2;
std::string eid = npc.toString();
std::string str = NLMISC::toString("()clearPlayerController(\"%s\");", npc.toString().c_str());
CMessage msgout("R2_NPC_BOT_SCRIPT_BY_ID");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(eid);
msgout.serial(str);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}
@ -339,22 +339,22 @@ void CAiWrapperServer::triggerUserTrigger(const std::string& groupName, uint32 t
/*
uint32 messageVersion = 1;
uint32 nbString=2;
std::string script = NLMISC::toString("()setEvent(%d);", triggerId);
CMessage msgout("R2_NPC_GROUP_SCRIPT_BY_NAME");
msgout.serial(messageVersion);
msgout.serial(nbString);
msgout.serial(const_cast<std::string&>(groupName));
msgout.serial(script);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
*/
{
std::string script = NLMISC::toString("\"()setEvent(%d);\"", triggerId);
CMessage msgout("EXEC_COMMAND");
@ -388,7 +388,7 @@ void CAiWrapperServer::setPioneerRight(NLMISC::CEntityId entityId, const R2::TPi
msgout.serial(command);
CUnifiedNetwork::getInstance()->send("EGS",msgout);
}
}
else if (right == R2::TPioneerRight::Tester)
{
@ -410,7 +410,7 @@ void CAiWrapperServer::setPioneerRight(NLMISC::CEntityId entityId, const R2::TPi
msgout.serial(command);
CUnifiedNetwork::getInstance()->send("EGS",msgout);
}
}
else
{
@ -421,7 +421,7 @@ void CAiWrapperServer::askBotDespawnNotification(NLMISC::CEntityId creatureId, T
{
NLNET::CMessage msgout("ASK_BOT_DESPAWN_NOTIFICATION");
uint32 messageVersion = 1;
msgout.serial(messageVersion, alias, creatureId);
msgout.serial(messageVersion, alias, creatureId);
CUnifiedNetwork::getInstance()->send("AIS",msgout);
}

View file

@ -51,18 +51,13 @@ void foo()
admin_modules_forceLink();
}
namespace R2
{
// The ligo config
NLLIGO::CLigoConfig* LigoConfigPtr;
CR2LigoConfig R2LigoConfig;
// The ligo config
extern NLLIGO::CLigoConfig * LigoConfigPtr;
CR2LigoConfig R2LigoConfig;
}
void CDynamicScenarioService::forwardToStringManagerModule (CMessage &msgin)
{
TDataSetRow senderId;

View file

@ -108,18 +108,15 @@ extern vector<CMainlandSummary> Mainlands;
extern CVariable<bool> DontUseSU;
// For shard names
extern NLMISC::CVariable<uint32> FixedSessionId;
// Send to client if name is valide (true for valide)
void sendIfNameIsValide( uint32 userId, bool nameValide );
// finish create char
void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool ok);
// For a mainland shard (non ring), we need the session id to initialize the normal position stack with
// the current far position after loading an old character file with no stored session id.
// (Alternatively, the ServerAnimationModule could sent it to any mainland shard, looking up in the DB
// ring:sessions).
NLMISC::CVariable<uint32> FixedSessionId( "egs", "FixedSessionId", "For a mainland shard, the session id", 0, 0, true );
// (!IsRingShard only) (For mainland shard)
// This parameter controls what we do we characters coming from another mainland shard.
// It allows to test character files from a live shard on a private shard.
@ -197,7 +194,7 @@ void cbClientConnection(CMessage& msgin, const std::string &serviceName, NLNET::
msgin.serial( userName, userPriv, userExtended, languageId);
msgin.serial( fromAddr );
msgin.serial( cookie );
#ifdef NL_DEBUG
#ifdef NL_DEBUG
egs_ecinfo("WEB: received cookie %s from player %u", cookie.toString().c_str(), userId);
#endif
//Bsi.append( StatPath, NLMISC::toString("[UC] %u %s %s %s %s %s", userId, userName.c_str(), userPriv.c_str(), languageId.c_str(), fromAddr.c_str(), cookie.toString().c_str()) );
@ -230,7 +227,7 @@ void cbClientConnection(CMessage& msgin, const std::string &serviceName, NLNET::
// set the front end id of this player
PlayerManager.setPlayerFrontEndId( userId, serviceId );
const bool betaTester = (userExtended.find(":FBT:") != string::npos);
const bool preOrder = (userExtended.find(":PO:") != string::npos);
const bool windermeerCommunity = (userExtended.find(":WIND:") != string::npos);
@ -294,19 +291,19 @@ void cbClientConnection(CMessage& msgin, const std::string &serviceName, NLNET::
//
// msgin.serial( longUserId );
// userId = (uint32) longUserId;
//
//
// CCharacter * c = PlayerManager.getActiveChar( userId );
// if( c != 0 )
// {
// charId = c->getId();
//
// // send userId/charId association to the FE
// CMessage msgout("CL_ID");
// CMessage msgout("CL_ID");
// msgout.serial(userId);
// msgout.serial( charId );
// uint16 frontEndId = PlayerManager.getPlayerFrontEndId( userId );
// CUnifiedNetwork::getInstance()->send(frontEndId, msgout);
//
//
// // send acknowledge to client for received Enter message
// CBitMemStream bms;
// if ( ! GenericMsgManager.pushNameToStream( "CONNECTION:READY", bms) )
@ -338,7 +335,7 @@ void cbClientConnection(CMessage& msgin, const std::string &serviceName, NLNET::
void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbClientReady);
// read the player id
CEntityId characterId;
msgin.serial( characterId );
@ -349,7 +346,7 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
disconnectUser( PlayerManager.getPlayerId( characterId ) );
return;
}
// add the character in the GPMS
COfflineEntityState state;
PlayerManager.getState( characterId ).setCOfflineEntityState( state ); // state properties with temp storage
@ -367,7 +364,7 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
// validate player web account
// \todo this is unsafe, because name is an ucstring which might be fucked up when casted into string
CMailForumValidator::validateUserEntry( c->getHomeMainlandSessionId(), c->getName().toString(), player->getLoginCookie().toString() );
NLNET::CMessage msgout( "IMPULSION_ID" );
CEntityId id = c->getId();
msgout.serial( id );
@ -376,11 +373,11 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
{
uint32 shardId = IService::getInstance()->getShardId();
bms.serial(shardId);
CConfigFile::CVar *var = IService::getInstance()->ConfigFile.getVarPtr("WebSrvHost");
string webHost = (var != NULL ? var->asString() : "");
bms.serial(webHost);
msgout.serialBufferWithSize((uint8*)bms.buffer(), bms.length());
CUnifiedNetwork::getInstance()->send( NLNET::TServiceId(c->getId().getDynamicId()), msgout ); // sendMessageViaMirror() not needed to FS in general
}
@ -388,9 +385,9 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
{
nlwarning("Unable to send CONNECTION:SHARD_ID to player %s", id.toString().c_str());
}
}
// Add player in the mirror // createEntity() will produce warnings if it fails
if ( ! Mirror.createEntity( characterId ) )
{
@ -419,7 +416,7 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
uint32 in = c->getStartupInstance();
if (in != INVALID_AI_INSTANCE)
{
nldebug("Setting player %s in ring instance #%u",
nldebug("Setting player %s in ring instance #%u",
c->getId().toString().c_str(), in);
// set instance id for ring session
@ -438,7 +435,7 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
nlwarning("user %s is in invalid continent '%s'", c->getId().toString().c_str(), strlwr( CONTINENT::toString(c->getCurrentContinent()) ).c_str() );
}
nldebug("Setting player %s in instance #%u for continent '%s'",
nldebug("Setting player %s in instance #%u for continent '%s'",
c->getId().toString().c_str(), in, strlwr( CONTINENT::toString(c->getCurrentContinent())).c_str());
c->setInstanceNumber( in );
}
@ -500,26 +497,26 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
{
c->setWhoSeesMe(UINT64_CONSTANT(0xffffffffffffffff));
}
}
if (!IsRingShard && player->havePriv(AlwaysInvisiblePriv))
{
c->setWhoSeesMe(uint64(0));
}
TheDataset.declareEntity( entityIndex ); // after the writing of properties to mirror
//#ifdef NL_DEBUG
egs_ecinfo("Client ready (entity %s (Row %u) added to mirror)", characterId.toString().c_str(), entityIndex.getIndex() );
//#endif
// player enter the game
PlayerManager.setEnterFlag( characterId, true );
// ask backup for offline commands file
COfflineCharacterCommand::getInstance()->characterOnline( characterId );
if( CGameEventManager::getInstance().getChannelEventId() != TChanID::Unknown )
{
if( c->haveAnyPrivilege() )
@ -541,7 +538,7 @@ void cbClientReady( CMessage& msgin, const std::string &serviceName, NLNET::TSer
//---------------------------------------------------
// finalizeClientReady :
//
//
//---------------------------------------------------
void finalizeClientReady( uint32 userId, uint32 index )
{
@ -549,21 +546,21 @@ void finalizeClientReady( uint32 userId, uint32 index )
CPlayer *player = PlayerManager.getPlayer(userId);
BOMB_IF( player == 0,"Failed to get player from user Id",return );
BOMB_IF( index==-1, "Failed to find char with given index for this player", return );
// get the char infos
CCharacter * c = PlayerManager.getChar( userId, index );
BOMB_IF( c == NULL, toString("Character %u of user %u not created", index, userId), return);
// get character CEntityId
CEntityId characterId = c->getId();
c->sendDynamicSystemMessage( c->getId(), "OPS_WELCOME" );
// c->sendMessageToClient( c->getId(), "OPS_WELCOME" );
c->sendMessageOfTheDay();
c->checkSkillTreeForLockedSkill();
c->setDatabase();
@ -598,7 +595,7 @@ void finalizeClientReady( uint32 userId, uint32 index )
nlwarning("<cbclientReady : user %s is not in his guild>");
}
}
c->resetFameDatabase();
// notify player respawn points system that player is ready
@ -657,7 +654,7 @@ void finalizeClientReady( uint32 userId, uint32 index )
}
}
}
// check sell store
c->checkSellStore();
@ -684,13 +681,13 @@ void finalizeClientReady( uint32 userId, uint32 index )
}
}
// for GM player, trigger a 'infos' command to remember their persistent state
if (!PlayerManager.getPlayer(uint32(c->getId().getShortId())>>4)->getUserPriv().empty())
CCommandRegistry::getInstance().execute(toString("infos %s", c->getId().toString().c_str()).c_str(), InfoLog(), true);
} // finalizeClientReady //
//-----------------------------------------------
// cbClientDisconnection :
@ -699,7 +696,7 @@ void finalizeClientReady( uint32 userId, uint32 index )
void cbClientDisconnection(CMessage& msgin, const string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbClientDisconnection);
// read the player id
uint32 userId;
msgin.serial( userId );
@ -736,7 +733,7 @@ void cbClientDisconnection(CMessage& msgin, const string &serviceName, NLNET::TS
void disconnectUser(uint32 userId)
{
H_AUTO(disconnectUser);
PlayerManager.disconnectPlayer( userId );
}
@ -747,7 +744,7 @@ void disconnectUser(uint32 userId)
void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbSelectChar);
// read the player id
// uint64 longUserId;
uint32 userId;
@ -773,7 +770,7 @@ void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
{
// get the char infos
CCharacter * ch = PlayerManager.getChar( userId, index );
if( ch != 0 )
{
// Check if not loading an old file with no normal positions
@ -817,11 +814,11 @@ void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
// store the ai instance
ch->setStartupInstance(instanceId);
// Send userId/charId association to the FE (IMPULSION_ID becomes valid from now on)
CEntityId charId = ch->getId();
PlayerManager.setActiveCharForPlayer( userId, index, charId );
CMessage msgout2("CL_ID");
CMessage msgout2("CL_ID");
msgout2.serial( userId );
msgout2.serial( charId );
NLNET::TServiceId frontEndId = PlayerManager.getPlayerFrontEndId( userId );
@ -852,10 +849,10 @@ void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
// Continue on same shard => send user char data (start pos, etc.)
ch->sendUserChar( userId, 0 /*auto*/, R2::TUserRole::ur_player );
}
// send CEntityId/name association to the IOS
// ch->registerName();
// ch->registerName();
// send acknowledge to client for received Enter message (new: it includes version handshake)
CBitMemStream bms2;
nlverify(GenericMsgManager.pushNameToStream( "CONNECTION:READY", bms2));
@ -864,12 +861,12 @@ void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
msgout3.serial( charId );
msgout3.serialBufferWithSize((uint8*)bms2.buffer(), bms2.length());
CUnifiedNetwork::getInstance()->send( frontEndId, msgout3 );
// // Remove user language from IOS, we don't need it anymore
// CMessage msgout4("REMOVE_USER_LANGUAGE");
// msgout4.serial(userId);
// CUnifiedNetwork::getInstance()->send("IOS", msgout4);
if( CPVPManager2::getInstance()->inSafeZone( ch->getPosition() ) )
{
// character must be safe in PVP until he leave safe zone
@ -906,11 +903,11 @@ void cbSelectChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
void cbCheckName( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbCheckName);
uint64 longUid;
uint32 userId;
CCheckNameMsg checkNameMsg;
msgin.serial( longUid );
userId = (uint32) longUid;
msgin.serial( checkNameMsg );
@ -944,16 +941,16 @@ void cbCheckName( CMessage& msgin, const std::string &serviceName, NLNET::TServi
void cbCreateChar( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbCreateChar);
// read the player id
uint64 longUserId;
uint32 userId;
msgin.serial( longUserId );
userId = (uint32) longUserId;
CCreateCharMsg createCharMsg;
createCharMsg.serial( msgin );
// Yoyo: fix to force new newbieland.
if(UseNewNewbieLandStartingPoint)
{
@ -974,7 +971,7 @@ void cbCreateChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
createCharMsg.Name[i] = createCharMsg.Name[i] - 'A' + 'a';
}
}
CCreateCharErrorMsg createCharErrorMsg;
if( ! CCharacter::checkCreateParams( createCharMsg, createCharErrorMsg, userId ) )
{
@ -1031,7 +1028,7 @@ CreationFailed:
sendCharactersSummary( PlayerManager.getPlayer( userId ) );
return;
}
void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool ok)
{
@ -1051,12 +1048,12 @@ void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool
// create a new char
CCharacter * ch = new CCharacter();
createCharMsg.Slot;
CEntityId charId = PlayerManager.createCharacterId( userId, createCharMsg.Slot );
ch->setId( charId );
ch->setId( charId );
ch->setName( createCharMsg.Name );
// ch->setSurname( string("unknown") );
@ -1095,7 +1092,7 @@ void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool
{
nlwarning( "(PS)<cbCreateChar> Error: %s", e.what() );
}
PlayerManager.savePlayerChar( userId, createCharMsg.Slot );
// update the ring database with the new char
@ -1113,7 +1110,7 @@ void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool
// std::pair<PVP_CLAN::TPVPClan, PVP_CLAN::TPVPClan> allegiance = ch->getAllegiance();
// charInfo.setCivilisation(ch->
// charInfo.setCult(
// no respawn points
// no respawn points
IShardUnifierEvent::getInstance()->onNewChar(charInfo);
}
} // cbCreateChar //
@ -1126,7 +1123,7 @@ void cbCreateChar_part2(uint32 userId, const CCreateCharMsg &createCharMsg, bool
void sendIfNameIsValide( uint32 userId, bool nameValide )
{
H_AUTO(sendIfNameIsValide);
CBitMemStream bmsName;
if ( ! GenericMsgManager.pushNameToStream( "CONNECTION:VALID_NAME", bmsName) )
{
@ -1135,11 +1132,11 @@ void sendIfNameIsValide( uint32 userId, bool nameValide )
}
uint8 valide = nameValide;
bmsName.serial( valide );
CMessage msgoutName( "IMPULSION_UID" );
msgoutName.serial( userId );
msgoutName.serialBufferWithSize((uint8*)bmsName.buffer(), bmsName.length());
try
{
CUnifiedNetwork::getInstance()->send( PlayerManager.getPlayerFrontEndId( userId ), msgoutName );
@ -1158,16 +1155,16 @@ void sendIfNameIsValide( uint32 userId, bool nameValide )
void cbDeleteChar( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbDeleteChar);
// read the player id
uint64 longUserId;
uint32 userId;
msgin.serial( longUserId );
userId = (uint32) longUserId;
uint8 characterIndex;
msgin.serial( characterIndex );
CPlayer* player = PlayerManager.getPlayer( userId );
if ( player == NULL )
{
@ -1198,10 +1195,10 @@ void cbDeleteChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
fileName = charPath+NLMISC::toString( "account_%u_%d.xml", userId, index );
BsiGlobal.deleteFile( fileName );
fileName = charPath+NLMISC::toString( "account_%u_%d.xml.backup", userId, index );
BsiGlobal.deleteFile( fileName );
fileName = charPath+NLMISC::toString( "account_%u_%d.bin", userId, index );
BsiGlobal.deleteFile( fileName );
@ -1233,7 +1230,7 @@ void cbDeleteChar( CMessage& msgin, const std::string &serviceName, NLNET::TServ
void sendCharactersSummary( CPlayer *player, bool AllAutorized, uint32 bitfieldOwnerOfActiveAnimSession, uint32 bitfieldOwnerOfEditSession )
{
H_AUTO(sendCharactersSummary);
if ( player == NULL )
return;
@ -1244,14 +1241,14 @@ void sendCharactersSummary( CPlayer *player, bool AllAutorized, uint32 bitfieldO
{
for ( uint i=0, len=(uint)chars.size(); i!=len; ++i )
{
chars[i].InRingSession = ((bitfieldOwnerOfActiveAnimSession & (1 << i)) != 0);
chars[i].InRingSession = ((bitfieldOwnerOfActiveAnimSession & (1 << i)) != 0);
}
}
if (bitfieldOwnerOfEditSession != 0)
{
for ( uint i=0, len=(uint)chars.size(); i!=len; ++i )
{
{
chars[i].HasEditSession = ((bitfieldOwnerOfEditSession & (1 << i)) != 0);
}
}
@ -1305,7 +1302,7 @@ void sendCharactersSummary( CPlayer *player, bool AllAutorized, uint32 bitfieldO
bms.serialCont (shardNames);
// send privileges in all cases
std::string priv;
std::string priv;
priv = player->getUserPriv();
bms.serial(priv);
@ -1339,7 +1336,7 @@ void sendCharactersSummary( CPlayer *player, bool AllAutorized, uint32 bitfieldO
void cbEntityPos(CMessage& msgin, const string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbEntityPos);
CEntityId id;
sint32 x, y, z;
float t;
@ -1385,7 +1382,7 @@ void cbEntityPos(CMessage& msgin, const string &serviceName, NLNET::TServiceId s
void cbClientTpAck( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbTpAcknowledge);
CEntityId Id;
msgin.serial( Id );
@ -1446,7 +1443,7 @@ void cbClientTpAck( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
CBankAccessor_PLR::getTARGET().getBARS().setFOCUS(ch->_PropertyDatabase, 0 );
ch->setTarget( CEntityId::Unknown );
// player still intangible for a few seconds
// player still intangible for a few seconds
ch->setIntangibleEndDate( CTickEventHandler::getGameCycle() + IntangibleTimeAfterTP );
if (ch->getMode()==MBEHAV::DEATH)
@ -1474,11 +1471,11 @@ void cbClientTpAck( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
{
nlwarning("<TP>%s will arrive in invalid continent %s", ch->getId().toString().c_str(), NLMISC::strlwr( cont->getName() ).c_str() );
}
// respawn the pets if needed
ch->respawnPetAfterTp( state, in );
nldebug("Setting player %s in instance #%u for continent '%s'",
nldebug("Setting player %s in instance #%u for continent '%s'",
ch->getId().toString().c_str(),
in,
CONTINENT::toString(contId).c_str());
@ -1528,8 +1525,8 @@ void cbClientTpAck( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
ch->setWhoSeesMe( IsRingShard? R2_VISION::buildWhoSeesMe(R2_VISION::WHOSEESME_VISIBLE_PLAYER,true): UINT64_CONSTANT(0xffffffffffffffff) );
}
}
}
@ -1546,12 +1543,12 @@ void cbClientTpAck( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
} // cbTpAcknowledge //
//---------------------------------------------------
// cbLeaveTeam: a player
// cbLeaveTeam: a player
//---------------------------------------------------
void cbLeaveTeam( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbLeaveTeam);
CEntityId charId;
msgin.serial( charId );
TeamManager.quitTeam( charId );
@ -1563,7 +1560,7 @@ void cbLeaveTeam( NLNET::CMessage& msgin, const std::string &serviceName, NLNET:
void cbJoinTeam( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbJoinTeam);
CEntityId charId;
msgin.serial( charId );
TeamManager.joinAccept( charId );
@ -1575,7 +1572,7 @@ void cbJoinTeam( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::
void cbJoinTeamDecline( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbJoinTeamDecline);
CEntityId charId;
msgin.serial( charId );
TeamManager.joinDecline( charId );
@ -1588,7 +1585,7 @@ void cbJoinTeamDecline( NLNET::CMessage& msgin, const std::string &serviceName,
void cbJoinTeamProposal( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbJoinTeamProposal);
CEntityId charId;
msgin.serial( charId );
@ -1609,7 +1606,7 @@ void cbJoinTeamProposal( NLNET::CMessage& msgin, const std::string &serviceName,
void cbKickTeammate( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbKickTeammate);
CEntityId charId;
uint8 memberIndex;
msgin.serial( charId );
@ -1633,7 +1630,7 @@ void cbKickTeammate( NLNET::CMessage& msgin, const std::string &serviceName, NLN
void cbHarvest( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvest);
CEntityId charId;
msgin.serial( charId );
@ -1661,7 +1658,7 @@ void cbHarvest( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::T
void cbHarvestClose( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvestClose);
CEntityId charId;
msgin.serial( charId );
@ -1687,7 +1684,7 @@ void cbHarvestClose( NLNET::CMessage& msgin, const std::string &serviceName, NLN
void cbHarvestDeposit( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvestDeposit);
CEntityId charId;
msgin.serial( charId );
@ -1728,7 +1725,7 @@ void cbHarvestDeposit( NLNET::CMessage& msgin, const std::string &serviceName, N
nlerror( "character->harvestDeposit(true);" ); // TODO
/*character->depositSearchSkill(skill);
character->openHarvest();*/
// character->sendMessageToClient( character->getId(), "WOS_HARVEST_SEARCHING" );
nlerror( "CZoneManager::getInstance().harvestDeposit(character);" );
@ -1744,7 +1741,7 @@ void cbHarvestDeposit( NLNET::CMessage& msgin, const std::string &serviceName, N
// Changed : Wait new harvest rules ////////////////////////////////////////////////////
// character->setBehaviour( MBEHAV::HARVESTING );
} // cbHarvestDeposit //
@ -1755,7 +1752,7 @@ void cbHarvestDeposit( NLNET::CMessage& msgin, const std::string &serviceName, N
void cbHarvestMPDestroyed( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvestMPDestroyed);
CEntityId charId;
msgin.serial( charId );
@ -1800,7 +1797,7 @@ void cbHarvestMPDestroyed( NLNET::CMessage& msgin, const std::string &serviceNam
void cbHarvestInterrupted( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvestInterrupted);
CEntityId charId;
msgin.serial( charId );
@ -1839,13 +1836,13 @@ void cbHarvestInterrupted( NLNET::CMessage& msgin, const std::string &serviceNam
void cbHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbHarvestDB);
CEntityId charId;
CSheetId sheet;
uint16 quantity;
uint16 minQuality;
uint16 maxQuality;
msgin.serial( charId );
msgin.serial( sheet );
msgin.serial( quantity );
@ -1871,7 +1868,7 @@ void cbHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, NLNET:
character->staticActionInProgress(true);
CTempInventory *invTemp = (CTempInventory*)(CInventoryBase*)character->getInventory(INVENTORIES::temporary);
for (uint32 i = 0 ; i < invTemp->getSlotCount(); ++i )
{
if (i != 0 )
@ -1883,7 +1880,7 @@ void cbHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, NLNET:
{
invTemp->setDispQuantity(i, quantity);
invTemp->setDispSheetId(i, sheet);
}
}
invTemp->setDispQuality(i, 0);
//trap character->incSlotVersion( INVENTORIES::temporary,i );
}
@ -1947,7 +1944,7 @@ void cbHarvestDBUpdateQty( NLNET::CMessage& msgin, const std::string &serviceNam
void cbClearHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbClearHarvestDB);
CEntityId charId;
msgin.serial( charId );
@ -1982,7 +1979,7 @@ void cbClearHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, N
uint16 quantity;
msgin.serial( quantity );
uint16 quality;
msgin.serial( quality );
@ -2013,7 +2010,7 @@ void cbClearHarvestDB( NLNET::CMessage& msgin, const std::string &serviceName, N
void cbFightingTarget( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbFightingTarget);
CEntityId IdCharacter, Target;
msgin.serial( IdCharacter );
@ -2043,7 +2040,7 @@ void cbFightingTarget( NLNET::CMessage& msgin, const std::string &serviceName, N
void cbAnimalCommand( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbAnimalCommand);
CEntityId entity;
uint8 beastIndex;
uint8 command;
@ -2119,7 +2116,7 @@ void cbTradeListReceived( NLNET::CMessage& msgin, const std::string &serviceName
void cbTradeBuySomething( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbTradeBuySomething);
CEntityId player;
uint8 ItemNumber;
uint16 Quantity;
@ -2171,7 +2168,7 @@ void cbGiveSeed( NLNET::CMessage& msgin, const std::string &serviceName, uint16
void cbAddSurvivePact( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbAddSurvivePact);
CEntityId player;
uint8 PactNature, PactType;
@ -2233,7 +2230,7 @@ void cbFameChange( NLNET::CMessage& msgin, const std::string &serviceName, uint1
// read the creature id
CEntityId Id;
msgin.serial( Id );
// read creature sheet id
uint32 Sheet;
msgin.serial( Sheet );
@ -2272,7 +2269,7 @@ void cbFameChange( NLNET::CMessage& msgin, const std::string &serviceName, uint1
void cbSetValue( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbSetValue);
// read the entity id
CEntityId Id;
msgin.serial( Id );
@ -2305,7 +2302,7 @@ void cbSetValue( CMessage& msgin, const std::string &serviceName, NLNET::TServic
void cbModifyValue( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbModifyValue);
// read the creature id
CEntityId Id;
msgin.serial( Id );
@ -2319,7 +2316,7 @@ void cbModifyValue( CMessage& msgin, const std::string &serviceName, NLNET::TSer
msgin.serial( modifValue );
// egs_ecinfo("*** cbModifyValue from service %s modify value %s to %s", serviceName.c_str(), var.c_str(), modifValue.c_str() );
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr( Id );
if (entity == 0)
@ -2336,7 +2333,7 @@ void cbModifyValue( CMessage& msgin, const std::string &serviceName, NLNET::TSer
void cbTarget( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbTarget);
if ( ! Mirror.mirrorIsReady() )
{
nlwarning("<cbTarget> Received from %s service but mirror not yet ready", serviceName.c_str() );
@ -2348,7 +2345,7 @@ void cbTarget( CMessage& msgin, const std::string &serviceName, NLNET::TServiceI
// read the entity id
TDataSetRow Id;
msgin.serial(Id);
// read the target id
TDataSetRow targetId;
msgin.serial(targetId);
@ -2364,12 +2361,12 @@ void cbTarget( CMessage& msgin, const std::string &serviceName, NLNET::TServiceI
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr(Id);
CEntityId EentityId=TheDataset.getEntityId(Id);
CEntityId EtargetId=TheDataset.getEntityId(targetId);
if (entity == 0)
{
nlwarning("<cbTarget> Invalid entity Id %s", EentityId.toString().c_str() );
return;
}
}
if (entity->getId().getType()==RYZOMID::player)
{
entity->setTarget(EtargetId);
@ -2384,7 +2381,7 @@ void cbTarget( CMessage& msgin, const std::string &serviceName, NLNET::TServiceI
void cbChangeMode( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbChangeMode);
/*// read the character id
CEntityId Id;
msgin.serial( Id );
@ -2416,7 +2413,7 @@ void cbChangeMode( CMessage& msgin, const std::string &serviceName, NLNET::TServ
void cbChangeBehaviour( CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbChangeBehaviour);
// read the character id
CEntityId Id;
msgin.serial( Id );
@ -2445,7 +2442,7 @@ void cbItemDrop( CMessage& msgin, const std::string &serviceName, NLNET::TServic
{
nlwarning("cbItemDrop no more allowed");
// H_AUTO(cbItemDrop);
//
//
// CEntityId user;
// uint16 inventory,slot,quantity;
//
@ -2501,7 +2498,7 @@ void cbItemPickup( NLNET::CMessage& msgin, const std::string &serviceName, NLNET
void cbItemClosePickup( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbItemClosePickup);
CEntityId charId;
msgin.serial( charId );
@ -2522,7 +2519,7 @@ void cbItemSwap( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::
{
H_AUTO(cbItemSwap);
CEntityId charId;
uint16 slotSrc, slotDst, quantity;
INVENTORIES::TInventory inventorySrc, inventoryDst;
@ -2545,7 +2542,7 @@ void cbItemSwap( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::
}
TLogContext_Item_Swap logContext(character->getId());
character->setAfkState(false);
// increment inventory counter
@ -2553,11 +2550,11 @@ void cbItemSwap( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::
character->incInterfaceCounter();
// Special case for guilds
if (inventorySrc == INVENTORIES::guild || inventoryDst == INVENTORIES::guild)
if (inventorySrc == INVENTORIES::guild || inventoryDst == INVENTORIES::guild)
{
uint16 nGuildSessionCounter;
msgin.serial( nGuildSessionCounter );
string sDebug = "<cbItemSwap> user:" + TheDataset.getEntityId(character->getEntityRowId()).toString() + " ";
CGuild *pGuild = CGuildManager::getInstance()->getGuildFromId( character->getGuildId() );
@ -2611,18 +2608,18 @@ void cbItemSwap( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::
void cbEngage( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbEngage);
CEntityId charId;
msgin.serial( charId );
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr( charId );
if (entity == NULL)
{
nlwarning("<EntityCallbacks::cbEngage> Invalid entity Id %s", charId.toString().c_str() );
return;
}
CEntityId targetId = entity->getTarget();
vector<CSheetId> bricks;
@ -2651,9 +2648,9 @@ void cbDefaultAttack( NLNET::CMessage& msgin, const std::string &serviceName, NL
CEntityId entityId;
msgin.serial( entityId );
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr( entityId );
if (entity == NULL)
{
nlwarning("<EntityCallbacks::cbDefaultAttack> Invalid entity Id %s", entityId.toString().c_str() );
@ -2666,7 +2663,7 @@ void cbDefaultAttack( NLNET::CMessage& msgin, const std::string &serviceName, NL
CEntityId targetId = entity->getTarget();
CPhraseManager::getInstance().defaultAttackSabrina( entityId, targetId );
} // cbDefaultAttack //
@ -2676,12 +2673,12 @@ void cbDefaultAttack( NLNET::CMessage& msgin, const std::string &serviceName, NL
void cbStun( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbStun);
CEntityId charId;
msgin.serial( charId );
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr( charId );
if (entity == NULL)
{
nlwarning("<EntityCallbacks::cbStun> Invalid entity Id %s", charId.toString().c_str() );
@ -2698,12 +2695,12 @@ void cbStun( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TSer
void cbWake( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbWake);
CEntityId charId;
msgin.serial( charId );
CEntityBase* entity = CEntityBaseManager::getEntityBasePtr( charId );
if (entity == NULL)
{
nlwarning("<EntityCallbacks::cbWake> Invalid entity Id %s", charId.toString().c_str() );
@ -2741,7 +2738,7 @@ void cbExchangeProposal( NLNET::CMessage& msgin, const std::string &serviceName,
void cbAcceptExchangeInvitation( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbAcceptExchangeInvitation);
CEntityId charId;
msgin.serial( charId );
CCharacter * c = PlayerManager.getChar( charId );
@ -2760,7 +2757,7 @@ void cbAcceptExchangeInvitation( NLNET::CMessage& msgin, const std::string &serv
void cbDeclineExchangeInvitation( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbDeclineExchangeInvitation);
CEntityId charId;
msgin.serial( charId );
CCharacter * c = PlayerManager.getChar( charId );
@ -2780,7 +2777,7 @@ void cbDeclineExchangeInvitation( NLNET::CMessage& msgin, const std::string &ser
void cbAcceptExchange( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbAcceptExchange);
CEntityId charId;
uint8 exchangeId;
msgin.serial( charId );
@ -2801,7 +2798,7 @@ void cbAcceptExchange( NLNET::CMessage& msgin, const std::string &serviceName, N
void cbEndExchange( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbEndExchange);
CEntityId charId;
msgin.serial( charId );
CCharacter * c = PlayerManager.getChar( charId );
@ -2821,7 +2818,7 @@ void cbEndExchange( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
void cbExchangeSeeds( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbExchangeSeeds);
///\todo : why not an uint64?
CEntityId charId;
sint64 quantity;
@ -2845,7 +2842,7 @@ void cbExchangeSeeds( NLNET::CMessage& msgin, const std::string &serviceName, NL
void cbAnimalMount( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbAnimalMount);
CEntityId id;
msgin.serial( id );
@ -2917,7 +2914,7 @@ void cbAnimalMount( NLNET::CMessage& msgin, const std::string &serviceName, NLNE
void cbAnimalUnseat( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId )
{
H_AUTO(cbAnimalUnseat);
CEntityId id;
msgin.serial( id );
@ -2979,7 +2976,7 @@ void cbSetPlayerSeason(NLNET::CMessage& msgin, const std::string &serviceName, N
void cbTeleportPlayer(NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbTeleportPlayer);
CEntityId playerEid;
sint32 x, y, z;
float t;
@ -2990,12 +2987,12 @@ void cbTeleportPlayer(NLNET::CMessage& msgin, const std::string &serviceName, NL
nlRead(msgin, serial, t);
CCharacter *chr = PlayerManager.getChar(playerEid);
CCharacter *chr = PlayerManager.getChar(playerEid);
if (!chr)
{
return;
}
chr->teleportCharacter(x, y, z, true, true, t);
chr->teleportCharacter(x, y, z, true, true, t);
}
@ -3032,7 +3029,7 @@ void cbRcvValidateSourceSpawnReply( NLNET::CMessage& msgin, const std::string &s
// End spawning (either leave it or destroy it)
harvestSource->spawnEnd( canSpawn );
}
if ( ! prospectorDataSetRow.isNull() ) // is null for auto-spawned sources
{
// Report the sources found (or not found) to the user
@ -3055,7 +3052,7 @@ void cbRcvValidateSourceSpawnReply( NLNET::CMessage& msgin, const std::string &s
void cbPlayerUnreachable( NLNET::CMessage& msgin, const std::string &serviceName, NLNET::TServiceId serviceId)
{
H_AUTO(cbPlayerUnreachable);
CEntityId creatureId;
msgin.serial( creatureId );
CCreature * creature = CreatureManager.getCreature( creatureId );
@ -3064,7 +3061,7 @@ void cbPlayerUnreachable( NLNET::CMessage& msgin, const std::string &serviceName
nlwarning("<cbPlayerUnreachable> Unknown creature %s", creatureId.toString().c_str() );
return;
}
CEntityId charId;
msgin.serial( charId );
CCharacter * character = PlayerManager.getChar( charId );
@ -3073,7 +3070,7 @@ void cbPlayerUnreachable( NLNET::CMessage& msgin, const std::string &serviceName
nlwarning("<cbPlayerUnreachable> Unknown character %s", charId.toString().c_str() );
return;
}
// Do nothing for now, damage removal is done in aggro lost.
}

View file

@ -50,8 +50,11 @@ CMailForumValidator::TMailNotification CMailForumValidator::_Notification = NULL
// Use Mail/Forum
CVariable<bool> UseMailForum("web", "UseMailForum", "Allow mail/forum validation", true, 0, true);
// For shard names
extern NLMISC::CVariable<uint32> FixedSessionId;
// For a mainland shard (non ring), we need the session id to initialize the normal position stack with
// the current far position after loading an old character file with no stored session id.
// (Alternatively, the ServerAnimationModule could sent it to any mainland shard, looking up in the DB
// ring:sessions).
NLMISC::CVariable<uint32> FixedSessionId( "egs", "FixedSessionId", "For a mainland shard, the session id", 0, 0, true );
/*
* Constructor