<database_description> <!-- Define bank superclass --> <bank_superclass> <bank name="PLR" class="CCDBSynchronised" /> <bank name="GUILD" class="CCDBGroup" dbAccessor=".Database"> <include file="game_share/far_position.h" /> <verbatime>inline void _setProp(CCDBSynchronised &db, ICDBStructNode *node, TCharConnectionState value, bool forceSending = false) { db.x_setProp(node, uint64(value), forceSending); } inline void _getProp(const CCDBSynchronised &db, ICDBStructNode *node, TCharConnectionState &value) { value = (TCharConnectionState)db.x_getProp(node); }</verbatime> </bank> <bank name="OUTPOST" class="CCDBGroup" dbAccessor=".Database" /> </bank_superclass> <!-- Bank must be set for all and only first-level branches --> <!-- For the client to work, this branch MUST remain at the top --> <branch name="Entities" bank="PLR" clientonly="1"> <branch name="E" count="256"> <leaf name="P" count="28" type="I64" /> </branch> </branch> <branch name="GameTime" bank="PLR"> <leaf name="Hours" type="I16" /> </branch> <branch name="INTERFACES" bank="PLR"> <leaf name="FLAGS" type="I64" /> <leaf name="NB_BONUS_LANDMARKS" type="I16" /> </branch> <branch name="USER" bank="PLR" atom="1"> <leaf name="HAIR_TYPE" type="I8" /> <leaf name="HAIR_COLOR" type="I3" /> <leaf name="DEATH_XP_MALUS" type="I8" /> <leaf name="IN_DUEL" type="I1" /> <leaf name="IN_PVP_CHALLENGE" type="I1" /> <leaf name="MOUNT_WALK_SPEED" type="I16" /> <leaf name="MOUNT_RUN_SPEED" type="I16" /> <leaf name="TEAM_MEMBER" type="I1" /> <leaf name="TEAM_LEADER" type="I1" /> <leaf name="OUTPOST_ADMIN" type="I1" /> <leaf name="BERSERK" type="I1" /> <leaf name="ACT_TSTART" type="I32" /> <leaf name="ACT_TEND" type="I32" /> <leaf name="ACT_TYPE" type="I4" /> <leaf name="ACT_NUMBER" type="I8" /> <leaf name="ACT_REFUSED_NUM" type="I8" /> <leaf name="ACT_CANCELED_NUM" type="I8" /> <leaf name="SPEED_FACTOR" type="I8" /> <leaf name="SKILL_POINTS" type="I32" /> <branch name="SKILL_POINTS_" count="4"> <leaf name="VALUE" type="I32" /> </branch> <branch name="FACTION_POINTS_" count="6"> <!-- game_share/pvp_clan.h (0 is BeginClans and size is EndClans-BeginClans+1 --> <leaf name="VALUE" type="I32" /> </branch> <leaf name="IS_NEWBIE" type="I1" /> <leaf name="IS_TRIAL" type="I1" /> <branch name="RRPS_LEVELS" count="6"> <leaf name="VALUE" type="I32" /> </branch> <branch name="NPC_CONTROL" bank="PLR"> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="RUN" type="I32" /> <leaf name="WALK" type="I32" /> </branch> <leaf name="DEFAULT_WEIGHT_HANDS" type="I32" /> <leaf name="IS_INVISIBLE" type="I1" /> <!-- Syncrhonisation COUNTER. must be at END of an atomic branch --> <leaf name="COUNTER" type="I4" /> </branch> <branch name="DEFENSE" bank="PLR"> <leaf name="DEFENSE_MODE" type="I1" /> <!-- 0 = dodge, 1 = parry--> <leaf name="PROTECTED_SLOT" type="I3" /> <!-- 0=All, 1=head, 2=chest, 3=arms, 4=hands, 5=legs, 6=feet--> <branch name="SLOTS"> <branch name="" count="6"> <!-- 0=head, 1=chest, 2=arms, 3=hands, 4=legs, 5=feet--> <leaf name="MODIFIER" type="S8" /> <!-- modifier on defense (dodge or parry) on given slot (+-127)--> </branch> </branch> </branch> <branch name="FLAGS" bank="PLR" atom="1"> <branch name="BRICK_TICK_RANGE"> <!-- tick range for each power --> <branch name="" count="64"> <leaf name="TICK_RANGE" type="I64" /> <!-- 32b for start tick and 32b for end tick --> </branch> </branch> <leaf name="CRITICAL" type="I8" /> <!-- counter to display flying texts : critical hit --> <leaf name="PARRY" type="I8" /> <!-- counter to display flying texts : parry --> <leaf name="DODGE" type="I8" /> <!-- counter to display flying texts : dodge --> </branch> <branch name="TARGET" bank="PLR"> <!-- Don't put the whole TARGET branch atomic, because it will takes 34 extra bits each time a bar value change --> <branch name="BARS" atom="1"> <!-- Entity Unique Identifier. Put in the atomic branch for consistency --> <!-- NB a UID invalid doesn't mean no target. It may be a Forage source --> <leaf name="UID" type="I20" /> <leaf name="ChaScore1" type="S8" /> <leaf name="ChaScore3" type="I7" /> <leaf name="ChaScore2" type="I7" /> <leaf name="ChaScore4" type="I7" /> <leaf name="PLAYER_LEVEL" type="I8" /> <!-- for target players only (PVP) --> </branch> <!-- ContextMenu (Bot options etc...) --> <branch name="CONTEXT_MENU" atom="1"> <leaf name="PROGRAMMES" type="I32" /> <!-- options for missions in the context menu --> <branch name="MISSIONS_OPTIONS"> <branch name="" count="8"> <leaf name="TITLE" type="I32" /> <!-- a text ID of 0 means there's no action. Text ID are reseted when a new character is targeted --> <leaf name="PLAYER_GIFT_NEEDED" type="I1" /> <!-- want a player gift ? --> <leaf name="PRIORITY" type="I2" /> <!-- priority of the option : the higher it is, the higher the option will be displayed in the menu --> </branch> </branch> <!-- A NPC may offer to view a webpage --> <leaf name="WEB_PAGE_TITLE" type="I32" /> <!-- a text ID of 0 means there's no WebPage --> <leaf name="WEB_PAGE_URL" type="I32" /> <!-- the URL text ID of the web page --> <leaf name="OUTPOST" type="I32" cppType="NLMISC::CSheetId" /> <!-- outpost this bot give access to (sheet id inside) --> <!-- Mission rings --> <branch name="MISSION_RING"> <branch name="" count="4"> <leaf name="TITLE" type="I32" /> <!-- a text ID of 0 means there's no action. Text ID are reseted when a new character is targeted --> <leaf name="ID" type="I32" /> <!-- the id of the action if selected --> </branch> </branch> <!-- Syncrhonisation COUNTER. must be at END of an atomic branch --> <leaf name="COUNTER" type="I4" /> </branch> <leaf name="CONTEXT_VAL" type="I16" /> <leaf name="AGGRESSIVE" type="I3" /> <leaf name="FORCE_RATIO" type="I4" /> <!-- TODO: remove this, use ForceRegion/ForceLevel in client creature sheets instead --> </branch> <branch name="GROUP" bank="PLR"> <branch name="" count="8" atom="1"> <!-- Atomic, for correct Bar Management on client --> <leaf name="PRESENT" type="I1" /> <leaf name="UID" type="I20" /> <!-- Entity Unique Identifier --> <leaf name="NAME" type="I32" /> <leaf name="ChaScore1" type="S8" /> <leaf name="ChaScore3" type="I7" /> <leaf name="ChaScore2" type="I7" /> <leaf name="POS" type="I64" /> </branch> <leaf name="LEADER_INDEX" type="I4" /> <leaf name="SUCCESSOR_INDEX" type="I4" /> <branch name="MISSIONS" bank="PLR"> <branch name="" count="15"> <!-- see game_share/mission_desc.h TMissionType --> <leaf name="TYPE" type="I2" /> <leaf name="ICON" type="I32" cppType="NLMISC::CSheetId" /> <!-- sheet id of a .mission_icon sheet --> <leaf name="TITLE" type="I32" /> <leaf name="DETAIL_TEXT" type="I32" /> <!-- begin date in tick --> <leaf name="BEGIN_DATE" type="I32" /> <!-- end date in tick --> <leaf name="END_DATE" type="I32" /> <!-- true if the step are "OR" --> <leaf name="OR_STEPS" type="I1" /> <branch name="GOALS"> <branch name="" count="20"> <leaf name="TEXT" type="I32" /> <leaf name="NPC_ALIAS" type="I32" /> </branch> </branch> <!-- Targets --> <branch name="TARGET" count="8" atom="1"> <leaf name="TITLE" type="I32" /> <leaf name="X" type="I32" /> <leaf name="Y" type="I32" /> </branch> <!-- Indicate if the mission is finished (0-not 1-success 2-failed) --> <leaf name="FINISHED" type="I2" /> <!-- Indicate if the mission is abandonnable --> <leaf name="ABANDONNABLE" type="I1" /> <!-- Indicate if the mission is paused (player set as 'sleeping' in a queue) --> <leaf name="SLEEP" type="I1" /> <!-- Historic --> <branch name="HISTO"> <branch name="" count="30"> <leaf name="TEXT" type="I32" /> </branch> </branch> </branch> </branch> </branch> <!-- Common Item Data : For correct HELP, all items must have this structure: <leaf name="SHEET" type="I32"/> <leaf name="QUALITY" type="I10"/> <leaf name="QUANTITY" type="I10"/> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3"/> <leaf name="LOCKED" type="I10"/> <leaf name="WEIGHT" type="I16"/> <leaf name="NAMEID" type="I32"/> <leaf name="INFO_VERSION" type="I8"/> <leaf name="ENCHANT" type="I10"/> <leaf name="RM_CLASS_TYPE" type="I3"/> RM_CLASS_TYPE enum <leaf name="RM_FABER_STAT_TYPE" type="I5"/> RM_FABER_STAT_TYPE enum <leaf name="PREREQUISIT_VALID" type="I11"/> --> <!-- gift from animator (dm) to player --> <branch name="DM_GIFT" bank="PLR"> <leaf name="TEXT" type="I32" /> <!-- caption of the gift window --> </branch> <!-- player trade & gift to bot --> <branch name="EXCHANGE" bank="PLR"> <leaf name="TEXT" type="I32" /> <leaf name="ID" type="I8" /> <leaf name="BEGUN" type="I1" /> <leaf name="ACCEPTED" type="I1" /> <leaf name="MONEY" type="I64" /> <branch name="GIVE"> <branch name="" count="8"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <!-- <leaf name="LOCKED" type="I10"/> No longer needed --> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE --> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> </branch> </branch> <branch name="RECEIVE"> <branch name="" count="8"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <!-- <leaf name="LOCKED" type="I10"/> No longer needed --> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> </branch> </branch> <leaf name="FORCE_REFUSE" type="I4" /> <!-- Syncrhonisation COUNTER. Should be at END of an atomic branch!!! but still works fine --> <leaf name="COUNTER" type="I4" /> </branch> <branch name="INVENTORY" bank="PLR"> <branch name="HAND"> <branch name="" count="2"> <!-- 0 Right 1 Left --> <leaf name="INDEX_IN_BAG" type="I9" /> <!-- 0 nothing 1-500 index in bag from 0 to 499 --> </branch> </branch> <branch name="BAG" clientonly="1"> <branch name="" count="500"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="LOCKED" type="I10" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <!-- 0=not enchanted, 1=enchanted nbcharge 0, 10=e. nbcharge 9 --> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> <leaf name="PRICE" type="I32" /> <leaf name="RESALE_FLAG" type="I2" /> <!-- TBotChatResaleFlag --> <leaf name="WORNED" type="I1" /> <!-- true if item is worned (show a red cross) --> </branch> </branch> <!-- MAX_INVENTORY_ANIMAL --> <branch name="PACK_ANIMAL" count="4" clientonly="1"> <branch name="" count="500"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="LOCKED" type="I10" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> <leaf name="PRICE" type="I32" /> <leaf name="RESALE_FLAG" type="I2" /> <!-- TBotChatResaleFlag --> </branch> </branch> <branch name="EQUIP"> <!-- jewelry + armor --> <branch name="" count="19"> <leaf name="INDEX_IN_BAG" type="I9" /> <!-- same as hand --> </branch> </branch> <branch name="TEMP"> <!-- used for harvest loot and bag full --> <leaf name="TYPE" type="I8" /> <!-- Type of temp inv see temp_inventory_mode in game_share --> <branch name="" count="16"> <!-- client/inventory_manager.h MAX_TEMPINV_ENTRIES and egs/player_inv_temp.h TempInvSize --> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I12" /> <!-- for forage progress, max QL409 x10 --> <leaf name="QUANTITY" type="I12" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <!-- for forage progress, max x409 x10 --> <leaf name="USER_COLOR" type="I3" /> <!-- No LOCKED state --> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> </branch> <leaf name="ENABLE_TAKE" type="I1" /> <!-- Used only in forage --> </branch> <!-- used to share items between team members (up to 8 players) DO NOT FORGET if you modify this to do the the same modification in local database file --> <branch name="SHARE"> <leaf name="SESSION" type="I8" /> <!-- session id --> <branch name="" count="16"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> <!-- Additionnal info --> <leaf name="NB_MEMBER" type="I4" /> <!-- Number of team member who wants this item or phrase --> <leaf name="WANTED" type="I1" /> <!-- Does the player wants this item or phrase ? --> <leaf name="CHANCE" type="I7" /> <!-- Chance in percentage the player has to obtain this item --> </branch> <branch name="TM_" count="8"> <!-- all the team members --> <leaf name="NAME" type="TEXT" /> <leaf name="VALID" type="I1" /> <!-- is the team member has validated its own selection ? --> </branch> </branch> <branch name="ROOM"> <leaf name="SESSION" type="I16" /> <leaf name="BULK_MAX" type="I32" /> <leaf name="MONEY" type="I64" /> <branch name="" count="1000" clientonly="1"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="LOCKED" type="I10" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <!-- 0=not enchanted, 1=enchanted nbcharge 0, 10=e. nbcharge 9 --> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> </branch> </branch> <leaf name="MONEY" type="I64" /> <!-- Synchronisation COUNTER. Should be at END of an atomic branch!!! but still works fine without atomic --> <leaf name="COUNTER" type="I4" /> </branch> <branch name="MODIFIERS" bank="PLR"> <leaf name="TOTAL_MALUS_EQUIP" type="I8" /> <!-- This is the malus ratio*50 (ie percentage/2) --> <branch name="BONUS"> <branch name="" count="12"> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="DISABLED" type="I1" /> <leaf name="DISABLED_TIME" type="I32" /> </branch> </branch> <branch name="MALUS"> <branch name="" count="12"> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="DISABLED" type="I1" /> <leaf name="DISABLED_TIME" type="I32" /> </branch> </branch> </branch> <branch name="DISABLE_CONSUMABLE" bank="PLR"> <branch name="" count="12"> <leaf name="FAMILY" type="I16" /> <!-- Disable consumablel family --> <leaf name="DISABLE_TIME" type="I32" /> <!-- End date of diable time in tick --> </branch> </branch> <!-- botchat texts --> <branch name="BOTCHAT" bank="PLR"> <!-- intro for player gift --> <leaf name="PLAYER_GIFT" type="I32" /> <!-- intro for guild creation --> <leaf name="CREATE_GUILD" type="I32" /> <!-- intro for trade window (pacts, action, item, or skills ..)--> <leaf name="TRADE" type="I32" /> <!-- intro for choose mission --> <leaf name="CHOOSE_MISSION" type="I32" /> <!-- intro before the reward of the mission --> <!-- <leaf name="MISSION_END_REWARD" type="I32"/> --> <!-- text of the mission end --> <!-- <leaf name="MISSION_END" type="I32"/> --> <!-- news for current bot --> <!-- <leaf name="NEWS" type="I32"/> --> <!-- choice dynamic missions --> <branch name="DM_CHOICE" count="3"> <leaf name="TITLE" type="I32" /> <branch name="" count="8"> <leaf name="TEXT" type="I32" /> </branch> </branch> <!-- title of dynamic mission --> <leaf name="DM_TITLE" type="I32" /> <!-- description of dynamic mission --> <leaf name="DM_DESCRIPTION" type="I32" /> <!-- the rolemaster type on 2 bits --> <leaf name="ROLEMASTER_TYPE" type="I2" /> </branch> <!-- Temporary structure to fill the huge list of guild to choose from in an ascensor --> <branch name="ASCENSOR" bank="PLR" atom="1"> <leaf name="SESSION" type="I16" /> <leaf name="PAGE_ID" type="I6" /> <!-- current page ID --> <leaf name="HAS_NEXT" type="I1" /> <!-- are there pages left ? --> <branch name="" count="8"> <!-- if high order bit == 0 : guild icon : 58 low order bits - back:3 bits, symbol:6 bits, Invert:1 bit, color1&2:24 bits each if high order bit == 1 : low order bits = entry in the LIFT_ICONS::TLiftIcon enum --> <leaf name="ICON" type="I64" /> <leaf name="NAME" type="I32" /> </branch> </branch> <branch name="CHOOSE_MISSIONS" bank="PLR" atom="1"> <leaf name="SESSION" type="I16" /> <leaf name="PAGE_ID" type="I6" /> <!-- current page ID --> <leaf name="HAS_NEXT" type="I1" /> <!-- are there pages left ? --> <branch name="" count="8"> <leaf name="ICON" type="I32" cppType="NLMISC::CSheetId" /> <!-- sheet id of a .mission_icon sheet --> <leaf name="TEXT" type="I32" /> <leaf name="DETAIL_TEXT" type="I32" /> <leaf name="PREREQ_STATE" type="I8" /> <!-- game_share/mission_desc.h/TPreReqState --> </branch> </branch> <branch name="TRADING" bank="PLR" atom="1"> <leaf name="SESSION" type="I16" /> <!-- current botchat session ID --> <leaf name="PAGE_ID" type="I7" /> <!-- current page ID --> <leaf name="HAS_NEXT" type="I1" /> <!-- are there pages left ? --> <leaf name="ROLEMASTER_FLAGS" type="I6" /> <!-- flags used to determine actions 'offered' by the rolemaster --> <leaf name="ROLEMASTER_RACE" type="I2" /> <!-- civ of actions offered by the rolemaster (0..3) --> <leaf name="BUILDING_LOSS_WARNING" type="I1" /> <!-- set if a warning saying "you're going to lose your old building" must be displayed --> <leaf name="RAW_MATERIAL_SELLER" type="I1" /> <!-- flag set to 1 for raw materials seller for setting appropriate filters --> <leaf name="ITEM_TYPE_SELLER_BITFILED_0_63" type="I64" /> <!-- bitfield define item type sell by bot, first 64 bits, cf TItemType --> <leaf name="ITEM_TYPE_SELLER_BITFILED_64_127" type="I64" /> <!-- bitfield define item type sell by bot, next 64 bits, cf TItemType --> <leaf name="FAME_PRICE_FACTOR" type="I16" /> <!-- 10000*factor to apply on item price, so if this value = 10000, factor is 1.0 --> <branch name="" count="8"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <!-- No LOCKED state --> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> <!-- Muti currency info --> <leaf name="CURRENCY" type="I4" /> <!-- The currency type RYMSG::TTradeCurrency --> <leaf name="RRP_LEVEL" type="I4" /> <!-- For rrp curency, specify the rrp level --> <leaf name="MONEY_SHEET" type="I32" cppType="NLMISC::CSheetId" /> <!-- For item curency, specify the item sheet --> <leaf name="BASE_SKILL" type="I4" /> <!-- For skill curency, specify the base skill as in EGSPD::CSPType::TSPType --> <leaf name="FACTION_TYPE" type="I4" /> <!-- For price in faction point, as in game_share/pvp_clan.h --> <leaf name="PRICE" type="I32" /> <!-- The amount of the selected currency (dappers, number of item...) --> <!-- Special Trade --> <leaf name="PRICE_RETIRE" type="I32" /> <leaf name="RESALE_TIME_LEFT" type="I16" /> <leaf name="VENDOR_NAMEID" type="TEXT" /> <!-- name id of player vendor --> <leaf name="FACTION_POINT_PRICE" type="I32" /> <!-- 0 for standard behaviour --> <!-- 1 if the sheet id is the one of an item, and if we got a plan for that item in the slot --> <!-- 2 if the slot is for a skill. In this case the sheet ID must be interpreted as an enum for that skill --> <!-- These values are defined as an enum in game_share/trade_slot_type.h --> <leaf name="SLOT_TYPE" type="I2" /> <!-- see TBotChatSellerType --> <leaf name="SELLER_TYPE" type="I3" /> </branch> </branch> <branch name="BRICK_FAMILY" bank="PLR"> <branch name="" count="1024"> <leaf name="BRICKS" type="I64" /> </branch> </branch> <branch name="FABER_PLANS" bank="PLR"> <branch name="" count="64"> <leaf name="KNOWN" type="I64" /> </branch> </branch> <branch name="MISSIONS" bank="PLR"> <branch name="" count="15"> <!-- see game_share/mission_desc.h TMissionType --> <leaf name="TYPE" type="I2" /> <leaf name="ICON" type="I32" cppType="NLMISC::CSheetId" /> <!-- sheet id of a .mission_icon sheet --> <leaf name="TITLE" type="I32" /> <leaf name="DETAIL_TEXT" type="I32" /> <!-- begin date in tick --> <leaf name="BEGIN_DATE" type="I32" /> <!-- end date in tick --> <leaf name="END_DATE" type="I32" /> <!-- true if the step are "OR" --> <leaf name="OR_STEPS" type="I1" /> <branch name="GOALS"> <branch name="" count="20"> <leaf name="TEXT" type="I32" /> <leaf name="NPC_ALIAS" type="I32" /> </branch> </branch> <!-- Targets --> <branch name="TARGET" count="8" atom="1"> <leaf name="TITLE" type="I32" /> <leaf name="X" type="I32" /> <leaf name="Y" type="I32" /> </branch> <!-- Indicate if the mission is finished (0-not 1-success 2-failed) --> <leaf name="FINISHED" type="I2" /> <!-- Indicate if the mission is abandonnable --> <leaf name="ABANDONNABLE" type="I1" /> <!-- Indicate if the mission is paused (player set as 'sleeping' in a queue) --> <leaf name="SLEEP" type="I1" /> <!-- Historic --> <branch name="HISTO"> <branch name="" count="30"> <leaf name="TEXT" type="I32" /> </branch> </branch> </branch> </branch> <branch name="EXECUTE_PHRASE" bank="PLR" atom="1"> <!-- The index of the phrase in the spell book that is being executed right now --> <leaf name="PHRASE" type="I16" /> <!-- If not a phrase in the speel book, give the associated brick sheet id --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <!-- When the NEXT_COUNTER reach the one on client, reset --> <leaf name="NEXT_COUNTER" type="I8" /> <!-- When the CYCLE_COUNTER reach the one on client, reset --> <leaf name="CYCLE_COUNTER" type="I8" /> <!-- LINKS --> <branch name="LINK"> <branch name="" count="10" atom="1"> <!-- The Phrase Id --> <leaf name="PHRASE" type="I16" /> <leaf name="COUNTER" type="I4" /> <!-- The cost each second --> <leaf name="ChaScore1_COST" type="I16" /> <leaf name="ChaScore3_COST" type="I16" /> <leaf name="ChaScore2_COST" type="I16" /> <!-- Entity name --> <leaf name="TARGET_NAME" type="TEXT" /> <!-- Entity State --> <leaf name="TARGET_ChaScore1" type="I7" /> <leaf name="TARGET_ChaScore3" type="I7" /> <leaf name="TARGET_ChaScore2" type="I7" /> </branch> </branch> </branch> <branch name="GUILD" bank="GUILD"> <leaf name="COUNTER" type="I8" /> <leaf name="PROXY" type="I1" /> <!-- Flat to indicate that the guild is 'proxified' from another EGS --> <leaf name="NAME" type="TEXT" /> <!-- Name of the guild the local player belongs to --> <leaf name="DESCRIPTION" type="TEXT" /> <!-- Description of the guild --> <leaf name="ICON" type="I64" /> <!-- Icon of the guild (look at guild_manager) --> <leaf name="XP" type="I32" /> <!-- Experience of the guild --> <leaf name="CHARGE_POINTS" type="I32" /> <!-- charge points of the guild --> <leaf name="VILLAGE" type="TEXT" /> <!-- village text id --> <leaf name="PEOPLE" type="I8" /> <!-- people affiliated with the guild--> <leaf name="CREATION_DATE" type="I32" /> <!-- creation date of the guild in ticks --> <branch name="FAME"> <leaf name="CULT_ALLEGIANCE" type="I3" /> <!-- Guild cult allegiance (CF TPVPClan enum (pvp_clan.h) --> <leaf name="CIV_ALLEGIANCE" type="I3" /> <!-- Guild civilization allegiance (CF TPVPClan enum (pvp_clan.h) --> <branch name="" count="6"> <!-- from fame.h & cpp --> <leaf name="VALUE" type="S8" /> <!-- current value --> <leaf name="THRESHOLD" type="S8" /> <!-- max threshold --> <leaf name="TREND" type="I8" /> <!-- Fame trend, (CF see fame_pd.h TFameTrend ) --> </branch> </branch> <branch name="MEMBERS"> <!-- Guild Members --> <branch name="" count="256"> <leaf name="NAME" type="TEXT" /> <!-- player name --> <leaf name="GRADE" type="I3" /> <!-- player grade--> <leaf name="ONLINE" type="I2" cppType="TCharConnectionState" /> <!-- enum TCharConnectionState --> <leaf name="ENTER_DATE" type="I32" /> <!-- tick when player entered the guild--> </branch> </branch> <branch name="INVENTORY"> <leaf name="SESSION" type="I16" /> <leaf name="BULK_MAX" type="I32" /> <leaf name="MONEY" type="I64" /> <branch name="" count="1000" clientonly="1"> <!-- Common Item Data --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="QUALITY" type="I10" /> <leaf name="QUANTITY" type="I10" /> <leaf name="CREATE_TIME" type="I32" /> <leaf name="SERIAL" type="I32" /> <leaf name="USER_COLOR" type="I3" /> <leaf name="LOCKED" type="I10" /> <leaf name="WEIGHT" type="I16" /> <!-- weight. see DB_WEIGHT_SCALE--> <leaf name="NAMEID" type="I32" /> <!-- 0 or special name of item --> <leaf name="INFO_VERSION" type="I8" /> <leaf name="ENCHANT" type="I10" /> <!-- 0=not enchanted, 1=enchanted nbcharge 0, 10=e. nbcharge 9 --> <leaf name="RM_CLASS_TYPE" type="I3" /> <leaf name="RM_FABER_STAT_TYPE" type="I6" /> <leaf name="PREREQUISIT_VALID" type="I1" /> </branch> </branch> <branch name="OUTPOST"> <!-- true if this guild can cancel an outpost --> <leaf name="CANDEL" type="I1" /> <!-- outpost owned/challenged by the guild --> <branch name="O" count="16"> <!-- Outpost Ownage --> <leaf name="OWNED" type="I1" /> <!-- 1 if the outpost is owned by the guild, 0 if it is challenged --> <!-- Outpost Desc/State --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="LEVEL" type="I8" /> <!-- Outpost Level: 50, 100, 150 .... --> <branch name="GUILD"> <leaf name="NAME" type="TEXT" /> <!-- Name of the guild the outpost belongs to (or name of tribe) --> <leaf name="ICON" type="I64" /> <!-- Icon of the guild the outpost belongs to --> <leaf name="TRIBE" type="I1" /> <!-- True if the outpost is owned by a Tribe --> <leaf name="NAME_ATT" type="TEXT" /> <!-- Name of the guild that attacks the outpost. 0 if none --> </branch> <leaf name="STATUS" type="I4" /> <!-- Outpost Status: OUTPOSTENUMS::TOutpostState --> <leaf name="STATE_END_DATE" type="I32" /> <!-- Server tick of the end of state --> <leaf name="DISPLAY_CRASH" type="I1" /> <!-- A crash has happened in the last war. Inform users --> <leaf name="WARCOST" type="I32" /> <!-- Dappers needed to declare war to this outpost --> <!-- Round State --> <leaf name="ROUND_LVL_THRESHOLD" type="I8" /> <!-- The minimal threshold attack must exceed --> <leaf name="ROUND_LVL_MAX_ATT" type="I8" /> <!-- The max round level reached by attackers --> <leaf name="ROUND_LVL_MAX_DEF" type="I8" /> <!-- The max round level reached by defenders --> <leaf name="ROUND_LVL_CUR" type="I8" /> <!-- The current round level --> <leaf name="ROUND_ID_CUR" type="I8" /> <!-- The current round number --> <leaf name="ROUND_ID_MAX" type="I8" /> <!-- The max round in an attack/defense period --> <!-- Time Setup --> <leaf name="TIME_RANGE_DEF_WANTED" type="I5" /> <!-- The start hour at wich the defender want to defend (0-24) --> <leaf name="TIME_RANGE_DEF" type="I32" /> <!-- The start time at wich the defender WILL defend (in sec from 1970, GMT) --> <leaf name="TIME_RANGE_ATT" type="I32" /> <!-- The start time at wich the attacker WILL attack (in sec from 1970, GMT) --> <leaf name="TIME_RANGE_LENGTH" type="I16" /> <!-- (In minutes). the length of an attack/defend period (120 for instance) --> <!-- Squads --> <branch name="SQUAD_SPAWN_ZONE"> <!-- list of zones where squads can be spawned --> <branch name="" count="16"> <leaf name="X" type="S32" /> <leaf name="Y" type="S32" /> </branch> </branch> <branch name="SQUAD_SHOP"> <!-- list of squad that we can buy --> <branch name="" count="16"> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> </branch> </branch> <branch name="SQUADS"> <!-- Squad --> <!-- 24 max squads: The First 12th are the squads that spawn at start The second 12th are the one that spawn after --> <branch name="SP" count="24"> <!-- Spawned --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> </branch> <branch name="T" count="24"> <!-- Training --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="SPAWN" type="I4" /> <!-- Index in SQUAD_SPAWN_ZONE list --> </branch> </branch> <leaf name="SQUAD_CAPITAL" type="I32" /> <!-- Money that can be spent by the guild --> <!-- Buildings --> <branch name="BUILDINGS"> <!-- list of buildings on the outpost --> <branch name="" count="4"> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> </branch> </branch> </branch> </branch> </branch> <!-- The outpost selected by the user on a NPC --> <branch name="OUTPOST_SELECTED" bank="OUTPOST" atom="1"> <!-- System: Use atom="1" to be sure data are relevant for the player (SHEET and other data are sync). --> <!-- Outpost Desc/State --> <leaf name="SHEET" type="I32" cppType="NLMISC::CSheetId" /> <leaf name="LEVEL" type="I8" /> <!-- Outpost Level: 50, 100, 150 .... --> <branch name="GUILD"> <leaf name="NAME" type="TEXT" /> <!-- Name of the guild the outpost belongs to (or name of tribe) --> <leaf name="ICON" type="I64" /> <!-- Icon of the guild the outpost belongs to --> <leaf name="TRIBE" type="I1" /> <!-- True if the outpost is owned by a Tribe --> <leaf name="NAME_ATT" type="TEXT" /> <!-- Name of the guild that attacks the outpost. 0 if none --> </branch> <leaf name="STATUS" type="I4" /> <!-- Outpost Status: OUTPOSTENUMS::TOutpostState --> <leaf name="STATE_END_DATE" type="I32" /> <!-- Server tick of the end of state --> <leaf name="DISPLAY_CRASH" type="I1" /> <!-- A crash has happened in the last war. Inform users --> <leaf name="WARCOST" type="I32" /> <!-- Dappers needed to declare war to this outpost --> <!-- Round State --> <leaf name="ROUND_LVL_THRESHOLD" type="I8" /> <!-- The minimal threshold attack must exceed --> <leaf name="ROUND_LVL_MAX_ATT" type="I8" /> <!-- The max round level reached by attackers --> <leaf name="ROUND_LVL_MAX_DEF" type="I8" /> <!-- The max round level reached by defenders --> <leaf name="ROUND_LVL_CUR" type="I8" /> <!-- The current round level --> <leaf name="ROUND_ID_CUR" type="I8" /> <!-- The current round number --> <leaf name="ROUND_ID_MAX" type="I8" /> <!-- The max round in an attack/defense period --> <!-- Time Setup --> <leaf name="TIME_RANGE_DEF_WANTED" type="I5" /> <!-- The start hour at wich the defender want to defend (0-24) --> <leaf name="TIME_RANGE_DEF" type="I32" /> <!-- The start time at wich the defender WILL defend (in sec from 1970, GMT) --> <leaf name="TIME_RANGE_ATT" type="I32" /> <!-- The start time at wich the attacker WILL attack (in sec from 1970, GMT) --> <leaf name="TIME_RANGE_LENGTH" type="I16" /> <!-- (In minutes). the length of an attack/defend period (120 for instance) --> </branch> <branch name="CHARACTER_INFO" bank="PLR"> <branch name="CHARACTERISTICS" count="8"> <leaf name="VALUE" type="I12" /> </branch> <branch name="SCORES" count="4"> <leaf name="Base" type="I24" /> <leaf name="Max" type="I24" /> <leaf name="BaseRegen" type="I24" /> <leaf name="Regen" type="I24" /> </branch> <branch name="MAGIC_RESISTANCE"> <leaf name="MaxResistanceBonus" type="I9" /> <branch name="" count="5"> <leaf name="VALUE" type="I9" /> </branch> </branch> <branch name="MAGIC_PROTECTION"> <leaf name="MaxProtectionClampValue" type="I9" /> <leaf name="MaxAbsorptionFactor" type="I9" /> <branch name="" count="7"> <leaf name="VALUE" type="I9" /> </branch> </branch> <branch name="DODGE"> <leaf name="Base" type="I9" /> <leaf name="Current" type="I9" /> </branch> <branch name="PARRY"> <leaf name="Base" type="I9" /> <leaf name="Current" type="I9" /> </branch> <branch name="SKILLS"> <branch name="" count="225"> <leaf name="SKILL" type="I12" /> <leaf name="BaseSKILL" type="I12" /> <leaf name="PROGRESS_BAR" type="I8" /> </branch> </branch> <branch name="XP_CATALYSER"> <leaf name="Level" type="I12" /> <leaf name="Count" type="I12" /> </branch> <branch name="RING_XP_CATALYSER"> <leaf name="Level" type="I12" /> <leaf name="Count" type="I12" /> </branch> <branch name="PVP_FACTION_TAG"> <leaf name="TAG_PVP" type="I1" /> <leaf name="ACTIVATION_TIME" type="I32" /> <leaf name="FLAG_PVP_TIME_LEFT" type="I32" /> <leaf name="COUNTER" type="I8" /> </branch> <branch name="PVP_OUTPOST"> <leaf name="FLAG_PVP" type="I1" /> <!-- 1 if the player is in a PVP outpost --> <leaf name="RIGHT_TO_BANISH" type="I1" /> <!-- 1 if the player has right to banish other players --> <leaf name="ROUND_LVL_CUR" type="I32" /> <!-- Current Round Level --> <leaf name="ROUND_END_DATE" type="I32" /> <!-- Server tick of the end of the round. 0 if there is no active Round --> <leaf name="FLAG_PVP_TIME_END" type="I32" /> <!-- Server tick of the end of the Outpost PVP activation. 0 if there is no counter (player in zone) --> </branch> <branch name="SUCCESS_MODIFIER"> <leaf name="DODGE" type="S16" /> <leaf name="PARRY" type="S16" /> <leaf name="CRAFT" type="S16" /> <leaf name="MELEE" type="S16" /> <leaf name="RANGE" type="S16" /> <leaf name="MAGIC" type="S16" /> <branch name="ECO"> <branch name="" count="7"> <leaf name="FORAGE" type="S16" /> </branch> </branch> </branch> </branch> <branch name="PACK_ANIMAL" bank="PLR"> <!-- beasts --> <!-- MAX_INVENTORY_ANIMAL --> <branch name="BEAST" count="4" atomic="1"> <!-- Atomic, for correct Bar Management on client --> <leaf name="UID" type="I20" /> <!-- Entity Unique Identifier --> <leaf name="TYPE" type="I4" /> <!-- see ANIMAL_TYPE --> <leaf name="STATUS" type="I4" /> <!-- see ANIMAL_STATUS --> <leaf name="HP" type="I7" /> <leaf name="BULK_MAX" type="I32" /> <leaf name="POS" type="I64" /> <!-- X uint32 << 32 | Y uint32 --> <leaf name="HUNGER" type="I5" /> <leaf name="DESPAWN" type="I7" /> <leaf name="NAME" type="I32" is_true="1" /> </branch> </branch> <branch name="DEBUG_INFO" bank="PLR"> <leaf name="Ping" type="I32" /> </branch> <!-- MP Exotic Evaluation --> <branch name="MP_EVAL" bank="PLR"> <leaf name="COST" type="I32" /> <!-- Normal Success --> <branch name="RESULT"> <leaf name="VALID" type="I1" /> <leaf name="SMALL_SEED" type="I32" /> <leaf name="MEDIUM_SEED" type="I32" /> <leaf name="BIG_SEED" type="I32" /> <leaf name="VERY_BIG_SEED" type="I32" /> <leaf name="EXPIRY_DATE" type="I32" /> </branch> <!-- Critical Success --> <branch name="RESULT_CRITICAL"> <leaf name="VALID" type="I1" /> <leaf name="SMALL_SEED" type="I32" /> <leaf name="MEDIUM_SEED" type="I32" /> <leaf name="BIG_SEED" type="I32" /> <leaf name="VERY_BIG_SEED" type="I32" /> <leaf name="EXPIRY_DATE" type="I32" /> </branch> </branch> <!-- Compass coordinates --> <branch name="COMPASS" bank="PLR"> <leaf name="HOME_POINT" type="I64" /> <!-- X uint32 << 32 | Y uint32 --> <leaf name="BIND_POINT" type="I64" /> <!-- X uint32 << 32 | Y uint32 --> <leaf name="TARGET" type="I64" /> <!-- X uint32 << 32 | Y uint32 --> </branch> <!-- Fames values --> <branch name="FAME" bank="PLR"> <leaf name="CULT_ALLEGIANCE" type="I3" /> <!-- Character cult allegiance (CF TPVPClan enum (pvp_clan.h) --> <leaf name="CIV_ALLEGIANCE" type="I3" /> <!-- Character civilization allegiance (CF TPVPClan enum (pvp_clan.h) --> <leaf name="THRESHOLD_TRADE" type="S8" /> <!-- value where trade doesn't work anymore --> <leaf name="THRESHOLD_KOS" type="S8" /> <!-- value where the guards kill you on sight --> <branch name="PLAYER" count="6"> <!-- from fame.h & cpp --> <leaf name="VALUE" type="S8" /> <!-- current value --> <leaf name="THRESHOLD" type="S8" /> <!-- max threshold --> <leaf name="TREND" type="I8" /> <!-- Fame trend, (CF see fame_pd.h TFameTrend ) --> </branch> <branch name="TRIBE" count="53"> <leaf name="VALUE" type="S8" /> <!-- current value --> <leaf name="THRESHOLD" type="S8" /> <!-- max threshold --> <leaf name="TREND" type="I8" /> <!-- Fame trend, (CF see fame_pd.h TFameTrend ) --> </branch> </branch> <!-- Static general data --> <branch name="STATIC_DATA" bank="PLR"> <leaf name="BAG_BULK_MAX" type="I32" /> </branch> <!-- DynChat channels --> <branch name="DYN_CHAT" bank="PLR"> <branch name="CHANNEL" count="8" atom="1"> <leaf name="NAME" type="I32" /> <!-- channel not available if anme is 0 --> <leaf name="ID" type="I64" /> <!-- unique ID of channel (eid) --> <leaf name="WRITE_RIGHT" type="I1" /> </branch> </branch> <!-- PvP Effects --> <branch name="PVP_EFFECTS" bank="PLR"> <!-- Faction points for PvP --> <branch name="PVP_FACTION_POINTS"> <leaf name="CIV" type="I8" /> <leaf name="CIV_POINTS" type="I32" /> <leaf name="CULT" type="I8" /> <leaf name="CULT_POINTS" type="I32" /> </branch> <!-- Bonus and malus for regions --> <branch name="" count="59"> <leaf name="ID" type="I32" /> <leaf name="ISBONUS" type="I1" /> <leaf name="PARAM" type="I32" /> </branch> </branch> <!-- Weather --> <branch name="WEATHER" bank="PLR"> <leaf name="VALUE" type="I16" /> </branch> </database_description>