Skip to content

Releases: zonical/zcontracts

ZContracts 0.11.2

14 Oct 23:10
Compare
Choose a tag to compare

ZContracts 0.11.2 Changelog:

  • Added a new client preference to display the status of a Contract when a player first joins the server. Can be disabled in /cpref or with the ConVar zc_open_status_on_join.
    • ⚠️ This requires a new column, open_status to be added to the preferences table. See the database/zcontracts.sql file for more information for type and default value. ⚠️
  • Added a button to the Contract status screen to open the preferences menu.
  • Patched a few more handle leaks.
  • Fixed a regression with accessing invalid StringMaps in Objectives on round start.

ZContracts 0.11.1

21 Aug 06:02
Compare
Choose a tag to compare

ZContracts 0.11.1 Changelog:

  • Fixed a Handle leak related to GetContractSchema and GetObjectiveSchema
  • All handles from GetContractSchema and GetObjectiveSchema are now properly deleted
  • Updated documentation to clarify the need for delete or CloseHandle() for GetContractSchema and GetObjectiveSchema

ZContracts 0.11.0

13 Aug 07:30
Compare
Choose a tag to compare

ZConteacts 0.11.0 Changelog:

  • Bumped Contracker version to 3
  • Massive internal code refactor in zcontracts_main
    • Removed most references to enum structs. Everything is mostly contained in Contract
    • Progress, thresholds, and timers per objective are handled in ArrayList's
    • Added IsObjectiveInfinite to Contract
    • Split event handling code into several sub-functions for code clarity
  • Refactored logic related to loading Contracts from disk
  • Removed timer related to database saving and related ConVar: zc_database_update_time. Contracts are updated in the database as soon as a change is made (e.g adding progress)
  • Fixed how GetContractObjectiveCount handled objective IDs
  • Standardised keys for Contract definition files (see zcontracts/zcontracts.inc)
  • Removed loop logic from timers
  • ZContracts will exit if -unrestricted_maxplayers is present. Can be disabled at compile time (NOT SUPPORTED)
  • Changed the Contract objective display to not show for the first time from when the player enters the game to when they spawn for the first time
  • Added new ConVar's zc_reset_thresholds_per_round and zc_reset_timers_per_round, default: 1
  • Contract Objective display is now handled as a Menu instead of a Panel

ZContracts 0.10.2

02 Jun 08:11
Compare
Choose a tag to compare

ZContracts 0.10.2 Changelog:

  • Rewrote timer logic
  • Added the ability to add and subtract time from an active timer: "add_time"/"subtract_time" in timer events
  • Time changes will be displayed in the HUD with the text turning yellow
  • Added new event: "CONTRACTS_PLAYER_SUICIDE"
  • Added new TF2 events: "CONTRACTS_TF2_PLAYER_KILL_TELEFRAG", "CONTRACTS_TF2_PLAYER_DEATH_CROC", "CONTRACTS_TF2_PLAYER_DEATH_TRAIN", "CONTRACTS_TF2_PLAYER_DEATH_FALL", "CONTRACTS_TF2_PLAYER_DEATH_SAWBLADE"

ZContracts 0.10.1

13 May 00:08
Compare
Choose a tag to compare

ZContracts 0.10.1 Changelog:

  • Fixed a bug where Objectives marked as infinite would save a progress value of zero to the database
  • The Contract HUD will no longer be displayed to spectators or unassigned players
  • SaveActiveObjectiveToDatabase now functions correctly
  • Added a library check for tf_econ_data in zcontracts_tf2

ZContracts 0.10.0

11 May 00:02
Compare
Choose a tag to compare

ZContracts 0.10.0 Changelog:

  • ⚠️zcontracts_tf2 now requires tf_econ_data to function. Please download it and install the plugin alongside this update! ⚠️
  • Added new forward, OnContractCompletableCheck, paired with the function CanClientCompleteContract
  • Added new subtract type to Contract events. Takes away the specified progress instead of adding. The HUD will be colored red when progress is subtracted.
  • Timers will now be displayed in the HUD for infinite objectives.
  • Added new weapon restrictions:
    • active_weapon_slot: The slot for the weapon set at m_hActiveWeapon (see items_game.txt)
    • active_weapon_name: The display economy name for the weapon set at m_hActiveWeapon.
    • active_weapon_classname: The classname of the weapon set at m_hActiveWeapon.
    • active_weapon_itemdef: The item definition index for the weapon set at m_hActiveWeapon.
    • inventory_item_name: The display economy name for an item in the players current inventory, weapon OR wearable.
    • inventory_item_classname: The classname for an item in the players current inventory, weapon OR wearable.
    • inventory_item_itemdef: The item definition index for an item in the players current inventory, weapon OR wearable.
  • Added new time restrictions:
    • contract_start_unixtime: The contract can be progressed after this timestamp.
    • contract_end_unixtime: The contract cannot be progressed after this timestamp.
  • Added a bunch of new testing contracts.
  • Contracts will now be saved with zero progress if a save is requested.

