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:
268
Server/RylServerProject/RylGameLibrary/Creature/EnemyCheck.h
Normal file
268
Server/RylServerProject/RylGameLibrary/Creature/EnemyCheck.h
Normal file
@@ -0,0 +1,268 @@
|
||||
#ifndef _ENEMYCHECK_H_
|
||||
#define _ENEMYCHECK_H_
|
||||
|
||||
#include <Pattern/Singleton.h>
|
||||
|
||||
#include "CreatureStructure.h"
|
||||
|
||||
// <20><><EFBFBD>Ʊ<EFBFBD> <20>ĺ<EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>, Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
namespace EnemyCheck
|
||||
{
|
||||
enum EnemyType
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
||||
EC_ENEMY = 0, // <20><><EFBFBD><EFBFBD>
|
||||
EC_NEUTRAL = 1, // <20>߸<EFBFBD>
|
||||
EC_FRIEND = 2, // <20>Ʊ<EFBFBD>
|
||||
|
||||
EC_ERROR = 3 // <20><><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
enum EnemyCheckType
|
||||
{
|
||||
// üũ Ÿ<><C5B8>
|
||||
EC_CHECK_ENEMY = 0, // <20><><EFBFBD>ĺ<EFBFBD>
|
||||
EC_CHECK_NEUTRAL_EXCETION = 1, // <20>߸<EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3>
|
||||
EC_CHECK_FRIEND = 2, // <20>Ʊ<EFBFBD> <20>ĺ<EFBFBD>
|
||||
EC_CHECK_FRIEND_2ND = 3, // 2<><32> <20>Ʊ<EFBFBD> <20>ĺ<EFBFBD>
|
||||
|
||||
MAX_CHECK_TYPE = 4 // <20>ĺ<EFBFBD><C4BA><EFBFBD> üũ <20><>ƾ <20><>
|
||||
};
|
||||
|
||||
enum EnemyCheckRule
|
||||
{
|
||||
RULE_HUNTING = 0, // <20><><EFBFBD>÷<EFBFBD>
|
||||
RULE_GUILD_WAR = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RULE_REALM_WAR = 2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RULE_STATUE_WAR = 3, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RULE_SIEGE_WAR = 4, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MAX_RULE_NUM = 5
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Siege <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
||||
|
||||
bool IsCamp(unsigned short wObjectType); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool IsCastleArms(unsigned short wObjectType); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool IsSiegeArms(unsigned short wObjectType); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool IsStruct(unsigned short wKind); // <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
||||
|
||||
bool IsGate(unsigned short wObjectType); // <20><><EFBFBD><EFBFBD>
|
||||
bool IsEmblem(unsigned short wObjectType); // <20><> <20><>¡<EFBFBD><C2A1>
|
||||
bool IsCastleNPC(unsigned short wObjectType); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> NPC
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// <20>籹 ü<><C3BC> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
typedef bool (*FnProcess)(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo,
|
||||
BattleInclination::RelationData& relationInfo, unsigned char& cResult);
|
||||
|
||||
typedef bool (*FnCheck)(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo,
|
||||
EnemyCheck::EnemyCheckRule eRule);
|
||||
|
||||
class CCheckTable : public CSingleton<CCheckTable>
|
||||
{
|
||||
public:
|
||||
|
||||
bool Initialize(void);
|
||||
|
||||
void SetEnemyCheckRule(EnemyCheckRule eRule) { m_eRule = eRule; }
|
||||
EnemyCheckRule GetEnemyCheckRule(void) { return m_eRule; }
|
||||
|
||||
unsigned long IsEnemyFromStruct(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo,
|
||||
BattleInclination::RelationData& relationInfo, unsigned char& cResult);
|
||||
|
||||
private:
|
||||
|
||||
CCheckTable();
|
||||
~CCheckTable();
|
||||
|
||||
unsigned long GetEnemyType(unsigned char cEnemyCheckType) const; // üũ Ÿ<>Կ<EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD>ĺ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool m_bInit; // <20>ʱ<EFBFBD>ȭ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
EnemyCheckRule m_eRule; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǿƽĺ<C6BD> <20><>
|
||||
FnProcess m_fnIsEnemy[MAX_CHECK_TYPE][MAX_RULE_NUM]; // <20><> <20><>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20>Ǿƽĺ<C6BD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD>
|
||||
FnCheck m_fnCheckSkip[MAX_CHECK_TYPE]; // <20><> <20><>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20>Ǿƽĺ<C6BD><C4BA><EFBFBD> <20><>ŵ<EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD><CFB4><EFBFBD> üũ<C3BC>ϴ<EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD>
|
||||
|
||||
static CCheckTable ms_this;
|
||||
};
|
||||
|
||||
class CFunctions
|
||||
{
|
||||
private:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǹ̸<C7B9> <20>дٱ⺸<D9B1><E2BAB8>, <20><><EFBFBD>ڰ<EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> enum<75><6D><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
enum ResultType
|
||||
{
|
||||
// EC_CHECK_ENEMY <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EN_COMMON_PVP = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PvP<76><50> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (<28><><EFBFBD><EFBFBD>)
|
||||
EN_COMMON_STATELESS_MONSTER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>3<EFBFBD><33>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EN_HUNTING_VSPARTY_VSGUILD, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD> (<28><>Ƽ/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
EN_GUILDWAR_HOSTILITY_GUILD, // <20>ڽŰ<DABD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>϶<EFBFBD>
|
||||
EN_REALMWAR_ENEMY_PC_MONSTER_NPC, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, NPC
|
||||
EN_STATUEWAR_ENEMY_PC_MONSTER_STRUCT, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ʈ<EFBFBD><C6AE>ó
|
||||
EN_STATUEWAR_STATELESS_STRUCT, // <20><> 3<><33><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE>ó
|
||||
EN_SIEGE_ENEMY_PC_MONSTER, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
EN_SIEGE_ENEMY_GATE_EMBLEM_CASTLE_ARMS, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><> <20><>¡<EFBFBD><C2A1>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EN_SIEGE_ENEMY_SIEGE_ARMS, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
|
||||
// EC_CHECK_NEUTRAL_EXCETION <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NE_COMMON_GMODE = 21, // <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴϸ<C6B4> G<><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD> ó<><C3B3>
|
||||
NE_COMMON_ENEMY_NPC, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NPC
|
||||
|
||||
NE_HUNTING_NON_BATTLER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
NE_HUNTING_OTHER_BATTLER, // <20>ڽŰ<DABD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
NE_HUNTING_BATTLER, // <20><><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
|
||||
NE_GUILDWAR_IN_SAFETYZONE, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
NE_GUILDWAR_NON_BATTLER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
NE_GUILDWAR_OTHER_BATTLER, // <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD>尡 <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NE_GUILDWAR_BATTLER, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ο<EFBFBD>
|
||||
NE_GUILDWAR_MYGUILD, // <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
NE_REALMWAR_ENEMY_STRUCT, // <20>ڽŰ<DABD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
||||
NE_REALMWAR_ENEMY_GATE_EMBLEM_SIEGEOBJECT, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>, <20><><EFBFBD><EFBFBD> <20>빮, <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
NE_STATUEWAR_ENEMY_GATE_EMBLEM_SIEGEOBJECT, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>, <20><><EFBFBD><EFBFBD> <20>빮, <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
NE_SIEGE_ENEMY_STRUCT, // <20>ڽŰ<DABD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
||||
|
||||
// EC_CHECK_FRIEND <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FR_COMMON_MYPARTY = 41, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ƽ
|
||||
FR_COMMON_MYGUILD, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
FR_COMMON_MYSELF, // <20>ڱ<EFBFBD> <20>ڽ<EFBFBD>
|
||||
FR_GUILDWAR_MYGUILD, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
||||
FR_REALMWAR_MYNATION_PC_NPC_MONSTER_STRUCT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, NPC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>
|
||||
FR_REALMWAR_MYNATION_GATE_EMBLEM_SIEGEOBJECT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>, <20><><EFBFBD><EFBFBD> <20>빮, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
FR_STATUEWAR_MYNATION_PC_NPC_MONSTER_STRUCT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, NPC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>
|
||||
FR_STATUEWAR_MYNATION_GATE_EMBLEM_SIEGEOBJECT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>, <20><><EFBFBD><EFBFBD> <20>빮, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
FR_SIEGEWAR_MYNATION_PC_NPC_MONSTER_STRUCT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC, NPC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>
|
||||
FR_SIEGEWAR_MYNATION_SIEGEOBJECT, // <20>ڱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>, <20><><EFBFBD><EFBFBD> <20>빮, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
|
||||
// EC_CHECK_FRIEND_2ND <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FR2_COMMON_MYNATION_PC_NPC = 61, // <20>ڱ<EFBFBD> PC, NPC
|
||||
FR2_COMMON_STATELESS_NPC, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NPC
|
||||
};
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
||||
enum AttackableCreatureType
|
||||
{
|
||||
ACT_PC = 0, // PC
|
||||
ACT_MONSTER = 1, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ACT_EMBLEM = 2, // <20><> <20><>¡<EFBFBD><C2A1>
|
||||
ACT_GATE = 3, // <20><><EFBFBD><EFBFBD>
|
||||
ACT_CAMP = 4, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ACT_GUARD = 5, // <20><><EFBFBD><EFBFBD>
|
||||
ACT_SHORT_RANGE_CASTLE_ARMS = 6, // <20>ٰŸ<D9B0> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ACT_LONG_RANGE_CASTLE_ARMS = 7, // <20><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ACT_SHORT_RANGE_SIEGE_ARMS = 8, // <20>ٰŸ<D9B0> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ACT_LONG_RANGE_SIEGE_ARMS = 9, // <20><><EFBFBD>Ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ACT_AIRSHIP = 10, // <20><><EFBFBD>ۼ<EFBFBD>
|
||||
ACT_NONE = 11, // <20><EFBFBD>, NPC, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPC
|
||||
|
||||
MAX_ATTACKABLE_CREATURE = 12, // <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><> <20>Ϲ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
|
||||
};
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD>
|
||||
enum ReturnACT
|
||||
{
|
||||
RET_NONE = 0, // <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD>
|
||||
RET_ALLWAYS = 1, // <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
RET_DEVELOPING = 2, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>϶<EFBFBD><CFB6><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
const static unsigned char ms_AttackableTable[MAX_ATTACKABLE_CREATURE][MAX_ATTACKABLE_CREATURE]; // <20><> ũ<><C5A9><EFBFBD><EFBFBD> Ÿ<>Կ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD>
|
||||
|
||||
|
||||
friend class CCheckTable;
|
||||
|
||||
// <20>Ǿƽĺ<C6BD> <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>
|
||||
#define DECLARE_ENEMY_CKECK(CheckRule) \
|
||||
static bool CheckRule(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo, \
|
||||
BattleInclination::RelationData& relationInfo, unsigned char& cResult)
|
||||
|
||||
#define DEFINE_ENEMY_CKECK(CheckRule) \
|
||||
bool EnemyCheck::CFunctions::##CheckRule( \
|
||||
BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo, \
|
||||
BattleInclination::RelationData& relationInfo, unsigned char& cResult)
|
||||
|
||||
#define USE_ENEMY_CKECK(CheckRule) CheckRule(ownerInfo, targetInfo, relationInfo, cResult)
|
||||
|
||||
|
||||
// <20>Ǿƽĺ<C6BD> <20><>ƾ <20><>ŵ üũ <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>
|
||||
#define DECLARE_SKIP_CKECK(CheckType) \
|
||||
static bool CheckType(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo, \
|
||||
EnemyCheck::EnemyCheckRule eRule)
|
||||
|
||||
#define DEFINE_SKIP_CHECK(CheckType) \
|
||||
bool EnemyCheck::CFunctions::##CheckType( \
|
||||
BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo, \
|
||||
EnemyCheck::EnemyCheckRule eRule)
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>
|
||||
#define DECLARE_ATTACKABLE_CHECK(FuncName) \
|
||||
static bool FuncName(BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo)
|
||||
|
||||
#define DEFINE_ATTACKABLE_CHECK(FuncName) \
|
||||
bool EnemyCheck::CFunctions::##FuncName( \
|
||||
BattleInclination::CharData& ownerInfo, BattleInclination::CharData& targetInfo)
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyCommon);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionCommon);
|
||||
DECLARE_ENEMY_CKECK(IsFriendCommon);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndCommon);
|
||||
|
||||
// <20><><EFBFBD>÷<EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyForHunting);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionForHunting);
|
||||
DECLARE_ENEMY_CKECK(IsFriendForHunting);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndForHunting);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyForGuildWar);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionForGuildWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriendForGuildWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndForGuildWar);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyForRealmWar);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionForRealmWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriendForRealmWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndForRealmWar);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyForStatueWar);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionForStatueWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriendForStatueWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndForStatueWar);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DECLARE_ENEMY_CKECK(IsEnemyForSiegeWar);
|
||||
DECLARE_ENEMY_CKECK(IsNeutralExceptionForSiegeWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriendForSiegeWar);
|
||||
DECLARE_ENEMY_CKECK(IsFriend2ndForSiegeWar);
|
||||
|
||||
// <20>Ǿƽĺ<C6BD> <20><>ŵ üũ
|
||||
DECLARE_SKIP_CKECK(IsEnemySkip);
|
||||
DECLARE_SKIP_CKECK(IsNeutralExceptionSkip);
|
||||
DECLARE_SKIP_CKECK(IsFriendSkip);
|
||||
DECLARE_SKIP_CKECK(IsFriend2ndSkip);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ <20>Լ<EFBFBD>
|
||||
DECLARE_ATTACKABLE_CHECK(IsAttackable);
|
||||
|
||||
static unsigned char FindAttackableCreatureType(BattleInclination::CharData& charInfo);
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user