1
0
forked from metin2/server
server/game/src/affect.h

184 lines
3.8 KiB
C
Raw Normal View History

2022-03-05 12:44:06 +02:00
#ifndef __INC_AFFECT_H
#define __INC_AFFECT_H
class CAffect
{
public:
DWORD dwType;
BYTE bApplyOn;
long lApplyValue;
DWORD dwFlag;
long lDuration;
long lSPCost;
static CAffect* Acquire();
static void Release(CAffect* p);
};
enum EAffectTypes
{
AFFECT_NONE,
AFFECT_MOV_SPEED = 200,
AFFECT_ATT_SPEED,
AFFECT_ATT_GRADE,
AFFECT_INVISIBILITY,
AFFECT_STR,
AFFECT_DEX, // 205
AFFECT_CON,
AFFECT_INT,
AFFECT_FISH_MIND_PILL,
AFFECT_POISON,
AFFECT_STUN, // 210
AFFECT_SLOW,
AFFECT_DUNGEON_READY,
AFFECT_DUNGEON_UNIQUE,
AFFECT_BUILDING,
AFFECT_REVIVE_INVISIBLE, // 215
AFFECT_FIRE,
AFFECT_CAST_SPEED,
AFFECT_HP_RECOVER_CONTINUE,
AFFECT_SP_RECOVER_CONTINUE,
AFFECT_POLYMORPH, // 220
AFFECT_MOUNT,
AFFECT_WAR_FLAG, // 222
AFFECT_BLOCK_CHAT, // 223
AFFECT_CHINA_FIREWORK,
AFFECT_BOW_DISTANCE, // 225
AFFECT_DEF_GRADE, // 226
AFFECT_PREMIUM_START = 500,
AFFECT_EXP_BONUS = 500, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
AFFECT_ITEM_BONUS = 501, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
AFFECT_SAFEBOX = 502, // PREMIUM_SAFEBOX,
AFFECT_AUTOLOOT = 503, // PREMIUM_AUTOLOOT,
AFFECT_FISH_MIND = 504, // PREMIUM_FISH_MIND,
AFFECT_MARRIAGE_FAST = 505, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
AFFECT_GOLD_BONUS = 506, // <20><> <20><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE> 50%<25><><EFBFBD><EFBFBD>
AFFECT_PREMIUM_END = 509,
AFFECT_MALL = 510, // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
AFFECT_NO_DEATH_PENALTY = 511, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ (<28><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20>г<EFBFBD>Ƽ<EFBFBD><C6BC> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>)
AFFECT_SKILL_BOOK_BONUS = 512, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> 50% <20><><EFBFBD><EFBFBD>)
AFFECT_SKILL_NO_BOOK_DELAY = 513, // <20>־ȼ<D6BE><C8BC><EFBFBD>
AFFECT_HAIR = 514, // <20><><EFBFBD><EFBFBD> ȿ<><C8BF>
AFFECT_COLLECT = 515, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
AFFECT_EXP_BONUS_EURO_FREE = 516, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 14 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>⺻ ȿ<><C8BF>)
AFFECT_EXP_BONUS_EURO_FREE_UNDER_15 = 517,
AFFECT_UNIQUE_ABILITY = 518,
AFFECT_CUBE_1,
AFFECT_CUBE_2,
AFFECT_CUBE_3,
AFFECT_CUBE_4,
AFFECT_CUBE_5,
AFFECT_CUBE_6,
AFFECT_CUBE_7,
AFFECT_CUBE_8,
AFFECT_CUBE_9,
AFFECT_CUBE_10,
AFFECT_CUBE_11,
AFFECT_CUBE_12,
AFFECT_BLEND,
AFFECT_HORSE_NAME,
AFFECT_MOUNT_BONUS,
AFFECT_AUTO_HP_RECOVERY = 534,
AFFECT_AUTO_SP_RECOVERY = 535,
AFFECT_DRAGON_SOUL_QUALIFIED = 540,
AFFECT_DRAGON_SOUL_DECK_0 = 541,
AFFECT_DRAGON_SOUL_DECK_1 = 542,
AFFECT_RAMADAN_ABILITY = 300,
AFFECT_RAMADAN_RING = 301,
AFFECT_NOG_ABILITY = 302,
AFFECT_HOLLY_STONE_POWER = 303,
AFFECT_QUEST_START_IDX = 1000
};
enum EAffectBits
{
AFF_NONE,
AFF_YMIR,
AFF_INVISIBILITY,
AFF_SPAWN,
AFF_POISON,
AFF_SLOW,
AFF_STUN,
AFF_DUNGEON_READY, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>غ<EFBFBD> <20><><EFBFBD><EFBFBD>
AFF_DUNGEON_UNIQUE, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ũ (Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
AFF_BUILDING_CONSTRUCTION_SMALL,
AFF_BUILDING_CONSTRUCTION_LARGE,
AFF_BUILDING_UPGRADE,
AFF_MOV_SPEED_POTION,
AFF_ATT_SPEED_POTION,
AFF_FISH_MIND,
AFF_JEONGWIHON, // <20><><EFBFBD><EFBFBD>ȥ
AFF_GEOMGYEONG, // <20>˰<EFBFBD>
AFF_CHEONGEUN, // õ<><C3B5><EFBFBD><EFBFBD>
AFF_GYEONGGONG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AFF_EUNHYUNG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AFF_GWIGUM, // <20>Ͱ<EFBFBD>
AFF_TERROR, // <20><><EFBFBD><EFBFBD>
AFF_JUMAGAP, // <20>ָ<EFBFBD><D6B8><EFBFBD>
AFF_HOSIN, // ȣ<><C8A3>
AFF_BOHO, // <20><>ȣ
AFF_KWAESOK, // <20><><EFBFBD><EFBFBD>
AFF_MANASHIELD, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AFF_MUYEONG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> affect
AFF_REVIVE_INVISIBLE, // <20><>Ȱ<EFBFBD><C8B0> <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD> <20><><EFBFBD><EFBFBD>
AFF_FIRE, // <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AFF_GICHEON, // <20><>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>
AFF_JEUNGRYEOK, // <20><><EFBFBD>¼<EFBFBD>
AFF_TANHWAN_DASH, // źȯ<C5BA>ݿ<EFBFBD> <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
AFF_PABEOP, // <20>Ĺ<EFBFBD><C4B9><EFBFBD>
AFF_CHEONGEUN_WITH_FALL, // õ<><C3B5><EFBFBD><EFBFBD>
AFF_POLYMORPH,
AFF_WAR_FLAG1,
AFF_WAR_FLAG2,
AFF_WAR_FLAG3,
AFF_CHINA_FIREWORK,
AFF_HAIR, // <20><><EFBFBD><EFBFBD>
AFF_GERMANY, // <20><><EFBFBD><EFBFBD>
AFF_BITS_MAX
};
extern void SendAffectAddPacket(LPDESC d, CAffect * pkAff);
// AFFECT_DURATION_BUG_FIX
enum AffectVariable
{
// Affect<63><74> <20><><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD> <20><><EFBFBD><20>־<EFBFBD><D6BE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
// <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̱<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ſ<EFBFBD> ū<><C5AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<20><><EFBFBD>ķ<EFBFBD><C4B7>̼<EFBFBD><CCBC><EFBFBD>.
//// 24<32><34>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> 25<32><35>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>.
// ... 25<32><35>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٰ<D1B4> <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD> 29bit <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><>û<EFBFBD><C3BB> <20>ּ<EFBFBD><D6BC>̶<EFBFBD>...
// collect quest<73><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> 60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>, <20><><EFBFBD>⵵ 60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
INFINITE_AFFECT_DURATION = 60 * 365 * 24 * 60 * 60
};
// END_AFFECT_DURATION_BUG_FIX
#endif