Guides des changements de l’éditeur de carte 1.23b

JudgeHype | 12/06/2009 à 08h33 - 3

Blizzard a mis en ligne la version française du Guides des changements sur l'éditeur de cartes pour 1.23b. Je vous propose de le découvrir ci-dessous.


"Chers créateurs, soyez les bienvenus !

Ce guide a été écrit pour aider les créateurs confirmés de cartes de Warcraft 3 à comprendre les changements qui ont été réalisés sur le langage JASS. Veuillez noter que ces changements s'appliquent uniquement à un faible nombre de créateurs de cartes, et que la plupart des cartes Warcraft 3 n'ont connu aucun changement.

Note : Les cartes réalisées sous JASS qui n'auront pas été faites conformément aux nouveaux changements pourront ne pas fonctionner correctement ou ne plus fonctionner du tout après la sortie du prochain patch pour Warcraft 3.

Détails sur notre nouvelle intégration
Cette mise à jour contient 97 nouvelles fonctions de base JASS et un nouvel handle type JASS conçu pour aider les créateurs de cartes. Ces améliorations font partie d'un nouveau système de stockage dans des hashtables, très semblable à la structure du GameCache.

Alors que les fonctions originales GameCache JASS ne permettaient que de contenir des unités et des primitives JASS (Entier, Réel, Booléen et Chaîne String), les hashtables permettent de contenir la plupart des handle types JASS. Cependant, contrairement au GameCache qui utiliser des chaînes en tant que clés, les hashtables utilisent des entiers. De plus, stocker les données au sein des hashtables permet un accès plus rapide et plus sûr que si elles étaient stockées au sein du GameCache.

Les nouvelles fonctionnalités GetHandleId et StringHash sont là pour vous permettre de transformer un handle ou une chaîne string en un entier. Cela permet donc indirectement d'utiliser un handle ou une chaîne string comme hashtable key.

StringHash : StringHash utilise une chaîne string et donne un entier, un peu à la manière de S2I, mais StringHash peut être utilisé sur n'importe quelle chaîne string.

GetHandleId utilise un handle et donne un entier. GetHandleId fonctionne exactement comme les fonctions H2I. Afin d'éviter un maximum de conflits d'appellation JASS avec les cartes existantes, nous avons nommé la fonction GetHandleId. Nous demandons aux créateurs de cartes de ne pas créer de fonction GetHandleId se nommant « H2I », car nous avons l'intention d'utiliser des fonctions H2I avec JASS dans le futur.

Hashtable : Les variables hashtable peuvent être nommées en prenant « hashtable » comme type de nom. Comme indiqué précédemment, les hashtables fonctionnent de manière similaire aux objets Gamecache. Pour créer un nouveau hashtable, lancez la commande InitHashtable. Par exemple, local hashtable ht = InitHashtable(), créera un nouveau hashtable object et l'assignera à ht.

Tous les handle types partagent la même clé namespace. Par exemple, si vous lancez la fonction SavePlayerHandle suivie par SaveUnitHandle, avec les mêmes clés, alors la handle Unit sera écrasée par la handle Player. Bien que toutes les fonctions handle partagent le même key space, les fonctions SaveXHandle et LoadXHandle sont sans risque. Par exemple, lancer la fonction SavePlayerHandle suivie de local unit u = LoadUnitHandleaura pour résultat que u sera initialisé à zéro.

Tous les objets handle types sauvegardés ou retirés d'une hashtable sont automatiquement déclarés dans le reference-count (à l'exception du TextTag, Lightning, Image, Ubersplat et FogState). Ceci permet aux objets handle types d'être sauvegardés dans la hashtable sans risquer que l'un d'entre eux soit purgé de la mémoire. Les reference-counts sont mis à jour quand un objet est ajouté, purgé ou écrasé dans une hashtable.

La liste complète des nouvelles fonctions JASS est la suivante :
  • InitHashtable, GetHandleId, StringHash.
  • SaveInteger, SaveReal, SaveBoolean, SaveStr, SavePlayerHandle, SaveWidgetHandle, SaveDestructableHandle, SaveItemHandle, SaveUnitHandle, SaveAbilityHandle, SaveTimerHandle, SaveTriggerHandle, SaveTriggerConditionHandle, SaveTriggerActionHandle, SaveTriggerEventHandle, SaveForceHandle, SaveGroupHandle, SaveLocationHandle, SaveRectHandle, SaveBooleanExprHandle, SaveSoundHandle, SaveEffectHandle, SaveUnitPoolHandle, SaveItemPoolHandle, SaveQuestHandle, SaveQuestItemHandle, SaveDefeatConditionHandle, SaveTimerDialogHandle, SaveLeaderboardHandle, SaveMultiboardHandle, SaveMultiboardItemHandle, SaveTrackableHandle, SaveDialogHandle, SaveButtonHandle, SaveTextTagHandle, SaveLightningHandle, SaveImageHandle, SaveUbersplatHandle, SaveRegionHandle, SaveFogStateHandle, SaveFogModifierHandle.
  • LoadInteger, LoadReal, LoadBoolean, LoadStr, LoadPlayerHandle, LoadWidgetHandle, LoadDestructableHandle, LoadItemHandle, LoadUnitHandle, LoadAbilityHandle, LoadTimerHandle, LoadTriggerHandle, LoadTriggerConditionHandle, LoadTriggerActionHandle, LoadTriggerEventHandle, LoadForceHandle, LoadGroupHandle, LoadLocationHandle, LoadRectHandle, LoadBooleanExprHandle, LoadSoundHandle, LoadEffectHandle, LoadUnitPoolHandle, LoadItemPoolHandle, LoadQuestHandle, LoadQuestItemHandle, LoadDefeatConditionHandle, LoadTimerDialogHandle, LoadLeaderboardHandle, LoadMultiboardHandle, LoadMultiboardItemHandle, LoadTrackableHandle, LoadDialogHandle, LoadButtonHandle, LoadTextTagHandle, LoadLightningHandle, LoadImageHandle, LoadUbersplatHandle, LoadRegionHandle, LoadFogStateHandle, LoadFogModifierHandle.
  • HaveSavedInteger, HaveSavedReal, HaveSavedBoolean, HaveSavedString, HaveSavedHandle.
  • RemoveSavedInteger, RemoveSavedReal, RemoveSavedBoolean, RemoveSavedString, RemoveSavedHandle.
  • FlushParentHashtable, FlushChildHashtable."
Et voilà.

3 commentaires - [Poster un commentaire]


Chargement des commentaires...

Poster un commentaire

Vous devez vous identifier pour poster un commentaire.
Nombre de visites sur l'accueil depuis la création du site Warcraft III : 8.787.181 visites.
© Copyright 1998-2024 JudgeHype SRL. Reproduction totale ou partielle interdite sans l'autorisation de l'auteur. Politique de confidentialité.