Ckpe - Construction Kit Papyrus Editor
#76
Posté 25 décembre 2012 - 22:02
#77
Posté 25 décembre 2012 - 23:07
Ce lien ne contient que l'exécutable, pour récupérer l'application complète, merci de vous rendre sur la page Wiwiland - Skyrim.
#78
Posté 31 décembre 2012 - 17:10
Avant d'aller plus loin, ce post seras assez technique, âmes sensibles s'abstenir donc. De toute façon, ce qui est présenté ici risque de ne pas être parlant pour la plupart d'entre-vous (je me demande même s'il ne s'agit pas d'un monologue ). Gardez simplement en tête que cela permettra d'avoir un éditeur encore plus efficace
Dans la mesure où cette fonctionnalité utilisera les fichiers originaux du jeu, on se retrouve avec une compatibilité accrue. L'analyse d'un fichier est aussi extrêmement rapide (moins de 400 millisecondes). Il me reste à retravailler par dessus pour que le tout soit parfaitement utilisable, mais le plus gros est maintenant fait
Voilà, vous pouvez raccrocher votre cerveau, vous savez maintenant à quoi vous attendre en terme de fonctionnalités futurs pour CKPE ! Et je n'ai pas oublié la comparaison de texte
#79
Posté 02 janvier 2013 - 23:37
Quelques notes constructives :
- Fonction Script / réindenter : il serait judicieux qu'un message d'avertissement dise que cette fonction écrasera le fichier source avec la nouvelle indentation (cela m'avait surpris alors que pourtant je n'avais pas fait suivre cette commande par une sauvegarde).
- Quand on compile le script (Script / Compiler), le volet du bas s'ouvre automatiquement sur l'onglet "Messages". Or c'est plutôt l'onglet "Sortie" qui devrait apparaître (celui qui donne les résultats de compilation).
- Ce serait bien si le volet contenant les onglets "Sortie" et "Messages" ne couvrait pas la partie du bas du volet de droite lorsque "Détail" est actif, et vice-versa (si on demande le "Détail" via le menu tandis que le volet Messages/Sortie est actif, ce dernier disparait).
- La fenêtre "Détails" ne montre pas les détails, seulement les entêtes de ce qui devrait être détaillé (Importation, Fonction, Évènement, Propriété, Variable). J'imagine que c'est en cours de développement?
- La commande "Traduire" serait très pratique pour traduire les commentaires et tous ces debug.[trace|notification|messsagebox], dans les deux sens. Mais que traduit-elle? J'ai essayé et je n'ai rien constaté outre un pop-up qui est vide.
- Si lors de la frappe d'une chaîne continue (sans espace) rien n'est trouvé dans la liste syntaxique (en fait dès la reconnaissance du premier caractère de ladite chaine en cours de frappe), alors ne pas afficher la petite fenêtre de saisie automatique : bien qu'à mon avis cette fonctionnalité fonctionne globalement mieux que dans Notpad++, à priori c'est sa seule faiblesse.
- Des "snippets" (blocs de codes personnalisés que l'on peut insérer rapidement dans le code édité)?
Un bel outil dont le dév. continue permet d'envisager un énorme potentiel, en plus de ses fonctionnalités actuelles qui rendent à ton éditeur un niveau de productivité plus qu'acceptable (en comparant aux autres éditeurs). Encore une fois, bravo!
Modifié par HawkFest, 03 janvier 2013 - 00:04.
Mod Oblivion :
[WIP] La Caverne mirifique est encore en développement...
[REL 3.0] Dévot des Neuf Divins : armures de croisé et accès aux chapelles - Lien Planetelderscroll - "Reviews" sur ModDB
Mod Skyrim :[REL 1.0] : Demeures améliorées - Better Homes
#80
Posté 03 janvier 2013 - 09:55
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
Concernant Gerauld, il est vrai qu'il m'a énormément aidé, et je l'en remercie énormément, mais à côté de ça il y a aussi trouvé son compte en gagnant en temps et en possibilités. C'est donc du gagnant-gagnant, sa parole en tant qu'utilisateur régulier ayant plus de valeur que la mienne.
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
HawkFest, le 02 janvier 2013 - 23:37, dit :
En tout ça, merci pour ces retours, cela ne sera utile ! Et pu ça fait toujours plaisir
EDIT : Fautes gênantes corrigées.
Modifié par Lucead, 03 janvier 2013 - 16:44.
#82
Posté 03 janvier 2013 - 16:38
Comme précisé précédemment, voici une application-test illustrant l'un des résultat possible de l'analyse sémantique. Dans l'absolu, l'application ressemble comme deux gouttes d'eau à l'onglet "Détails" de CKPE, sauf que cette application ne m'as pas demandé plus de 5 minutes de travail grâce à tout le travail pré-mâché par l'analyse sémantique
Petite précision de fonctionnement : l'application et sa DLL doivent impérativement placés dans le répertoire PapyrusCompiler de Skyrim. Ensuite, il faut préciser le chemin complet jusqu'au script à analyser. Comme dit dans le post technique sur l'anlayse sémantique, le script n'as pas besoin d'être compilé pour pouvoir être analysé, mais doit être compilable (c'est à dire, sans erreur de syntaxe ou autre.).
Lien : http://www.mediafire...fbzdk3801zb6o5o
EDIT : Pour revenir sur la remarque du lapin, et maintenant que j'ai un clavier, voici une petite liste de ce qui ne me plaît pas :
- le système de traduction est incapable de travailler avec un fichier de traduction externe à l'application
- CKPE n'est pas prévu pour travailler depuis un répertoire personnalisé, ce qui m'as obligé à faire du "hack" pour l'autoriser, avec pour conséquence de nombreux bugs (dont un bien tenace !)
- CKPE ne gère que l'encodage français. Si un chinois ou un russe l'utilise, les caractères spécifiques ne s'afficheront pas !
- Impossibilité de personnaliser l'éditeur en dehors de la police et de la taille. Je souhaite que l'utilisateur puisse choisir son code couleur ! (moi par exemple, je préfère travailler en blanc sur noir plutôt qu'en noir sur blanc).
- La fonction de traduction fonctionne, mais est clairement un premier jet. Il faut l'améliorer.
- Toujours pas de mises à jour automatique...
- CKPE n'est pas prévu pour intégrer des outils "externes" (je pense notamment à une autre application en parallèle permettant de créer des menus MCM sans écrire la moindre ligne de script, et que je voudrais intégrer à CKPE).
- Pas de système de comparaison de fichier (ce dont vous avez besoin pour le PNO). J'ai trouvé de quoi solutionner ce problème, mais c'est juste l'enfer pour l'intégrer à CKPE à l'heure actuelle.
- la qualité générale du code, qui laisse quelque peu à désirer.
- les bugs qui restent encore trop nombreux à mon goût
Au passage, je reprend un ancien message sur lequel j'ai une question :
MagikMike, le 10 décembre 2012 - 22:10, dit :
Ce qui rend impossible l'utilisation d'un comparateur de fichier pour voir les différences.
Un comparateur de scripts intelligent serait-il envisageable ? (ou alors ca existe déjà, pardonnez moi )
Modifié par Lucead, 03 janvier 2013 - 16:57.
#83
Posté 04 janvier 2013 - 02:17
Le seul problème que je vois en relisant la page, c'est un endroit où il prétend que le nombre de parenthèses ouvertes ne correspond pas au nombre de parenthèses fermées alors que c'est faux - sur la ligne :
Citation
A noter aussi que c'est un script originaire de Dawnguard et qu'il s'étend à présent sur 1007 lignes (la limite normale étant de 985 sur le CK).
Vu que je n'ai effectué que quelques copiers-collers en remplaçant quelques chiffres par d'autres, il est assez surprenant qu'un script fonctionnel au départ ne le soit plus suite à mon intervention
Citation
Compiling "DLC1PlayerVampireChangeScript"...
No output generated for DLC1PlayerVampireChangeScript, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on DLC1PlayerVampireChangeScript
J'utilise la version 1-3-1_2 disponible sur Wiwiland
Modifié par Spitoven, 04 janvier 2013 - 02:34.
#84
Posté 04 janvier 2013 - 14:21
#85
Posté 04 janvier 2013 - 17:05
Spitoven, le 04 janvier 2013 - 02:17, dit :
Le seul problème que je vois en relisant la page, c'est un endroit où il prétend que le nombre de parenthèses ouvertes ne correspond pas au nombre de parenthèses fermées alors que c'est faux - sur la ligne : Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "; restoring.")
Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "
Donc un nombre de parenthèses impair.
Spitoven, le 04 janvier 2013 - 02:17, dit :
Spitoven, le 04 janvier 2013 - 02:17, dit :
Citation
Compiling "DLC1PlayerVampireChangeScript"...
No output generated for DLC1PlayerVampireChangeScript, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on DLC1PlayerVampireChangeScript
Spitoven, le 04 janvier 2013 - 02:17, dit :
Ce script est quand même fait de manière assez vilaine par endroits (mention spéciale au vilain registerforupdate malgré d'autres détails). Le joueur est beau être censé toujours jouer avec le DLC activé, cela n'est pas propre...
#86
Posté 04 janvier 2013 - 20:35
Parce que comme ca ca aide pour comparer des scripts vanilla modifiés par un DLC (voir un correctif non officiel style le PNOS ou l'USKP ou ..punaise ca commence à faire)
Les properties ca on peut se débrouiller...
#87
Posté 04 janvier 2013 - 21:17
* Passe par là avec un mal de crâne provoqué par visual studio 2012 (donc indirectement par Lucead...), le C# et une base SQL... *
Par contre, bizarrement, faire une petite application en VB ne semble poser aucun problème et me semble très familier... Alors qu'il y a 10 ans, c'était l'inverse pour ma pomme... Moi pas comprendre. La faute à Office au boulot et à ma flemme légendaire, peut-être...
Fin du début du HS.
Arrivée dans le sujet :
Plus sérieusement, ne serait-il pas souhaitable que tous ceux qui modifient un script ajoutent une ligne de commentaire avec leur pseudo, la date ainsi que le nom du mod ou correctif qui à apporté ce script modifié sur nos disques durs?
Cela permettrait d'éviter quelques recherches et serait plus propre (cela me fait penser qu'il faudra que je rajoute ça dans un mod qui modifie un script vanilla (intentionnellement car c'est l'objet du mod)).
Début de la fin du HS :
Mon mal de casque? C'est la faute de CKPE...(et un peu beaucoup du boulot)...((et surtout de la mienne...))
* Court prendre une aspirine *
Merci pour le lien Lucead au fait, tout s'est installé sans soucis.
Vrai fin de la fin du HS
Je regarderai les sources côté traduction quand je me serai familiarisé avec les nouveaux outils...*
Modifié par Gérauld, 04 janvier 2013 - 21:18.
#88
Posté 04 janvier 2013 - 22:35
Gérauld, le 04 janvier 2013 - 17:05, dit :
Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "
Donc un nombre de parenthèses impair.
Je parie qu'ils bossent sur NP++ chez Bethesda.
MagikMike, le 04 janvier 2013 - 20:35, dit :
Parce que comme ca ca aide pour comparer des scripts vanilla modifiés par un DLC (voir un correctif non officiel style le PNOS ou l'USKP ou ..punaise ca commence à faire)
Les properties ca on peut se débrouiller...
Gérauld, le 04 janvier 2013 - 21:17, dit :
Gérauld, le 04 janvier 2013 - 21:17, dit :
Gérauld, le 04 janvier 2013 - 21:17, dit :
Gérauld, le 04 janvier 2013 - 21:17, dit :
Plus sérieusement, ne serait-il pas souhaitable que tous ceux qui modifient un script ajoutent une ligne de commentaire avec leur pseudo, la date ainsi que le nom du mod ou correctif qui à apporté ce script modifié sur nos disques durs?
Cela permettrait d'éviter quelques recherches et serait plus propre (cela me fait penser qu'il faudra que je rajoute ça dans un mod qui modifie un script vanilla (intentionnellement car c'est l'objet du mod)).
Gérauld, le 04 janvier 2013 - 21:17, dit :
Gérauld, le 04 janvier 2013 - 21:17, dit :
#89
Posté 04 janvier 2013 - 23:10
Lucead, le 04 janvier 2013 - 22:35, dit :
Lucead, le 04 janvier 2013 - 22:35, dit :
Gérauld, le 04 janvier 2013 - 21:17, dit :
J'ai un petit algorithme à mettre au propre pour ensuite différencier au maximum les variables et chaines de type string dans le script de celles qui sont nécessaires à son fonctionnement (sachant qu'il peut y en avoir qui cumulent les deux, j'ai déjà utilisé ça dans un vieux papyrus...). Cela permettra d'éviter les traductions détruisant le fonctionnement de certains scripts.
Il faudra d'abord que je reprenne les sources pour connaître le fonctionnement exact de CKPE afin d'éviter de partir dans une mauvaise direction.
#90
Posté 04 janvier 2013 - 23:30
Les WinForms sont vraiment un outil hyper puissant rendant injustifié les applications qui ne se donnent pas la peine de faire une GUI ! Cependant, les maîtriser demande pas mal de temps. Concernant CKPE, toute la GUI utilise WPF, très différent mais encore plus puissant que WinForms !
Les sprites, ça c'était le bon temps et c'est toujours d'actualité dans le dév de jeu 2D!
Pour la recherche des textes, la fonction GetStrings contient toute la logique, il ne restera plus qu'à comparer par rapport à ton code.
#91
Posté 05 janvier 2013 - 02:22
Je n'ai rien touché d'autre.
Lucead, le 04 janvier 2013 - 14:21, dit :
Skyrim : E:\Program Files\Steam\SteamApps\common\Skyrim
CKPE : E:\Program Files\Steam\SteamApps\common\Skyrim\CKPE
Gérauld, le 04 janvier 2013 - 17:05, dit :
Spitoven, le 04 janvier 2013 - 02:17, dit :
Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "
Donc un nombre de parenthèses impair.
Tout bien regardé il y en a d'autres :
Debug.Trace("VAMPIRE: Player is dead; bailing out.")
Debug.Trace("VAMPIRE: Race swap done; starting tracking and effects.")
Debug.Trace("VAMPIRE: Player is dead; bailing out.")
J'enlève aussi ?
Gérauld, le 04 janvier 2013 - 17:05, dit :
Citation
Compiling "DLC1PlayerVampireChangeScript"...
No output generated for DLC1PlayerVampireChangeScript, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on DLC1PlayerVampireChangeScript
Mais il y a tout ! Il ne râle même pas, c'est bien ça le pire du problème
Modifié par Spitoven, 05 janvier 2013 - 02:32.
#92
Posté 05 janvier 2013 - 10:43
Spitoven, le 05 janvier 2013 - 02:22, dit :
CKPE : E:\Program Files\Steam\SteamApps\common\Skyrim\CKPE
Spitoven, le 05 janvier 2013 - 02:22, dit :
Debug.Trace("VAMPIRE: Player is dead; bailing out.")
Debug.Trace("VAMPIRE: Race swap done; starting tracking and effects.")
Debug.Trace("VAMPIRE: Player is dead; bailing out.")
J'enlève aussi ?
Spitoven, le 05 janvier 2013 - 02:22, dit :
#94
Posté 06 janvier 2013 - 14:03
Cependant, les erreurs devraient AUSSI apparaître dans l'onglet Sortie...
@Gerauld : Je viens de récupérer les sources de CKPE, et j'ai modifié la fonction de recherche des textes pour y mettre plus de documentation.
L'indentation est pas terrible par contre ;/
Lucead, le 04 janvier 2013 - 22:35, dit :
Question conne au passage, vu que j'ai pas trouvé la réponse dans les références du langage : a-t-on des boucles For avec Papyrus ?
Bonjour par ici !
J'en ai fini avec la prise en charge de l'arbre de logique sémantique !
CKPE sera donc à l'avenir capable d'analyser la structure d'un script (propriétés, variables, fonctions, évènements, etc), mais aussi le code en lui-même !
Il me reste bien sûr une phase de test à entreprendre, même si cela semble bien fonctionner dans la mesure où j'arrive à analyser les scripts de base les plus complexes du jeu.
Donc si vous savez où je peux trouver des scritps costauds (genre quelques milliers de lignes ), ça m'intéresse ! En dehors des scripts vanilla, j'ai qu'un script de Gerauld, plutôt limité comme tests donc.
Concernant les comparaisons de script (pour amis PNOteurs/ses)
J'ai maintenant toutes les clés en main pour réaliser cette fonction, même si cela me prendra encore un peu de temps.
Trier des fragments ne sera pas faciles, dans la mesure où ils sont écrits avec des commentaires, et que le lexer ignore les commentaires.
Cependant, l'analyse peut être réalisée par "contexte", ce qui est parfait (par exemple, au sein d'une même fonction, et ce quelque soit l'emplaçement de la fonction dans les scripts).
La comparaison de propriétés/variables devient au passage un jeu d'enfant
Bref bref, ça avance ENFIN !
Modifié par Lucead, 05 janvier 2013 - 23:40.
#97
Posté 07 janvier 2013 - 21:50
#98
Posté 09 janvier 2013 - 23:52
Je précise qu'avec le dernier correctif du CKPE, j'ai enfin des explications en Sortie...qui sont quasiment aussi longues que le script lui-même.
Je déduis de tout ceci que finalement, si tu essayais d'ouvrir et de recompiler le script original de ton côté, tu obtiendrais peut-être le même résultat (auquel cas tu pourrais plus simplement tenter de traiter le problème directement) ?
Autre point, sans doute sans importance mais que je trouve assez étonnant : Le fichier de mon script modifié, comportant à peu près uniquement des ajouts, est plus léger que celui du script original, plus court. Bizarre, non ?
Modifié par Spitoven, 09 janvier 2013 - 23:55.
#99
Posté 10 janvier 2013 - 19:24
Moralité : le problème ne semble pas venir de CKPE, il semble que Bethesda à un autre compilateur en interne (ce qui ne m'étonne pas au final, cela leur permet d'éviter que les scripts officiels soit réutilisés dans des mods).
-----------------
Aujourd'hui, je vous propose une petite mise à jour de mon outil permettant la génération des menus MCM, convivial même pour des noobs Pas de gross nouveauté à part la possibilité de sauvegarder et charger un menu pour pouvoir le reprendre plus tard. Les nouveautés de SkyUI v3 seront bientôt pris en compte.
Gardez en tête qu'il s'agit ici d'une version BÊTA, donc les menus générés pourraient être mal générés. Merci de me le faire remonter pour que je corrige la génération
Lien : http://www.mediafire...9ocav2ebzy7koy2
Pré-requis : Framework .Net v2.0 (installé par défaut depuis XP)
NB : ce programme est compatible avec Linux, à condition d'installer le paquet Mono.
EDIT : Nouvelle version en ligne !
Changelog :
- les flags sont maintenant supportés !
- les suffixes des OID ont été mis à jours pour respecter la syntaxe "recommandée" par l'équipe de SkyUI
- les contrôles de type "KeyMap" peuvent maintenant être liés directement à une variable globale de type Int
- les contrôles de type "KeyMap" ont maintenant une option pour la prise en compte des conflits lors de la génération du code
- Il est maintenant possible de choisir le "mode de remplissage" (Fill Mode)
- Rajout de quelques nouvelles fonctions de SkyUI v3
- Rajout d'une ligne de documentation dans chaque évènement (à remplir comme vous le souhaiter)
- Corrections et amélioration du code généré
Modifié par Lucead, 10 janvier 2013 - 22:03.
#100
Posté 11 janvier 2013 - 00:28
Lucead, le 10 janvier 2013 - 19:24, dit :
C'est mort alors
Merci quand même
Modifié par Spitoven, 11 janvier 2013 - 00:29.
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)