Releases: zonical/zcontracts
Releases · zonical/zcontracts
ZContracts 0.11.2
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 ConVarzc_open_status_on_join
.⚠️ This requires a new column,open_status
to be added to thepreferences
table. See thedatabase/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
ZContracts 0.11.1 Changelog:
- Fixed a Handle leak related to
GetContractSchema
andGetObjectiveSchema
- All handles from
GetContractSchema
andGetObjectiveSchema
are now properly deleted - Updated documentation to clarify the need for
delete
orCloseHandle()
forGetContractSchema
andGetObjectiveSchema
ZContracts 0.11.0
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
toContract
- Split event handling code into several sub-functions for code clarity
- Removed most references to enum structs. Everything is mostly contained in
- 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
andzc_reset_timers_per_round
, default: 1 - Contract Objective display is now handled as a Menu instead of a Panel
ZContracts 0.10.2
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
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
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 functionCanClientCompleteContract
- 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
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
anddont_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.
- SetClientContract now only takes two parameters: client index and UUID.
- 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
ZContracts 0.8.0 Changelog:
- Massive code reshuffle. All TF2 logic has been split into a new plugin,
zcontracts_tf2
. Server operators: Please removezcontracts_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
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
. ReturningPlugin_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
ZContracts 0.7.2 Changelog:
- Added new preference to show the amount of times a Contract has been completed on the progress HUD display (requires
zc_display_hud_progress
andzc_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.