khanat-opennel-code/code/ryzom/server/src/server_share/event_report.h
acemtp@users.sourceforge.net d5c601ffa5 initial version
2010-05-06 02:08:41 +02:00

88 lines
2.4 KiB
C++

// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef RY_EVENT_REPORT_H
#define RY_EVENT_REPORT_H
#include "nel/misc/types_nl.h"
#include "nel/misc/stream.h"
#include "game_share/action_nature.h"
/*
NOTE
----
SEventReport is the structure used by the brick service event report message
format:
"EVENT_REPORTS"
std::list<SEventReport>
Subscription for event reports via message:
"REGISTER_EVENT_REPORTS"
Unsubscription via message:
"UNREGISTER_EVENT_REPORTS"
*/
/**
* Structure for event reports sent by the Brick Service
* \author David Fleury
* \author Nevrax France
* \date 2002
*/
struct SEventReport
{
NLMISC::CEntityId ActingEntity;
NLMISC::CEntityId TargetEntity;
ACTNATURE::TActionNature Nature;
sint32 DeltaLevel;
std::string Skill;
std::string Specialization;
bool Success;
bool FullResist;
/// to String
std::string toString() const
{
char buffer[512];
sprintf( buffer, "Actor %s, Target %s. Delta Level = %d, skill = %s, spe = %s. Success = %s, FullResist = %s", ActingEntity.toString().c_str(), TargetEntity.toString().c_str(), DeltaLevel, Skill.c_str(), Specialization.c_str(), (Success?"yes":"no"),(FullResist?"yes":"no") );
return std::string(buffer);
}
/// Serialisation
void serial(class NLMISC::IStream &f) throw(NLMISC::EStream)
{
f.serial( ActingEntity );
f.serial( TargetEntity );
f.serialEnum( Nature );
f.serial( DeltaLevel );
f.serial( Skill );
f.serial( Specialization );
f.serial( Success );
f.serial( FullResist );
}
};
#endif // RY_EVENT_REPORT_H
/* End of event_report.h */