Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
138
GameTools/GLOBALSCRIPT/Creature/CreatureStructure.h
Normal file
138
GameTools/GLOBALSCRIPT/Creature/CreatureStructure.h
Normal file
@@ -0,0 +1,138 @@
|
||||
#ifndef _CREATURE_STRUCTURE_H_
|
||||
#define _CREATURE_STRUCTURE_H_
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
#include <cmath>
|
||||
|
||||
#include <DB/DBDefine.h>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
struct CreatureStatus;
|
||||
struct CharacterStatus;
|
||||
|
||||
|
||||
// <20><> <20>̵<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
struct Position
|
||||
{
|
||||
float m_fPointX; // Point X <20><>ǥ
|
||||
float m_fPointY; // Point Y <20><>ǥ
|
||||
float m_fPointZ; // Point Z <20><>ǥ
|
||||
|
||||
inline Position();
|
||||
inline Position(const POS& Pos);
|
||||
inline Position(const Position& Pos);
|
||||
inline Position(float fPointX, float fPointY, float fPointZ);
|
||||
|
||||
inline unsigned int GetDistance(const Position& rhs) const
|
||||
{
|
||||
return (unsigned int)sqrt((m_fPointX - rhs.m_fPointX) * (m_fPointX - rhs.m_fPointX) +
|
||||
(m_fPointY - rhs.m_fPointY) * (m_fPointY - rhs.m_fPointY) +
|
||||
(m_fPointZ - rhs.m_fPointZ) * (m_fPointZ - rhs.m_fPointZ));
|
||||
}
|
||||
};
|
||||
typedef Position* LPPosition;
|
||||
|
||||
inline Position::Position()
|
||||
: m_fPointX(0.0f), m_fPointY(0.0f), m_fPointZ(0.0f) { }
|
||||
|
||||
inline Position::Position(const POS& Pos)
|
||||
: m_fPointX(Pos.fPointX), m_fPointY(Pos.fPointY), m_fPointZ(Pos.fPointZ) { }
|
||||
|
||||
inline Position::Position(const Position& Pos)
|
||||
: m_fPointX(Pos.m_fPointX), m_fPointY(Pos.m_fPointY), m_fPointZ(Pos.m_fPointZ) { }
|
||||
|
||||
inline Position::Position(float fPointX, float fPointY, float fPointZ)
|
||||
: m_fPointX(fPointX), m_fPointY(fPointY), m_fPointZ(fPointZ) { }
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
struct MotionInfo
|
||||
{
|
||||
float m_fDirection; // <20>ٶ<D9B6> <20><><EFBFBD><EFBFBD>
|
||||
float m_fVelocity; // <20>ӵ<EFBFBD>
|
||||
unsigned short m_wAction; // <20><><EFBFBD>ϴ<EFBFBD> <20>ൿ
|
||||
unsigned long m_dwFrame; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, NPC<50><43> <20><><EFBFBD><EFBFBD> )
|
||||
|
||||
MotionInfo();
|
||||
};
|
||||
typedef MotionInfo* LPMotionInfo;
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
struct StatusInfo
|
||||
{
|
||||
enum {
|
||||
ATTRIBUTE_FIRE = 0,
|
||||
ATTRIBUTE_LIGHTNING = 1,
|
||||
ATTRIBUTE_COLD = 2,
|
||||
ATTRIBUTE_DRAIN = 3,
|
||||
ATTRIBUTE_POISON = 4,
|
||||
MAX_ATTRIBUTE_NUM = 5
|
||||
};
|
||||
|
||||
short m_nCriticalType; // ũ<><C5A9>Ƽ<EFBFBD><C6BC> Ÿ<><C5B8> ( <20>߰<EFBFBD> ȿ<><C8BF> Ÿ<><C5B8> ex> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20>б<EFBFBD> - <20><><EFBFBD><EFBFBD> ... )
|
||||
short m_nCriticalPercentage; // ũ<><C5A9>Ƽ<EFBFBD><C6BC> Ȯ<><C8AE>
|
||||
|
||||
short m_nMinDamage; // <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
short m_nMaxDamage; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
float m_fDRC; // DRC
|
||||
short m_nOffenceRevision; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
short m_nDefence; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
short m_nDefenceRevision; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
short m_nMagicResistance; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
short m_nBlockingPercentage; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
short m_nAttackSpeed; // <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD>.
|
||||
short m_nMoveSpeed; // <20>̵<EFBFBD> <20>ӵ<EFBFBD>.
|
||||
short m_nAttackRange; // <20><><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD>. // <20><><EFBFBD><EFBFBD> = cm
|
||||
short m_nRangeAttackDistance; // <20><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD>. // <20><><EFBFBD><EFBFBD> = m
|
||||
|
||||
unsigned short m_nMaxHP; // <20>ִ<EFBFBD> HP<48><50>
|
||||
unsigned short m_nMaxMP; // <20>ִ<EFBFBD> MP<4D><50>
|
||||
|
||||
short m_nHPRegenAmount; // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> HP<48><50> Regen <20><>
|
||||
short m_nMPRegenAmount; // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> MP<4D><50> Regen <20><>
|
||||
|
||||
short m_nWeaponAttributeLevel[MAX_ATTRIBUTE_NUM]; // <20><><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
short m_nAttributeResistance[MAX_ATTRIBUTE_NUM]; // <20>Ӽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
StatusInfo(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
#ifndef _RYL_GAME_CLIENT_
|
||||
bool CalculateStatus(const CharacterStatus& characterStatus,
|
||||
const unsigned short nLevel, const unsigned short nClass, unsigned char cUsingWeaponType);
|
||||
#endif
|
||||
|
||||
};
|
||||
typedef StatusInfo* LPStatusInfo;
|
||||
|
||||
|
||||
#pragma pack(8)
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// TODO : memory alignment <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.
|
||||
// : 4byte<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> alignment <20><> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20><> <20><>.
|
||||
// : <20><EFBFBD><DEB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> ũ<>Ⱑ <20><><EFBFBD><EFBFBD> <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> short<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>.
|
||||
struct CreatureStatus
|
||||
{
|
||||
// <20><><EFBFBD>⳪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ɷ<EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD> ( <20><><EFBFBD>ӻ<D3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD> <20><> )
|
||||
__int64 m_nExp; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
int m_nLevel; // <20><><EFBFBD><EFBFBD>
|
||||
unsigned short m_nNowHP; // <20><><EFBFBD><EFBFBD> HP
|
||||
unsigned short m_nNowMP; // <20><><EFBFBD><EFBFBD> MP, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ밪<D6B4><EBB0AA><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ.
|
||||
|
||||
StatusInfo m_StatusInfo; // <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̰<EFBFBD><CCB0><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
CreatureStatus();
|
||||
CreatureStatus(CHAR_INFOST& characterDBData);
|
||||
void Init(CHAR_INFOST& characterDBData);
|
||||
};
|
||||
typedef CreatureStatus* LPCreatureStatus;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user