Changelog

From Gothic 2 Online: Wiki
Jump to navigation Jump to search

Test releases

Version: 0.0.0

First test version release.

Version: 0.0.1

  • Removed body state, from server side
  • Reconstructed structure for sending basic data
  • Added crash reporter
  • Fixed bug with crossbow skillweapon
  • Fixed bug with wrong ordering script data
  • Fixes synchronization many bugs
  • Fixed server crashes while closing
  • Fixed many client crashes
  • New script functions

Version: 0.0.2

  • Fixed bug with respawn
  • Fixed bug with import node in config file
  • Fixed bug in client events, sometimes didn't respond
  • Fixed bug in autopatcher, subfolders weren't loaded
  • Fixed bug with invisible textures
  • Fixed bug with wrong statistics after respawn
  • Fixed bug with synchronization of equipped items, if player changed item without unequipping, them item wasn't synchronized
  • Update Squirrel from 3.0.7 to 3.1
  • Added value heroId, that contain local player id
  • Constants values was updated on the wiki page
  • Removed client function: getHeroId
  • Added server function: setPlayerRespawnTime
  • Added server function: getPlayerRespawnTime
  • Added client function: isInventoryOpen
  • Added client function: hasItem
  • Added client function: getItemBySlot
  • Added client function: getEq
  • Added client function: setCursorVisible
  • Added client function: isCursorVisible
  • Added client function: setCursorSensitivity
  • Added client function: getCursorSensitivity
  • Added client function: setCursorTxt
  • Added client function: getCursorTxt
  • Added client function: setCursorPosition
  • Added client function: setCursorPositionPx
  • Added client function: getCursorPosition
  • Added client function: getCursorPositionPx
  • Added client function: isMouseBtnPressed
  • Added client function: setKeyLayout
  • Added client function: getKeyLayout
  • Added client event: onMouseClick
  • Added client event: onMouseRelease
  • Added client event: onMouseWheel
  • Added client event: onRespawn
  • Added client event: onFocus

Version: 0.0.2.1

  • Fixed bug with missing heroId value

