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:
121
Server/RylServerProject/RylGameLibrary/Creature/Threat.h
Normal file
121
Server/RylServerProject/RylGameLibrary/Creature/Threat.h
Normal file
@@ -0,0 +1,121 @@
|
||||
#ifndef _CTHREAT_H_
|
||||
#define _CTHREAT_H_
|
||||
|
||||
#pragma once
|
||||
#pragma warning(disable:4800)
|
||||
|
||||
#include <list>
|
||||
|
||||
|
||||
class CAggresiveCreature;
|
||||
class CParty;
|
||||
|
||||
class CThreat
|
||||
{
|
||||
public:
|
||||
|
||||
enum Const
|
||||
{
|
||||
MAX_THREAT_TARGET = 10, // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ִ<EFBFBD> <20><>ü <20><>
|
||||
MAX_THREAT_REWARD = 3, // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20>ִ<EFBFBD> <20><EFBFBD> <20><>
|
||||
|
||||
FAME_CONSENT_GAP = 5, // <20><><EFBFBD><EFBFBD> <20>й<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
EXP_CONSENT_GAP = 14, // <20><><EFBFBD><EFBFBD>ġ <20>й<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
EXP_BALANCE_HANDLE = 14, // <20><>Ƽ <20><><EFBFBD><EFBFBD>ġ <20>й<EFBFBD><D0B9><EFBFBD> <20>뷱<EFBFBD><EBB7B1> <20>ڵ<EFBFBD>
|
||||
|
||||
MOVING_ATTACK_TAUNT_RATE = 3, // <20>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> Ÿ<>ٿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>ġ
|
||||
ATTACK_TAUNT_RATE = 6 // <20>Ϲ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ÿ<EFBFBD><C5B8><EFBFBD> Ÿ<>ٿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>ġ
|
||||
};
|
||||
|
||||
enum AffectThreatType
|
||||
{
|
||||
TAUNT = 1,
|
||||
DETAUNT = 2
|
||||
};
|
||||
|
||||
struct ThreatInfo
|
||||
{
|
||||
CAggresiveCreature* m_pCreature;
|
||||
long m_lThreatAmount;
|
||||
|
||||
ThreatInfo() : m_pCreature(NULL), m_lThreatAmount(0) { }
|
||||
ThreatInfo(CAggresiveCreature* pCreature, long lThreatAmount)
|
||||
: m_pCreature(pCreature), m_lThreatAmount(lThreatAmount) { }
|
||||
};
|
||||
|
||||
struct AwardInfo
|
||||
{
|
||||
CAggresiveCreature* m_pCreature;
|
||||
CParty* m_pParty;
|
||||
long m_lAward;
|
||||
|
||||
AwardInfo() : m_pCreature(NULL), m_pParty(NULL), m_lAward(0) { }
|
||||
AwardInfo(CAggresiveCreature* pCreature, CParty* pParty, long lAward)
|
||||
: m_pCreature(pCreature), m_pParty(pParty), m_lAward(lAward) { }
|
||||
};
|
||||
|
||||
struct SaveEnemyInfo
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>¡ <20><><EFBFBD><EFBFBD> <20><>ġ (<28>ֱٿ<D6B1> <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>صд<D8B5>.)
|
||||
enum
|
||||
{
|
||||
MAX_SAVING_ENEMY = 5, // <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ִ<EFBFBD> <20><>ü <20><>
|
||||
MAX_SAVING_TICKCOUNT = 300000, // <20><> <20><>ü<EFBFBD><C3BC> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> (5<><35>)
|
||||
MAX_SAVING_TICKCOUNT_FOR_US = 900000 // <20>̱<EFBFBD> <20><><EFBFBD>ʸ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ü<EFBFBD><C3BC> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> (15<31><35>)
|
||||
};
|
||||
|
||||
unsigned long m_dwCID;
|
||||
unsigned long m_dwTickCount;
|
||||
|
||||
SaveEnemyInfo() : m_dwCID(0), m_dwTickCount(0) { }
|
||||
};
|
||||
|
||||
|
||||
CThreat(void);
|
||||
~CThreat(void);
|
||||
|
||||
void ClearAll(void);
|
||||
void ClearThreatList(void);
|
||||
void ClearThreatenedList(void);
|
||||
|
||||
void SetOwner(CAggresiveCreature* pCreature) { m_pOwner = pCreature; }
|
||||
|
||||
void AddToThreatList(CAggresiveCreature* pAttackCreature, long lThreatAmount);
|
||||
void AddToThreatenedList(CAggresiveCreature* pDefendCreature);
|
||||
|
||||
void HealThreat(CAggresiveCreature* pHealCreature, long lThreatAmount);
|
||||
void AffectThreat(CAggresiveCreature* pTauntCreature, long lDamage, AffectThreatType eType);
|
||||
|
||||
bool DeleteThreat(CAggresiveCreature* pAttackCreature);
|
||||
bool DeleteThreatened(CAggresiveCreature* pDefendCreature);
|
||||
|
||||
CAggresiveCreature* GetTarget(void);
|
||||
CAggresiveCreature* GetMaxThreatCreature(void) { return m_ThreatList.empty() ? NULL : m_ThreatList.back().m_pCreature; }
|
||||
long GetMaxThreatAmount(void) { return m_ThreatList.empty() ? 0 : m_ThreatList.back().m_lThreatAmount; }
|
||||
|
||||
inline float GetAggravation(CAggresiveCreature *pCreature);
|
||||
unsigned char GetAward(unsigned long* aryItemID, Item::CItem** aryItem, unsigned long* dwOwnerID);
|
||||
|
||||
void DivisionExp(void); // <20><><EFBFBD><EFBFBD>ġ <20>й<EFBFBD>
|
||||
bool SaveEnemy(unsigned long dwCID); // <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>븦 <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
SaveEnemyInfo* GetSaveEnemyInfo(void) { return m_LatestEnemy; }
|
||||
|
||||
protected:
|
||||
|
||||
typedef std::list<ThreatInfo> ThreatList;
|
||||
typedef std::list<CAggresiveCreature*> ThreatenedList;
|
||||
|
||||
ThreatList m_ThreatList; // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>Ʈ
|
||||
ThreatenedList m_ThreatenedList; // Ÿ ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
||||
|
||||
CAggresiveCreature* m_pOwner; // <20><> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> ũ<><C5A9>ó
|
||||
|
||||
unsigned char m_cMaxLevel; // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
Creature::CreatureType m_eMaxLevelCreatureType; // <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
||||
|
||||
SaveEnemyInfo m_LatestEnemy[SaveEnemyInfo::MAX_SAVING_ENEMY]; // <20>ֱٿ<D6B1> <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (PvP<76><50> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user