La majeure partie du patch concerne le mode avec otages. L’otage est désormais un objet CSHostage à part entière, et la carte peut suivre chacun de ses mouvements, de la première tentative pour le ramasser jusqu’à son sauvetage ou sa mort.
Si vous jouez uniquement en matchmaking, rien ne change pour vous en jeu : la liste des modifications du 22 octobre ne comporte qu’une rubrique, MAP SCRIPTING. Les nouvelles fonctionnalités arriveront dans les cartes du Workshop et les modes personnalisés lorsque leurs créateurs mettront leurs scripts à jour.
L’otage n’est plus un simple modèle muet
CSHostage dispose désormais des méthodes IsBeingPickedUp, IsBeingCarried et IsRescued. Le script sait si l’otage est en train d’être ramassé, s’il est transporté et s’il a été conduit jusqu’à la zone de sauvetage. GetRescuer renvoie le nom de son sauveteur, tandis que GetPickUpStartTime et GetPickUpFinishTime indiquent le début et la fin de la prise en charge. De son côté, CSPlayerPawn.GetHostage permet aussi de vérifier ce lien à partir du joueur.
De nouvelles méthodes s’accompagnent d’événements auxquels la carte peut réagir immédiatement.
- OnHostagePickUpStart se déclenche dès qu’un joueur commence à ramasser un otage.
- OnHostagePickUpAbort signale une tentative interrompue.
- OnHostagePickUp se déclenche quand l’otage est ramassé.
- OnHostageDrop signale que l’otage a été lâché.
- OnHostageRescue signale le sauvetage de l’otage.
- OnHostageKill se déclenche lorsque l’otage meurt.
Le créateur d’une carte peut, par exemple, attribuer des points après un sauvetage ou déclencher l’alarme dans la base des terroristes dès que les antiterroristes attrapent un otage.
Console et GameRules récupèrent une partie des fonctions d’Instance
Valve a ajouté deux nouvelles sections de premier niveau. Console regroupe tout ce qui concerne les variables de console. On peut en récupérer la valeur dans le type souhaité (GetConvarBoolean, GetConvarNumber, GetConvarString, GetConvarVector, GetConvarQAngle, GetConvarColor) et la modifier avec SetConvar. Cette dernière méthode n’est pas soumise à sv_cheats et s’exécute de façon synchrone : la nouvelle valeur est donc active dès la ligne suivante du script.
| Avant | Après |
|---|---|
| Instance.Msg | Console.Log |
| Instance.ClientCommand, ServerCommand, RegisterCheatCommand | Les mêmes méthodes dans Console |
| Instance.IsWarmupPeriod, IsFreezePeriod, IsTeamIntroPeriod | Les mêmes méthodes dans GameRules |
| Instance.GetRoundsPlayed, GetRoundRemainingTime, SetRoundRemainingTime | Les mêmes méthodes dans GameRules |
| Instance.AddTeamMoney | GameRules.AddTeamMoney |
GameRules dispose aussi de nouvelles méthodes. StartWarmup et EndWarmup démarrent et arrêtent l’échauffement, GetTeamScore et AddTeamScore consultent et modifient le score d’une équipe, et TerminateRound met fin à la manche. Le script de la carte peut maintenant décider lui-même quand elle se termine.
Les anciens noms fonctionnent encore, mais sont désormais considérés comme obsolètes. Le renommage est purement mécanique : mieux vaut donc mettre à jour les appels dès maintenant, tant qu’ils sont encore peu nombreux dans le projet.
Le script sait si les ressources ont été chargées par tous les joueurs
Instance.Precache renvoie un objet CSPrecache. IsServerLoading et IsServerLoaded indiquent si la ressource est en cours de chargement ou déjà chargée sur le serveur. IsClientLoading et IsClientLoaded font de même côté client. IsLoadedForAll permet de vérifier si elle est prête pour tous les joueurs. Quand elle n’est plus nécessaire, Release la libère.
Interface, radar et correctifs
Le reste du patch regroupe de petits ajustements et des correctifs. La disposition d’interface personnalisée (custom_hud_layout) accueille deux classes de premier niveau, HUD_TEAMMENU_VISIBLE et HUD_CHAT_VISIBLE. Elle peut ainsi changer lorsque le menu de sélection d’équipe ou le chat est ouvert. L’élément radar_element apparaît désormais sur le radar dans tous les modes, et pas seulement en Rush.
- GameRules.AddTeamMoney ne fait plus planter le jeu si on lui transmet la raison CSTeamMoneyReason.NONE.
- Les valeurs des énumérations CSTeamMoneyReason et CSWeaponAttackType correspondent désormais à la description des types dans point_script.d.ts.
- CSRadarPoint.IsVisibleToTeam et CSObservablePoint.IsObservableForTeam renvoient désormais une valeur booléenne, et non un nombre.
- Les avertissements du journal affichent la pile d’appels JavaScript et donnent plus de détails sur les arguments incorrects. La numérotation des arguments commence à 0, et non à 1.
- Convar
- Variable de console du jeu, comme un paramètre du serveur ou du client, que l’on peut consulter et modifier.
- sv_cheats
- Paramètre du serveur qui déverrouille certaines commandes de la console.
- Precache
- Chargement à l’avance des modèles, des sons et d’autres ressources avant qu’ils ne soient nécessaires en jeu.
Guides