Version: 0.0.3

  • Mouse events working even in mouse isn't visible
  • New patcher system
  • Packets
  • Modules (NOTE! Old modules isn't working, they have to be recompiles with new headers!)
  • Fixed bug with not working timers on client side
  • Fixed bug with, wrong font in view after change font in draw
  • Items in inventory are now stacked into one

Version: 0.0.3.1

  • Fixed bug with not working keys after change resoultion
  • Fixed bug with not working disableKey
  • Fixed bug with not working functions in system lib
  • Added callback onTakeItem, onDropItem, onUseItem, onChangeResolution
  • Added client function clearInventory (will be on server too, but later)

Version: 0.0.3.2

  • Fixed bug with wrong calculated draw width (spaces have wrong size)
  • Fixed bug with not working onRender and onRenderNickname
  • Fixed bug with not visible cursor

Version: 0.0.3.3

  • Fixed bug with render and blending

Version: 0.0.3.4

  • Fixed bug with infinity turn ani
  • Fixed bug with wrong interpolation, now work much better
  • Fixed some sync issues with combine ani, and swimming/diving
  • Fixed crashes while exiting game

Version: 0.0.4

  • Fixed bug with rendering nickname colors
  • Fixed bug with removing players, while time was changed
  • Fixed bug with triggering onKey, with mouse buttons etc
  • Fixed bug with getPlayerAngle, on client side. Instead of float returning bool
  • From now on, server scripts are called in correct order
  • Added error info while load module fails
  • Added checking client world with server world, while joining to server
  • Added time synchronization
  • Added world synchronization
  • Added nicknames, colors, ping synchronization
  • Fixed bug with not dying, until a-d animations was enabled
  • Fixed some crashes, while lost connection
  • Fixed bug with getLetter, instead of char returning int
  • Fixed bug with multiple packet events. Once readed packet was broken
  • Added server function: kick(pid, reason)
  • Added server function: ban(pid, minutes, reason)
  • Added server function: getPlayerPing
  • Added server function: equipItem
  • Added server function: unequipItem
  • Added server function: setPlayerWorld
  • Added server function: getPlayerWorld
  • Added client function: getPlayerPing
  • Added client function: changeWorld
  • Added client function: disableControls
  • Added client function: isControlsDisabled
  • Added client function: playGesticulation
  • Added client function: setLevel
  • Added client function: getLevel
  • Added client function: setExp
  • Added client function: setNextLevelExp
  • Added client function: getNextLevelExp
  • Added client function: setLearnPoints
  • Added client function: getLearnPoints
  • Added client function: textSetFont
  • Added client function: textWidth
  • Added client function: textWidthPx
  • Added client function: letterWidth
  • Added client function: letterWidthPx
  • Added client function: letterDistance
  • Added client function: letterDistancePx
  • Added client event: onPlayerChangeNickname
  • Added client event: onPlayerChangeColor
  • Added client event: onPlayerChangePing
  • Added client event: onWorldChange
  • Added client event: onWorldEnter
  • Added server event: onPlayerEnterWorld
  • Added server event: onPlayerChangeWorld

Version: 0.0.4.1

  • Fixed bug with visual, fatness, scale. Changes was visible only for streamed players, but not for player who send the change
  • Fixed bug with not working playGesticulation
  • Fixed bug with not working onPlayerChangePing
  • Fixed bug with not visible items after dead
  • Fixed bug with desynchronization of death
  • Fixed crashes while exiting game (finnaly!)
  • Fixed crashes caused by returning wrong state in isPlayerConnected
  • Added auto conversion form float to int, and from int to float in draws, textures and cursor functions
  • Added server function: getPlayerAniId
  • Added client function: getTickCount
  • Added client function: showPlayerStatus
  • Added client function: getWorld
  • Added client function: getPlayerDexterity
  • Added client function: getPlayerStrength
  • Added client function: getPlayerScale
  • Added client function: getPlayerInstance

Version: 0.0.5.0

  • Generating ids for Items and Mds (Boost for network)
  • Synchronized overlays
  • Fixed bug with getKeyLetter, for some keys was returned random string instead of null
  • Fixed crashes with downloader buffer
  • Extended Packet class
  • Fixed bug with looped animations
  • Fixed bug with getTickCount, which returned storage value instead of current real ms
  • Quit was removed from multiplayer console
  • Added possibilty to control build version of client in config
  • Added client function: enable_NicknameId(toggle)
  • Added client function: setPlayerOnFloor(pid)
  • Added client function: stopAni(pid)
  • Added client callback: onAnim(aniId)
  • Added server function: applyPlayerOverlay(pid, overlay)
  • Added server function: removePlayerOverlay(pid, overlay)
  • Added Vob class
  • Added Mob class
  • Added MobInter class
  • Added MobLockable class
  • Added missing math fuctions
  • Added missing hash functions

Version: 0.0.5.1

  • Fixed bug with not working packets
  • For now packets throws exception if read failure

Public releases

Version: 0.1.0.0

  • Fixed bug with stack overvflow in packets
  • Fixed some bugs with players overlays
  • Added shared class queue
  • Added client class Draw3d
  • Added client function enable_DamageAnims
  • Added client function getNetworkStats
  • Added server class ItemsGround, for synchronizing items on the ground
  • Added server class ItemGround
  • Added server callback onPlayerDropItem
  • Added server callback onPlayerTakeItem
  • Ported Textures, Draws to OOP sytnax
  • Fixed crashes while exiting game, this time for good
  • Fixed bugs with item and mds ids (sometimes was different on server and client side)
  • onPlayerDropItem(pid, ItemGround)
  • onPlayerTakeItem(pid, ItemGround)
  • onExit()
  • onTakeFocus(int vobType, int id, string name)
  • onLostFocus(int vobType, int id, string name)
  • Fixed bug with equipaArmor, unequipArmor etc. they removed items from inventory
  • Fixed bug with not working streamer
  • Added client function: getMaxSlots
  • Added client function: getHostname
  • Fixed bug with not stoping anis after dead
  • Fixed bug with wrong realibity id
  • Fixed bug with "freezed" server
  • Fixed bug with colors. Colors was only given to player in stream.
  • Fixed bug with nickname. Nickname was only given to player in stream.
  • Now player that, are out of the stream will still sending their position but only 1 time per 2.5 second
  • Fixed bug with not working enableKeys function.
  • Imports are now relative.
  • Fixed server crashes.
  • Fixed bug with looped anims.
  • Fixed bug with wrong pings.
  • Fixed bug with server crashes while shutdown or init (RakNet TCP linux issue)

Version 0.1.1.0

  • Fixed bug in Launcher with starting always the same G2O version
  • Synchronization improvements
  • Fixed bug with wrong skill weapon on spawn
  • New launcher, with auto-udapte module
  • Changed interpolation of y axis
  • For now player with ping bigger than 150 will be freezed while fighting
  • Fixed bug in timers. Timers which were created in global scope, was triggered immediately after creation.
  • Fixed bug with crashing servers using overlays.
  • Fixed bugs with overlays, now everything work as expected.
  • New script constants: OBJ_BASENPC, OBJ_PED, OBJ_PLAYER, OBJ_LOCALPLAYER, OBJ_NPC, OBJ_LOCALNPC, OBJ_ITEM.
  • Changed client event: onHit(playerid, dmg) to onHit(killerid, playerid, dmg).
  • Client side bots.

Version 0.1.2.0

  • Updated Disabled taking damage for local NPC from other players.
  • Fixed Bug in fileMd5, when the file did not exist, the game stopped.
  • Fixed Bug with working marvin mode.
  • Fixed Bug with destroyNpc. NPC wasn't destroyed at all.
  • Added Sound (2d/3d) management.
  • Added Virtual worlds for players and items.
  • Added Date to the server logs.
  • Added Possibility of controlling ping limit in fight.
  • Added Functions:
  1. Client: isConsoleOpen, getPingLimit, setPingLimit
  2. Server: getPlayerVirtualWorld, setPlayerVirtualWorld
  • Added Classes:
  1. Client: Sound, Sound3d

Version 0.1.3.0

  • Added magic synchronisation
  • Added synchronisation of the items in hand
  • Removed errors with arrows/bolts
  • Added static class Camera to the camera operation (client-side)
    • collision
    • modeChangeEnabled
      • setMode
      • getMode
      • getPosition
      • setPosition
      • getRotation
      • setRotation
      • enableMovement
      • setTargetVob
      • setTargetPlayer
  • Added new client-side functions:
    • attackPlayer(pid, id, combination)
    • attackPlayerRanged(pid, id)
    • attackPlayerMagic(pid, id, itemId)
  • Added new client-side events:
    • onSpellCast(itemId)
  • Added new server-side functions:
    • setPlayerMana(pid, value)
    • setPlayerMaxMana(pid, value)
    • getPlayerMana()
    • getPlayerMaxMana()
    • setPlayerMagicLevel(pid, value[1-6])
  • Added new server-side events:
    • onPlayerEquipHandItem(pid, hand, itemId)
    • onPlayerSpellSetup(pid, itemId)
    • onPlayerSpellCast(pid, itemId)
  • Added new constants for the function attackPlayer:
    • ATTACK_FRONT
    • ATTACK_SWORD_LEFT
    • ATTACK_SWORD_RIGHT
    • ATTACK_SWORD_FRONT

Version 0.1.4.0

  • Fixed:
    • Talents
    • Splash Screen
    • Animations (experimental)
    • Crash on world change
    • 0hp bug
    • Invisibility bug (streamer bug)
    • Stacking items as in 0.1.2
    • Squirrel functions releated with magic
    • UnequipItem for runes bug fixed
  • Added:
    • New in game splash screen
    • Gothic Online logo on every loadscreen
    • Load screens are now different on game launch
    • Weapon trail
    • Mobs sync
    • All doors are opened
  • Client func:
    • clearMultiplayerMessages()
    • table {x,y,z} getWaypoint(string name)
    • table {name, x, y, z} getNearestWaypoint()
    • bool isInWater()
    • string getItemName(string instance)
    • string getItemDescription(string instance)
    • int getItemValue(string instance)
    • setGuild(int id)
    • int getGuildId()
    • string getGuildName()
    • class Way(string StartWP, string EndWP)
    • string Way:Confusedtart //Read only
    • string Way::end //Read only
    • int Way::getCountWaypoints()
    • array<string> Way::getWaypoints()
  • Client event:
    • onMobInteract(pointer, from, to)
    • onExit()
  • Server func:
    • table {x,y,z} getWaypoint(string world, string wp_name)
    • class Way(string StartWP, string EndWP)
    • string Way:Confusedtart //Read only
    • string Way::end //Read only
    • int Way::getCountWaypoints()
    • array<string> Way::getWaypoints()

Version 0.1.5.0

  • [FIXED] AutoPatcher
  • [FIXED] German keyboard layout
  • [FIXED] Function for ping limitation
  • [ADDED] IPV6 protocol support
  • [ADDED] Moving head sync
  • [ADDED] New console under ~
  • [ADDED] FaceANI sync
  • [ADDED] Animation progress sync
  • [ADDED] New methods for enter world
  • [ADDED] Sync for mob state for all connected players
  • [ADDED] BodyState sync
  • [ADDED] New functions:
    • setPlayerInvisible(int pid, bool toogle);
    • bool getPlayerInvisible(int pid);
    • setPlayerInvisibleChannel(int pid, int channel);
    • bool getPlayerInvisibleChannel(int pid);

Version 0.1.5.1

  • [FIXED] A lot of randomly crashes

Version 0.1.7.0

  • [FIXED] Position interpolation (Previously, there was a problem with undoing player position when there were more than 70 people on the server)
  • [FIXED] The most common cause of unexpected crashes (probably)
  • [FIXED] ItemsGround (previously they were not created sometimes)
  • [FIXED] Problem with unexpected starting turning animation
  • [FIXED] Fighting animations (now they're much more smooth)
  • [FIXED]error squirrel function (previously it wasn't printing message in console under tilde)
  • [FIXED] getPlayerScale (client-side, previously it was returning integer value instead of floating point)
  • [FIXED] Spawning nameless hero on 0,0,0 position when another player used mob
  • [FIXED] Console isn't scale after change resolution
  • [UPDATED] httpLib (this can solve problem with "Cannot connect to http server!")
  • [ADDED] Full combos sync
  • [ADDED] New client-side class for line3d drawing:
    • Line3d(float x1, float y1, float z1, float x2, float y2, float z2)
    • bool Line3d.visible
    • Line3d.top()
    • Line3d.setBegin(float x, float y, float z)
    • Line3d.setEnd(float x, float y, float z)
    • Line3d.setColor(int r, int g, int b)
    • table {x, y, z} Line3d.getBegin()
    • table {x, y, z} Line3d.getEnd()
    • table {r, g, b} Line3d.getColor()
  • [ADDED] New client-side class for line2d drawing:
    • Line2d(int x1, int y1, int x2, int y2)
    • bool Line2d.visible
    • Line2d.top()
    • Line2d.setBegin(int x, int y)
    • Line2d.setEnd(int x, int y)
    • Line2d.setColor(int r, int g, int b)
    • table {x, y} Line2d.getBegin()
    • table {x, y} Line2d.getEnd()
    • table {r, g, b} Line2d.getColor()
  • [ADDED] New client-side class for item rendering:
    • ItemRender(int x, int y, int width, int height, string itemInstance)
    • ItemRender.top()
    • ItemRender.setPosition(int x, int y)
    • ItemRender.setPositionPx(int x, int y)
    • ItemRender.setSize(int width, int height)
    • ItemRender.setSizePx(int width, int height)
    • table {x, y} ItemRender.getPosition()
    • table {x, y} ItemRender.getPositionPx()
    • table {width, height} ItemRender.getSize()
    • table {width, height} ItemRender.getSizePx()
    • int ItemRender.rotX
    • int ItemRender.rotY
    • int ItemRender.rotZ
    • int ItemRender.zbias
    • bool ItemRender.lightingswell
    • bool ItemRender.visible
  • [ADDED] New server-side function:
    • equipSpell(int pid, int itemId[, int slot])

Version 0.1.8.0

  • [Rewritten] animation synchronization
  • [Added] new client-side function: switchInterpolation(int type) for switching interpolation methods
    • New constants especially for this funtion:
      • DEFAULT_INTERPOLATION (this method is used by default, good for most cases)
      • OLD_INTERPOLATION (old interpolation method, better than default for DeathMatch servers, can't handle more than 70 players without problem with undoing player position)
      • NO_INTERPOLATION (it's also good for DeathMatch server, may cause player teleportations in some cases)

Version 0.1.8.2

  • [FIXED] Crash when other player shooting arrow/bolts

Version 0.1.9.0

  • [UPDATED] Set limit on ground items to 65565.
  • [UPDATED] ItemRender now have option to render model:
    • usage ItemRender.visual = "MODEL.3DS";
  • [UPDATED] Add name, mobType parameteres on onMobInteract:
    • usage onMobInteract(mob, name, type, from, to)
  • [FIXED] Equip functions now will check if item exists in player equipment.
  • [FIXED] getFont() in Draw class works proper.
  • [ADDED] Function to use item by player:
    • usage useItem(int player, string itemInstance)
  • [ADDED]Function to use closest mob:
    • usage useClosestMob(int player, string mobName, int state)
  • [ADDED] Function to attack player visual effect:
    • usage attackPlayerWithEffect(int playerId, int killerId, int damageType, int damage, bool projectile, int effect, string effectName)
  • [ADDED] Function to display video:
    • usage playVideo(string name)
  • [ADDED] SFX/music sound manipulation:
    • disableMusicSystem(bool)
    • bool isMusicSystemDisabled()
    • setMusicVolume(float volume) // 0.0 - 1.0
    • float getMusicVolume()
    • setSoundVolume(float volume) // 0.0 - 1.0
    • float getSoundVolume()