Difference between revisions of "SC3 Changelog"
(28 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | ==Full releases== | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
! SoldatServer Version !! Changelog | ! SoldatServer Version !! Changelog | ||
|- | |- | ||
− | | 2.7.8. | + | | 2.8.2 || |
− | + event [[TGame.OnTCPCommand]] | + | + Added procedure [[TActivePlayer.RequestDiscordToken]] |
− | + function [[ | + | + Added [[TGame.OnSteamAuth]] event |
+ | + Added [[TActivePlayer.SteamID]] and [[TActivePlayer.SteamIDString]] properties | ||
+ | + Added [[TMath|ScriptMath]] unit | ||
+ | + Added arctan to SC2 | ||
+ | + Added SC3 [[TActivePlayer.ChangeTeam|TActivePlayer.ChangeTeam(Team, JoinType)]] | ||
+ | + Added missing [[TActivePlayer.PlaySound]] | ||
+ | + Added Players.Active[] and Players.Active.Count to SC3 | ||
+ | + Added OnBeforeJoinTeam event to SC3 | ||
+ | - Removed TTeam.Add | ||
+ | |||
+ | ~ Modified SC3 Player.OnBeforeRespawn now returns spawn position | ||
+ | ~ Modified SC3 TTeam.Players[] property to return TActivePlayer instead of TPlayer | ||
+ | ~ Modified SC3 TActivePlayer.Dummy is now RW | ||
+ | ~ Modified SC3 TActivePlayer.Alive is now read only (R) | ||
+ | ~ Modified KickPlayer fails on admin only if it's a ping, flood or vote related kick | ||
+ | ~ Modified TPlayer.Health and TPlayer.Vest are RW now | ||
+ | ~ Marked SC3 OnTCPCommand as deprecated | ||
+ | ~ Moved OnBeforeMapChange event to fire at round end (5s before "real" map switch) | ||
+ | |||
+ | * Fixed SC3 OnLeaveGame giving wrong team parameter, possibly crashing the server | ||
+ | * Fixed SC3 OnAdminCommand sometimes not honoring the result | ||
+ | * Fixed SC3 TActivePlayer.ChangeTeam not honoring Team parameter correctly | ||
+ | * Fixed ForceWeapon function working with wrong Gun objects | ||
+ | * Fixed console executed commands not calling Game.OnAdminCommand in SC3 | ||
+ | * Fixed regenerating polygons not calling OnPlayerDamage | ||
+ | * Fixed TActivePlayer.Ping is always 1 #666 | ||
+ | |- | ||
+ | | 2.8.1 || | ||
+ | + Added [[TActiveBullet.Owner]] property (Read only) | ||
+ | + Added [[TScript.OnUnhandledException]] | ||
+ | |||
+ | ~ Modified [[TPlayer.Alive]], [[TActivePlayer.IsAdmin|IsAdmin]], [[TActivePlayer.Human|Human]] and [[TPlayer.Dummy|Dummy]] properties to also check if player is active and return accordingly. | ||
+ | ~ Modified [[TActivePlayer.Deaths]] is now Read-Write | ||
+ | ~ Modified [[TScript.OnException]] to be a procedure instead of function | ||
+ | ~ Modified SC3 exception handler now unloads the script if exception is thrown | ||
+ | ~ Modified SC3 exception handler should output more meaningful messages, even with debug mode off | ||
+ | ~ Modified [[TActivePlayer.Kick]], added Reason parameter | ||
+ | ~ Modified [[TPlayers.Add]], added JoinType parameter | ||
+ | ~ Modified [[TPlayer.Health]] and [[TPlayer.Vest]] are now stored as decimal values | ||
+ | ~ Modified [[TPlayer.Health]] type is now Single | ||
+ | ~ Modified [[TActivePlayer.OnDamage]] event now accepts Damage parameter as Single instead of Integer, return type changed accordingly | ||
+ | |||
+ | * Fixed issues with SC3 FileAPI sometimes not working properly | ||
+ | * Fixed [[TScript.Unload]] and [[TScript.Recompile]] either not working or crashing | ||
+ | * Fixed SC3 [[TScript.OnException]] message sometimes being empty | ||
+ | * Fixed SC3 [[TActivePlayer.OnKill|OnKill]] provided WeaponID value instead of BulletID | ||
+ | * Fixed [[TActivePlayer.ForceWeapon|ForceWeapon]] sometimes didn't apply ammo | ||
+ | * Fixed [[TActivePlayer.OnVoteKickStart]] crashing when vote started by the server due to cheat detection | ||
+ | * Fixed SC3 script recompilation crashed the server when the new version had compile time errors. | ||
+ | |- | ||
+ | | 2.8.0 || | ||
+ | + Added basic conversion functions to SC3: {{link|ScriptCore3|weap2obj}}, {{link|ScriptCore3|menu2obj}}, {{link|ScriptCore3|obj2weap}}, {{link|ScriptCore3|obj2menu}}, {{link|ScriptCore3|weap2menu}}, {{link|ScriptCore3|menu2weap}} | ||
+ | + Added missing [[TGame.TickCount]] to SC3 | ||
+ | + Added missing [[TActivePlayer.KeyFlagThrow]] to SC3 | ||
+ | |||
+ | * Fixed [[TActivePlayer.OnWeaponChange]] was sometimes called too late | ||
+ | * Fixed added missing [[TPlayer.Vest|Vest]] property to SC3 [[TPlayer]] | ||
+ | * Fixed [[TScript.Name]] in SC3 Legacy mode contained full path instead of just folder name | ||
+ | * Fixed unpredictable [[TActivePlayer.OnWeaponChange|OnWeaponChange]] behavior when calling [[TActivePlayer.ForceWeapon|ForceWeapon]] from within | ||
+ | * Fixed wrong player coordinates in [[TActivePlayer.OnAfterRespawn|OnAfterRespawn]] (SC3 only) | ||
+ | * Fixed [[TActivePlayer.OnWeaponChange]] event sometimes called with weird weapon parameters | ||
+ | * Fixed incorrect Weapon being passed to [[TActivePlayer.OnKill]] | ||
+ | * Fixed [[TActivePlayer.Move]] not broadcasted to players when set on bot | ||
+ | * Fixed [[TActivePlayer.SetVelocity]] not broadcasted to players when set on bot | ||
+ | * Fixed [[Random]] function in SC2 producing weird results | ||
+ | * Fixed SC3 sometimes throwing access violations when hitting exception | ||
+ | (most noticable when trying to load non existing dll | ||
+ | |- | ||
+ | | 2.7.9 || | ||
+ | + Added SC3 property [[TActivePlayer.IsProne]] (read only - boolean) | ||
+ | + Added SC3 property [[TActivePlayer.MouseAimX]] (read write - SmallInt) (write only works on bots) | ||
+ | + Added SC3 property [[TActivePlayer.MouseAimY]] (read write - SmallInt) (write only works on bots) | ||
+ | + Added SC3 [[TGame.AdminPassword]] property (string - read write) | ||
+ | + Added SC3 object constants: OBJECT_ALPHA_FLAG, OBJECT_BRAVO_FLAG, OBJECT_POINTMATCH_FLAG, | ||
+ | OBJECT_USSOCOM, OBJECT_DESERT_EAGLE, OBJECT_HK_MP5, OBJECT_AK74, OBJECT_STEYR_AUG, OBJECT_SPAS12, | ||
+ | OBJECT_RUGER77, OBJECT_M79, OBJECT_BARRET_M82A1, OBJECT_MINIMI, OBJECT_MINIGUN, OBJECT_RAMBO_BOW, | ||
+ | OBJECT_MEDICAL_KIT, OBJECT_GRENADE_KIT, OBJECT_FLAMER_KIT, OBJECT_PREDATOR_KIT, OBJECT_VEST_KIT, | ||
+ | OBJECT_BERSERK_KIT, OBJECT_CLUSTER_KIT, OBJECT_PARACHUTE, OBJECT_COMBAT_KNIFE, OBJECT_CHAINSAW, | ||
+ | OBJECT_LAW, OBJECT_STATIONARY_GUN | ||
+ | + Added SC3 weapon constants: WTYPE_EAGLE, WTYPE_MP5, WTYPE_AK74, WTYPE_STEYRAUG, WTYPE_SPAS12, | ||
+ | WTYPE_RUGER77, WTYPE_M79, WTYPE_BARRETT, WTYPE_M249, WTYPE_MINIGUN, WTYPE_USSOCOM, WTYPE_KNIFE, | ||
+ | WTYPE_CHAINSAW, WTYPE_LAW, WTYPE_FLAMER, WTYPE_BOW, WTYPE_BOW2, WTYPE_M2, WTYPE_NOWEAPON, | ||
+ | WTYPE_FRAGGRENADE, WTYPE_CLUSTERGRENADE, WTYPE_CLUSTER, WTYPE_THROWNKNIFE | ||
+ | + Added SC3 function [[ScriptCore3.MD5|Md5]](A: string): string; | ||
+ | + Added SC3 type [[TBannedHW]] = record HW: string; Time: Integer; Reason: string; end; | ||
+ | + Added SC3 type [[TBannedIP]] = record IP: ShortString; Time: Integer; Reason: string; end; | ||
+ | + Added SC3 class [[TBanLists]] (accessible over global variable "[[TGame.BanLists|Game.BanLists]]") | ||
+ | + Added SC3 procedure [[TBanLists.AddHWBan]](HW, Reason: string; Duration: Integer); | ||
+ | + Added SC3 procedure [[TBanLists.AddIPBan]](IP: ShortString; Reason: string; Duration: Integer); | ||
+ | + Added SC3 function [[TBanLists.DelHWBan]](HW: string): Boolean; | ||
+ | + Added SC3 function [[TBanLists.DelIPBan]](IP: ShortString): Boolean; | ||
+ | + Added SC3 function [[TBanLists.IsBannedHW]](HW: string): Boolean; | ||
+ | + Added SC3 function [[TBanLists.IsBannedIP]](IP: ShortString): Boolean; | ||
+ | + Added SC3 function [[TBanLists.GetHWBanId]](HW: string): Integer; | ||
+ | + Added SC3 function [[TBanLists.GetIPBanId]](IP: ShortString): Integer; | ||
+ | + Added SC3 property [[TBanLists.HW]] (read only - array of TBannedHW) | ||
+ | + Added SC3 property [[TBanLists.IP]] (read only - array of TBannedIP) | ||
+ | + Added SC3 property [[TBanLists.BannedHWCount]]: (read only - Integer) | ||
+ | + Added SC3 property [[TBanLists.BannedIPCount]] (read only - Integer) | ||
+ | |||
+ | ~ Modified modifying velocity of bots to be less laggy | ||
+ | ~ Modified MovePlayer function to be less laggy on bots | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyUp]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyLeft]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyRight]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyShoot]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyJetpack]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyGrenade]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyChangeWeap]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyThrow]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyReload]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyCrouch]] access mode to read write (write only works on bots) | ||
+ | ~ Modified SC3 property [[TActivePlayer.KeyProne]] access mode to read write (write only works on bots) | ||
+ | |||
+ | * Fixed [[TMap.AddObject]] function had swapped knife and saw | ||
+ | * Fixed votes started via script didn't work properly | ||
+ | * Fixed SC3 property [[TActivePlayer.KeyProne]] returns position instead pressed key | ||
+ | * Fixed SC3 [[TGame.Password]] shows admin password instead of game password #604 | ||
+ | * Fixed SC3 [[TGame.Password]] property was read only | ||
+ | * Fixed SC3 joining the game increases sometimes team count by 2 instead of 1 | ||
+ | * Fixed SC3 [[TGame.Teams]] [[TTeam.Player|Player]] property returned nil or an error | ||
+ | |- | ||
+ | | 2.7.8 || | ||
+ | + Added SC3 function [[ScriptCore3.StrToDateTime|StrToDateTime]](const S: string): TDateTime; | ||
+ | + Added SC3 event [[TGame.OnTCPCommand]](Ip: string; Port: Word; Command: string): Boolean; | ||
+ | + Added SC3 event [[TActivePlayer.OnKitPickup]](Player: TActivePlayer; Kit: TActiveMapObject) | ||
+ | + Added SC3 event [[TActivePlayer.OnFlagDrop]](Player: TActivePlayer; Flag: TActiveFlag; Team: Byte; Thrown: Boolean) | ||
+ | + Added SC3 procedure [[TActivePlayer.WorldText]](Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale, X, Y: Single) | ||
+ | + Added SC3 procedure [[TPlayers.WorldText]](Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale, X, Y: Single) | ||
+ | + Added SC3 event [[TGame.OnAdminConnect]](Ip: string; Port: Word) | ||
+ | + Added SC3 event [[TGame.OnAdminDisconnect]](Ip: string; Port: Word) | ||
+ | + Added SC3 procedure [[TActivePlayer.SetVelocity]](VelX, VelY: Single) | ||
+ | + Added SC3 function [[TGame.TOnAdminCommand]](Player: TActivePlayer; Command: string): boolean | ||
+ | + Added SC3 function [[TGame.TOnTCPMessage]](Ip: string; Port: Word; Text: string): boolean | ||
+ | + Added SC3 function [[TMap.CreateBulletVector]](A, B: TVector; HitM: Single; sStyle: Byte; Owner: TActivePlayer): Integer | ||
+ | + Added SC3 function [[TMap.CreateBullet]](X, Y, VelX, VelY, HitM_ Single; sStyle: Byte; Owner: TActivePlayer): Integer | ||
+ | + Added SC3 function [[Distance]](X1, X2, Y1, Y2: Single): Single | ||
+ | + Added SC3 property [[TActivePlayer.IsAdmin]] (read write - Boolean) | ||
+ | + Added SC3 property [[TGame.CurrentMap]] (read only - string) | ||
+ | + Added SC3 class [[TMapsList]] (accessible over global variable "Game.MapsList") | ||
+ | + Added SC3 procedure [[TMapsList.AddMap]](Name: string) | ||
+ | + Added SC3 procedure [[TMapsList.RemoveMap]](Name: string) | ||
+ | + Added SC3 function [[TMapsList.GetMapIdByName]](Name: string): Integer | ||
+ | + Added SC3 property [[TMapsList.Map]] (read only - array of string) | ||
+ | + Added SC3 property [[TMapsList.CurrentMapId]] (read write - Integer) | ||
+ | + Added SC3 property [[TMapsList.MapsCount]] (read only - Integer) | ||
+ | + Added SC3 class [[TGlobal]] (accessible over global variable "Global") | ||
+ | + Added SC3 property [[TGlobal.DateSeparator]] (read write - string) | ||
+ | + Added SC3 property [[TGlobal.ShortDateFormat]] (read write - string) | ||
+ | + Added SC3 class [[TActiveMapBullet]] (accessible over global Byte array "Map.Bullets") | ||
+ | + Added SC3 function [[TActiveMapBullet.GetOwnerWeaponId]]: Integer | ||
+ | + Added SC3 property [[TActiveMapBullet.ID]] (read only - Byte) | ||
+ | + Added SC3 property [[TActiveMapBullet.Active]] (read only - Boolean) | ||
+ | + Added SC3 property [[TActiveMapBullet.X]] (read only - Single) | ||
+ | + Added SC3 property [[TActiveMapBullet.Y]] (read only - Single) | ||
+ | + Added SC3 property [[TActiveMapBullet.VelX]] (read only - Single) | ||
+ | + Added SC3 property [[TActiveMapBullet.VelY]] (read only - Single) | ||
+ | |||
+ | ~ Modified SC3 type [[TOnKillEvent]] declaration to procedure(Killer, Victim: TActivePlayer; BulletID: Byte) | ||
+ | ~ Modified SC3 type [[TOnTCPMessageEvent]] declaration to procedure(Ip: string; Port: Word; Message: string) | ||
+ | ~ Modified request game log line from "IP:PORT requesting game..." to "IP:PORT|HWID requesting game..." | ||
+ | ~ Modified SC3 procedure name [[TActivePlayer.Forward]] altered to TActivePlayer.ForwardTo | ||
+ | ~ Modified SC3 type [[TOnRequestEvent]] declaration to function(Ip, Hw: string; Port: Word; State: Byte; Forwarded: Boolean; Password: string): Integer | ||
+ | ~ Modified SC3 type [[TOnDamageEvent]] declaration to function(Shooter, Victim: TActivePlayer; Damage: Integer; Bullet: TActiveMapBullet): Integer | ||
− | |||
− | |||
* Fixed [[TOnWeaponChangeEvent]] does not hold valueable data #582 | * Fixed [[TOnWeaponChangeEvent]] does not hold valueable data #582 | ||
* Fixed [[TActiveObject]]'s Style is 0 (Flags) #584 | * Fixed [[TActiveObject]]'s Style is 0 (Flags) #584 | ||
− | * Fixed [[Player.Alive]] := FALSE deals damage (doesn't always kill) #586 | + | * Fixed [[TActivePlayer.OnFlagDrop]] [[TActiveMapObject.ID|Flag.ID]] can't be accessed or duplicates #585 |
− | * Fixed [[ | + | * Fixed [[TActivePlayer.Alive|Player.Alive]] := FALSE deals damage (doesn't always kill) #586 |
− | + | * Fixed [[TActivePlayer.Move]] causes players to drop weapons and flags randomly #142 | |
− | * Fixed [[ | + | * Fixed [[TActivePlayer.Move]] randomly kills and respawns player #247 |
− | * Fixed Server refuses client if [[ | + | * Fixed Server refuses client if [[TActivePlayer.Move]] is used on connection #587 |
* Fixed SC3 [[TMapObject.Style]] results to be the same as in wiki | * Fixed SC3 [[TMapObject.Style]] results to be the same as in wiki | ||
− | * Fixed SC3 using [[ | + | * Fixed SC3 using [[TGame.OnRequest]] crashes server |
− | * Reverted "Modified SC3 type | + | * Fixed SC3 Variable [[TGame.VotePercent]] is always set up on 0 #532 |
+ | * Fixed SC3 [[TActivePlayer.Ban]] always bans for 0 minutes #576 | ||
+ | * Fixed [[TActivePlayer.OnVoteMap|OnVoteMap]]/[[TActivePlayer.OnVoteMapStart|OnVoteMapStart]]events are not working as intended #550 | ||
+ | * Fixed SC3 - [[TActivePlayer.OnWeaponChange]] does not provide changed weapon information #577 | ||
+ | * Fixed SC3 - [[TActivePlayer.OnKill]]/[[TActivePlayer.OnDamage]] - WeaponType is unpredictable #356 | ||
+ | * Fixed [[TActivePlayer.BigText]] with layer 0 causes WriteConsole behaviour #400 | ||
+ | * Fixed SC3 [[ScriptCore3.StrToDate|StrToDate]] doesn't work as intended #401 | ||
+ | * Fixed /recompile <script> hangs up admin client #578 | ||
+ | * Fixed SC3 Strange [[TMap.RayCast]] values when walking "into" the wall #395 | ||
+ | * Fixed SC3 some server crashes after unhandled exception | ||
+ | * Fixed SC3 some function results could be ignored in some cases | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==Other versions== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | 2.7.8.b2 || | ||
+ | + event TGame.OnTCPCommand | ||
+ | + function StrToDateTime | ||
+ | |||
+ | * OnKillEvent declaration changed (Killer, Victim: TActivePlayer; BulletID: Byte) | ||
+ | * TOnTCPMessageEvent declaration changed (Ip: string; Port: Word; Message: string) | ||
+ | * Fixed TOnWeaponChangeEvent does not hold valueable data #582 | ||
+ | * Fixed TActiveObject's Style is 0 (Flags) #584 | ||
+ | * Fixed Player.Alive := FALSE deals damage (doesn't always kill) #586 | ||
+ | * Fixed TPlayer.OnFlagDrop Flag.ID can't be accessed or duplicates #585 | ||
+ | * Fixed MovePlayer causes players to drop weapons and flags randomly #142 | ||
+ | * Fixed MovePlayer randomly kills and respawns player #247 | ||
+ | * Fixed Server refuses client if MovePlayer is used on connection #587 | ||
+ | * Fixed SC3 TMapObject.Style results to be the same as in wiki | ||
+ | * Fixed SC3 using TGame.OnRequest crashes server | ||
+ | * Reverted "Modified SC3 type TOnKillEvent declaration changed (Killer, Victim: TActivePlayer; Bullet: TActiveMapBullet)" | ||
|- | |- | ||
|- | |- | ||
| 2.7.8.b1 || | | 2.7.8.b1 || | ||
− | + event | + | + event TActivePlayer.OnKitPickup |
− | + event | + | + event TActivePlayer.OnFlagDrop |
− | + procedure | + | + procedure TActivePlayer.WorldText |
− | + procedure | + | + procedure TPlayers.WorldText |
− | + event | + | + event TGame.OnAdminConnect |
− | + event | + | + event TGame.OnAdminDisconnect |
− | + procedure | + | + procedure TActivePlayer.SetVelocity |
− | + event | + | + event TGame.OnAdminCommand |
− | + event | + | + event TGame.OnTCPMessage |
− | + function | + | + function TMap.CreateBulletVector |
− | + function | + | + function TMap.CreateBullet |
− | + function | + | + function Distance |
− | + property | + | + property TActivePlayer.IsAdmin |
− | + property | + | + property TGame.CurrentMap |
− | + class | + | + class TMapsList |
− | + procedure | + | + procedure TMapsList.AddMap |
− | + procedure | + | + procedure TMapsList.RemoveMap |
− | + function | + | + function TMapsList.GetMapIdByName |
− | + property | + | + property TMapsList.Map |
− | + property | + | + property TMapsList.CurrentMapId |
− | + property | + | + property TMapsList.MapsCount |
− | + class | + | + class TGlobal |
− | + property | + | + property TGlobal.DateSeparator |
− | + property | + | + property TGlobal.ShortDateFormat |
− | + class | + | + class TActiveMapBullet |
− | + function | + | + function TActiveMapBullet.GetOwnerWeaponId |
− | + property | + | + property TActiveMapBullet.ID |
− | + property | + | + property TActiveMapBullet.Active |
− | + property | + | + property TActiveMapBullet.Style |
− | + property | + | + property TActiveMapBullet.X |
− | + property | + | + property TActiveMapBullet.Y |
− | + property | + | + property TActiveMapBullet.VelX |
− | + property | + | + property TActiveMapBullet.VelY |
− | * procedure name TActivePlayer.Forward altered to | + | * procedure name TActivePlayer.Forward altered to TActivePlayer.ForwardTo |
− | * | + | * TOnRequestEvent declaration changed (+ Hw) |
− | * | + | * TOnDamageEvent declaration changed (BulletID: Byte to Bullet: TActiveMapBullet) |
− | * | + | * TOnKillEvent declaration changed (BulletID: Byte to Bullet: TActiveMapBullet) |
|- | |- | ||
|} | |} | ||
[[Category:ScriptCore_3]] | [[Category:ScriptCore_3]] |
Latest revision as of 09:50, 10 May 2020
Full releases
SoldatServer Version | Changelog |
---|---|
2.8.2 |
+ Added procedure TActivePlayer.RequestDiscordToken + Added TGame.OnSteamAuth event + Added TActivePlayer.SteamID and TActivePlayer.SteamIDString properties + Added ScriptMath unit + Added arctan to SC2 + Added SC3 TActivePlayer.ChangeTeam(Team, JoinType) + Added missing TActivePlayer.PlaySound + Added Players.Active[] and Players.Active.Count to SC3 + Added OnBeforeJoinTeam event to SC3 - Removed TTeam.Add ~ Modified SC3 Player.OnBeforeRespawn now returns spawn position ~ Modified SC3 TTeam.Players[] property to return TActivePlayer instead of TPlayer ~ Modified SC3 TActivePlayer.Dummy is now RW ~ Modified SC3 TActivePlayer.Alive is now read only (R) ~ Modified KickPlayer fails on admin only if it's a ping, flood or vote related kick ~ Modified TPlayer.Health and TPlayer.Vest are RW now ~ Marked SC3 OnTCPCommand as deprecated ~ Moved OnBeforeMapChange event to fire at round end (5s before "real" map switch) * Fixed SC3 OnLeaveGame giving wrong team parameter, possibly crashing the server * Fixed SC3 OnAdminCommand sometimes not honoring the result * Fixed SC3 TActivePlayer.ChangeTeam not honoring Team parameter correctly * Fixed ForceWeapon function working with wrong Gun objects * Fixed console executed commands not calling Game.OnAdminCommand in SC3 * Fixed regenerating polygons not calling OnPlayerDamage * Fixed TActivePlayer.Ping is always 1 #666 |
2.8.1 |
+ Added TActiveBullet.Owner property (Read only) + Added TScript.OnUnhandledException ~ Modified TPlayer.Alive, IsAdmin, Human and Dummy properties to also check if player is active and return accordingly. ~ Modified TActivePlayer.Deaths is now Read-Write ~ Modified TScript.OnException to be a procedure instead of function ~ Modified SC3 exception handler now unloads the script if exception is thrown ~ Modified SC3 exception handler should output more meaningful messages, even with debug mode off ~ Modified TActivePlayer.Kick, added Reason parameter ~ Modified TPlayers.Add, added JoinType parameter ~ Modified TPlayer.Health and TPlayer.Vest are now stored as decimal values ~ Modified TPlayer.Health type is now Single ~ Modified TActivePlayer.OnDamage event now accepts Damage parameter as Single instead of Integer, return type changed accordingly * Fixed issues with SC3 FileAPI sometimes not working properly * Fixed TScript.Unload and TScript.Recompile either not working or crashing * Fixed SC3 TScript.OnException message sometimes being empty * Fixed SC3 OnKill provided WeaponID value instead of BulletID * Fixed ForceWeapon sometimes didn't apply ammo * Fixed TActivePlayer.OnVoteKickStart crashing when vote started by the server due to cheat detection * Fixed SC3 script recompilation crashed the server when the new version had compile time errors. |
2.8.0 |
+ Added basic conversion functions to SC3: weap2obj, menu2obj, obj2weap, obj2menu, weap2menu, menu2weap + Added missing TGame.TickCount to SC3 + Added missing TActivePlayer.KeyFlagThrow to SC3 * Fixed TActivePlayer.OnWeaponChange was sometimes called too late * Fixed added missing Vest property to SC3 TPlayer * Fixed TScript.Name in SC3 Legacy mode contained full path instead of just folder name * Fixed unpredictable OnWeaponChange behavior when calling ForceWeapon from within * Fixed wrong player coordinates in OnAfterRespawn (SC3 only) * Fixed TActivePlayer.OnWeaponChange event sometimes called with weird weapon parameters * Fixed incorrect Weapon being passed to TActivePlayer.OnKill * Fixed TActivePlayer.Move not broadcasted to players when set on bot * Fixed TActivePlayer.SetVelocity not broadcasted to players when set on bot * Fixed Random function in SC2 producing weird results * Fixed SC3 sometimes throwing access violations when hitting exception (most noticable when trying to load non existing dll |
2.7.9 |
+ Added SC3 property TActivePlayer.IsProne (read only - boolean) + Added SC3 property TActivePlayer.MouseAimX (read write - SmallInt) (write only works on bots) + Added SC3 property TActivePlayer.MouseAimY (read write - SmallInt) (write only works on bots) + Added SC3 TGame.AdminPassword property (string - read write) + Added SC3 object constants: OBJECT_ALPHA_FLAG, OBJECT_BRAVO_FLAG, OBJECT_POINTMATCH_FLAG, OBJECT_USSOCOM, OBJECT_DESERT_EAGLE, OBJECT_HK_MP5, OBJECT_AK74, OBJECT_STEYR_AUG, OBJECT_SPAS12, OBJECT_RUGER77, OBJECT_M79, OBJECT_BARRET_M82A1, OBJECT_MINIMI, OBJECT_MINIGUN, OBJECT_RAMBO_BOW, OBJECT_MEDICAL_KIT, OBJECT_GRENADE_KIT, OBJECT_FLAMER_KIT, OBJECT_PREDATOR_KIT, OBJECT_VEST_KIT, OBJECT_BERSERK_KIT, OBJECT_CLUSTER_KIT, OBJECT_PARACHUTE, OBJECT_COMBAT_KNIFE, OBJECT_CHAINSAW, OBJECT_LAW, OBJECT_STATIONARY_GUN + Added SC3 weapon constants: WTYPE_EAGLE, WTYPE_MP5, WTYPE_AK74, WTYPE_STEYRAUG, WTYPE_SPAS12, WTYPE_RUGER77, WTYPE_M79, WTYPE_BARRETT, WTYPE_M249, WTYPE_MINIGUN, WTYPE_USSOCOM, WTYPE_KNIFE, WTYPE_CHAINSAW, WTYPE_LAW, WTYPE_FLAMER, WTYPE_BOW, WTYPE_BOW2, WTYPE_M2, WTYPE_NOWEAPON, WTYPE_FRAGGRENADE, WTYPE_CLUSTERGRENADE, WTYPE_CLUSTER, WTYPE_THROWNKNIFE + Added SC3 function Md5(A: string): string; + Added SC3 type TBannedHW = record HW: string; Time: Integer; Reason: string; end; + Added SC3 type TBannedIP = record IP: ShortString; Time: Integer; Reason: string; end; + Added SC3 class TBanLists (accessible over global variable "Game.BanLists") + Added SC3 procedure TBanLists.AddHWBan(HW, Reason: string; Duration: Integer); + Added SC3 procedure TBanLists.AddIPBan(IP: ShortString; Reason: string; Duration: Integer); + Added SC3 function TBanLists.DelHWBan(HW: string): Boolean; + Added SC3 function TBanLists.DelIPBan(IP: ShortString): Boolean; + Added SC3 function TBanLists.IsBannedHW(HW: string): Boolean; + Added SC3 function TBanLists.IsBannedIP(IP: ShortString): Boolean; + Added SC3 function TBanLists.GetHWBanId(HW: string): Integer; + Added SC3 function TBanLists.GetIPBanId(IP: ShortString): Integer; + Added SC3 property TBanLists.HW (read only - array of TBannedHW) + Added SC3 property TBanLists.IP (read only - array of TBannedIP) + Added SC3 property TBanLists.BannedHWCount: (read only - Integer) + Added SC3 property TBanLists.BannedIPCount (read only - Integer) ~ Modified modifying velocity of bots to be less laggy ~ Modified MovePlayer function to be less laggy on bots ~ Modified SC3 property TActivePlayer.KeyUp access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyLeft access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyRight access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyShoot access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyJetpack access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyGrenade access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyChangeWeap access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyThrow access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyReload access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyCrouch access mode to read write (write only works on bots) ~ Modified SC3 property TActivePlayer.KeyProne access mode to read write (write only works on bots) * Fixed TMap.AddObject function had swapped knife and saw * Fixed votes started via script didn't work properly * Fixed SC3 property TActivePlayer.KeyProne returns position instead pressed key * Fixed SC3 TGame.Password shows admin password instead of game password #604 * Fixed SC3 TGame.Password property was read only * Fixed SC3 joining the game increases sometimes team count by 2 instead of 1 * Fixed SC3 TGame.Teams Player property returned nil or an error |
2.7.8 |
+ Added SC3 function StrToDateTime(const S: string): TDateTime; + Added SC3 event TGame.OnTCPCommand(Ip: string; Port: Word; Command: string): Boolean; + Added SC3 event TActivePlayer.OnKitPickup(Player: TActivePlayer; Kit: TActiveMapObject) + Added SC3 event TActivePlayer.OnFlagDrop(Player: TActivePlayer; Flag: TActiveFlag; Team: Byte; Thrown: Boolean) + Added SC3 procedure TActivePlayer.WorldText(Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale, X, Y: Single) + Added SC3 procedure TPlayers.WorldText(Layer: Byte; Text: string; Delay: Integer; Color: Longint; Scale, X, Y: Single) + Added SC3 event TGame.OnAdminConnect(Ip: string; Port: Word) + Added SC3 event TGame.OnAdminDisconnect(Ip: string; Port: Word) + Added SC3 procedure TActivePlayer.SetVelocity(VelX, VelY: Single) + Added SC3 function TGame.TOnAdminCommand(Player: TActivePlayer; Command: string): boolean + Added SC3 function TGame.TOnTCPMessage(Ip: string; Port: Word; Text: string): boolean + Added SC3 function TMap.CreateBulletVector(A, B: TVector; HitM: Single; sStyle: Byte; Owner: TActivePlayer): Integer + Added SC3 function TMap.CreateBullet(X, Y, VelX, VelY, HitM_ Single; sStyle: Byte; Owner: TActivePlayer): Integer + Added SC3 function Distance(X1, X2, Y1, Y2: Single): Single + Added SC3 property TActivePlayer.IsAdmin (read write - Boolean) + Added SC3 property TGame.CurrentMap (read only - string) + Added SC3 class TMapsList (accessible over global variable "Game.MapsList") + Added SC3 procedure TMapsList.AddMap(Name: string) + Added SC3 procedure TMapsList.RemoveMap(Name: string) + Added SC3 function TMapsList.GetMapIdByName(Name: string): Integer + Added SC3 property TMapsList.Map (read only - array of string) + Added SC3 property TMapsList.CurrentMapId (read write - Integer) + Added SC3 property TMapsList.MapsCount (read only - Integer) + Added SC3 class TGlobal (accessible over global variable "Global") + Added SC3 property TGlobal.DateSeparator (read write - string) + Added SC3 property TGlobal.ShortDateFormat (read write - string) + Added SC3 class TActiveMapBullet (accessible over global Byte array "Map.Bullets") + Added SC3 function TActiveMapBullet.GetOwnerWeaponId: Integer + Added SC3 property TActiveMapBullet.ID (read only - Byte) + Added SC3 property TActiveMapBullet.Active (read only - Boolean) + Added SC3 property TActiveMapBullet.X (read only - Single) + Added SC3 property TActiveMapBullet.Y (read only - Single) + Added SC3 property TActiveMapBullet.VelX (read only - Single) + Added SC3 property TActiveMapBullet.VelY (read only - Single) ~ Modified SC3 type TOnKillEvent declaration to procedure(Killer, Victim: TActivePlayer; BulletID: Byte) ~ Modified SC3 type TOnTCPMessageEvent declaration to procedure(Ip: string; Port: Word; Message: string) ~ Modified request game log line from "IP:PORT requesting game..." to "IP:PORT|HWID requesting game..." ~ Modified SC3 procedure name TActivePlayer.Forward altered to TActivePlayer.ForwardTo ~ Modified SC3 type TOnRequestEvent declaration to function(Ip, Hw: string; Port: Word; State: Byte; Forwarded: Boolean; Password: string): Integer ~ Modified SC3 type TOnDamageEvent declaration to function(Shooter, Victim: TActivePlayer; Damage: Integer; Bullet: TActiveMapBullet): Integer * Fixed TOnWeaponChangeEvent does not hold valueable data #582 * Fixed TActiveObject's Style is 0 (Flags) #584 * Fixed TActivePlayer.OnFlagDrop Flag.ID can't be accessed or duplicates #585 * Fixed Player.Alive := FALSE deals damage (doesn't always kill) #586 * Fixed TActivePlayer.Move causes players to drop weapons and flags randomly #142 * Fixed TActivePlayer.Move randomly kills and respawns player #247 * Fixed Server refuses client if TActivePlayer.Move is used on connection #587 * Fixed SC3 TMapObject.Style results to be the same as in wiki * Fixed SC3 using TGame.OnRequest crashes server * Fixed SC3 Variable TGame.VotePercent is always set up on 0 #532 * Fixed SC3 TActivePlayer.Ban always bans for 0 minutes #576 * Fixed OnVoteMap/OnVoteMapStartevents are not working as intended #550 * Fixed SC3 - TActivePlayer.OnWeaponChange does not provide changed weapon information #577 * Fixed SC3 - TActivePlayer.OnKill/TActivePlayer.OnDamage - WeaponType is unpredictable #356 * Fixed TActivePlayer.BigText with layer 0 causes WriteConsole behaviour #400 * Fixed SC3 StrToDate doesn't work as intended #401 * Fixed /recompile <script> hangs up admin client #578 * Fixed SC3 Strange TMap.RayCast values when walking "into" the wall #395 * Fixed SC3 some server crashes after unhandled exception * Fixed SC3 some function results could be ignored in some cases |
Other versions
2.7.8.b2 |
+ event TGame.OnTCPCommand + function StrToDateTime * OnKillEvent declaration changed (Killer, Victim: TActivePlayer; BulletID: Byte) * TOnTCPMessageEvent declaration changed (Ip: string; Port: Word; Message: string) * Fixed TOnWeaponChangeEvent does not hold valueable data #582 * Fixed TActiveObject's Style is 0 (Flags) #584 * Fixed Player.Alive := FALSE deals damage (doesn't always kill) #586 * Fixed TPlayer.OnFlagDrop Flag.ID can't be accessed or duplicates #585 * Fixed MovePlayer causes players to drop weapons and flags randomly #142 * Fixed MovePlayer randomly kills and respawns player #247 * Fixed Server refuses client if MovePlayer is used on connection #587 * Fixed SC3 TMapObject.Style results to be the same as in wiki * Fixed SC3 using TGame.OnRequest crashes server * Reverted "Modified SC3 type TOnKillEvent declaration changed (Killer, Victim: TActivePlayer; Bullet: TActiveMapBullet)" |
2.7.8.b1 |
+ event TActivePlayer.OnKitPickup + event TActivePlayer.OnFlagDrop + procedure TActivePlayer.WorldText + procedure TPlayers.WorldText + event TGame.OnAdminConnect + event TGame.OnAdminDisconnect + procedure TActivePlayer.SetVelocity + event TGame.OnAdminCommand + event TGame.OnTCPMessage + function TMap.CreateBulletVector + function TMap.CreateBullet + function Distance + property TActivePlayer.IsAdmin + property TGame.CurrentMap + class TMapsList + procedure TMapsList.AddMap + procedure TMapsList.RemoveMap + function TMapsList.GetMapIdByName + property TMapsList.Map + property TMapsList.CurrentMapId + property TMapsList.MapsCount + class TGlobal + property TGlobal.DateSeparator + property TGlobal.ShortDateFormat + class TActiveMapBullet + function TActiveMapBullet.GetOwnerWeaponId + property TActiveMapBullet.ID + property TActiveMapBullet.Active + property TActiveMapBullet.Style + property TActiveMapBullet.X + property TActiveMapBullet.Y + property TActiveMapBullet.VelX + property TActiveMapBullet.VelY * procedure name TActivePlayer.Forward altered to TActivePlayer.ForwardTo * TOnRequestEvent declaration changed (+ Hw) * TOnDamageEvent declaration changed (BulletID: Byte to Bullet: TActiveMapBullet) * TOnKillEvent declaration changed (BulletID: Byte to Bullet: TActiveMapBullet) |