#pragma once #include #include #include "CNProtocol.hpp" #include "CNStructs.hpp" #define ACTIVE_MISSION_COUNT 6 #define PC_MAXHEALTH(level) (925 + 75 * (level)) struct Player { int accountId; int accountLevel; // permission level (see CN_ACCOUNT_LEVEL enums) int64_t SerialKey; int32_t iID; uint64_t FEKey; time_t creationTime; int level; int HP; int slot; // player slot, not nano slot int16_t mentor; int32_t money; int32_t fusionmatter; int32_t batteryW; int32_t batteryN; sPCStyle PCStyle; sPCStyle2 PCStyle2; sNano Nanos[37]; // acquired nanos int equippedNanos[3]; int activeNano; // active nano (index into Nanos) int8_t iPCState; int32_t iWarpLocationFlag; int64_t aSkywayLocationFlag[2]; int32_t iConditionBitFlag; int8_t iSpecialState; int x, y, z, angle; int lastX, lastY, lastZ, lastAngle; uint64_t instanceID; sItemBase Equip[AEQUIP_COUNT]; sItemBase Inven[AINVEN_COUNT]; sItemBase Bank[ABANK_COUNT]; sItemTrade Trade[12]; int32_t moneyInTrade; bool isTrading; bool isTradeConfirm; bool inCombat; bool passiveNanoOut; int healCooldown; int pointDamage; int groupDamage; int defense; int64_t aQuestFlag[16]; int tasks[ACTIVE_MISSION_COUNT]; int RemainingNPCCount[ACTIVE_MISSION_COUNT][3]; sItemBase QInven[AQINVEN_COUNT]; int32_t CurrentMissionID; sTimeLimitItemDeleteInfo2CL toRemoveVehicle; int32_t iIDGroup; int groupCnt; int32_t groupIDs[4]; int32_t iGroupConditionBitFlag; bool notify; };