This thread will contain various information for Nostale for those that wish to make all the similar crap you see on this forum that is paid for. I will not go into detail on how to piece things together to make that 'ultimate bot' that you ever so want, but instead here is the building blocks for what is needed.
I've quit playing Nostale and do not care what people do to the game in terms of killing it with exploits/bots or so on. Want to ruin the game, go for it.
This post contains a real SDK, not some garbage that prints out two functions.
Other posts in this thread will contain more info as well.
Code:
/** * NostaleSDK - Copyright (c) 2016 atom0s [] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to * Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. * * By using NostaleSDK, you agree to the above license and its terms. * * Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were * made. You must do so in any reasonable manner, but not in any way that suggests the licensor * endorses you or your use. * * Non-Commercial - You may not use the material (NostaleSDK) for commercial purposes. * * No-Derivatives - If you remix, transform, or build upon the material (NostaleSDK), you may not distribute the * modified material. You are, however, allowed to submit the modified works back to the original * NostaleSDK project in attempt to have it added to the original project. * * You may not apply legal terms or technological measures that legally restrict others * from doing anything the license permits. * * No warranties are given. */ #ifndef __NOSTALESDK_H_INCLUDED__ #define __NOSTALESDK_H_INCLUDED__ #if defined (_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif #include <Windows.h> #include <algorithm> #include <functional> #include <map> #include <string> /** * TMapObjBase * * Structure definition of a base map object. All entities inherit from this. */ struct TMapObjBase { uint32_t VTablePointer; // TMapObjBase VTable Pointer uint8_t ObjectType; // The object type id. [0x01 = Player, 0x02 = Monster, 0x03 = NPC, 0x04 = Item] uint8_t Unknown0000[3]; // Unknown (unused; padding) uint32_t Id; // The objects id. uint16_t MapX; // The objects map x coord. uint16_t MapY; // The objects map y coord. uint32_t SyncCount; // Must stay in sync with another pointer or you get kicked from game. (Movement syncing?) uint32_t Unknown0001; // Unknown (Seems like a string based on what reads from it.) uint32_t Unknown0002; // Unknown (Seems like a string based on what reads from it.) uint32_t Unknown0003; // Unknown (Usually -1 0xFFFFFFFF) uint32_t Unknown0004; // Unknown (Usually -1 0xFFFFFFFF) uint32_t Unknown0005; // Pointer to TSmallIntList object. (Used with the last two unknowns.) uint32_t Unknown0006; // Pointer to TSmallIntList object. (Used with the last two unknowns.) uint32_t ColorMask; // BGRA color of the object. Typically 0xFFFFFFFF to allow normal color of the object. uint8_t ColorMaskOpacity; // 0-255 opacity that is used for the above color mask. Setting this will set the alpha channel in the above color. uint8_t Unknown0007; // Unknown (unused; padding) uint8_t Unknown0008; // Unknown (unused; padding) uint8_t Unknown0009; // Unknown (unused; padding) float Unknown0010; // Unknown (Changes rapidly while moving.) float Unknown0011; // Unknown (Usually 1, if changed it is the max value of the above unknown.) uint8_t Unknown0012; // Unknown (Usually 1, seems to be some sort of 'loaded' flag.) uint8_t Unknown0013; // Unknown (unused; padding) uint8_t Unknown0014; // Unknown (unused; padding) uint8_t Unknown0015; // Unknown (unused; padding) uint32_t Unknown0016; // Pointer to TMapObjTextureCache (Affects the objects model if edited.) float ModelSize; // The size of the objects model. float HitboxRadius; // The radius of the objects hitbox from its center. (0 = max radius, higher number makes radius smaller and smaller.) float Unknown0018; // Unknown (Usually 1, only set when spawning/zoning.) float Unknown0019; // Unknown (Usually 1, only set when spawning/zoning.) float X; // The objects X coord. (Where the model is rendered at.) float Z; // The objects Z coord. (Where the model is rendered at.) float Y; // The objects Y coord. (Where the model is rendered at.) float X2; // The objects X coord. (Where the game assumes you are doing things from.) float Z2; // The objects Z coord. (Where the game assumes you are doing things from.) float Y2; // The objects Y coord. (Where the game assumes you are doing things from.) float XAxisOffset; // The objects offset on the X coord from 'center' screen. (Visual only, if you move it will reset to normal.) float ZAxisOffset; // The objects offset on the Z coord from 'center' screen. (Visual only, if you move it will reset to normal.) float YAxisOffset; // The objects offset on the Y coord from 'center' screen. (Visual only, if you move it will reset to normal.) float XAxisOffset2; // The objects offset on the X coord from 'center' screen. (If set this will be used constantly.) float ZAxisOffset2; // The objects offset on the Z coord from 'center' screen. (If set this will be used constantly.) float YAxisOffset2; // The objects offset on the Y coord from 'center' screen. (If set this will be used constantly.) uint32_t Unknown0020; // Relates to sync count. Set when you load/zone. Used to calculate your frame. float Unknown0021; // Relates to the models size/pitch? uint8_t Unknown0022; // Unknown (Used in the walk packet, 'walk x y ? speed', flips between 0 and 1.) uint8_t Unknown0023; // Unknown (unused; padding) uint8_t Unknown0024; // Unknown (unused; padding) uint8_t Unknown0025; // Unknown (unused; padding) uint32_t Unknown0028; // Unknown (set while zoning, usually -1) uint8_t Unknown0029; // Flag the enables reading of the Unknown0033 value. uint8_t Unknown0030; // Unknown (unused; padding) uint8_t Unknown0031; // Unknown (unused; padding) uint8_t Unknown0032; // Unknown (unused; padding) uint32_t Unknown0033; // Offset 0x98 }; /** * TMapMoveObjBase * * Structure definition of a base movable map object. */ struct TMapMoveObjBase : TMapObjBase { uint8_t Direction; // The objects current facing direction. (0 = North, 1 = East, 2 = South, 3 = West, etc.) uint8_t Status; // The objects current status. (0 = Normal, 1 = Resting, 8 = Running, 9 = Yawning (Animation)) uint8_t Speed; // The objects current speed. (Editing randomly causes disconnects.) uint8_t BoundsCheck; // The objects bounds checking status. (Normally 1, if set otherwise will let you attempt to walk through walls.) uint8_t AttackedFlag; // Toggles between 0 and 1 while being hit by something. uint8_t Unknown0031; // Unknown (unused; padding) uint8_t Unknown0032; // Unknown (unused; padding) uint8_t Unknown0033; // Unknown (unused; padding) uint32_t AnimationCounter; // The objects animation counter. (Set to 1 and you force-yawn.) float AnimationStepCounter1; // The objects animation step counter. (If frozen, you will teleport around instead of walking.) float AnimationStepCounter2; // The objects animation step counter. (If frozen and set to a high value, you will teleport instead of walk.) uint32_t MovementDirectionList; // Pointer to TByteList object holding the movement directions of the players current movement. uint32_t MovementFrequency; // The objects movement frequency limiter. (Freeze to 0 to speed hack in a 'legit' manner. You send valid walk walk packets but much faster.) uint32_t Unknown0035; // Pointer to TMapObjFxList object. (Holds a TNTFairy entry.) uint8_t HealthPercent; // The objects health percent. (Shown on the bar above their head.) uint8_t ManaPercent; // The objects mana percent. (Shown on the bar above their head.) uint8_t Unknown0036; // Unknown (unused; padding) uint8_t Unknown0037; // Unknown (unused; padding) uint32_t Unknown0038; // Unknown (unused) uint8_t FamilyNameColor; // The objects family name color. uint8_t Unknown0039[3]; // Unknown (unused; padding) uint32_t Unknown0040; // Pointer to TSmallIntList object. uint32_t Unknown0041; // Pointer to TSmallIntList object. uint32_t LastWaitAnimationTick; // The last tick the object did a wait animation. (Stretch/yawn, foot tap etc.) uint16_t Unknown0042; // Unknown (Setting to 1 makes the scene half-disappear.) uint16_t Unknown0043; // Unknown (Used with the above unknown in some manner.) uint32_t Unknown0044; // Unknown (unused) uint32_t Unknown0045; // Unknown (Seems to always be -1) uint32_t Unknown0046; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0047; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0048; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0049; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0050; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0051; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0052; // Unknown (Compared against 0, if not 0 will lock you from moving.) uint8_t Unknown0053; // Unknown (unused) uint8_t Unknown0054; // The objects locked animation. (Sitting, knockback, death, etc.) uint8_t Unknown0055; // An offset used for a float lookup. uint8_t Unknown0056; // Unknown (unused) float Unknown0057; // Unknown (Timer that increments while locked animation is active.) float Unknown0058; // Unknown (Timer that increments while locked animation is active.) uint32_t Unknown0059; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0060; // Unknown (Seems to only be set when zoning.) uint32_t Unknown0061; // Unknown (Seems to only be set when zoning.) uint8_t Unknown0062; // Unknown (Sets between 0 and 1 based on the objects status. If Status != 4, set to 1, otherwise 0.) uint8_t Unknown0063; // Unknown (unused; padding) uint8_t Unknown0064; // Unknown (unused; padding) uint8_t Unknown0065; // Unknown (unused; padding) uint32_t Unknown0066; // Unknown (Seems to only be set when zoning.) float Unknown0067; // Unknown (Seems to only be set when zoning.) uint8_t Unknown0068; // Flag used while object is animated. uint8_t Unknown0069; // Flag used while object is animated. uint8_t Unknown0070; // Unknown (unused; padding) uint8_t Unknown0071; // Unknown (unused; padding) uint32_t Unknown0072; // Unknown (Indexed array of pointers.) uint32_t Unknown0073; // Unknown (Indexed array of pointers.) uint32_t Unknown0074; // Unknown (Indexed array of pointers.) uint32_t Unknown0075; // Unknown (Indexed array of pointers.) uint32_t Unknown0076; // Unknown (Indexed array of pointers.) uint32_t Unknown0077; // Unknown (Indexed array of pointers.) uint32_t Unknown0078; // Unknown (Indexed array of pointers.) uint32_t Unknown0079; // Unknown (Indexed array of pointers.) uint16_t Level; // The objects level. uint16_t WingType; // The objects wing type shown when targeting them. (Based on their good/evil status?) uint16_t Unknown0081; // Unknown (Seems to always be 0 for players. Has a value for objects players spawn like mailboxes, mini-house telepots, etc.) uint8_t ShadowVisible; // -1 if hidden, anything else is visible. uint8_t XSelectionVisible; // Determines if the objects 'X' selection mark under it is visible. uint8_t SelectionRingColor; // The ring around the objects feet on the ground. (0 = Orange, 1 = Green) uint8_t Unknown0083; // Unknown (Seems to always be 0.) uint8_t Unknown0084; // Unknown (Seems to always be -1.) uint8_t Unknown0085; // Unknown (Seems to always be 0.) uint32_t OwnerId; // The object id that owns this object. (Used for pets.) uint8_t AboveHeadShopBackground; // -1 if disabled, otherwise displays the shop background over the objects head. uint8_t OpenWindowId; // The window id to open when the objects shop is used (or dialog is opened). (This does not match normal window ids. It has some sort of offset.) uint16_t Unknown0087; // Unknown (unused; padding) uint32_t AboveHeadShopText; // Pointer to the shops text. float Unknown0088; // Unknown uint32_t IsInPartyFlag; // Set to -1 if not in party, 14 if in party. uint32_t FamilyId; // The id of the objects family. uint32_t Unknown0091; // Unknown (Seems to always be -1.) uint32_t Unknown0092; // Unknown (Seems to always be -1.) uint32_t Unknown0093; // Unknown (Seems to always be -1.) uint32_t Unknown0094; // Unknown (Seems to always be -1.) uint8_t Unknown0095; // Setting this and moving alters the players animation. uint8_t NameVisibleFlag; // 0x02 when name is hidden. (Can be used to tell if something is invisible.) uint8_t AboveHeadIcon; // The icon displayed over the players head. (Checkmark, Exclamation, etc.) uint8_t Unknown0096; // Unknown (unused; padding) uint8_t AutorunHitboxRange; // The amount of space before the player will stop running to this object when auto-running. (0 means to run right up to the object.) uint8_t Unknown0097; // Unknown (unused; padding) uint8_t Unknown0098; // Unknown (unused; padding) uint8_t Unknown0099; // Unknown (unused; padding) }; /** * TMapPlayerObj * * Structure definition of a player object. */ struct TMapPlayerObj : TMapMoveObjBase { uint16_t Visuals0000; // Contains the players current costume id. (Lower end bits hold the sex of the outfit.) uint16_t Unknown0000; // Unknown (unused) uint8_t IsMounted; // Flag that determines if the player is in a mounted costume / state. uint8_t Unknown0001; // Unknown (unused) uint8_t Unknown0002; // Unknown (unused) uint8_t Unknown0003; // Unknown (unused) uint32_t HairColorPointer; // Pointer to the players hair color. (0xAARRGGBB format.) uint32_t HairColor; // The players hair color. (0xAARRGGBB format.) (Updates from the pointer value above.) uint32_t HatColor; // The players hat color. (0xAARRGGBB format.) uint32_t FaceMaskColor; // The players face mask color. (0xAARRGGBB format.) uint8_t Unknown0005; // Unknown (Flag that is checked against 0.) uint8_t Unknown0006; // Unknown (unused) uint8_t Unknown0007; // Unknown (unused) uint8_t Unknown0008; // Unknown (unused) float GlowEffectDistance; // The distance a glowing effect pulses from the player. (Such as a weapon on their back.) uint8_t WeaponGlowEffect; // The players weapon glow effect. uint32_t WeaponGlowColor; // The players weapon glow color. (0xAARRGGBB format.) float WeaponGlowSize; // The players weapon glow size. uint8_t WeaponGlowInnerEffect; // The players weapon glow inner effect. uint32_t Unknown0009; // Unknown function pointer. uint8_t Unknown0010; // Unknown (Passed as a parameter to the above unknown function.) uint8_t Unknown0011; // Unknown (Passed as a parameter to the above unknown function.) uint32_t LastSparkleTick; // The players last time they sparkled. uint16_t Unknown0012; // Unknown (Affects the players sparkle effect.) uint16_t Unknown0013; // Unknown (unused) uint8_t ClassId; // The players class id. (0x80 = Adventurer, 0x81 = Swordsman, 0x82 = Archer, 0x83 = Mage) uint8_t JobId; // The players job id. uint8_t ShirtStyle; // The players shirt style. uint8_t HairStyle; // The players hair style. uint8_t HatId; // The players hat id. uint8_t FaceMask; // The players face mask id. uint8_t Unknown0014; // Unknown; uint8_t ClassWeapon; // The players weapon id. (Based on their class.) char* Name; // Pointer to the players name. uint32_t Family; // Pointer to the players family name and information. uint32_t Fairy; // Pointer to the players TNTFairy object. uint16_t NameFlag; // Bit array that handles the players name tags. (GM = 0x02) uint16_t Unknown0015; // Unknown uint32_t NameIcon; // Bit array that handles the icon shown next to the players name. }; /** * TMonsterName * * Structure definition of a monsters name information. */ struct TMonsterName { uint32_t Length; // The length of the monsters name. char* MonsterName; // Pointer to the monsters name. }; /** * TMapMonsterObj * * Structure definition of a monster object. */ struct TMapMonsterObj : TMapMoveObjBase { uint8_t Unknown0000; // Deals with the outlining of the monster when moused over. uint8_t Unknown0001; // Unknown (unused; padding) uint8_t Unknown0002; // Unknown (unused; padding) uint8_t Unknown0003; // Unknown (unused; padding) uint32_t Unknown0004; // Unknown (If not 0, all entities are hidden on screen.) uint16_t ModelId; // The monster model id to load for the entity. uint16_t Unknown0006; // Alters the shadow of the entity. Not sure what exactly it is for though. TMonsterName* NamePointer; // Pointer to a TMonsterName structure holding the monsters name info. uint8_t SpecialEffect; // Additional effect placed on the entity. uint8_t Unknown0008; // Unknown (unused; padding) uint8_t Unknown0009; // Unknown (unused; padding) uint8_t Unknown0010; // Unknown (unused; padding) float SpecialEffectMultiplier; // Multiplies the amount of the special effect that is activated. uint8_t EffectColorB; // The blue color of the effect. (SpecialEffect 1 for this to work.) uint8_t EffectColorG; // The green color of the effect. (SpecialEffect 1 for this to work.) uint8_t EffectColorR; // The red color of the effect. (SpecialEffect 1 for this to work.) uint8_t Unknown0011; // Unknown (unused; padding) uint8_t EffectPulseType; // The special effect pulse type when the effect is set to 2. }; /** * TMapNpcObj * * Structure definition of an npc object. */ struct TMapNpcObj : TMapMonsterObj { char* NpcName; }; /** * TMapItemInfo * * Structure definition of an items information. */ struct TMapItemInfo { uint8_t Unknown0000[0x38]; uint32_t ItemName; uint8_t Unknown0001[0x0E]; uint16_t ItemId; }; /** * TMapItemObj * * Structure definition of an item object. */ struct TMapItemObj : TMapObjBase { uint32_t Unknown0000; // Unknown (set to 0 when item is spawned) uint32_t Unknown0001; // Unknown (set to 0 when item is spawned) uint32_t Unknown0002; // Unknown (set to 0 when item is spawned) uint32_t Unknown0003; // Unknown (set to 0 when item is spawned) uint8_t Unknown0004; // If set to 1 the item will disappear on screen like someone picked it up. uint8_t Unknown0005; // Unknown (set to 0 when item is spawned) uint8_t Unknown0006; // Unknown (set to 0 when item is spawned) uint8_t Unknown0007; // Unknown (set to 0 when item is spawned) uint32_t Unknown0008; // Unknown (set to 0 when item is spawned) uint32_t Unknown0009; // Unknown (set to 0 when item is spawned) uint32_t Unknown0010; // Unknown (set to 0 when item is spawned) uint16_t ItemId; // The items id. uint16_t ItemId2; // The items id. (Copied from [ItemInfoPointer]+0x4A's value.) TMapItemInfo* ItemInfoPointer; // Pointer to information about this item. (+0x4A from this holds the item id.) uint32_t ItemCount; // The amount of items in the single stack. uint32_t ItemOwnerId; // The server id of the owner of the item. (-1 if its free for all.) uint8_t ItemFlags; // Bit array holding information about the item. (Such as if it is a quest item etc.) uint8_t Unknown0011; // Unknown (unused; padding) uint8_t Unknown0012; // Unknown (unused; padding) uint8_t Unknown0013; // Unknown (unused; padding) }; /** * TPlayerObjManager * * Structure definition of the games internal TPlayerObjManager object. */ struct TPlayerObjManager { uint32_t VTablePointer; // TPlayerObjManager VTable Pointer uint16_t CurrentMapX; // The players current map x position. uint16_t CurrentMapY; // The players curremt map y position. uint16_t DestinationMapX; // The players destination map x position. uint16_t DestinationMapY; // The players destination map y position. uint32_t Unknown0002; // Incrementing timer used while auto-attacking. uint32_t Unknown0003; // Unknown (unused) uint8_t CombatStatus; // The players combat status. 0 = None, 2 = Attacking / Casting, 3 = Using Slingshot, etc. uint8_t Unknown0004; // Unknown (0 is written to this each time you exit combat.) uint16_t Unknown0005; // Unknown (unused) uint32_t Unknown0006; // Pointer to a TByteList object. uint8_t Unknown0007; // Unknown (set to 0 usually, deals with the list object before this if set to 1.) uint8_t Unknown0008; // Unknown (unused) uint8_t Unknown0009; // Unknown (unused) uint8_t Unknown0010; // Unknown (unused) TMapPlayerObj* PlayerObject; // Pointer to the current players object. uint32_t PlayerId; // The current players server id. uint8_t CanUseEmotes; // Determines if the player is able to emote. (Possibly a flag to determine if the player is loaded.) uint8_t Unknown0011; // Unknown (unused) uint8_t Unknown0012; // Unknown (unused) uint8_t Unknown0013; // Unknown (unused) TMapObjBase* AutoAttackingMobPointer; // Pointer to an entity object that the player has double-clicked to auto-follow / auto-attack. uint32_t Unknown0014; // Pointer to a TList object. uint32_t Unknown0015; // Pointer to a wide string. Unsure what uses it currently. uint32_t Unknown0016; // Unknown (set to 0 when logging out.) uint32_t Unknown0017; // Unknown (set to 0 when logging out.) uint32_t Unknown0018; // Unknown (set to 1800000 when the manager is created.) TMapObjBase* LastClickedObject; // Pointer to the last clicked object. (0 if floor was clicked.) }; /** * TSceneManager * * Structure definition of the games internal TSceneManager object. */ struct TSceneManager { uint32_t VTablePointer; // TSceneManager VTable Pointer uint32_t TEventCtrlPointer; // Pointer to a TEventCtrl object. uint32_t UnknownTMapMoveObjBaseList; // Pointer to a TMapMoveObjBase object. uint32_t PlayerListPointer; // Pointer to a TMapObjBaseList -> TMapPlayerObj object holding the current maps players. uint32_t MonsterListPointer; // Pointer to a TMapObjBaseList -> TMapMonsterObj object holding the curremt maps monsters. uint32_t NpcListPointer; // Pointer to a TMapObjBaseList -> TMapNpcObj object holding the curremt maps npcs. uint32_t ItemListPointer; // Pointer to a TMapObjBaseList -> TMapItemObj object holding the curremt maps items. uint32_t UnknownTLBSBkFxListPointer; // Pointer to a TLBSBkFxList object. uint32_t Unknown0000; // Pointer to structure holding information about the mouse movement. uint32_t TotalFrameCounter; // Incrementing timer that signifies the total frame count. (Value is copied from another location. This copy is used for movement.) uint8_t IsPlayerLoaded; // Flag to determine if the player is loaded and the camera is snapped onto the player. (Set to zero while loading, reset to 1 after c_info and mapout packets are handled.) uint8_t Unknown0002; // Unknown (unused) uint8_t Unknown0003; // Unknown (unused) uint8_t Unknown0004; // Unknown (unused) uint32_t PlayerId; // The local players current server id. (Referred to as session id by others.) uint32_t PlayerObjectPointer; // Pointer to the local players TMapPlayerObj object. uint32_t MouseOverObjectPointer1; // Pointer to the TMapObjBase object that the mouse is currently hovering over. (Valid when the mouse is over an object and the name is visible.) uint32_t MouseOverObjectPointer2; // Pointer to the TMapObjBase object that the mouse is currently hovering over. (Valid when the mouse is within an objects hitbox.) float Unknown0005; // Unknown (Deals with the mouse while its within the maps clickable area. Adjusts differently when mouse is held down.) float Unknown0006; // Unknown (Deals with the mouse while its within the maps clickable area. Adjusts differently when mouse is held down.) uint32_t Unknown0007; // Unknown (Deals with the mouse.) uint32_t AutoAttackObjectPointer; // Pointer to a TMapObjBase object that the player is targeting to attack. (When you double-click an enemy this is set to the enemies pointer.) uint16_t MousePositionX; // The mouses current x axis position, relative to the top-left corner of the game window. uint16_t MousePositionY; // The mouses current y axis position, relative to the top-left corner of the game window. uint16_t WindowWidth; // The window width that the mouse is usable within. uint16_t WindowHeight; // The window height that the mouse is usable within. uint32_t Unknown0008; // Unknown (usused, always 0) uint8_t Unknown0009; // Unknown (seems to always be 1, compared against 0 in several instructions. Deals with the mouse.) uint8_t Unknown0010; // Unknown (unused) uint8_t Unknown0011; // Unknown (unused) uint8_t Unknown0012; // Unknown (unused) float MouseMapX; // The mouses current x axis position as a float. Can be used to edit where the mouse will click. float MouseMapZ; // The mouses current z axis position as a float. Can be used to edit where the mouse will click. (Depth.) float MouseMapY; // The mouses current y axis position as a float. Can be used to edit where the mouse will click. uint32_t Unknown0013; // Pointer to a TCellBlockTexture object. uint32_t CameraPointer; // Pointer to a TLBSCamera object that handles the game camera. uint32_t Unknown0014; // Pointer to a TList object. (List holds TLBSBaseGmItem objects.) uint32_t Unknown0015; // Pointer to a TList object. (List holds TLBSFixtGmItem objects.) uint32_t Unknown0016; // Pointer to a TList object. (List holds TLBSFixtGmItem objects.) uint32_t Unknown0017; // Pointer to a TList object. (List holds TLBSEffectGmItem objects.) uint32_t Unknown0018; // Pointer to a TList object. (List holds various objects, TMapMonsterObj, TMapPlayerObj etc. Changes sizes and objects rapidly while moving around.) uint32_t Unknown0019; // Pointer to a TList object. (List holds TLBSMapFxItem objects.) uint32_t ZoneTimeSnapshot; // The timer count set when zoning. (Pulls the timer from TotalFrameCounter's value at the time of zoning.) uint8_t Unknown0020; // Unknown (set when logging in, always 0) uint8_t Unknown0021; // Unknown (set when zoning, always 0) uint8_t Unknown0022; // Unknown (unused) uint8_t Unknown0023; // Unknown (unused) uint32_t Unknown0024; // Unknown (set when zoning, always 0) uint32_t Unknown0025; // Unknown (set when getting attacked, changes each time you are attacked) TObjAtkTimeArr object. uint8_t Unknown0026; // Unknown (set to 255 (-1) by force if changed, used within the pulse packet handler somewhere) uint8_t Unknown0027; // Unknown (unused) uint8_t Unknown0028; // Unknown (unused) uint8_t Unknown0029; // Unknown (unused) uint32_t Unknown0030; // Unknown (read when zoning) /* End of TSceneManager based on decompiler output. */ }; #endif // __NOSTALESDK_H_INCLUDED__
Unknowns are typically non-important information. The vital things are marked and used in the various managers in the SDK.
Have questions, feel free to ask.
More info can be found on my personal site:

Wont be posting much on here anymore, so if you want anything else check my personal site.







