1096 lines
29 KiB
C++
1096 lines
29 KiB
C++
#pragma once
|
||
|
||
// Classes
|
||
#define KARUWARRIOR 101 // Beginner Karus Warrior
|
||
#define KARUROGUE 102 // Beginner Karus Rogue
|
||
#define KARUWIZARD 103 // Beginner Karus Magician
|
||
#define KARUPRIEST 104 // Beginner Karus Priest
|
||
#define BERSERKER 105 // Skilled (after first job change) Karus Warrior
|
||
#define GUARDIAN 106 // Mastered Karus Warrior
|
||
#define HUNTER 107 // Skilled (after first job change) Karus Rogue
|
||
#define PENETRATOR 108 // Mastered Karus Rogue
|
||
#define SORSERER 109 // Skilled (after first job change) Karus Magician
|
||
#define NECROMANCER 110 // Mastered Karus Magician
|
||
#define SHAMAN 111 // Skilled (after first job change) Karus Priest
|
||
#define DARKPRIEST 112 // Mastered Karus Priest
|
||
#define PORUTU 113
|
||
#define PORUTUSKILLED 114
|
||
#define PORUTUMASTER 115
|
||
|
||
#define ELMORWARRRIOR 201 // Beginner El Morad Warrior
|
||
#define ELMOROGUE 202 // Beginner El Morad Rogue
|
||
#define ELMOWIZARD 203 // Beginner El Morad Magician
|
||
#define ELMOPRIEST 204 // Beginner El Morad Priest
|
||
#define BLADE 205 // Skilled (after first job change) El Morad Warrior
|
||
#define PROTECTOR 206 // Mastered El Morad Warrior
|
||
#define RANGER 207 // Skilled (after first job change) El Morad Rogue
|
||
#define ASSASSIN 208 // Mastered El Morad Rogue
|
||
#define MAGE 209 // Skilled (after first job change) El Morad Magician
|
||
#define ENCHANTER 210 // Mastered El Morad Magician
|
||
#define CLERIC 211 // Skilled (after first job change) El Morad Priest
|
||
#define DRUID 212 // Mastered El Morad Priest
|
||
#define KURIAN 213
|
||
#define KURIANSKILLED 214
|
||
#define KURIANMASTER 215
|
||
|
||
// Races
|
||
#define KARUS_BIG 1 // Arch Tuarek (Karus Warriors - only!)
|
||
#define KARUS_MIDDLE 2 // Tuarek (Karus Rogues & Priests)
|
||
#define KARUS_SMALL 3 // Wrinkle Tuarek (Karus Magicians)
|
||
#define KARUS_WOMAN 4 // Puri Tuarek (Karus Priests)
|
||
#define KARUS_MONSTER 6 // Puri Tuarek (Karus Priests)
|
||
#define BABARIAN 11 // Barbarian (El Morad Warriors - only!)
|
||
#define ELMORAD_MAN 12 // El Morad Male (El Morad - ALL CLASSES)
|
||
#define ELMORAD_WOMAN 13 // El Morad Female (El Morad - ALL CLASSES)
|
||
#define ELMORAD_MONSTER 14
|
||
// Ÿ<>ݺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> //
|
||
#define GREAT_SUCCESS 0X01 // <20>뼺<EFBFBD><EBBCBA>
|
||
#define SUCCESS 0X02 // <20><><EFBFBD><EFBFBD>
|
||
#define NORMAL 0X03 // <20><><EFBFBD><EFBFBD>
|
||
#define FAIL 0X04 // <20><><EFBFBD><EFBFBD>
|
||
|
||
enum ItemMovementType
|
||
{
|
||
ITEM_INVEN_SLOT = 1,
|
||
ITEM_SLOT_INVEN = 2,
|
||
ITEM_INVEN_INVEN = 3,
|
||
ITEM_SLOT_SLOT = 4,
|
||
ITEM_INVEN_ZONE = 5,
|
||
ITEM_ZONE_INVEN = 6,
|
||
ITEM_INVEN_TO_COSP = 7, // Inventory -> Cospre bag
|
||
ITEM_COSP_TO_INVEN = 8, // Cospre bag -> Inventory
|
||
ITEM_INVEN_TO_MBAG = 9, // Inventory -> Magic bag
|
||
ITEM_MBAG_TO_INVEN = 10, // Magic bag -> Inventory
|
||
ITEM_MBAG_TO_MBAG = 11, // Magic bag -> Magic bag
|
||
ITEM_INVEN_TO_PET = 12, // Inventory -> Pet
|
||
ITEM_PET_TO_INVEN = 13 // Pet -> Inventory
|
||
|
||
};
|
||
|
||
enum ItemSlotType
|
||
{
|
||
ItemSlot1HEitherHand = 0,
|
||
ItemSlot1HRightHand = 1,
|
||
ItemSlot1HLeftHand = 2,
|
||
ItemSlot2HRightHand = 3,
|
||
ItemSlot2HLeftHand = 4,
|
||
ItemSlotPauldron = 5,
|
||
ItemSlotPads = 6,
|
||
ItemSlotHelmet = 7,
|
||
ItemSlotGloves = 8,
|
||
ItemSlotBoots = 9,
|
||
ItemSlotEarring = 10,
|
||
ItemSlotNecklace = 11,
|
||
ItemSlotRing = 12,
|
||
ItemSlotShoulder = 13,
|
||
ItemSlotBelt = 14,
|
||
ItemSlotPet = 20,
|
||
ItemSlotBag = 25,
|
||
ItemSlotCospreGloves = 100,
|
||
ItemSlotCosprePauldron = 105,
|
||
ItemSlotCospreHelmet = 107,
|
||
ItemSlotCospreWings = 110,
|
||
ItemSlotCospreFairy = 111
|
||
};
|
||
|
||
// Item Weapon Type Define
|
||
#define WEAPON_DAGGER 1
|
||
#define WEAPON_SWORD 2
|
||
#define WEAPON_2H_SWORD 22 // Kind field as-is
|
||
#define WEAPON_AXE 3
|
||
#define WEAPON_2H_AXE 32 // Kind field as-is
|
||
#define WEAPON_MACE 4
|
||
#define WEAPON_2H_MACE 42 // Kind field as-is
|
||
#define WEAPON_SPEAR 5
|
||
#define WEAPON_2H_SPEAR 52 // Kind field as-is
|
||
#define WEAPON_SHIELD 6
|
||
#define WEAPON_BOW 7
|
||
#define WEAPON_LONGBOW 8
|
||
#define WEAPON_LAUNCHER 10
|
||
#define WEAPON_STAFF 11
|
||
#define WEAPON_ARROW 12 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_JAVELIN 13 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_MACE2 18
|
||
#define WEAPON_WORRIOR_AC 21 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_LOG_AC 22 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_WIZARD_AC 23 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_PRIEST_AC 24 // <20><>ų <20><><EFBFBD>
|
||
#define WEAPON_JAMADAR 34
|
||
#define WEAPON_PICKAXE 61 // Unlike the others, this is just the Kind field as-is (not / 10).
|
||
#define WEAPON_FISHING 63 // Unlike the others, this is just the Kind field as-is (not / 10).
|
||
#define KIND_PET 151
|
||
#define KIND_CYPHERRING 160
|
||
#define ACCESSORY_EARRING 91
|
||
#define ACCESSORY_NECKLACE 92
|
||
#define ACCESSORY_RING 93
|
||
#define ACCESSORY_BELT 94
|
||
#define ITEM_KIND_COSPRE 252
|
||
|
||
////////////////////////////////////////////////////////////
|
||
// User Status //
|
||
#define USER_STANDING 0X01 // <20><> <20>ִ<EFBFBD>.
|
||
#define USER_SITDOWN 0X02 // <20>ɾ<EFBFBD> <20>ִ<EFBFBD>.
|
||
#define USER_DEAD 0x03 // <20><>Ŷ<EFBFBD>
|
||
#define USER_BLINKING 0x04 // <20><><EFBFBD> <20><>Ƴ<EFBFBD><C6B3><EFBFBD>!!!
|
||
#define USER_MINING 0x07 // MINING System
|
||
#define USER_FLASHING 0x08 // Flashing System
|
||
////////////////////////////////////////////////////////////
|
||
// Durability Type
|
||
#define ATTACK 0x01
|
||
#define DEFENCE 0x02
|
||
#define REPAIR_ALL 0x03
|
||
#define ACID_ALL 0x04
|
||
////////////////////////////////////////////////////////////
|
||
////////////////////////////////////////////////////////////
|
||
// Knights Authority Type
|
||
/*
|
||
#define CHIEF 0x06
|
||
#define VICECHIEF 0x05*/
|
||
#define OFFICER 0x04
|
||
#define KNIGHT 0x03
|
||
//#define TRAINEE 0x02
|
||
#define PUNISH 0x01
|
||
|
||
#define CHIEF 0x01 // <20><><EFBFBD><EFBFBD>
|
||
#define VICECHIEF 0x02 // <20>δ<EFBFBD><CEB4><EFBFBD>
|
||
#define TRAINEE 0x05 // <20><><EFBFBD>
|
||
#define COMMAND_CAPTAIN 100 // <20><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
|
||
////////////////////////////////////////////////////////////
|
||
|
||
#define CLAN_COIN_REQUIREMENT 500000
|
||
#define CLAN_LEVEL_REQUIREMENT 20
|
||
|
||
#define ITEM_GOLD 900000000 // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ...
|
||
#define ITEM_NO_TRADE 900000001 // Cannot be traded, sold or stored.
|
||
#define ITEM_NO_TRADE_MAX 1000000000 // Cannot be traded, sold or stored.
|
||
|
||
////////////////////////////////////////////////////////////
|
||
// EVENT MISCELLANOUS DATA DEFINE
|
||
#define ZONE_TRAP_INTERVAL 2 // Interval is one second (in seconds) right now.
|
||
#define ZONE_TRAP_DAMAGE 500 // HP Damage is 10 for now :)
|
||
|
||
////////////////////////////////////////////////////////////
|
||
|
||
#define RIVALRY_DURATION (300) // 5 minutes
|
||
#define RIVALRY_NP_BONUS (150) // 150 additional NP on kill
|
||
#define MINIRIVALRY_NP_BONUS (50) // 150 additional NP on kill
|
||
|
||
#define MAX_ANGER_GAUGE (5) // Maximum of 5 deaths in a PVP zone to fill your gauge.
|
||
|
||
#define PVP_MONUMENT_NP_BONUS (5) // 5 additional NP on kill
|
||
#define EVENT_MONUMENT_NP_BONUS (10) // 10 additional NP on kill
|
||
|
||
////////////////////////////////////////////////////////////
|
||
// SKILL POINT DEFINE
|
||
#define ORDER_SKILL 0x01
|
||
#define MANNER_SKILL 0X02
|
||
#define LANGUAGE_SKILL 0x03
|
||
#define BATTLE_SKILL 0x04
|
||
#define PRO_SKILL1 0x05
|
||
#define PRO_SKILL2 0x06
|
||
#define PRO_SKILL3 0x07
|
||
#define PRO_SKILL4 0x08
|
||
|
||
enum SkillPointCategory
|
||
{
|
||
SkillPointFree = 0,
|
||
SkillPointCat1 = 5,
|
||
SkillPointCat2 = 6,
|
||
SkillPointCat3 = 7,
|
||
SkillPointMaster = 8
|
||
};
|
||
|
||
/////////////////////////////////////////////////////////////
|
||
// ITEM TYPE DEFINE
|
||
#define ITEM_TYPE_FIRE 0x01
|
||
#define ITEM_TYPE_COLD 0x02
|
||
#define ITEM_TYPE_LIGHTNING 0x03
|
||
#define ITEM_TYPE_POISON 0x04
|
||
#define ITEM_TYPE_HP_DRAIN 0x05
|
||
#define ITEM_TYPE_MP_DAMAGE 0x06
|
||
#define ITEM_TYPE_MP_DRAIN 0x07
|
||
#define ITEM_TYPE_MIRROR_DAMAGE 0x08
|
||
|
||
/////////////////////////////////////////////////////////////
|
||
// JOB GROUP TYPES
|
||
#define GROUP_WARRIOR 1
|
||
#define GROUP_ROGUE 2
|
||
#define GROUP_MAGE 3
|
||
#define GROUP_CLERIC 4
|
||
#define GROUP_ATTACK_WARRIOR 5
|
||
#define GROUP_DEFENSE_WARRIOR 6
|
||
#define GROUP_ARCHERER 7
|
||
#define GROUP_ASSASSIN 8
|
||
#define GROUP_ATTACK_MAGE 9
|
||
#define GROUP_PET_MAGE 10
|
||
#define GROUP_HEAL_CLERIC 11
|
||
#define GROUP_CURSE_CLERIC 12
|
||
#define GROUP_KURIAN 13
|
||
|
||
//////////////////////////////////////////////////////////////
|
||
// USER ABNORMAL STATUS TYPES
|
||
enum AbnormalType
|
||
{
|
||
ABNORMAL_INVISIBLE = 0, // Hides character completely (for GM visibility only).
|
||
ABNORMAL_NORMAL = 1, // Shows character. This is the default for players.
|
||
ABNORMAL_GIANT = 2, // Enlarges character.
|
||
ABNORMAL_DWARF = 3, // Shrinks character.
|
||
ABNORMAL_BLINKING = 4, // Forces character to start blinking.
|
||
ABNORMAL_GIANT_TARGET = 6 // Enlarges character and shows "Hit!" effect.
|
||
};
|
||
|
||
//////////////////////////////////////////////////////////////
|
||
// Object Type
|
||
#define NORMAL_OBJECT 0
|
||
#define SPECIAL_OBJECT 1
|
||
|
||
//////////////////////////////////////////////////////////////
|
||
// REGENE TYPES
|
||
#define REGENE_NORMAL 0
|
||
#define REGENE_MAGIC 1
|
||
#define REGENE_ZONECHANGE 2
|
||
|
||
struct _CLASS_COEFFICIENT
|
||
{
|
||
uint16 sClassNum;
|
||
float ShortSword;
|
||
float Sword;
|
||
float Axe;
|
||
float Club;
|
||
float Spear;
|
||
float Pole;
|
||
float Staff;
|
||
float Bow;
|
||
float HP;
|
||
float MP;
|
||
float SP;
|
||
float AC;
|
||
float Hitrate;
|
||
float Evasionrate;
|
||
};
|
||
|
||
// Dropped loot/chest.
|
||
struct _LOOT_ITEM
|
||
{
|
||
uint32 nItemID;
|
||
uint16 sCount;
|
||
_LOOT_ITEM()
|
||
{
|
||
}
|
||
_LOOT_ITEM(uint32 nItemID, uint16 sCount)
|
||
{
|
||
this->nItemID = nItemID;
|
||
this->sCount = sCount;
|
||
}
|
||
};
|
||
|
||
struct _LOOT_BUNDLE
|
||
{
|
||
uint32 nBundleID;
|
||
_LOOT_ITEM Items[NPC_HAVE_ITEM_LIST];
|
||
uint8 ItemsCount;
|
||
float x, z, y;
|
||
uint32 tDropTime;
|
||
uint16 LooterID;
|
||
};
|
||
|
||
struct _EXCHANGE_ITEM
|
||
{
|
||
uint32 nItemID;
|
||
uint32 nCount;
|
||
uint16 sDurability;
|
||
uint8 bSrcPos;
|
||
uint8 bDstPos;
|
||
uint64 nSerialNum;
|
||
};
|
||
|
||
enum ItemRace
|
||
{
|
||
RACE_TRADEABLE_IN_48HR = 19, // These items can't be traded until 48 hours from the time of creation
|
||
RACE_UNTRADEABLE = 20 // Cannot be traded or sold.
|
||
};
|
||
|
||
enum SellType
|
||
{
|
||
SellTypeNormal = 0, // sell price is 1/4 of the purchase price
|
||
SellTypeFullPrice = 1, // sell price is the same as the purchase price
|
||
SellTypeNoRepairs = 2 // sell price is 1/4 of the purchase price, item cannot be repaired.
|
||
};
|
||
|
||
struct _ITEM_CRASH
|
||
{
|
||
uint32 Index;
|
||
uint8 Flag;
|
||
uint32 ItemID;
|
||
uint16 ItemCount;
|
||
uint16 SuccessRate;
|
||
};
|
||
|
||
struct _ITEM_TABLE
|
||
{
|
||
uint32 m_iNum;
|
||
std::string m_sName;
|
||
uint8 m_bKind;
|
||
uint8 m_bSlot;
|
||
uint8 m_bRace;
|
||
uint8 m_bClass;
|
||
uint16 m_sDamage;
|
||
uint16 m_sDelay;
|
||
uint16 m_sRange;
|
||
uint16 m_sWeight;
|
||
uint16 m_sDuration;
|
||
uint32 m_iBuyPrice;
|
||
uint32 m_iSellPrice;
|
||
int16 m_sAc;
|
||
uint8 m_bCountable;
|
||
uint32 m_iEffect1;
|
||
uint32 m_iEffect2;
|
||
uint8 m_bReqLevel;
|
||
uint8 m_bReqLevelMax;
|
||
uint8 m_bReqRank;
|
||
uint8 m_bReqTitle;
|
||
uint8 m_bReqStr;
|
||
uint8 m_bReqSta;
|
||
uint8 m_bReqDex;
|
||
uint8 m_bReqIntel;
|
||
uint8 m_bReqCha;
|
||
uint32 m_bSellingGroup;
|
||
uint8 m_ItemType;
|
||
uint16 m_sHitrate;
|
||
uint16 m_sEvarate;
|
||
uint16 m_sDaggerAc;
|
||
uint16 m_sSwordAc;
|
||
uint16 m_sMaceAc;
|
||
uint16 m_sAxeAc;
|
||
uint16 m_sSpearAc;
|
||
uint16 m_sBowAc;
|
||
uint8 m_bFireDamage;
|
||
uint8 m_bIceDamage;
|
||
uint8 m_bLightningDamage;
|
||
uint8 m_bPoisonDamage;
|
||
uint8 m_bHPDrain;
|
||
uint8 m_bMPDamage;
|
||
uint8 m_bMPDrain;
|
||
uint8 m_bMirrorDamage;
|
||
int16 m_sStrB;
|
||
int16 m_sStaB;
|
||
int16 m_sDexB;
|
||
int16 m_sIntelB;
|
||
int16 m_sChaB;
|
||
int16 m_MaxHpB;
|
||
int16 m_MaxMpB;
|
||
int16 m_bFireR;
|
||
int16 m_bColdR;
|
||
int16 m_bLightningR;
|
||
int16 m_bMagicR;
|
||
int16 m_bPoisonR;
|
||
int16 m_bCurseR;
|
||
int16 ItemClass;
|
||
int16 ItemExt;
|
||
uint32 m_iNPBuyPrice;
|
||
|
||
INLINE bool isStackable() { return m_bCountable != 0; }
|
||
|
||
INLINE uint8 GetKind() { return m_bKind; }
|
||
INLINE uint8 Gettype() { return m_ItemType; }
|
||
INLINE uint32 Getnum() { return m_iNum; }
|
||
INLINE uint8 GetItemGroup() { return uint8(m_bKind / 10); }
|
||
|
||
INLINE bool isDagger() { return GetItemGroup() == WEAPON_DAGGER || GetItemGroup() == WEAPON_JAMADAR; }
|
||
INLINE bool isSword() { return GetItemGroup() == WEAPON_SWORD; }
|
||
INLINE bool is2HSword() { return GetKind() == WEAPON_2H_SWORD; }
|
||
INLINE bool isAxe() { return GetItemGroup() == WEAPON_AXE; }
|
||
INLINE bool is2HAxe() { return GetKind() == WEAPON_2H_AXE; }
|
||
INLINE bool isMace() { return GetItemGroup() == WEAPON_MACE || GetItemGroup() == WEAPON_MACE2; }
|
||
INLINE bool is2HMace() { return GetKind() == WEAPON_2H_MACE || GetItemGroup() == WEAPON_MACE2; }
|
||
INLINE bool isSpear() { return GetItemGroup() == WEAPON_SPEAR; }
|
||
INLINE bool is2HSpear() { return GetKind() == WEAPON_2H_SPEAR; }
|
||
INLINE bool isShield() { return GetItemGroup() == WEAPON_SHIELD; }
|
||
INLINE bool isStaff() { return GetItemGroup() == WEAPON_STAFF; }
|
||
INLINE bool isBow() { return GetItemGroup() == WEAPON_BOW || GetItemGroup() == WEAPON_LONGBOW; }
|
||
INLINE bool isPickaxe() { return GetKind() == WEAPON_PICKAXE; }
|
||
INLINE bool isPet() { return GetKind() == KIND_PET; }
|
||
INLINE bool isCyhperRing() { return GetKind() == KIND_CYPHERRING; }
|
||
INLINE bool isFishing() { return GetKind() == WEAPON_FISHING; }
|
||
INLINE bool isRON() { return Getnum() == 189401287 || Getnum() == 189401288 || Getnum() == 189401289; }
|
||
INLINE bool isLigh() { return Getnum() == 189301277 || Getnum() == 189301278 || Getnum() == 189301279; }
|
||
INLINE bool isNormal() { return Gettype() == 4 || Gettype() == 5; }
|
||
INLINE bool isRebirth1() { return Gettype() == 11 || Gettype() == 12; }
|
||
INLINE bool isAll() { return GetKind() > 0; }
|
||
INLINE bool is2Handed() { return m_bSlot == ItemSlot2HLeftHand || m_bSlot == ItemSlot2HRightHand; }
|
||
INLINE bool isAccessory() { return GetKind() == ACCESSORY_EARRING || GetKind() == ACCESSORY_NECKLACE || GetKind() == ACCESSORY_RING || GetKind() == ACCESSORY_BELT; }
|
||
INLINE bool isEarring() { return GetKind() == ACCESSORY_EARRING; }
|
||
INLINE bool isNecklace() { return GetKind() == ACCESSORY_NECKLACE; }
|
||
INLINE bool isRing() { return GetKind() == ACCESSORY_RING; }
|
||
INLINE bool isBelt() { return GetKind() == ACCESSORY_BELT; }
|
||
};
|
||
|
||
struct _ZONE_SERVERINFO
|
||
{
|
||
short sServerNo;
|
||
std::string strServerIP;
|
||
};
|
||
|
||
struct _KNIGHTS_CAPE
|
||
{
|
||
uint16 sCapeIndex;
|
||
uint32 nReqCoins;
|
||
uint32 nReqClanPoints; // clan point requirement
|
||
uint8 byGrade; // clan grade requirement
|
||
uint8 byRanking; // clan rank requirement (e.g. royal, accredited, etc)
|
||
};
|
||
|
||
struct _KNIGHTS_SIEGE_WARFARE
|
||
{
|
||
uint16 sCastleIndex;
|
||
uint16 sMasterKnights;
|
||
uint8 bySiegeType;
|
||
uint8 byWarDay;
|
||
uint8 byWarTime;
|
||
uint8 byWarMinute;
|
||
uint16 sChallengeList_1;
|
||
uint16 sChallengeList_2;
|
||
uint16 sChallengeList_3;
|
||
uint16 sChallengeList_4;
|
||
uint16 sChallengeList_5;
|
||
uint16 sChallengeList_6;
|
||
uint16 sChallengeList_7;
|
||
uint16 sChallengeList_8;
|
||
uint16 sChallengeList_9;
|
||
uint16 sChallengeList_10;
|
||
uint8 byWarRequestDay;
|
||
uint8 byWarRequestTime;
|
||
uint8 byWarRequestMinute;
|
||
uint8 byGuerrillaWarDay;
|
||
uint8 byGuerrillaWarTime;
|
||
uint8 byGuerrillaWarMinute;
|
||
std::string strChallengeList;
|
||
uint16 sMoradonTariff;
|
||
uint16 sDellosTariff;
|
||
int32 nDungeonCharge;
|
||
int32 nMoradonTax;
|
||
int32 nDellosTax;
|
||
uint16 sRequestList_1;
|
||
uint16 sRequestList_2;
|
||
uint16 sRequestList_3;
|
||
uint16 sRequestList_4;
|
||
uint16 sRequestList_5;
|
||
uint16 sRequestList_6;
|
||
uint16 sRequestList_7;
|
||
uint16 sRequestList_8;
|
||
uint16 sRequestList_9;
|
||
uint16 sRequestList_10;
|
||
};
|
||
|
||
struct _KNIGHTS_ALLIANCE
|
||
{
|
||
uint16 sMainAllianceKnights;
|
||
uint16 sSubAllianceKnights;
|
||
uint16 sMercenaryClan_1;
|
||
uint16 sMercenaryClan_2;
|
||
};
|
||
|
||
struct _START_POSITION
|
||
{
|
||
uint16 ZoneID;
|
||
uint16 sKarusX;
|
||
uint16 sKarusZ;
|
||
uint16 sElmoradX;
|
||
uint16 sElmoradZ;
|
||
uint16 sKarusGateX;
|
||
uint16 sKarusGateZ;
|
||
uint16 sElmoradGateX;
|
||
uint16 sElmoradGateZ;
|
||
uint8 bRangeX;
|
||
uint8 bRangeZ;
|
||
};
|
||
|
||
struct _KNIGHTS_RATING
|
||
{
|
||
uint32 nRank;
|
||
uint16 sClanID;
|
||
uint32 nPoints;
|
||
};
|
||
|
||
struct _USER_RANK
|
||
{
|
||
uint16 nRank; // shIndex for USER_KNIGHTS_RANK
|
||
std::string strUserID[2];
|
||
uint32 nSalary; // nMoney for USER_KNIGHTS_RANK
|
||
uint32 nLoyalty[2]; // nKarusLoyaltyMonthly/nElmoLoyaltyMonthly for USER_PERSONAL_RANK
|
||
};
|
||
|
||
struct _PET_DATA
|
||
{
|
||
uint64 m_Serial; // Pet items specified serial number
|
||
std::string strPetName; // Pets name
|
||
uint8 m_sClass; // Pets class
|
||
uint8 m_bLevel; // Pets level
|
||
uint8 m_sSatisfaction; // Pets satisfaction
|
||
uint8 iExp;
|
||
uint32 SpecialPetID;
|
||
};
|
||
|
||
|
||
// TO-DO: Rewrite this system to be less script dependent for exchange logic.
|
||
// Coin requirements should be in the database, and exchanges should be grouped.
|
||
#define ITEMS_IN_ORIGIN_GROUP 5
|
||
#define ITEMS_IN_SPECIAL_ORIGIN_GROUP 10
|
||
#define ITEMS_IN_SPECIAL_EXCHANGE_GROUP 10
|
||
#define ITEMS_IN_EXCHANGE_GROUP 5
|
||
|
||
struct _ITEM_MIX
|
||
{
|
||
uint32 nIndex;
|
||
uint16 sNpcNum;
|
||
uint8 bType;
|
||
uint8 bStatus;
|
||
std::string strName;
|
||
|
||
uint16 sSuccessEffect,bSuccessRate,sFailEffect,bBonusRate;
|
||
|
||
uint32 nOriginItemNum[ITEMS_IN_SPECIAL_ORIGIN_GROUP];
|
||
uint16 sOriginItemCount[ITEMS_IN_SPECIAL_ORIGIN_GROUP];
|
||
|
||
uint32 nExchangeItemNum[ITEMS_IN_SPECIAL_EXCHANGE_GROUP];
|
||
uint16 sExchangeItemCount[ITEMS_IN_SPECIAL_EXCHANGE_GROUP];
|
||
};
|
||
|
||
struct _ITEM_EXCHANGE
|
||
{
|
||
uint32 nIndex;
|
||
uint8 bRandomFlag;
|
||
|
||
uint32 nOriginItemNum[ITEMS_IN_ORIGIN_GROUP];
|
||
uint32 sOriginItemCount[ITEMS_IN_ORIGIN_GROUP];
|
||
|
||
uint32 nExchangeItemNum[ITEMS_IN_EXCHANGE_GROUP];
|
||
uint32 sExchangeItemCount[ITEMS_IN_EXCHANGE_GROUP];
|
||
|
||
uint32 Unk1,Unk2,Unk3,Unk4,Unk5;
|
||
};
|
||
|
||
struct _ITEM_EXCHANGE_EXP
|
||
{
|
||
uint32 nIndex;
|
||
uint8 bRandomFlag;
|
||
|
||
uint32 nExchangeItemNum[ITEMS_IN_EXCHANGE_GROUP];
|
||
uint32 sExchangeItemCount[ITEMS_IN_EXCHANGE_GROUP];
|
||
};
|
||
|
||
struct _MINING_ITEM
|
||
{
|
||
uint32 nMiningID;
|
||
uint32 nExchangeItemNum;
|
||
uint16 sExchangeItemRate;
|
||
uint16 isGoldenMattock;
|
||
};
|
||
|
||
#define MAX_ITEMS_REQ_FOR_UPGRADE 8
|
||
struct _ITEM_UPGRADE
|
||
{
|
||
uint32 nIndex;
|
||
uint16 sNpcNum;
|
||
int8 bOriginType;
|
||
uint16 sOriginItem;
|
||
uint32 nReqItem[MAX_ITEMS_REQ_FOR_UPGRADE];
|
||
uint32 nReqNoah;
|
||
uint8 bRateType;
|
||
uint16 sGenRate;
|
||
uint16 sTrinaRate;
|
||
int32 nGiveItem;
|
||
|
||
INLINE uint32 Getscroll() { return nReqItem[MAX_ITEMS_REQ_FOR_UPGRADE]; }
|
||
INLINE bool isReverse() { return Getscroll() == 379257000; }
|
||
INLINE bool isTransform() { return Getscroll() == 379256000; }
|
||
};
|
||
|
||
enum ItemTriggerType
|
||
{
|
||
TriggerTypeAttack = 3,
|
||
TriggerTypeDefend = 13
|
||
};
|
||
|
||
struct _ITEM_OP
|
||
{
|
||
uint32 nItemID;
|
||
uint8 bTriggerType;
|
||
uint32 nSkillID;
|
||
uint8 bTriggerRate;
|
||
};
|
||
|
||
struct _ITEM_DUPER
|
||
{
|
||
uint32 n_Index;
|
||
uint32 d_ItemID;
|
||
uint64 d_Serial;
|
||
};
|
||
|
||
struct _ILEGAL_ITEMS
|
||
{
|
||
uint32 i_Index;
|
||
uint32 i_ItemID;
|
||
};
|
||
|
||
struct _MERCHANT_LIST
|
||
{
|
||
std::string strUserName;
|
||
|
||
uint16 strUserID;
|
||
uint32 ItemID[12];
|
||
uint32 Price[12];
|
||
uint8 Type;
|
||
};
|
||
struct _ACHIEVE_ITEM
|
||
{
|
||
uint16 TitleID;
|
||
uint16 sQuestID;
|
||
uint16 StrengthBonus;
|
||
uint16 StaminaBonus;
|
||
uint16 DexterityBonus;
|
||
uint16 IntelBonus;
|
||
uint16 CharismaBonus;
|
||
uint16 FireResistance;
|
||
uint16 IceResistance;
|
||
uint16 LightResistance;
|
||
uint16 FireDamage;
|
||
uint16 IceDamage;
|
||
uint16 LightDamage;
|
||
uint16 PoisonResistance;
|
||
uint16 MagicResistance;
|
||
uint16 SpellResistance;
|
||
uint16 DaggerAc;
|
||
uint16 JamadarAc;
|
||
uint16 SwordAc;
|
||
uint16 BlowAc;
|
||
uint16 AxeAc;
|
||
uint16 SpearAc;
|
||
uint16 ArrowAc;
|
||
uint16 XPBonusPercent;
|
||
uint16 CONT;
|
||
uint16 AttackBonus;
|
||
int16 ACBonus;
|
||
};
|
||
|
||
struct _SET_ITEM
|
||
{
|
||
uint32 SetIndex;
|
||
|
||
uint16 HPBonus;
|
||
uint16 MPBonus;
|
||
uint16 StrengthBonus;
|
||
uint16 StaminaBonus;
|
||
uint16 DexterityBonus;
|
||
uint16 IntelBonus;
|
||
uint16 CharismaBonus;
|
||
uint16 FlameResistance;
|
||
uint16 GlacierResistance;
|
||
uint16 LightningResistance;
|
||
uint16 PoisonResistance;
|
||
uint16 MagicResistance;
|
||
uint16 CurseResistance;
|
||
|
||
uint16 XPBonusPercent;
|
||
uint16 CoinBonusPercent;
|
||
|
||
uint16 APBonusPercent; // +AP% for all classes
|
||
uint16 APBonusClassType; // defines a specific class for +APBonusClassPercent% to be used against
|
||
uint16 APBonusClassPercent; // +AP% for APBonusClassType only
|
||
|
||
uint16 ACBonus; // +AC amount for all classes
|
||
uint16 ACBonusClassType; // defines a specific class for +ACBonusClassPercent% to be used against
|
||
uint16 ACBonusClassPercent; // +AC% for ACBonusClassType only
|
||
|
||
uint16 MaxWeightBonus;
|
||
uint8 NPBonus;
|
||
};
|
||
|
||
struct _QUEST_HELPER
|
||
{
|
||
uint32 nIndex;
|
||
uint8 bMessageType;
|
||
uint8 bLevel;
|
||
uint32 nExp;
|
||
uint8 bClass;
|
||
uint8 bNation;
|
||
uint8 bQuestType;
|
||
uint8 bZone;
|
||
uint16 sNpcId;
|
||
uint16 sEventDataIndex;
|
||
int8 bEventStatus;
|
||
uint32 nEventTriggerIndex;
|
||
uint32 nEventCompleteIndex;
|
||
uint32 nExchangeIndex;
|
||
uint32 nEventTalkIndex;
|
||
std::string strLuaFilename;
|
||
};
|
||
|
||
struct _USER_SEAL_ITEM
|
||
{
|
||
uint64 nSerialNum;
|
||
uint32 nItemID;
|
||
uint8 bSealType;
|
||
};
|
||
|
||
struct _PREMIUM_TYPE
|
||
{
|
||
uint8 PremiumType;
|
||
uint16 PremiumTime;
|
||
};
|
||
|
||
struct _ITEM_REPURCHASE
|
||
{
|
||
uint32 nNum;
|
||
uint32 tRepTime;
|
||
};
|
||
|
||
#define QUEST_MOB_GROUPS 4
|
||
#define QUEST_MOBS_PER_GROUP 4
|
||
struct _QUEST_MONSTER
|
||
{
|
||
uint16 sQuestNum;
|
||
uint16 sNum[QUEST_MOB_GROUPS][QUEST_MOBS_PER_GROUP];
|
||
uint16 sCount[QUEST_MOB_GROUPS];
|
||
|
||
_QUEST_MONSTER()
|
||
{
|
||
memset(&sCount, 0, sizeof(sCount));
|
||
memset(&sNum, 0, sizeof(sNum));
|
||
}
|
||
};
|
||
|
||
enum SpecialQuestIDs
|
||
{
|
||
QUEST_KILL_GROUP1 = 32001,
|
||
QUEST_KILL_GROUP2 = 32002,
|
||
QUEST_KILL_GROUP3 = 32003,
|
||
QUEST_KILL_GROUP4 = 32004,
|
||
};
|
||
|
||
struct _RENTAL_ITEM
|
||
{
|
||
uint32 nRentalIndex;
|
||
uint32 nItemID;
|
||
uint16 sDurability;
|
||
uint64 nSerialNum;
|
||
uint8 byRegType;
|
||
uint8 byItemType;
|
||
uint8 byClass;
|
||
uint16 sRentalTime;
|
||
uint32 nRentalMoney;
|
||
std::string strLenderCharID;
|
||
std::string strBorrowerCharID;
|
||
};
|
||
|
||
struct _PREMIUM_ITEM
|
||
{
|
||
uint8 Type;
|
||
uint16 ExpRestorePercent;
|
||
uint16 NoahPercent;
|
||
uint16 DropPercent;
|
||
uint32 BonusLoyalty;
|
||
uint16 RepairDiscountPercent;
|
||
uint16 ItemSellPercent;
|
||
};
|
||
|
||
struct _PREMIUM_ITEM_EXP
|
||
{
|
||
uint16 nIndex;
|
||
uint8 Type;
|
||
uint8 MinLevel;
|
||
uint8 MaxLevel;
|
||
uint16 sPercent;
|
||
};
|
||
|
||
struct _USER_RANKING
|
||
{
|
||
uint16 m_socketID;
|
||
uint8 m_bNation;
|
||
uint32 m_iLoyaltyDaily;
|
||
uint16 m_iLoyaltyPremiumBonus;
|
||
uint16 m_KillCount; // Chaos Dungeon
|
||
uint16 m_DeathCount; // Chaos Dungeon
|
||
CUser * pUser;
|
||
};
|
||
|
||
|
||
struct _TEMPLE_EVENT_USER
|
||
{
|
||
uint16 m_socketID;
|
||
uint16 m_bEventRoom;
|
||
};
|
||
|
||
struct _EVENT_TRIGGER
|
||
{
|
||
uint32 nIndex;
|
||
uint16 bNpcType;
|
||
uint32 sNpcID;
|
||
uint32 nTriggerNum;
|
||
};
|
||
|
||
struct _USER_DAILY_OP
|
||
{
|
||
std::string strUserId;
|
||
int32 ChaosMapTime;
|
||
int32 UserRankRewardTime;
|
||
int32 PersonalRankRewardTime;
|
||
int32 KingWingTime;
|
||
int32 WarderKillerTime1;
|
||
int32 WarderKillerTime2;
|
||
int32 KeeperKillerTime;
|
||
int32 UserLoyaltyWingRewardTime;
|
||
};
|
||
|
||
struct _MONUMENT_INFORMATION
|
||
{
|
||
uint16 sSid;
|
||
uint16 sNid;
|
||
int32 RepawnedTime;
|
||
};
|
||
|
||
struct _MONSTER_CHALLENGE
|
||
{
|
||
uint16 sIndex;
|
||
uint8 bStartTime1;
|
||
uint8 bStartTime2;
|
||
uint8 bStartTime3;
|
||
uint8 bLevelMin;
|
||
uint8 bLevelMax;
|
||
};
|
||
|
||
struct _EVENT_TIMES
|
||
{
|
||
uint16 sIndex;
|
||
uint8 bTime1;
|
||
uint8 bTime2;
|
||
uint8 bTime3;
|
||
uint8 bLvMin;
|
||
uint8 bLvMax;
|
||
uint8 AllDays;
|
||
};
|
||
|
||
struct _MONSTER_CHALLENGE_SUMMON_LIST
|
||
{
|
||
uint16 sIndex;
|
||
uint8 bLevel;
|
||
uint8 bStage;
|
||
uint8 bStageLevel;
|
||
uint16 sTime;
|
||
uint16 sSid;
|
||
uint16 sCount;
|
||
uint16 sPosX;
|
||
uint16 sPosZ;
|
||
uint8 bRange;
|
||
};
|
||
|
||
struct _EVENT_STATUS
|
||
{
|
||
int16 ActiveEvent;
|
||
int8 ZoneID;
|
||
uint8 LastEventRoom;
|
||
uint32 StartTime;
|
||
uint16 AllUserCount;
|
||
uint16 ElMoradUserCount;
|
||
uint16 KarusUserCount;
|
||
uint16 ElmoDeathCount[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 KarusDeathCount[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 m_sBdwMiniTimer[MAX_TEMPLE_EVENT_ROOM];
|
||
uint8 m_sMiniTimerNation[MAX_TEMPLE_EVENT_ROOM];
|
||
|
||
uint16 JuraidKarusGateID1[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 JuraidKarusGateID2[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 JuraidKarusGateID3[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 JuraidElmoGateID1[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 JuraidElmoGateID2[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 JuraidElmoGateID3[MAX_TEMPLE_EVENT_ROOM];
|
||
|
||
|
||
uint16 KarusDeathRoom1[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 KarusDeathRoom2[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 KarusDeathRoom3[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 ElmoDeathRoom1[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 ElmoDeathRoom2[MAX_TEMPLE_EVENT_ROOM];
|
||
uint16 ElmoDeathRoom3[MAX_TEMPLE_EVENT_ROOM];
|
||
// Juraid Finish
|
||
bool isAttackable;
|
||
bool isActive;
|
||
bool isDevaFlag[MAX_TEMPLE_EVENT_ROOM];
|
||
bool isDevaControl[MAX_TEMPLE_EVENT_ROOM];
|
||
uint8 DevaNation[MAX_TEMPLE_EVENT_ROOM];
|
||
|
||
|
||
uint32 m_nChaosPrizeWonItemNo1;
|
||
uint32 m_nChaosPrizeWonItemNo2;
|
||
uint32 m_nChaosPrizeWonItemNo3;
|
||
uint32 m_nChaosPrizeWonItemNo4_K;
|
||
uint32 m_nChaosPrizeWonItemNo4_H;
|
||
uint32 m_nChaosPrizeWonLoyalty;
|
||
uint32 m_nChaosPrizeWonExp;
|
||
uint32 m_nChaosPrizeWonKnightCash;
|
||
uint32 m_nChaosPrizeLoserKnightCash;
|
||
uint32 m_nChaosPrizeLoserLoyalty;
|
||
uint32 m_nChaosPrizeLoserItem;
|
||
uint32 m_nChaosPrizeLoserExp;
|
||
|
||
uint32 m_nBorderDefenseWarPrizeWonItemNo1;
|
||
uint32 m_nBorderDefenseWarPrizeWonItemNo2;
|
||
uint32 m_nBorderDefenseWarPrizeWonItemNo3;
|
||
uint32 m_nBorderDefenseWarPrizeWonItemNo4_K;
|
||
uint32 m_nBorderDefenseWarPrizeWonItemNo4_H;
|
||
uint32 m_nBorderDefenseWarPrizeWonLoyalty;
|
||
uint32 m_nBorderDefenseWarPrizeWonKnightCash;
|
||
uint32 m_nBorderDefenseWarPrizeLoserKnightCash;
|
||
uint32 m_nBorderDefenseWarPrizeLoserLoyalty;
|
||
uint32 m_nBorderDefenseWarPrizeLoserItem;
|
||
uint8 m_nBorderDefenseWarMAXLEVEL;
|
||
uint8 m_nBorderDefenseWarMINLEVEL;
|
||
|
||
bool m_nJuraidMountainOdulTipi;
|
||
uint32 m_nJuraidMountainPrizeWonItemNo1;
|
||
uint32 m_nJuraidMountainPrizeWonItemNo2;
|
||
uint32 m_nJuraidMountainPrizeWonItemNo3;
|
||
uint32 m_nJuraidMountainPrizeWonItemNo4_K;
|
||
uint32 m_nJuraidMountainPrizeWonItemNo4_H;
|
||
uint32 m_nJuraidMountainPrizeWonLoyalty;
|
||
uint32 m_nJuraidMountainPrizeWonExp;
|
||
uint32 m_nJuraidMountainPrizeWonKnightCash;
|
||
uint32 m_nJuraidMountainPrizeLoserKnightCash;
|
||
uint32 m_nJuraidMountainPrizeLoserLoyalty;
|
||
uint32 m_nJuraidMountainPrizeLoserItem;
|
||
uint32 m_nJuraidMountainPrizeLoserExp;
|
||
uint8 m_nJuraidMountainMAXLEVEL;
|
||
uint8 m_nJuraidMountainMINLEVEL;
|
||
|
||
};
|
||
|
||
struct _START_POSITION_RANDOM
|
||
{
|
||
uint16 sIndex;
|
||
uint8 ZoneID;
|
||
uint16 PosX;
|
||
uint16 PosZ;
|
||
uint8 Radius;
|
||
};
|
||
|
||
struct _USER_ITEM
|
||
{
|
||
uint32 nItemID;
|
||
std::vector<uint64> nItemSerial;
|
||
};
|
||
|
||
|
||
enum BuffType
|
||
{
|
||
BUFF_TYPE_NONE = 0,
|
||
BUFF_TYPE_HP_MP = 1,
|
||
BUFF_TYPE_AC = 2,
|
||
BUFF_TYPE_SIZE = 3,
|
||
BUFF_TYPE_DAMAGE = 4,
|
||
BUFF_TYPE_ATTACK_SPEED = 5,
|
||
BUFF_TYPE_SPEED = 6,
|
||
BUFF_TYPE_STATS = 7,
|
||
BUFF_TYPE_RESISTANCES = 8,
|
||
BUFF_TYPE_ACCURACY = 9,
|
||
BUFF_TYPE_MAGIC_POWER = 10,
|
||
BUFF_TYPE_EXPERIENCE = 11,
|
||
BUFF_TYPE_WEIGHT = 12,
|
||
BUFF_TYPE_WEAPON_DAMAGE = 13,
|
||
BUFF_TYPE_WEAPON_AC = 14,
|
||
BUFF_TYPE_LOYALTY = 15,
|
||
BUFF_TYPE_NOAH_BONUS = 16,
|
||
BUFF_TYPE_PREMIUM_MERCHANT = 17,
|
||
BUFF_TYPE_ATTACK_SPEED_ARMOR = 18, // Berserker
|
||
BUFF_TYPE_DAMAGE_DOUBLE = 19, // Critical Point
|
||
BUFF_TYPE_DISABLE_TARGETING = 20, // Smoke Screen / Light Shock
|
||
BUFF_TYPE_BLIND = 21, // Blinding (Strafe)
|
||
BUFF_TYPE_FREEZE = 22, // Freezing Distance
|
||
BUFF_TYPE_INSTANT_MAGIC = 23, // Instantly Magic
|
||
BUFF_TYPE_DECREASE_RESIST = 24, // Minor resist
|
||
BUFF_TYPE_MAGE_ARMOR = 25, // Fire / Ice / Lightning Armor
|
||
BUFF_TYPE_PROHIBIT_INVIS = 26, // Source Marking
|
||
BUFF_TYPE_RESIS_AND_MAGIC_DMG = 27, // Elysian Web
|
||
BUFF_TYPE_TRIPLEAC_HALFSPEED = 28, // Wall of Iron
|
||
BUFF_TYPE_BLOCK_CURSE = 29, // Counter Curse
|
||
BUFF_TYPE_BLOCK_CURSE_REFLECT = 30, // Curse Refraction
|
||
BUFF_TYPE_MANA_ABSORB = 31, // Outrage / Frenzy
|
||
BUFF_TYPE_IGNORE_WEAPON = 32, // Weapon cancellation
|
||
BUFF_TYPE_VARIOUS_EFFECTS = 33, // ... whatever the event item grants.
|
||
BUFF_TYPE_PASSION_OF_SOUL = 35, // Passion of the Soul
|
||
BUFF_TYPE_FIRM_DETERMINATION = 36, // Firm Determination
|
||
BUFF_TYPE_ATTACK_MAGIC_ATTACK = 37, // increases attack and magic attack percent
|
||
BUFF_TYPE_ATTACK_TIME = 39, // increases attack by ** minutes
|
||
BUFF_TYPE_SPEED2 = 40, // Cold Wave
|
||
BUFF_TYPE_ARMORED = 41, // Armored Skin
|
||
BUFF_TYPE_UNK_EXPERIENCE = 42, // unknown buff type, used for something relating to XP.
|
||
BUFF_TYPE_ATTACK_RANGE_ARMOR = 43, // Inevitable Murderous
|
||
BUFF_TYPE_MIRROR_DAMAGE_PARTY = 44, // Minak's Thorn
|
||
BUFF_TYPE_DAGGER_BOW_DEFENSE = 45, // Eskrima
|
||
BUFF_TYPE_GM_BUFF = 46,
|
||
BUFF_TYPE_STUN = 47,
|
||
BUFF_TYPE_FISHING = 48, // FISHING Skill
|
||
BUFF_TYPE_DEVIL_TRANSFORM = 49,
|
||
BUFF_TYPE_DRAKEY = 50,
|
||
BUFF_TYPE_SPEED3 = 52,
|
||
BUFF_TYPE_LOYALTY_AMOUNT = 55, // Santa's Present
|
||
BUFF_TYPE_NO_RECALL = 150, // "Cannot use against the ones to be summoned"
|
||
BUFF_TYPE_REDUCE_TARGET = 151, // "Reduction" (reduces target's stats, but enlarges their character to make them easier to attack)
|
||
BUFF_TYPE_SILENCE_TARGET = 152, // Silences the target to prevent them from using any skills (or potions)
|
||
BUFF_TYPE_NO_POTIONS = 153, // "No Potion" prevents target from using potions.
|
||
BUFF_TYPE_KAUL_TRANSFORMATION = 154, // Transforms the target into a Kaul (a pig thing), preventing you from /town'ing or attacking, but increases defense.
|
||
BUFF_TYPE_UNDEAD = 155, // User becomes undead, increasing defense but preventing the use of potions and converting all health received into damage.
|
||
BUFF_TYPE_UNSIGHT = 156, // Blocks the caster's sight (not the target's).
|
||
BUFF_TYPE_BLOCK_PHYSICAL_DAMAGE = 157, // Blocks all physical damage.
|
||
BUFF_TYPE_BLOCK_MAGICAL_DAMAGE = 158, // Blocks all magical/skill damage.
|
||
BUFF_TYPE_UNK_POTION = 159, // unknown potion, "Return of the Warrior", "Comeback potion", perhaps some sort of revive?
|
||
BUFF_TYPE_SLEEP = 160, // Zantman (Sandman)
|
||
BUFF_TYPE_INC_CONTRIBUTION = 162, // Increase of the contribution
|
||
BUFF_TYPE_INVISIBILITY_POTION = 163, // "Unidentified potion"
|
||
BUFF_TYPE_GODS_BLESSING = 164, // Increases your defense/max HP
|
||
BUFF_TYPE_HELP_COMPENSATION = 165, // Compensation for using the help system (to help, ask for help, both?)
|
||
BUFF_TYPE_UNKNOW = 166, // Unknow Skill Buff type
|
||
BUFF_TYPE_IMIR_ROAR = 167, // Creates a physical damage immune area around 10 meter radius of the caster for 20 seconds.
|
||
BUFF_TYPE_LOGOS_HORNS = 168, // Creates a magic damage immune area around 10 meter radius of the caster for 20 seconds.
|
||
BUFF_TYPE_DROP_RATE = 169, // During the 2-hour, +10% item drop rate.
|
||
BUFF_TYPE_MAMA_MAGPIE = 170, // Magpie is transformed into a mother
|
||
BUFF_TYPE_BATTLE_CRY = 171, // Battle Cry
|
||
BUFF_TYPE_ATTACK_AMMONUT2 = 172, // Attack increased by 5%
|
||
};
|
||
|
||
enum FlyingSantaOrAngel
|
||
{
|
||
FLYING_NONE = 0,
|
||
FLYING_SANTA = 1,
|
||
FLYING_ANGEL = 2
|
||
};
|
||
|
||
enum UserInfoOpCode
|
||
{
|
||
UserInfo = 1,
|
||
UserInfoNick = 2,
|
||
UserInfoAll = 3,
|
||
UserInfoShow = 4
|
||
};
|
||
|
||
|
||
enum AchieveOpcodes
|
||
{
|
||
AchieveError = 0,
|
||
AchieveSuccess = 1,
|
||
AchieveUnknown2 = 2,
|
||
AchieveTitleShow = 3,
|
||
AchieveMainPage = 4,
|
||
AchieveUnknown = 5,
|
||
AchieveUnknown6 = 6,
|
||
AchieveUnknown7 = 7,
|
||
AchieveUnknown8 = 8,
|
||
AchieveUnknown9 = 9,
|
||
AchieveCoverTitle = 10,
|
||
AchieveSkillTitle = 11,
|
||
AchieveCoverTitleReset = 12,
|
||
AchieveSkillTitleReset = 13
|
||
};
|
||
|
||
|
||
|
||
#include "../shared/database/structs.h" |