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:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,216 @@
#ifndef _SIEGE_OBJECT_H_
#define _SIEGE_OBJECT_H_
#pragma once
#include <list>
#include <map>
#include <Creature/Monster/PatternMonster.h>
#include <Creature/Siege/SiegeConstants.h>
#include <Creature/Character/SphereTree/CharSphereTree.h>
#include <Creature/Siege/SerializeSiegeObjectData.h>
#include <Network/Packet/PacketStruct/CastlePacket.h>
using namespace Siege;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
class CCharacter;
namespace BroadCastSiege
{
class CSerializeSiegeObjectData;
}
class CSiegeObject : public CSkillMonster, public ICharSphereTreeCallBack
{
public:
typedef std::set<unsigned long> BroadCastSet;
virtual ~CSiegeObject();
// ---------------------------------------------------------------------
// CSkillMonster <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD> <20>Լ<EFBFBD>
// <20><><EFBFBD>Ʊ<EFBFBD> <20>ĺ<EFBFBD>
virtual EnemyCheck::EnemyType IsEnemy(CCreature* lpTarget, unsigned char* cResult = NULL);
// <20><>ü <20><><EFBFBD><EFBFBD> <20>ɷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
virtual void NormalBehavior(unsigned long dwTick) { }
virtual void AttackBehavior(unsigned long dwTick) { }
virtual void SearchPlayer(void) { }
bool SkillAttack(void);
virtual bool Dead(CAggresiveCreature* pOffencer) { return false; }
virtual void MoveTo(const Position& NewPosition);
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// ij<><C4B3><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Attack Packet ó<><C3B3> <20>Լ<EFBFBD>
virtual bool AttackCID(CCharacter* lpRideChar, AtType attackType, AtNode& attackNode, unsigned short& wError) { return false; }
virtual bool Attack(AtType attackType, unsigned char cDefenderNum, CAggresiveCreature** ppDefenders,
unsigned char* cDefenserJudges, unsigned short* wDefenserMPHeal) { return false; }
virtual bool MissileAttack(AtType attackType, float fDir, float nRange, float fAngle, char cTargetType) { return false; }
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// SiegeObject ó<><C3B3> <20>Լ<EFBFBD>
virtual bool Build(unsigned char cUpgradeStep = 0) { return false; } // <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3>
virtual bool Cancel() { return false; } // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD>
virtual bool Upgrade(unsigned char cUpgradeStep) { return false; } // <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3>
virtual bool Repair(unsigned short wRepairHP) { return false; } // <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3>
virtual bool Restore() { return false; } // <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3>
virtual bool Destroy(unsigned char cOffencerNation, bool bTakeGold) { return false; } // <20>ı<EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3> (<28><>ü <20>ı<EFBFBD>, <20>ı<EFBFBD><C4B1><EFBFBD>)
virtual bool Destroy(unsigned long dwOffencerGID) { return false; } // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ı<EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3> (<28><>ü <20>ı<EFBFBD>, <20>ı<EFBFBD><C4B1><EFBFBD>)
virtual bool Update(unsigned char cState, unsigned long dwValue1, unsigned long dwValue2, unsigned long dwOwnerID, unsigned char cSubCmd) { return false; } // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
virtual bool ChangeType(unsigned short wChangeType) { return false; } // <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ó<><C3B3>
// <20><>Ÿ<EFBFBD><C5B8>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ (bFullMaterial <20><> true <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 90%<25><> <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.)
virtual bool ToStarterKit(bool bFullMaterial=false) { return false; }
virtual unsigned long GetRepairGold() const { return Siege::MAX_REPAIR_GOLD; }
unsigned long GetRepairHP();
// Rider <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
virtual unsigned char IsRider(unsigned long dwCID) const; // <20>ش<EFBFBD> ij<><C4B3><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD>⿡ ž<><C5BE><EFBFBD><EFBFBD> <20>ִ°<D6B4>?
virtual bool Ride(unsigned long dwCID) { return false; } // <20><><EFBFBD><EFBFBD> ž<><C5BE>
virtual bool GetOff(unsigned long dwCID) { return false; } // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
virtual void AllGetOff() { GetOff(m_dwRiderCID); } // <20><><EFBFBD><EFBFBD><E2BFA1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>õ<EFBFBD> <20>Լ<EFBFBD> (<28><>¡<EFBFBD><C2A1> <20><><EFBFBD>׷<EFBFBD><D7B7>̵忡 <20><><EFBFBD><EFBFBD> ȿ<><C8BF>)
void UpgradeByEmblem(unsigned char cUpgradeType, unsigned char cUpgradeStep);
void DegradeByEmblem(unsigned char cUpgradeType, unsigned char cUpgradeStep);
unsigned short GetDefaultNowHP(); // <20><>¡<EFBFBD><C2A1><EFBFBD><EFBFBD> <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> HP <20><><EFBFBD><EFBFBD>
// ---------------------------------------------------------------------
// <20>ݰ<EFBFBD> 5<><35><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>Լ<EFBFBD>
void SendHPUpdateToDBAgent(bool bForce=false);
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ε<EFBFBD>ij<EFBFBD><C4B3>Ʈ <20>Լ<EFBFBD>
// void SendToRadiusCell(const char* szPacket, unsigned long dwPacketSize, unsigned char cCMD_In);
// bool SerializeOut(char* szBuffer_In, unsigned short& wDataLen);
void RangeTest();
virtual void RangeTestCallBack( const Position& centerPos, float fDistance, CCharSphereNode* pNode );
void SendToRange( float fRadius, const char* szPacket, unsigned long dwPacketSize, unsigned char cCMD_In );
BroadCastSiege::CSerializeSiegeObjectData& GetSerializeData(void) { return m_SerializeSiegeObjectData; }
// Get / Set <20>Լ<EFBFBD>
bool IsEmblem() const { return (Siege::EMBLEM == m_wObjectType); }
bool IsCamp() const;
bool IsGate() const { return (Siege::GATE == m_wObjectType); }
bool IsGuard() const { return (Siege::GUARD == m_wObjectType); }
bool IsCastleObject() const;
bool IsCastleArms() const;
bool IsSiegeArms() const;
bool IsRidable() const; // Ż<><C5BB> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>ΰ<EFBFBD>?
bool IsCastleNPC() const { return (m_wObjectType == Siege::BACKDOOR || m_wObjectType == Siege::CASTLE_ARMS_NPC); }
bool IsMaxHP() const { return (m_CreatureStatus.m_nNowHP == m_CreatureStatus.m_StatusInfo.m_nMaxHP); }
bool IsPeaceMode();
bool IsRideArms(void) const { return false; }
bool IsWorldWeapon() const;
unsigned short GetObjectType() const { return m_wObjectType; }
unsigned long GetCID() const { return m_dwCID; }
unsigned long GetNowHP() const { return m_CreatureStatus.m_nNowHP; }
unsigned long GetMaxHP() const { return m_CreatureStatus.m_StatusInfo.m_nMaxHP; }
unsigned char GetState() const { return m_cState; }
unsigned char GetSubState() const { return m_cSubState; }
unsigned char GetUpgradeStep() const { return m_cUpgradeStep; }
unsigned char GetUpgradeType() const { return m_cUpgradeType; }
const Position& GetPosition() const { return m_CurrentPos; }
unsigned char GetMaterialNum() const { return m_cMaterial; }
unsigned char GetSiegeCount() const { return m_cSiegeCount; }
float GetDefaultDir() const { return m_fDefaultDir; }
unsigned long GetRiderCID() const { return m_dwRiderCID; }
virtual void GetRiders( unsigned long* pRiders ) const;
virtual unsigned char GetRiderNum() const;
unsigned long GetDevelopGold(unsigned short wDefaultObjectType=Siege::DEFAULT_TYPE) const;
unsigned char GetDevelopSpeed(unsigned short wDefaultObjectType=Siege::DEFAULT_TYPE) const;
unsigned long GetUpgradeGold() const;
unsigned char GetUpgradeSpeed(unsigned char cDefaultUpgradeType=Siege::NO_JEWEL) const;
float GetBonusRate() const;
int GetKID() const;
unsigned char GetNation() const;
unsigned long GetGID() const;
CAggresiveCreature* GetDuelOpponent(void) const;
char GetConsumeMPCount(void) { return m_cConsumeMPCount; }
unsigned long GetCastleID() const { return m_dwCampOrCastleID; }
unsigned long GetCampID() const { return m_dwCampOrCastleID; }
unsigned long GetOwnerID() const { return m_dwOwnerID; }
void SetGID(unsigned long dwGID) { m_dwGID = dwGID; }
void SetFullMP() { m_CreatureStatus.m_nNowMP = m_CreatureStatus.m_StatusInfo.m_nMaxMP; }
void SetState(unsigned char cState) { m_cState = cState; }
void SetSubState(unsigned char cSubState) { m_cSubState = cSubState; }
void SetMaterialNum(unsigned char cMaterial);
void SetSiegeCount(unsigned char cSiegeCount) { m_cSiegeCount = cSiegeCount; }
void SetNation(unsigned char cNation);
protected:
CSiegeObject(MonsterCreateInfo& MonsterCreate, const CastleObjectInfo& CastleObject);
CSiegeObject(MonsterCreateInfo& MonsterCreate, unsigned long dwCampID, unsigned long dwGID,
unsigned long dwHP, unsigned short wObjectType, unsigned char cState, unsigned char cSubState,
unsigned char cUpgradeStep, unsigned char cMaterial, unsigned char cSiegeCount, bool bFullHP);
CSiegeObject(MonsterCreateInfo& MonsterCreate, unsigned long dwOwnerID, unsigned char cNation,
unsigned long dwHP, unsigned short wObjectType, unsigned char cState, unsigned char cUpgradeStep);
void UpdateObjectInfo(unsigned char cHPType=Siege::NOW_HP, unsigned short wRepairHP=0); // <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20><>ȭ<EFBFBD>ÿ<EFBFBD> <20><><EFBFBD>ΰ<EFBFBD><CEB0><EFBFBD> <20><><EFBFBD><EFBFBD>
unsigned long m_dwCampOrCastleID; // CastleID : <20><> <20><>¡<EFBFBD><C2A1>, <20><><EFBFBD><EFBFBD>, <20>޹<EFBFBD>, <20><><EFBFBD><EFBFBD>, <20>ٰŸ<D9B0>/<2F><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CampID : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>¡<EFBFBD><C2A1>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned long m_dwOwnerID; // CID : <20>ٰŸ<D9B0>/<2F><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>ٰŸ<D9B0>/<2F><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
unsigned long m_dwGID; // GID : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ID
// <20><><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> GID <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>!!
unsigned char m_cNation; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
unsigned short m_wObjectType; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ Ÿ<><C5B8>
unsigned char m_cState; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
unsigned char m_cSubState; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (Use EMBLEM & GATE)
unsigned char m_cUpgradeStep; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> <20>ܰ<EFBFBD>
unsigned char m_cUpgradeType; // <20><> <20><>¡<EFBFBD><C2A1><EFBFBD><EFBFBD> <20><><EFBFBD>׷<EFBFBD><D7B7>̵<EFBFBD> Ÿ<><C5B8> (Only EMBLEM)
unsigned char m_cMaterial; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
unsigned char m_cSiegeCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ƚ<><C8BD>
float m_fDefaultDir; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD>
unsigned long m_dwRiderCID; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD>⿡ ž<><C5BE><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CID
unsigned char m_cHPUpdateCount; // HP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ ī<><C4AB>Ʈ
// Rider <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD>
// 1. <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> Ÿ<><C5B8> <20>ִ<EFBFBD><D6B4><EFBFBD> <20>˼<EFBFBD><CBBC><EFBFBD> <20><><EFBFBD><EFBFBD>.
// 2. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD> <20>˼<EFBFBD><CBBC><EFBFBD> <20><><EFBFBD><EFBFBD>.
//
// * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>üũ<C3BC><C5A9> <20>ϸ<EFBFBD> <20>ȵȴ<C8B5>.
// ----------------------------------------------------------------------------------------
// New BroadCast Data
BroadCastSiege::CSerializeSiegeObjectData m_SerializeSiegeObjectData; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
char m_szBroadCastBuffer[ BroadCastSiege::MAX_SIEGEBROADCAST_BUFFER_SIZE ];
char m_szDeltaBuffer[ BroadCastSiege::MAX_SIEGEBROADCAST_BUFFER_SIZE ];
unsigned long m_dwBroadCastSize;
unsigned long m_dwDeltaSize;
BroadCastSet m_BroadCastSet;
// ----------------------------------------------------------------------------------------
friend class CSiegeObjectMgr;
};
#endif // _SIEGE_OBJECT_H_