ZContracts 0.9.0

24 Apr 04:03
Compare
Choose a tag to compare

ZContracts 0.9.0 Changelog:

  • Bumped Contracker version to 2. Old Contract progress will continue to load.
  • Massive changes to several natives and forwards:
    • SetClientContract now only takes two parameters: client index and UUID. dont_save and dont_notify have been moved to a new function: SetClientContractEx.
    • GetClientContract now returns a UUID instead of a string. A struct can still be obtained using the new function GetClientContractStruct, but usage is discouraged.
    • Changed high-level saving functions to remove usage of enum structs and to only save the client's active contract: SaveActiveContractToDatabase and SaveActiveObjectiveToDatabase.
    • Changed OnContractObjectiveCompleted, OnContractCompleted and OnProcessContractLogic to not use enum structs.
  • Added new natives and forwards:
    • GetContractSchema: returns KeyValues of a specified Contract
    • GetObjectiveSchema: returns KeyValues of an objective in a specified Contract
    • GetContractObjectiveCount: returns the amount of objectives in a specified Contract
    • GetActiveContractProgress: gets the progress of the clients current contract
    • GetActiveObjectiveProgress: gets the progress of an objective in the clients current contract
    • SetActiveContractProgress: changes the progress of the clients active contract
    • SetActiveObjectiveProgress: changes the progress of an objective in the clients active contract
    • GetClientCompletedContracts: returns a copy of the clients active contracts. There are enum structs still embedded in the StringMap
    • CanClientActivateContract: checks to see if a client can select a specified contract
    • CanClientCompleteContract: checks to see if a client can progress a contract at that time
    • IsActiveContractComplete: returns the completion status of the clients current contract
    • HasClientCompletedContract: checks to see if a client has completed a contract
    • OnClientActivatedContract: fired when a client has selected a contract but data has not been retrieved from the database:
    • OnClientActivatedContractPost: fired when a client has selected a contract and data has been retrieved from the database
    • OnContractProgressReceived: fired when contract progress is retrieved from the database
    • OnObjectiveProgressReceived: fired when objective progress from a contract is retrieved from the database
  • Minor menu edits
  • Updated zcontracts_tf2 to reflect the native/forward changes above

ZContracts 0.8.0

19 Apr 01:20
0b2bfb5
Compare
Choose a tag to compare

ZContracts 0.8.0 Changelog:

  • Massive code reshuffle. All TF2 logic has been split into a new plugin, zcontracts_tf2. Server operators: Please remove zcontracts_tf2events from your plugins folder!
  • Added new forward OnProcessContractLogic for developers. Stops progress from being added to a Contract/Objective if a value higher than Plugin_Continue is returned.
  • DB save attempts that fail will automatically try again.
  • Enabling a contract that cannot be completed by the player (e.g map is wrong, player doesn't have right weapon equipped) will display a warning message in the HUD.

ZContracts 0.7.3

18 Mar 20:45
Compare
Choose a tag to compare

ZContracts 0.7.3 Changelog:

  • Added new "gamemode extension" system for TF2. Some gamemode variations are unable to be detected using map prefixes and gamemode logic entities. Some community gamemodes who use standard maps may also wish to create contracts that are restricted to their gamemode. The following checks are supported:
    • RED attacking BLU (Attack/Defend)
    • BLU attacking RED (Payload)
    • Symmetrical CP maps (3CP and 5CP)
  • Added new native for gamemode extensions: SetTF2GameModeExt
  • Added new forward for plugins to override the gamemode extension at the start of a map: OnTF2GameModeExtCheck. Returning Plugin_Changed or higher will stop the internal check.
  • Synced event plugin version numbers to zcontracts_main
  • TF2 Events: Domination and revenge events are now triggered if they were done through an assist.
  • Control Points sample Contract now has the correct map restriction.
  • Changed the threshold value of the cart-pushing objective on the Payload sample contract to not be completeable in three seconds.

0.7.2 Release

16 Mar 19:01
Compare
Choose a tag to compare

ZContracts 0.7.2 Changelog:
⚠️ This update contains changes to the database structure. Please update your databases with the provided .sql file. ⚠️

  • Added new preference to show the amount of times a Contract has been completed on the progress HUD display (requires zc_display_hud_progress and zc_repeatable_contracts set to 1).
  • Preferences will now be marked as disabled in the preferences selection menu if the override ConVar is set to 0.
  • A message will now be sent to all players when a player completes a Contract.
  • Fixed a possible out of bounds error related to the Contracker.
  • Fixed progress HUD display not displaying if zc_display_hud_progress was set to 0 then 1.