Débugueur TES4 : aide
(v2.05)
Sommaire :
I) Comment débuguer un script ?
1) Mode d'emploi de la
version win32
II) Modification des ressources du débugueur
2) Erreurs liées à
l'utilisation du débugueur
b) Extension de la compatibilité
f) Dépendant d’Oblivion Script Extender :
2) Modifications à la
version actuelle du débugueur
Note préliminaire : le copier/coller marche avec les raccourcis clavier "Ctrl+C"/"Ctrl+V" dans la fenêtre de création de script du TESC.
Lancez le débugueur.
Allez dans le menu "Fichiers..." et choisissez "Débuguer un script". Saisissez (ou copiez/collez) le texte de votre script dans la fenêtre qui s'ouvre. Attention, si vous copiez/collez le texte depuis NotePad ou tout autre logiciel ayant une gestion limitée de la mise à la ligne, assurez vous bien que la mise à la ligne n’a pas été inutilement conservée sur le débugueur (retours à la ligne inutiles en plein milieu de lignes de code).
Si vous désirez mettre en forme automatiquement votre script, cliquez sur "Mettre en forme" (cela ne marchera que si votre enchaînement de tests est correct – si ce n’est pas le cas, votre script gardera sa mise en forme actuelle et le débugueur renverra un message d’erreur).
Vous pouvez également charger un fichier texte de votre choix pour le modifier directement dans l’éditeur de texte du débugueur.
Si tout se passe bien, le débugueur va automatiquement mémoriser votre script dans le fichier "ScriptOblivion.txt" et créer un rapport d'erreur dans le fichier "Correction de ScriptOblivion.txt" : vous n'avez plus qu'à le consulter. En cas de problème, reportez vous à la troisième partie de l'aide.
Depuis la version 2.05, vous pouvez également directement choisir vos options dans cette fenêtre pour plus de facilités. Consultez les explications sur les préférences ou le type de script pour plus de précisions sur les choix offerts.
Copiez/collez votre script dans un fichier au format texte (avec le bloc-note par exemple) dans le même répertoire que l'exécutable du débugueur.
Lancez le débugueur.
Allez dans le menu "Fichiers..." et choisissez "Débuguer un fichier". Entrez le nom de votre fichier dans la fenêtre qui s'ouvre.
Si tout se passe bien, le débugueur va automatiquement créer un rapport d'erreur dans le fichier "Correction de NOM_DU_FICHIER_CONTENANT_LE_SCRIPT" : vous n'avez plus qu'à le consulter. En cas de problème, reportez vous à la troisième partie de l'aide.
L’option "Ouvrir le fichier" vous permet d’ouvrir le fichier en dehors du débugueur pour l’éditer (utile s’il contient des erreurs).
Vous pouvez, si vous le souhaitez, modifier certains paramètres du débugueur :
a) "Traitement :
dépendant d’Oblivion Script Extender v8 ou inférieur" (option désactivée
par défaut) :
Permet à l’utilisateur de dire si son script dépend d’Oblivion Script Extender ou non. A noter que dans la version actuelle du débugueur (v2.05), seules les fonctions de la version 8 d’Oblivion Script Extender sont traitées (les fonctions des versions antérieures d’Oblivion Script Extender étant incluses dans la version 8, elles seront de facto traitées également. En revanche, les fonctions spécifiques aux versions suivantes d’Oblivion Script Extender ne le seront pas et déclencheront l’affichage d’un message d’erreur "Impossible de détecter la syntaxe.").
Ce choix sera mémorisé dans le fichier "DebugTES4.dat" si vous l'activez ou le désactivez.
b) "Interface : afficher
le rapport d'erreurs après traitement" (option activée par défaut)
:
Ouvre le rapport d'erreurs de votre script dans une nouvelle fenêtre (avec le bloc-note) une fois que la syntaxe du script a été traitée. Si vous désactivez cette option, le rapport d'erreur sera tout de même créé dans le répertoire de l'exécutable, mais ne sera pas affiché.
Ce choix sera mémorisé dans le fichier "DebugTES4.dat" si vous l'activez ou le désactivez.
c) "Interface : afficher
les informations sur le script" (option activée par défaut) :
Permet d'afficher ou non les variables et objets utilisés par le script.
Ce choix sera également mémorisé dans le fichier "DebugTES4.dat" si vous l'activez ou le désactivez.
d) "Interface : ne
pas afficher les alertes" (option désactivée par défaut) :
Permet d'afficher ou non les alertes, c’est à dire les problèmes détectés sur le script qui sont susceptibles de poser des problèmes, mais ne le feront pas forcément.
Ce choix sera également mémorisé dans le fichier "DebugTES4.dat" si vous l'activez ou le désactivez.
Cette option vous permet de spécifier le type de votre script - le débugueur affichera alors une erreur si votre script utilise les spécificités d'un des deux autres types existants. Par défaut, votre script est traité comme étant de type indéterminé (mais votre choix sera mémorisé dans le fichier "DebugTES4.dat" et réutilisé à la prochaine utilisation).
Cette option vous offre la possibilité de mettre automatiquement un script en forme (indentation des blocs if/elseif/else/endif et while/endwhile réalisée automatiquement), ce qui améliore fortement la lisibilité de votre script. Pour l’utiliser, copiez/collez votre script dans un fichier au format texte (avec le bloc-note par exemple) dans le même répertoire que l'exécutable du débugueur, lancez le débugueur, allez dans le menu "Fichiers..." et choisissez "Mettre en forme un fichier". Entrez le nom de votre fichier dans la fenêtre qui s'ouvre et appuyez sur OK : si l’enchaînement de vos tests est correct, la mise en forme est effectuée.
L’option "Ouvrir le fichier" vous permet d’ouvrir le fichier en dehors du débugueur pour l’éditer (utile si l’enchaînement des tests est incorrect).
Les ressources du débugueur correspondent à l'ensemble des éléments qui lui donnent des informations nécessaires ou utiles à son bon fonctionnement, c'est à dire les variables et les fichiers temporaires qui mémorisent vos choix.
Les variables peuvent être modifiées via les options "Préférences" et "Type de script" expliquées dans la partie I. Cependant, si vous voulez toutes les remettre par défaut, vous pouvez également utiliser l'option "Remettre par défaut" du menu "Ressources". Si vous le faites, vos choix seront mémorisés comme étant "par défaut" dans le fichier temporaire "DebugTES4.dat" et seront réutilisés lors de votre prochaine session.
Pour effacer les fichiers temporaires générés par le débugueur, vous pouvez utiliser l'option "Nettoyer l'espace" du menu "Ressources". Attention, cette option remettra à zéro le débugueur lors de votre prochaine session (comme il était immédiatement après votre téléchargement).
Le débugueur ne peut pas gérer :
Si votre script est dans un de ces cas, il est "normal" que des erreurs se produisent : le débugueur ne peut pas lire correctement votre script/ligne/objet, qui sera donc tronqué(e) et vous indiquera (probablement) une erreur là où il n'y en a pas.
Si le débugueur vous indique des variables globales, assurez vous bien qu'elles existent. Par défaut, le débugueur considère comme globale toute variable non déclarée dans le script : si vous oubliez de déclarer une variable locale, elle se trouvera donc dans la liste des variables globales du débugueur.
Si vous utilisez le mode "Débuguer un fichier" et que le débugueur vous répond systématiquement qu'il est impossible d'ouvrir le fichier, assurez vous de bien avoir rentré le nom complet du fichier (avec son extension).
Une des options des dossiers de Windows masque les extensions des fichiers dont le type est connu par l’ordinateur. Pour la retirer :
Vous devriez alors voir le nom complet de vos fichiers.
Evitez d'utiliser des fichiers au format Word (extension en ".doc") : Word a une fâcheuse tendance à rajouter automatiquement des caractères n'appartenant pas au format texte standard (par exemple, des "e dans l'o", des points de suspension mis en forme, des guillemets spéciaux...) qui ne seront pas convertis par le débugueur en leurs équivalents standard (et donc, qui ne seront pas reconnus au mieux, et feront planter le débugueur au pire).
Cette remarque vaut également pour tout autre logiciel de traitement de texte avancé qui crée automatiquement des mises en forme particulières (StarOffice, OpenOffice, etc...).
Si vous faites un copier/coller en utilisant le mode "Débuguer un script", ne copiez que du texte standard. Voyez la remarque précédente pour plus de détails. Faites également attention, si vous aviez demandé un retour automatique à la ligne dans des logiciels au traitement limité (NotePad par exemple), que les retours à la ligne artificiellement rajoutés ne soient pas conservés dans la zone de texte du mode "Débuguer un script".
Si enfin le débugueur vous indique une erreur qui n'a vraiment pas lieu d'être, ou qu'il plante sans raison, qu'il traite mal les informations, etc..., alors :
- allez voir sur le site Wiwiland si votre version du débugueur est bien la dernière en date ;
- allez voir sur le sujet dédié du forum si d’autres n’ont pas déjà eu un problème similaire ;
- contactez moi : viard-thomas@wanadoo.fr (ou la rubrique "Contact" de l'onglet "Menu d'aide" du débugueur) en précisant bien quel est le problème (et, le cas échéant, en y joignant le script qui est mal corrigé).
L'interface est codée en API Win32 : ce langage n'est à priori compatible qu'avec les plates-formes Windows.
Le débugueur a été pleinement testé sur Windows XP édition familiale et fonctionne sans soucis sur cette plate-forme. Il est théoriquement compatible avec les autres éditions de Windows XP et la plupart des versions antérieures de Windows (Windows 95, 98, 2000 et NT).
Il existe cependant un bug de messages d'erreur des tests if, endif et while non justifiés et de variables indiquées inexistantes (problème de links mal interprétés par le système d'exploitation ?? D'acquisition du fichier texte ??) constaté sur Windows 2000 et sur Windows 98 SE. Je ne garantis donc pas la pleine compatibilité sur l'ensemble des plates-formes, même si le débugueur devrait dans l'ensemble donner des résultats utilisables pour trouver ses erreurs, en gardant bien en tête que certaines sont liées à des dysfonctionnements du débugueur.
En résumé :
|
Testé |
Compatibilité |
Windows XP professionnel |
- |
+ |
Windows XP
familiale |
+ |
+ |
Windows NT |
- |
+/- |
Windows 2000 |
+ |
+/- |
Windows 98 SE |
+ |
+/- |
Windows 98 |
- |
+/- |
Windows 95 |
- |
+/- |
Autres plates-formes |
- |
- |
L’ensemble de la partie traitement a été codé en C++ et est donc théoriquement compatible avec l'ensemble des plates-formes. Cependant, il doit être recompilé avec le compilateur de votre plate-forme pour fonctionner correctement. L’interface a déjà été codée en version shell (une basique fenêtre console) dans les sources fournies, mais si vous souhaitez le remanier, le code a été annoté pour vous faciliter la tâche. Si vous utilisez directement la version Shell, attention : certaines des commandes utilisent des fonctions utilisables uniquement sous certains environnements (par exemple, la commande "cls" pour nettoyer l’affichage de la fenêtre de commande). Si vous souhaitez les utiliser, il vous faudra l’adapter (en l’occurrence, remplacer le cls par la bonne commande - qui varie selon votre plate-forme).
Si vous n’êtes pas familiers avec la compilation, vous pouvez trouver un petit tutorial par ici : Tutorial de compilation maison
Je vous conseille vivement de nommer l’exécutable que vous aurez créé "DebugueurTES.exe" (attention à ne pas faire d’erreurs de majuscules ou d’accents) : si vous veniez à utiliser en parallèle la version shell et la version win32, cela vous permettrait d’utiliser directement les options déjà incluses pour passer de l’une à l’autre.
Attention, il semble que même sur un exécutable compilé soi même, la compatibilité soit partielle ! Sur une plate-forme Windows 2000 avec la version Morrowind, les bugs de variables fantaisistes et de triples erreurs de test ne se produisaient plus, mais une liste des erreurs vide s’ouvre systématiquement même sur un script propre (merci à Nerwal). Je ne peux donc pas vous garantir une pleine compatibilité, même sur une compilation maison !
Merci à CGI et Laurent Niemann pour leurs tutoriaux sur la programmation Win32, sans lesquels l'interface du débugueur se serait limitée à une pauvre petite fenêtre console ! ^^ Leurs tutoriaux peuvent être trouvés aux adresses suivantes :
- http://chgi.developpez.com/windows/ (CGI)
- http://win32.planet-d.net/tut_w/chap1.htm
(Laurent Niemann)
Merci pour les retours de bug à...
- Angora (problème sur le traitement de la fonction MessageBox - v1.0),
- Orann (chaînes de caractères des IDs vides - v1.0),
- Dradeel (mauvaise gestion des incompatibilités de type d'objet, impossibilité d'utiliser des références avec SetEssential - v1.02),
- Citamagon (fonction IsSpellTarget mal écrite dans le débugueur - v1.02),
- Citamagon & tuor_endmaril (absence de gestion des opérateurs logiques "&&" et "||" dans les commandes - v1.03),
- Kephuro (erreur des numéros de ligne où l’erreur a été commise - v2.02),
- Nerwal (verrouillage du mode "Débuguer un script" au delà de 5000 caractères, problème des guillemets pour les variables locales externes - v2.03),
- Naalu Naiglemez (fonction GetEquipped oubliée – v2.04),
- Kalas (problèmes de gestion des commandes pour les scripts d’effet magique – v2.04),
- Alliop (bug de mise en forme, dans la fonction MessageBox, dans la fonction "Set … to …" - v2.05).
Un grand merci à Nerwal pour ses tests très (!) complets sur la version Morrowind, dont a largement bénéficié la version Oblivion. (v2.03)
Merci à Alliop pour ses tests lors du débuguage de Nova Magica sous Morrowind, qui ont permis de corriger bien des bugs au moins dans le débugueur Morrowind et par la suite, dans ce débugueur ! ^^ (v2.05, héritée de la v2.03 de Morrowind)
Merci à Dradeel pour m'avoir signalé le problème des tabulations qui passent à la compilation dans le TESC oblivionesque, mais font "sauvagement planter in-game" ^^ - et pour m'avoir conseillé pour mettre en place la correction de façon aisée sur le débugueur ! (v1.01)
Merci à Squallynou et à DaesDemon pour la liste complète des fonctions sur Oblivion, incluant des fonctions existantes dans le TESC2 mais non référencées sur le Wiki des ElderScrolls (la plupart de ces fonctions sont pour l'instant non documentées : si quelqu'un sait comment elles s'utilisent, ne pas hésiter à me contacter !). (v1.01)
Merci à Squallynou pour l'idée d'une version Shell !
Merci à Duncan Imrryran pour les précisions sur les possibilités du multi-plateforme et l’idée d’un code source en "open source" !
Merci à Fandorn Delavie pour son idée d’un outil de mise en forme automatique, et à Nerwal pour l’idée du traitement des parenthèses ! (v2.04)
Merci à Mordicus pour ses idées d’amélioration de l’interface - fermeture des fenêtres de dialogues seulement quand elles ne sont plus nécessaires ! (v2.04)
Merci à tous ceux qui m'ont encouragé et m'encouragent à développer ce débugueur sur le sujet dédié du forum de Wiwiland !
Enfin, merci à toute la communauté de Morrowind en général, et de Wiwiland en particulier, pour les bons moments qu'elle m'a fait passer !
Nenfëa
· Activate · AddAchievement · AddFlames · AddItem
· AddScriptPackage · AddSpell · AddTopic · AdvancePCLevel (advLevel)
· AdvancePCSkill (advSkill) · AutoSave · Cast
· CloseCurrentOblivionGate · CloseOblivionGate · CompleteQuest
· Disable · DisableLinkedPathPoints · DisablePlayerControls
· Dispell · DispellAllSpells · Drop · DropMe
· DuplicateAllItems · DuplicateNPCStats · Enable · EnableFastTravel (EnableFast)
· EnableLinkedPathPoints · EnablePlayerControls
· EquipItem (EquipObject) · EssentialDeathReload
· EvaluatePackage (evp) · ForceActorValue (ForceAV)
· ForceCloseOblivionGate · ForceFlee (Flee) · ForceTakeCover (TakeCover)
· ForceWeather (Fw) · GoToJail ·
KillActor (Kill) · KillAllActors
(KillAll)
· Lock · Look ·
LoopGroup · Message
· MessageBox · ModActorValue (modAV) ·
ModAmountSoldStolen
· ModBarterGold · ModCrimeGold · ModDisposition ·
ModFactionRank
· ModFactionReaction ·
ModPCAttribute (modPCA)
· ModPCFame · ModPCInfamy ·
ModPCMiscStat (modPCMS)
· ModPCSkill (modPCS) · ModScale · MoveTo
· MoveToMarker · PayFine · PayFineThief ·
PickIdle
· PlaceAtMe · PlayBink ·
PlayGroup ·
PlayMagicEffectVisuals (pme)
· PlayMagicShaderVisuals (pms) · PlaySound · PlaySound3D
· PositionCell (posCell) ·
PositionWorld (posWorld)
· PreLoadMagicEffect ·
RefreshTopicList ·
ReleaseWeatherOverride
· RemoveAllItems · RemoveFlames · RemoveItem ·
RemoveMe
· RemoveScriptPackage · RemoveSpell · Reset3Dstate
· ResetFallDamageTimer · ResetHealth · ResetInterior
· ResurrectActor (Resurrect) · Rotate · SameFaction
· SameFactionAsPC · SameRace ·
SameRaceAsPC · SameSex
· SameSexAsPC · Say ·
SayTo ·
ScriptEffectElapsedSeconds
· SelectPlayerSpell (SPSpell) · SendTrespassAlarm · SetActorAlpha (SAA)
· SetActorFullName · SetActorRefraction · SetActorValue (setAV)
· SetAlert · SetAngle ·
SetAtStart · SetBarterGold
· SetCellFullName · SetCellOwnership · SetCellPublicFlag · SetClass
· SetCombatStyle (SetCS) · SetCrimeGold · SetDestroyed
· SetDoorDefaultOpen ·
SetEssential ·
SetFactionRank
· SetFactionReaction · SetForceRun · SetForceSneak ·
SetGhost
· SetIgnoreFriendlyHits (sifh) · SetInCharGen · SetInvestmentGold
· SetItemValue · SetLevel · SetNoRumors ·
SetOpenState
· SetOwnership · SetPCExpelled · SetPCFactionAttack · SetPCFactionMurder
· SetPCFactionSteal · SetPCFactionSubmitAuthority · SetPCFame
· SetPCInfamy · SetPCSleepHours ·
SetPackDuration (SPDur)
· SetPos · SetQuestObject · SetRestrained ·
SetRigidBodyMass
· SetScale · SetSize ·
SetShowQuestItems · SetStage
· SetUnconscious · SetWeather (Sw) · ShowBirthsignMenu · ShowClassMenu
· ShowDialogueSubtitles ·
ShowEnchantment · ShowMap
· ShowRaceMenu · ShowSpellMaking · SkipAnim ·
StartCombat
· StartConversation · StartQuest · StopCombat ·
StreamMusic
· StopCombatAlarmOnActor (scaOnActor) · StopLook ·
StopMagicEffectVisuals (sme)
· StopMagicShaderVisuals (sms) · StopQuest · StopWaiting
· TrapUpdate ·
TriggerHitShader (ths) ·
UnequipItem (UnequipObject)
· Unlock · VampireFeed · Wait · WakeUpPC
· Yield
· CanHaveFlames · CanPayCrimeGold · GetActorValue (getAV)
· GetAlarmed · GetAmountSoldStolen · GetAngle
· GetArmorRating · GetArmorRatingUpperBody · GetAttacked
· GetBarterGold · GetBaseActorValue (getBaseAV) · GetButtonPressed
· GetClassDefaultMatch · GetClothingValue · GetCrime
· GetCrimeGold · GetCrimeKnown · GetCurrentAIPackage
· GetCurrentAIProcedure · GetCurrentTime · GetCurrentWeatherPercent (getWeatherPct)
· GetDayOfWeek · GetDead · GetDeadCount · GetDestroyed
· GetDetected · GetDetectionLevel · GetDisabled · GetDiseased
· GetDisposition · GetDistance · GetDoorDefaultOpen · GetEquipped
· GetFactionRank · GetFactionRankDifference · GetFactionReaction
· GetFatiguePercentage (getFatigue) · GetForceRun · GetForceSneak
· GetFriendHit · GetFurnitureMarkerID · GetGameSetting (getGS)
· GetGlobalValue · GetGold · GetHeadingAngle · GetIdleDoneOnce
· GetIgnoreFriendlyHits (gifh) · GetInCell · GetInCellParam
· GetInFaction · GetInSameCell · GetInWorldspace · GetInvestmentGold
· GetIsAlerted · GetIsClass · GetIsClassDefault · GetIsCreature
· GetIsCurrentPackage · GetIsCurrentWeather
· GetWeather · GetIsGhost · GetIsID · GetIsPlayableRace
· GetIsPlayerBirthsign (getPBS) · GetIsRace · GetIsReference
· GetIsSex · GetIsUsedItem · GetIsUsedItemType · GetItemCount
· GetKnockedState · GetLineOfSight (getLOS) · GetLevel
· GetLockLevel · GetLocked · GetNoRumors · GetOfferServicesNow
· GetOpenState · GetPCExpelled · GetPCFactionAttack
· GetPCFactionMurder · GetPCFactionSteal · GetPCFactionSubmitAuthority
· GetPCFame · GetPCInFaction · GetPCInfamy · GetPCIsClas
· GetPCIsRace · GetPCIsSex · GetPCMiscStat (getPCMS)
· GetPCSleepHours · GetPlayerControlsDisabled · GetPlayerHasLastHorseRidden
· GetPOS · GetQuestRunning (getQR) · GetRandomPercent
· GetRestrained · GetScale · GetScriptVariable · GetSecondsPassed
· GetShouldAttack · GetSitting · GetSleeping · GetStage
· GetStageDone · GetStartAngle · GetStartingPos · GetTalkedToPC
· GetTalkedToPCParam · GetTimeDead · GetTrespassWarningLevel
· GetUnconscious · GetUsedItemLevel · GetVampire · GetWalkSpeed (getWalk)
· GetWeaponAnimType · GetWeaponSkillType
· GetWindSpeed · HasFlames · HasMagicEffect · HasVampireFed
· IsActionRef · IsActor · IsActorAVictim · IsActorDetected
· IsActorEvil · IsActorsAIOff · IsActorUsingATorch · IsAnimPlaying
· IsCellOwner · IsCloudy · IsContinuingPackagePCNear
· IsCurrentFurnitureObj · IsCurrentFurnitureRef
· IsEssential · IsFacingUp · IsGuard · IsHorseStolen
· IsIdlePlaying · IsInCombat · IsInDangerousWater · IsInInterior
· IsInMyOwnedCell · IsLeftUp · IsOwner · IsPCAMurderer
· IsPCSleeping · IsPlayerInJail · IsPlayerMovingIntoNewSpace
· IsPlayersLastRiddenHorse · IsPleasant · IsRaining
· IsRidingHorse · IsRunning · IsShieldOut · IsSneaking
· IsSnowing · IsSpellTarget · IsSwimming · IsTalking
· IsTimePassing · IsTorchOut · IsTrespassing · IsTurnArrest
· IsWaiting · IsWeaponOut · IsXBox · IsYielding
· MenuMode · WhichServiceMenu
· CreateFullActorCopy · DeleteFullActorCopy
· GetActionRef (getAR) · GetCombatTarget · GetContainer
· GetPackageTarget · GetParentRef · GetSelf · This
· GameMode · MenuLMode · OnActivate · OnActorEquip
· OnActorUnequip · OnAdd · OnAlarm · OnAlarmVictim
· OnDeath · OnDrop · OnEquip · OnHit
· OnHitWith · OnKnockOut · OnLoad · OnMagicEffectHit
· OnMurder · OnPackageChange · OnPackageDone · OnPackageEnd
· OnPackageStart · OnReset · OnSell · OnStartCombat
· OnTrigger · OnTriggerActor · OnTriggerMob · ScriptEffectFinish
· ScriptEffectStart · ScriptEffectUpdate
· CSize · GetQuestVariable · GetPersuasionNumber
· GetTotalPersuasionNumber · GetUsedItemActivate
Note : les fonctions dépendant d’Oblivion Script Extender sont traitées jusqu’à la version 8 du logiciel. Au delà, elles renverront un message d’erreur "Impossible de détecter la syntaxe" qui n’a pas lieu d’être, du au fait que la fonction n’est pas mémorisée dans le débugueur.
· AHammerKey · Abs · Acos · ASin
· Atan · Ceil · Cos · Cosh
· DisableKey · DisableMouse · EnableKey · EnableMouse
· Exp · Floor · GetAltControl · GetBaseObject
· GetControl · GetCurrentValue · GetEquippedCurrentValue
· GetEquippedObject · GetEquippedObjectValue · GetInventoryObject
· GetKeyPress · GetNumItems · GetNumKeysPressed
· GetOBSEVersion · GetObjectType · GetObjectValue · GetParentCell
· GetPlayerSpell · con_GetINISetting · con_HairTint · HammerKey
· HoldKey · IsActivator · IsAlchemyItem · IsAmmo
· IsArmor · IsBook · IsClothing · IsContainer
· IsDoor · IsFurniture · IsIngredient · IsKey
· IsKeyPressed · IsKeyPressed2 · IsLight · IsPotion
· IsSoulGem · IsWeapon · Log · Log10
· ModActorValue2 · con_ModWaterShader · MoveMouseX
· MoveMouseY · Pow · PrintToConsole · PurgeCellBuffers
· Rand · con_RefreshINI · ReleaseKey · con_RunMemoryPass
· SetMouseSpeedX · SetMouseSpeedY · con_SetCameraFOV · con_SetClipDist
· con_SetFog · con_SetGameSetting · SetNumericGameSetting
· con_SetGamma · con_SetHDRParam · con_SetImageSpaceGlow
· con_SetINISetting · con_SetSkyParam · con_SetTargetRefraction
· con_SetTargetRefractionFire · con_SexChange · Sin
· Sinh · SquareRoot · Tan · Tanh
· TapKey · con_ToggleDetection · UnhammerKey · con_WaterDeepColor
· con_WaterReflectionColor · con_WaterShallowColor
Version 1.0 (version de base) : 21/04/2006
- vérification de la syntaxe de l'ensemble des fonctions oblivionesques
- gestion des erreurs d'enchaînement des tests if/elseif/else/endif (et while/endwhile – n’existe pas sous Oblivion, retiré à la version 2.03)
- vérification du bon ordre de la déclaration du nom du script, des déclarations des variables locales et des lignes de code
- vérification que tout le code est bien compris dans les balises Begin/End
- collecte des informations sur les objets utilisés dans le script
- gestion des variables locales externes
- gestion des incompatibilités dans l’utilisation des objets du script
- gestion des types de script - quête, effet magique, objet ou indéterminé
- etc...
- correction du traitement de la fonction MessageBox (Angora)
- correction du bug des chaînes de caractères vides autorisées (Orann)
- ajout de tout un lot de fonctions non documentées dans le Wiki ElderScrolls (Squallynou et DaesDemon)
Version 1.01 : 22/04/2006
- détection des tabulations entrées après du code, source potentielle de plantages in-game (Dradeel)
- correction du lien vers Wiwiland
- correction d'un bug potentiel d'acquisition du texte du script - points-virgules entre guillemets considérés comme des commentaires
Version 1.02 : 27/04/2006
- correction de la fonction IsSpellTarget, écrite incorrectement (Citamagon)
- ajout de l'impossibilité d'utiliser des références avec SetEssential (Dradeel)
- correction de la mauvaise gestion des compatibilités entre types d'objets (Dradeel)
- amélioration de la vitesse de traitement du débugueur
Version 1.03 : 29/04/2006
- ajout des opérateurs logiques "&&" et "||" dans la gestion des commandes (Citamagon et tuor_endmaril)
Version 1.04 : 01/05/2006
- correction d'un bug d'acquisition du script pour les tests - on ne tenait pas compte des commentaires
- correction de la fonction IsPlayersLastRiddenHorse, écrite incorrectement
- ajout de la commande OnPackageEnd, oubliée dans les versions précédentes
- correction de la fonction EvaluatePackage (Evp) qui peut être utilisée seule
- correction des fonctions Say et SayTo, qui peuvent renvoyer une valeur de type float
- correction de la fonction ForceActorValue (ForceAV) qui traitait mal les statistiques
- correction de la gestion des compatibilités avec les objets de type QUETE
- amélioration de la gestion des variables externes, le log final ajoute désormais l'objet auquel elles sont attachées
Version 2.0 : 03/05/2006
- ajout d'une version Shell, qui était censée être compatible avec l'ensemble des plates-formes possibles
(en fait, c’est vrai à condition de la compiler soi même sous sa propre plate-forme, merci à Duncan pour les infos !)
Version 2.01 : 25/05/2006
- correction d'un bug d'affichage qui empêchait d'afficher la dernière ligne
- légère amélioration de l'interface de la version win32 (ajout d'ascenseur au mode "Débuguer un script" et possibilité de réduire les dialogues)
- ajout des options "Nettoyer l'espace de travail" et "Remettre par défaut"
Version 2.02 : 01/06/2006
- correction d'un bug sur les numéros des lignes dans les fonctions renvoyant une valeur (Kephuro)
- retrait de la version Shell, mais ajout du code source compilable soit même (Duncan Imrryran)
- passage de l’aide au format htm et adaptation de l’exécutable en conséquence
Version 2.03 : 17/06/2006
- verrouillage du mode "Débuguer un script" au delà de 5000 caractères (Nerwal)
- correction d’un bug de traitement des variables externes si l’ID de l’objet auquel elle sont associées est entre guillemets (Nerwal)
- correction du traitement redondant des fonctions WakeUpPC, DisablePlayerControls et EnablePlayerControls
- correction de la fonction GetSleeping, mal orthographiée
- retrait des blocs de test While/Endwhile, qui n’existent plus sous Oblivion
- correction de la fonction KillActor (Kill), qui accepte comme paramètre optionnel l’ID du meurtrier
- correction des fonctions Message et MessageBox, qui ne peuvent accepter que 9 variables à afficher au maximum
- traitement des fonctions StreamMusic et IsActorsAIOff, désormais documentées sur le Wiki ElderScrolls
- correction des fonctions non documentées, qui n’étaient pas détectées dans les expressions
- ajout de la fonction RemoveSpell dans la liste des fonctions renvoyant une valeur
- ajout de la fonction CreateFullActorCopy dans la liste des fonctions pouvant être utilisées seules
- correction d’un bug lié à l’utilisation de virgules après les axes x, y ou z
- petite modification des mentions du débugueur
Version 2.04 : 09/07/2006
- les fenêtres de dialogue ne se ferment plus si un problème a été détecté (Mordicus)
- ajout d’un outil de mise en forme automatique (Fandorn Delavie & Nerwal)
- ajout de la fonction GetEquipped qui avait été oubliée (Naalu Naiglemez)
- amélioration des messages d’erreur pour les commandes des scripts d’effet magique (Kalas)
- possibilité de charger un fichier dans l’option "Débuguer un script"
- mémorisation du nom du dernier fichier débugué dans les fenêtres de dialogue "Charger un fichier", "Débuguer un fichier" et "Mettre en forme un fichier"
- possibilité d’ouvrir le fichier extérieurement au débugueur dans les fenêtres de dialogue "Débuguer un fichier" et "Mettre en forme un fichier"
Version 2.05 : 27/09/2006
- correction d’un bug en utilisant des variables avec un underscore dans les fonctions Message et MessageBox (Alliop)
- correction d’un bug lorsqu’on utilise deux espaces après le "Set" dans la fonction "Set … to …" (Alliop)
- correction d’un bug de mise en forme : les lignes sans code, mais contenant des espaces, décalaient les tabulations (Alliop)
- petites améliorations du readme (Alliop)
- traitement des fonctions d’Oblivion Script Extender v8 (ou inférieur) si le mod en dépend
- améliorations de l’interface - défilement horizontal dans les zones de texte, améliorations des menus, couleur du texte dans la fenêtre principale, mode "Débuguer un script"
- les boîtes de dialogues sont désormais non modales : les menus de la fenêtre principale restent accessibles même si une boîte de dialogue est ouverte
- possibilité de n’afficher que les erreurs au sens strict et pas les alertes
- affichage d’alertes si le script contient des objets commençant par un underscore "_" (risques de bugs in-game)