2.4.1
Massive update containing fixes and functions since last october.
Below is a quickly filtered dump from my change log. It will be cleaned up and flushed out with more details later.
As I constantly change things during development, some entries below may be contradictory for features that were tweaked or removed.
Important
2.4 that was here previously has a bug preventing Jedi from selecting skills due to the color codes used. Please upgrade to 2.4.1.
Also important
I uploaded 2.4 again when I meant to upload 2.4.1. Check the version number and make sure it says 2.4.1. If not, redownload.
Things to know
- The confirmation added text is outdated. Use "/confirm yes" or "/confirm no" rather than "yes" or "no.
- "/trace" no longer searches by key/value. Use "/entitylist <classname>" or "/entitylist <key> <value>"
- "/entitylist remove" no longer exists. Use "/delall <classname<" or "/delall
<value>" instead.
General
Added lugormod version to help command.
Attempted to fix bevel exploit. Reasonable success, not perfect.
To help prevent bevel exploits, crouching is now disabled when in the air.
Removed teleporter gun.
Moved profession commands to their own command group.
Moved account commands to their own command group.
"Help" now uses new console functions so that less display commands are sent to the client. This should reduce lag when using the command.
Rancors will now no longer grab duelists.
Fixed npcs killed by disruptor not being considered dead when killed. Stops splash damage from retriggering npc_target3 and npc_target5.
Added cvar lmd_rewardcr_kill, credits to give when a player kills another player or bot. Does not reward for NPCs.
Added knockdown when falling from a height.
Fixed jetpack usable during knockdown.
Fixed players surviving height without damage or knockdown regardless of speed if its equal or higher than the point where they started force jumping or jetpacking at.
Fixed ravensoft's horribly buggy zero gravity jump code. Setting a player's gravity to 0 (or g_gravity to 0) will no longer shoot them off at supersonic speeds. As clients still have the bad code, g_gravity 1 will also enable this
Due to the above, players can now hit the jump key when in zero gravity when up against a surface. They will move in the direction they aim at.
Jetpack defuel code now handles faster values than allowed by sv_fps. Will remove more than one point per frame to compensate if needed. This allows a much larger range of defuel values.
Lowered repeater alt fire splash radius to siege value.
Fixed missing newline on security code output.
Confirm is now "/Confirm yes" and "/Confirm no", rather than needing to copy a number.
Accounts and Professions
Weapons can now be used while grappling.
Grapple now comes out of your torso. It was floating around the chest before.
Stopped insane acceleration on grapple, it now moves as fast as a true grapple.
Fixed "nohumans" and "nobots" potentially getting stuck in an infinite loop, freezing the server.
Fixed custom skill names having "_custom" in the name when loaded from the account file.
Added cvar g_startingWeapons: A bitmask of weapons. These will be added regardless of profession or game type. This may not work in all cases.
Added cvar g_startingAmmo: A precentage between 0 and 100. The ammo for every weapon the player has will be set to the percentage of the maximum. Merc ammo skill is NOT taken into account.
Fixed g_startingAmmo cvar controling g_startingWeapons.
"Profession" command can now take a partial profession name, such as "profession merc".
Fixed not being able to team heal those in your friends list.
Fixed jedi profession force regen speed thinking 20 was the max level. Regen is now spread out to reach god level at level 40.
Forcepower will take into account time passed since last regen, so regen rates faster than the client process frame rate is now possible.
God profession regen is now a clean 100 points per second, rather than as fast as possible (1 per client process frame).
Started standardizing credit messages.
Fixed "ResetSkills" not telling the user if it completed sucessfully.
Fixed "ResetSkills" allowing a reset if the skills were already at their lowest level.
Mercs now have 80% running speed of other professions to simulate heavy weapons and armor. Currently not based on skill or level. Will adjust this to match selected weapons and armor in the future.
"/Skills" now takes a partial skill name rather than a number.
Fixed "/resetskills" always claiming no skills were leveled.
"/ResetSkills" now costs 100 credits per used skill point used, rather than 100 credits per level.
"/ResetSkills" no longer requires level 2.
Seperated colors from skill names.
Admininstration
Added "penalty" system.
Added admin command "penalize". Marks a penalty on a player. Default admin level 2.
Added cvar lmd_penaltyAddTime, the time in seconds between being able to penalize a specific player. Default 20.
Added cvar lmd_penaltyRemoveTime, the time in seconds between removing one penalty point from the player. Default 60.
Added cvar lmd_penaltyJailCount, a player who reaches this many penalties will be jailed. Default 3.
Added cvar lmd_penaltyJailTime, the time in minutes to jail a player who reaches the jail penalty count. Default 5.
Added cvar lmd_penaltyTmpbanCount, a player who reaches this many penalties will be temporarily banned. Default 6.
Added cvar lmd_penaltyTmpbanTime, the time in minutes to ban a player who reaches the temporary ban penalty count. If this value is 0, the value of g_tmpBanTime will be used. If this value is less than 0, the ban is infinite.
Authfiles can now use commands that were disabled with cmdleveldef. This allows commands to be disabled for admin level 1, but still used in specific authfiles. It is not recommended to give admin level 1 to anyone you don't trust with any and all commands.
Added announcement to the attacker if their target has god or undying turned on.
Added check for invalid hostnames. Players connecting with illegal hostnames will now be rejected.
IP tracker will now retry failed hostname grab attempts every 10 seconds. On finding new hostnames, host bans will be checked and applied.
IP tracker now tracks the last 10 names to use an ip on the current map. The tracker does not yet save ips to a file, this is in the todo list.
Renamed "role" to "auth" in the command "/myauths".
"loadit" and "mapents load" now can take the string "nodefault" as the second argument, which stops the default ents from being loaded.
Use this if loading an ent file causes duplicates. This will not fix files that have already been saved with duplicates.
God command can now be applied to others.
Changed "god" to default admin level 1.
Added "/undying" command, health will not go below 1. Can be applied to others. Default admin level 1.
Added "shield" command. Causes all shots to reflect off the specified player. Default admin level 1.
Renamed rcon command "clearcash" to "clearcredits".
Fixed a rare crash on listing admin info.
Fixed temporary bans getting lost on map changes.
Fixed corrupt ip output in logs.
Fixed admin and close chat sending logging data to the console rather than the log.
Fixed a double period on banned message.
Fixed forcepower removal in "/strip".
"/PlayerList" will now show no username instead of "(null)" if the user is not logged in.
lmd_logArchive now defaults to on.
Added command "ListIPs". Lists all ips that have connected to the server since the last restart. Can take an ip as an argument to show the last 10 names on that ip, or a partial name to search the ip of.
Added cvar "lmd_enableUnsafeCvars". Set to 1 to enable sv_allowDownload. Do not use this unless you have patched your server against the file traversal vulnurability.
"ListIPs" and "FindIP" commands added to rcon.
Removed g_cmdDisable from showing up in serverinfo.
"/PlayerIPs" now will only show players; ignore bots.
Split cheat commands into their own help category.
Added cheat commands "gravity" and "speed" to change either attribute for the map or individual players. Default level 1 admin.
Added rcon command "resetstash". Deletes stash (removing it from a player if nescessary) and respawns it.
Renamed rcon "stats" command to "accountinfo" to avoid interfering with non-dedicated server use and staying consistant with admin commands.
Attacker is no longer shown if you are attacked with god mode on.
"/anims play" can now take a textual animation name in addition to an index
Clarified muted chat in the logs.
Entities and Building
"/nearby" now shows logical ents.
Spawnpoints now support player usability keys (profession, level, and so forth).
Added "requirecredits" key to usability key list. If positive, player must have this many cr or more. If negitive, player must have less than this count.
Added lmd_event entity. Currently only fires "target" when a player enters and "exittarget" when a player leaves.
Fixed out of entity crashes on firing disruptor and vehicle weapons.
Fixed turrets not attacking anyone on the "Free" team.
Cameras will now perserve the player's view angles when exiting.
Reworked how logical entities are handled by normal game functions.
Logical entities with true origins now will be factored into entity area checks.
Added safty check for leaked spawnstrings on clearmap.
Reworked entity touch code to support logical touchables (triggers).
Added a method for testing if an ent should be spawned as logical or nonlogical.
trigger_multiple will now spawn as logical if it is not using a brushmodel for its area.
Activator type target_speaker entities (spawnflag 8) will now spawn as logical.
Added "DeathTarget" and "KillTarget" to lmd_event.
Added spawnflag 1 to lmd_event. If set, both the killer and the target must be in the trigger for "KillTarget" and "DeathTarget" to fire.
lmd_event is now a logical entity.
lmd_restrict is now logical entity.
Recreated "Trace" to show all spawnstring keys, with special output for certain keys (targets, targetname, mins/maxs, origin, ...).
Recreated "EntityList". Now a level 1 command. Shows the first 25 entities it finds from the given offset. Can search classnames and entity keys. Will later be upgraded to search for spawnstring keys.
"Blowup" now can take an entity number.
Added spawnflag 8 to lmd_restrict: restrict duelists.
Fixed trigger hurt entities always being enabled despite enable/disable events.
Fixed IP logger not logging name usage on login when the name was not previously logged due to not being allowed to use the name.
IP logger now logs account ids. Not used yet.
Removed unneeded spawner entity management code from admin "spawn" command. No longer a limit to how many vehicles a player can spawn with this command.
Fixed invalid entity number on freed logical ents, which was causing the entity scan functions to stop. Deleting a logical ent will no longer stop entities past that point from not being used by game logic (or corrupting on rare occasions).
Initial implementation of lmd_actor entity and the actor system in general.
Added "ModelScale" "TorsoAnim", and "LegsAnim" keys to lmd_actor entity.
Added "Skin" key to lmd_actor entity.
Added "Speed" key to lmd_actor entity. For use with future lmd_actor_* movement control entities.
Added "NPC_TargetName" key to lmd_actor entity. For use with future lmd_actor_* entities.
Began working on lmd_actor movement control.
Added "lmd_actor_modify" entity. Identical to lmd_actor, but modifies existing actors based on its "NPC_Target" key.
"/place" will now tell you if the classname is invalid.
Added system to report entity spawn errors to the person who spawned it with "/place". Entities will need to be individually updated to use this.
Started on actor movement code. Not usable yet.
Internal
Improved memory tracking and leak detection for debugging.
Started reworking code to free memory on shutdown to make leaks easier to detect.
Lowered maximum infostring connection packet length.
Game now logs its progress while starting up to assist with tracking down startup crashes.
Reworked spawn point selection code.
Changed the multithreading winapi call to a different type, might be more stable.
Fixed session data getting skewed on new connections (was causing issues with temporary admin).
Fixed bug in the array shift function causing crashes in ip tracking.
Reworked how interactive entities work. Interaction is now stored on the player, who constantly is sent the terminal message. Support to cancel the interaction if the player leaves a radius. This will be used in the future for remote and non-entity interactions.
Fixed memory leaks due to stupid code on npcs failing to spawn.
Cleaned up some NPC code
Finished saving/loading of map and server variables. Nothing uses this yet.
