Page 1 sur 1

SublimePapyrus

Posté : 19 déc. 2015, 04:40
par Kesta
SublimePapyrus
Image
Auteur : MrJack

Téléchargement : Lien Nexus



Description

Pour le dire simplement, il s'agit à l'heure actuelle de la façon la plus complète, performante, et compréhensive de travailler avec des scripts papyrus.

Il s'agit d'un package pour Sublime Text, un éditeur de texte avancé (à l'image de Notepad++), qui lui ajoute de nombreuses fonctions dédiées aux scripts papyrus, transformant Sublime Text en un véritable environnement de développement.

Il s'agit également du seul encore mis à jour régulièrement à ma connaissance.

En plus de snippets beaucoup plus complets que les autres éditeurs, il inclut des addons pour la plupart des librairies de ressources additionnelles (SKSE, SkyUI, PapyrusUtil, JContainers, ...), et des fonctions de compilation plus avancées.



Installation et Configuration

Vous aurez au préalable besoin de Sublime Text 2 ou Sublime Text 3 (l'éditeur de texte pour lequel ce package est conçu).

Les différences entre ST2 et ST3 n'ont pas la moindre importance dans le cadre du modding. Par principe, je vous invite à prendre la toute dernière, ST3 : Téléchargement Sublime Text 3
Sur ce lien, cliquez sur "Windows 64-bits" (ou juste "Windows" si vous avez un windows 32 bits), et lancez l'installeur à la fin du téléchargement.

Une fois installé, lancez Sublime Text, histoire qu'il mette en place sa configuration. Toujours dans Sublime Text, cliquez sur Preference-> Browse Packages
Image
Ca vous emmène quelque part dans le dossier dédié aux packages Sublime Text, mais pas tout à fait celui qui nous intéresse. Vous vous trouvez dans ...\Sublime Text 3\Packages, mais vous voulez aller dans ...\Sublime Text 3\Installed Packages, donc remontez d'un cran dans windows explorer, puis allez dans le dossier Installed Packages

Laissez ce dossier ouvert, allez sur la page nexus de SublimePapyrus (lien en haut de page), et téléchargez manuellement le fichier principal. Extrayez l'archive directement dans le dossier ...\Sublime Text 3\Installed Packages dans lequel on s'est rendu précédemment. Les fichiers *.sublime-package doivent donc se trouver directement dans le dossier Installed Package.


Cette partie en spoiler ne plus d'actualité
► Afficher le texte
*****************************


Certaines choses ne sont plus d'actualité, notamment la partie concernant la création du fichier .ini, cela ne semble plus supporté (et nécessaire) avec le dernier package. Pour arriver à faire compiler un script par SublimePapyrus il m'a fallu tâtonner et rechercher dans différents forums du Nexus. Pour créer les chemins d'accès nécessaires, il faut désormais modifier les préférences via Preferences > Packages Settings > SublimePapyrus > Settings - Defaut.
La zone qui nous intéresse est la suivante :

Code : Tout sélectionner

		"skyrim":
		{
			"title": "The Elder Scrolls V: Skyrim",
			"compiler":"",
			"flags":"TESV_Papyrus_Flags.flg",
			"output": "",
			"import": [],
			"arguments": []
		},
Comme il n'est pas possible de modifier les préférences ici, j'ai copié l'ensemble (pas seulement le code ci-avant) et l'ai collé dans Settings - User. Il faut ensuite spécifier les chemins d'accès pour 'compiler' (là où se trouve le compilateur du CK), 'output' (le dossier de sortie), et 'import' (là où il faut aller chercher les sources). À noter que la zone pour Fallout4 a l'air identique.

Voici le résultat pour mon cas :

Code : Tout sélectionner

		"skyrim":
		{
			"title": "The Elder Scrolls V: Skyrim",
			"compiler":"D:/Steam/SteamApps/common/Skyrim/Papyrus Compiler/PapyrusCompiler.exe",
			"flags":"TESV_Papyrus_Flags.flg",
			"output": "D:/Sources/Mods Skyrim/Scripts",
			"import": ["D:/Steam/SteamApps/common/Skyrim/Data/Scripts/Source"],
			"arguments": []
		},
Attention, si vous copiez les chemins d'accès depuis les dossiers, les slashs seront \ et SublimePapyrus ne les comprendra pas, les colorera en fuchsia-moche-gerbant. J'ai volontairement mis le dossier 'output' dans un répertoire qui n'a rien à voir avec le jeu, au final les .pex doivent se trouver dans \Skyrim\Data\scripts pour que le jeu les utilise.




Il nous reste une dernière chose à faire pour nous trouver dans un configuration optimale :

Naviguez dans votre dossier ...\Data\Scripts\Source, sélectionnez n'importe quel fichier *.psc avec un clique droit et faites Ouvrir avec -> Choisir le programme par défaut..., cliquez sur Parcourir... et naviguez jusqu'au dossier d'installation de Sublime Text choisit à l'installation (probablement dans Program Files) et sélectionnez sublime_text.exe
Image
Vérifiez sur la case Toujours utiliser le programme sélectionné pour ouvrir ce type de fichier est bien cochée, et sur Sublime Text et sélectionnez avant de presser sur OK.

Et le tour est joué, vous pouvez maintenant ouvrir des scripts source directement dans Sublime Text avec un simple double-clique !



Utilisation

Lorsque vous écrivez vos scripts, la syntaxe sera automatiquement mise en couleur de façon esthétique, afin de rendre le script beaucoup plus lisible.

Pour utiliser des "snippets", c'est à dire des bouts de code semi-automatique, commencez à taper le nom de l'event ou de la fonction souhaitée. Une liste de "suggestions" contextuelle s'affiche, et s'affine au fur et à mesure que vous tapez. Vous pouvez utiliser les flèches haut et bas pour monter/descendre dans la liste, et appuyer sur Tab pour générer automatiquement le snippet associé.

Par exemple, pour ajouter un event OnHit à votre script, vous pouvez simplement taper "onh" puis appuyer sur Tab, et SublimePapyrus vous générera de lui-même le bloc complet :

Code : Tout sélectionner

Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
	
EndEvent
Remarquez également que la liste vous donne de nombreuses indications, telles que les scripts pour lesquels cet event / fonction est défini, ou à quelle package elle appartient (Vanilla, SKSE, SkyUI, ...)

Ce qui est quand même beaucoup plus simple de taper tout ça à la main :D sans compter le fait que si vous ne connaissez pas tous les arguments par cœur, ça vous évite d'aller chercher la définition complète sur le wiki du CK. Et oui, vous allez pouvoir augmenter votre productivité par 10 :pompom:


Et finalement, pour compiler votre script me direz vous ?

Vous avez le choix entre deux raccourcis (qui font exactement la même chose) : Ctrl+B ou bien F7

Par défaut, en mode automatic, utiliser ce raccourci vous fera apparaître un petit cadre similaire à celui qu'on a eu pour générer le fichier INI lors de l'installation, avec 2 options : Papyrus ou Papyrus - Batch

Si vous cliquez sur Papyrus, vous allez compiler le script sur lequel vous travaillez.
Si vous cliquez sur Papyrus - Batch, vous allez compiler l'intégralité de scripts dans le dossier Source... autant dire les scripts de tout Skyrim et tous les mods présents, ce que vous ne voulez pas, parce que ça sert à rien, que vous risquez de compilez des trucs qui ne devraient pas l'être, et que ça va prendre 1 heure. Pour exploiter cette fonctionnalité, il faudra utiliser les fonctions avancées exposée dans un futur tuto ;) (rappelez vous qu'on à ignoré une partie de la configuration dans le fichier .ini pour le moment).

Donc, vous voulez juste cliquer sur Papyrus. Pour que cette option soit automatique lorsque vous pressez sur la touche de raccourci (plutôt que de vous ouvrir ce choix), allez dans Tools -> Build System et choisissez Papyrus.


Et voilà tout ce que vous avez à savoir pour les bases ! Happy Modding :)

► Afficher le texte

Re: [Outils] [Scripts] SublimePapyrus

Posté : 09 janv. 2016, 18:20
par thorel31
J'ai un souci pour compiler un script .PSC :

Voici ce que Sublime Text 3 m'affiche :
Cliquer sur l'image :

Image

Et voici le SublimePapyrus.ini :
(en blanc pour être plus lisible ; je l'ai bien créé et enregistré avec Sublime Text 3 au départ)

Image

Re: [Outils] [Scripts] SublimePapyrus

Posté : 09 janv. 2016, 20:17
par thorel31
C'est bon j'ai compris mon erreur. Par contre, je vais devoir réinstaller mon jeu. :(

Re: [Outils] [Scripts] SublimePapyrus

Posté : 10 janv. 2016, 17:03
par thorel31
Après de gros changements et une réinstallation différente et propre, j'ai enfin réussi à recompiler le script PSC.

Cliquer sur l'image :

Image

Par contre, j'ai dû enlever le dossier des scripts SKSE dans le .INI (comme autre source de scripts et que je voulais rajouter vu que le mod concerné requiert SKSE), la compilation ne fonctionne pas si j'ajoute les scripts SKSE, des centaines d'erreurs sont affichées et la compilation échoue.

Voici le .INI sans le dossier SKSE, qui fonctione malgré tout, sans erreurs (lors de la compilation, voir image ci-dessus) :

Image

Edit :

Une chose que j'ai constaté et qui devrait aider d'autres moddeurs novices, sachant que ce n'est pas inscrit dans le tuto de ce topic :

Compiler un script .PSC en .PEX peut requérir la présence, dans le dossier ..\scripts\source (scripts PSC), d'autres scripts qui doivent être décompilés eux aussi (en PSC) s'ils sont liés au script à compiler (des commandes, variables, instructions, fonctions et autres qu'utilise le script mais qui sont définies dans un autre script).

Ainsi, un script PSC peut avoir besoin d'autres PSC (donc décompilés préalablement en PSC à partir des scripts .PEX) pour fonctionner et pour être recompilé.

C'est l'une des raisons pour laquelle je n'arrivais pas à compiler mon script PSC concerné.

Re: [Outils] [Scripts] SublimePapyrus

Posté : 10 janv. 2016, 22:48
par Kesta
Les scripts sources de SKSE doivent absolument écraser ceux dans Data\Scripts\Source, ou alors il faut supprimer les scripts que SKSE est supposé modifier du dossier Source. Les instructions envoyée au compilateur par SublimePapyrus considèrent toujours les .psc présents dans le dossier source comme "les plus importants".

Re: [Outils] [Scripts] SublimePapyrus

Posté : 10 janv. 2016, 23:31
par thorel31
Ah donc, voilà pourquoi ça me mettait tant d'erreurs !

Edit (11/02 - 00:07) :

Pourtant, j'ai fait une installation manuelle de SKSE, certains scripts ont été mis dans le dossier "..\Skyrim\src\skse\scripts\modified"(PSC), et d'autres dans "..\Data\Scripts" (les PEX), mais aussi dans "..\Data\Scripts\Source" (PSC), selon l'archive SKSE téléchargeable sur le site http://skse.silverlock.org/.

Alors je comprends pas pourquoi les bons fichiers qui doivent être dans "..\Data\Scripts\Source" ne le seraient pas...(?)

Dans le doute, j'ai quand même copié et écrasé les PSC de ..\Skyrim\src\skse\scripts\modified dans ..\Skyrim\Data\Scripts\Source.

Re: [Outils] [Scripts] SublimePapyrus

Posté : 11 janv. 2016, 00:42
par thorel31
Autant pour moi, j'avais pas lu le readme, il indique qu'il ne faut pas installer ces fichiers comme un mod normal, et que les fichiers dans "..\Skyrim\src\skse\scripts\modified " sont optionnels, conçus pour les moddeurs.

Donc, tu avais raison. Mais si je n'avais pas eu besoin de modifier un mod utilisant SKSE, l'installation initiale que j'avais faite aurait suffit. C'est bon à savoir pour les moddeurs novices ou simplement les joueurs qui ont juste besoin de SKSE, sans plus.

>> Finalement, après cette copie de scripts source, les erreurs sont de nouveau là, alors que quand j'avais laissé les fichiers originaux du Creation Kit (et en mettant les autres scripts du mod, bien sûr ; c'est important aussi), ç'avait très bien fonctionné... :z:
Bizarre... (???)

Peut-être une incompatibilité des scripts du mod avec la dernière version de SKSE. Sans doute que l'auteur de ce mod avait créé ses scripts avec une version antérieure, ou simplement sans SKSE (ou plutôt sans les nouveaux PSC de "..\Skyrim\src\skse\scripts\modified "), ou encore avec une version différente du Creation Kit, que sais-je... (?)

Je pense que le plus probable c'est que le script concerné a été conçu sans les nouveaux scripts modifiés de "..\src\skse\scripts\modified ", qui auraient dû être dans ..\Data\Scripts\Source. Il ne les avait pas mis, d'où les erreurs que j'ai eu. Heureusement que j'avais sauvegardé à part les anciens fichiers de ..\Data\Scripts\Source ! ^^

Re: [Outils] [Scripts] SublimePapyrus

Posté : 18 sept. 2017, 21:46
par A .
Bon je me décide à me pencher sur les scripts papyrus, après avoir esquivé le truc pendant ~ 6 ans :siffle:

Certaines choses ne sont plus d'actualité, notamment la partie concernant la création du fichier .ini, cela ne semble plus supporté (et nécessaire) avec le dernier package. Pour arriver à faire compiler un script par SublimePapyrus il m'a fallu tâtonner et rechercher dans différents forums du Nexus. Pour créer les chemins d'accès nécessaires, il faut désormais modifier les préférences via Preferences > Packages Settings > SublimePapyrus > Settings - Defaut.
La zone qui nous intéresse est la suivante :

Code : Tout sélectionner

		"skyrim":
		{
			"title": "The Elder Scrolls V: Skyrim",
			"compiler":"",
			"flags":"TESV_Papyrus_Flags.flg",
			"output": "",
			"import": [],
			"arguments": []
		},
Comme il n'est pas possible de modifier les préférences ici, j'ai copié l'ensemble (pas seulement le code ci-avant) et l'ai collé dans Settings - User. Il faut ensuite spécifier les chemins d'accès pour 'compiler' (là où se trouve le compilateur du CK), 'output' (le dossier de sortie), et 'import' (là où il faut aller chercher les sources). À noter que la zone pour Fallout4 a l'air identique.

Voici le résultat pour mon cas :

Code : Tout sélectionner

		"skyrim":
		{
			"title": "The Elder Scrolls V: Skyrim",
			"compiler":"D:/Steam/SteamApps/common/Skyrim/Papyrus Compiler/PapyrusCompiler.exe",
			"flags":"TESV_Papyrus_Flags.flg",
			"output": "D:/Sources/Mods Skyrim/Scripts",
			"import": ["D:/Steam/SteamApps/common/Skyrim/Data/Scripts/Source"],
			"arguments": []
		},
Attention, si vous copiez les chemins d'accès depuis les dossiers, les slashs seront \ et SublimePapyrus ne les comprendra pas, les colorera en fuchsia-moche-gerbant. J'ai volontairement mis le dossier 'output' dans un répertoire qui n'a rien à voir avec le jeu, au final les .pex doivent se trouver dans \Skyrim\Data\scripts pour que le jeu les utilise.

Maintenant si vous ouvrez un script quelconque, et essayez de le compiler, il y a de fortes probabilités pour que le résultat soit : 'failed' avec plein de trucs surlignés et commentés.
thorel31 a écrit : Une chose que j'ai constaté et qui devrait aider d'autres moddeurs novices, sachant que ce n'est pas inscrit dans le tuto de ce topic :

Compiler un script .PSC en .PEX peut requérir la présence, dans le dossier ..\scripts\source (scripts PSC), d'autres scripts qui doivent être décompilés eux aussi (en PSC) s'ils sont liés au script à compiler (des commandes, variables, instructions, fonctions et autres qu'utilise le script mais qui sont définies dans un autre script).

Ainsi, un script PSC peut avoir besoin d'autres PSC (donc décompilés préalablement en PSC à partir des scripts .PEX) pour fonctionner et pour être recompilé.

C'est l'une des raisons pour laquelle je n'arrivais pas à compiler mon script PSC concerné.
En fait, depuis une certaine mise à jour, le dossier des sources a été vidés des milliers de scripts de base du jeu, et certainement les propriétés qui vont avec . Tout cela est maintenant dans un fichier « Scripts.rar » situé dans Skyrim/Data. Une fois extrait dans Scripts\Source\ (là où pointe "import"), il est désormais possible de compiler les scripts.
Cela devrait également rétablir le fichier TESV_Papyrus_Flags.flg nécessaire à la compilation.

Un lien qui peut être utile : https://www.nexusmods.com/skyrim/mods/39140/?

:zen:

Re: [Outils] [Scripts] SublimePapyrus

Posté : 17 avr. 2018, 12:25
par Yoplala
Yop !

J'ai suivi à peu près tout ça (à la hauteur de mes connaissances et de ma débrouillardise) mais je n'arrive pas à recompiler un script. Peut-être parce qu'il s'agit d'un script pour SSE à la base et que j'essaye d'utiliser le papyrus-compiler de Skyrim ?

J'ai bien installé les .psc "masters" réclamés, mais il reste un paquet d'erreurs et la compilation échoue.
J'ai trouvé cet outil pour SSE : Skyrim Script Editor Pro SE. Je vais tester avec lui.

Re: SublimePapyrus

Posté : 31 juil. 2018, 11:22
par Tissendel
J'ai installé SublimePapyrus car je n'avais jamais essayé. Merci @A. pour la nouvelle façon de configurer les chemins :D J'ai intégré tes explications dans le premier post ^^

@Yoplala, tu as essayé ce SkyrimScript Editor ?