Aller au contenu


Ckpe - Construction Kit Papyrus Editor


  • Veuillez vous connecter pour répondre
103 réponses à ce sujet

#76 Gérauld

Gérauld

Posté 25 décembre 2012 - 22:02

Salut Lucead, j'ai un petit soucis sur la version actuelle. Quand je lui demande de ré-indenter un script, il a tendance à me créer des décalages au sein des propriétés, décalant du coup tout ce qui suit... Je t'enverrai un des scripts sur lequel ça le fait par MP, ce sera plus simple.
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#77 Lucead

Lucead

Posté 25 décembre 2012 - 23:07

Voici le correctif pour le problème évoqué par Gerauld : http://www.mediafire...5ybng8qg35f4vvv
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 Lucead

Lucead

Posté 31 décembre 2012 - 17:10

Après un bon mois sans évolution sur CKSE, j'ai enfin réussi à débloquer une partie de la situation, et quelle partie ! En effet, j'ai enfin trouvé de quoi résoudre le plus gros problème de CKPE : l'analyse du code saisi par l'utilisateur.

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 :hum:  ). Gardez simplement en tête que cela permettra d'avoir un éditeur encore plus efficace ;)

Spoiler

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 :green:

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 HawkFest

HawkFest

Posté 02 janvier 2013 - 23:37

Lucead, chapeau! Tu te souviens d'une discussion dans laquelle toi et ton "agent de diffusion" Gérauld m'aviez fait un "pitch marketing" concernant CKPE? Hé bien comme il fut dit, j'ai consommé la pub, puis essayé le produit pour voir... Note ce contexte : à l'époque d'Oblivion, je fus celui qui avait introduit Notepad++ à la communauté, avec un syntax highlighter, "collapsible blocks" structurels, etc., incluant les fonctions d'OBSE (d'autres avaient fait des syntax highlighter pour cet éditeur, mais peu convaincants, pas assez pour faire un saut. Depuis l'eau a coulée et on en est aujourd'hui à pouvoir compiler via Notepad++, mais pas sans quelque "tournicoti" obscure pour le néophyte). Bref, j'étais donc naturellement plus enclin à utiliser Notepad++... Hé bien je dois te dire qu'aujourd'hui, je me sers de plus en plus régulièrement de CKPE à la place de Notepad++ : la saisie automatique est bien meilleure ; l'interface est plus adaptée à l'environnement et "propre" (gest. de script); etc.

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é)?
J'ai bien hâte de voir où tu vas en arriver avec les nouvelles fonctions sémantiques... Serviront-elles à la saisie automatique et/ou l'indentation? Ou est-ce pour la génération du volet "Détails"?

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.


#80 Lucead

Lucead

Posté 03 janvier 2013 - 09:55

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

Encore une fois, bravo!
Merci, ça fait toujours plaisir et ça remonte un peu la motivation :D Content que CKPE te satisfasse par la même occasion !

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

Tu te souviens d'une discussion dans laquelle toi et ton "agent de diffusion" Gérauld m'aviez fait un "pitch marketing" concernant CKPE?
J'appellerai pas ça du marketing dans la mesure où chacun est libre d'utiliser l'outil qu'il veut, et d'éviter CKPE s'il le trouve daubesque (bon y a une part de flatterie d'ego, mais c'est rien ça ^^). A la limite, je préfère presque les gens pas contents et qu'ils me disent pourquoi pour pouvoir l'améliorer. Mais bon, je crache pas sur les encouragements non plus :P
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.

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

Note ce contexte : à l'époque d'Oblivion, je fus celui qui avait introduit Notepad++ à la communauté, avec un syntax highlighter, "collapsible blocks" structurels, etc., incluant les fonctions d'OBSE (d'autres avaient fait des syntax highlighter pour cet éditeur, mais peu convaincants, pas assez pour faire un saut. Depuis l'eau a coulée et on en est aujourd'hui à pouvoir compiler via Notepad++, mais pas sans quelque "tournicoti" obscure pour le néophyte). Bref, j'étais donc naturellement plus enclin à utiliser Notepad++...
Notepad++ a un très bon éditeur de texte, et j'avoue batailler pour réussir à l'égaler. Ceci dit, il manque certaines fonctionnalités qui peuvent être très intéressantes, et surtout j'étais dans l'impossibilité de rajouter des outils personnalisés comme le gestionnaire de scripts de façon "propre". D'où la naissance de CKPE...

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

Hé bien je dois te dire qu'aujourd'hui, je me sers de plus en plus régulièrement de CKPE à la place de Notepad++ : la saisie automatique est bien meilleure ; l'interface est plus adaptée à l'environnement et "propre" (gest. de script); etc.
Après avoir fait le tour de tous les éditeurs proposés pour les développement de script Papyrus, j'avais été profondément frustré de pas avoir d'outil vraiment intégré. Les fonctionnalités que tu cites étaient celles qui me manquaient le plus ! En tout cas, merci d'avoir essayé : on voit plus souvent sur internet des gens qui critiquent sans savoir que des gens qui se donnent la peine d'essayer.

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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).
Si tu as bien la dernière version, tu peux annuler une ré-indentation. J'avais prévu de décrire le fonction dans une documentation, mais comme le besoin d'une nouvelle version se faire de plus en plus urgente, j'ai toujours pas touché à la documentation.

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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).
En fait, l'onglet ne s'est jamais ouvert automatiquement chez moi ^^' Au tout début, l'onglet Sortie n'existait pas, et tout était réglé sur Messages. Dans la mesure où cela ne fonctionnait pas chez moi, je pensais que c'était le cas partout. J'en prends note donc.

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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).
Détache les onglets du bas, et rattache les sur le bas de la zone document. Il me semble qu'on peut avoir le fonctionnement que tu veux en modifiant l'interface de cette façon. Je n'ai pas beaucoup de contrôle sur cette partie car j'utilise une DLL externe, qui marche très bien, mais qui souffre d'une documentation plus que limite...

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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?
Fût un temps où cela fonctionner. J'ai eu d'autres priorités entre temps, et aucune réclamation concernant cet élément. Tu es le premier à me demander de l'améliorer ! Je posterai une petite application de test ce soir permettant d'avoir ce résultat. Selon les retours, cette fonctionnalité fera partie de CKPE 2 (enfin façon de parler : la fonctionnalité y figurera aussi, mais des modifications sont encore possibles).

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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.
Encore une chose pas documentée fait en vitesse pour voir si c'était applicable. En fait la fonction "Traduire" recherche toutes les chaînes de caractères et les insèrent dans l'onglet "Traduction". Pour chaque entrée, tu peux saisir une traduction. Une fois tout traduit, tu appliques et CKPE se charge de remplacer les chaînes originales par les traductions. Bref, une fonction dédiée aux traducteurs qui ont peur du scripting (ce qui est compréhensible).

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

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.
Encore une chose qui dépend du DLL externe et peu documentée. Il faut savoir que cette fonctionnalité est de loin la plus complexe, notamment à cause des analyses de texte que je faisais jusqu'à présent. L'analyse sémantique permettra sans doute d'avoir de bien meilleurs résultats. Forcer la fermeture de la fenêtre lorsqu'elle ne trouve rien est presque à challenge à lui seul, et j'y ai déjà passé plusieurs heures, sans succès. Et pour maintenant, cela attendra CKPE 2.

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, dit :

Des "snippets" (blocs de codes personnalisés que l'on peut insérer rapidement dans le code édité)?
C'est prévu pour CKPE 2, ainsi que système de template avec des modèles de script, et même un système de solutions à projets pour le plus gros développement (comme la série des SE par exemple). J'allais pas passé à côté de ça alors que je peux difficilement faire sans ça :P

Voir le messageHawkFest, le 02 janvier 2013 - 23:37, 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!
Plus vraiment continue vu que le v2 sera une refonte totale, mais ces effectivement un gros projet parmi tant d'autres que j'ai pour Skyrim. De toute façon, il faut garder à l'esprit que je ne suis pas satisfait de la version actuelle, donc oui ça va continuer d'évoluer ! La recherche sémantique va permettre d'améliorer l'auto-complétion, mais aussi l'analyse du code, l'assistance à la saisie, à l'optimisation, à la traduction, plus à tout ce à quoi personne n'as pensé pour le moment ! Bref, j'étais a du boulot ! :D

En tout ça, merci pour ces retours, cela ne sera utile ! Et pu ça fait toujours plaisir :)

PS: désolé pour les potentielles fautes, j'ai rédigé tout ça depuis mon téléphone, et c'était un peu long ^^
EDIT : Fautes gênantes corrigées.

Modifié par Lucead, 03 janvier 2013 - 16:44.


#81 MagikMike

MagikMike

    Crétins de bugs !


Posté 03 janvier 2013 - 13:05

Pas satisfait de la version actuelle? oO

Ha ce que j'aime les perfectionnistes :cool:
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)

#82 Lucead

Lucead

Posté 03 janvier 2013 - 16:38

Ce n'est pas tellement une question d'être perfectionniste ou pas. Je ne ferai pas la liste des choses qui me déplaisent (y en a trop), mais par exemple, actuellement, si je veux fournir une nouvelle traduction de CKPE, je dois republier toute l'application, alors que j'aurai pu faire un fichier externe par langue. Une autre grosse raison est que l'arrière boutique est devenue très difficile à maintenir, car j'ai greffé des fonctionnalités non prévues à la base, ce qui limite pas mal de chose (exemple : l'impossibilité de travailler dans le répertoire de son choix ).

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 :D

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
Bref, il y a beaucoup d'erreurs de design de ma part dans la mesure où CKPE n'était pas prévu pour gagner tant d'envergure !


Au passage, je reprend un ancien message sur lequel j'ai une question :

Voir le messageMagikMike, le 10 décembre 2012 - 22:10, dit :

je me posait une question : Puisque nous autres pnoteurs devons fréquemment comparer des scripts, on a un gros soucis car l'ordre des fragments dans les papyrus n'a souvent rien a voir d'un fichier à l'autre (alors que l'on est sur le meme script de "base")

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 :monstre: )
Que souhaitez-vous comparez au juste ? Le code pour voir s'il n'y pas eu de changement ? Les strings (non, pas ceux-là !) ?

Modifié par Lucead, 03 janvier 2013 - 16:57.


#83 Spitoven

Spitoven

Posté 04 janvier 2013 - 02:17

Bon, sur les conseils de Lucead, je poste la version du script DLC1PlayerVampireChangeScript qui ne veut pas se compiler... :sorcerer:


Spoiler


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

Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "; restoring.")

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

Starting 1 compile threads for 1 files...
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 :help:

Modifié par Spitoven, 04 janvier 2013 - 02:34.

Image IPB

#84 Lucead

Lucead

Posté 04 janvier 2013 - 14:21

Donne moi le chemin complet d'installation de Skyrim chez toi, ainsi que l'emplacement où tu le mis CKPE, merci.

#85 Gérauld

Gérauld

Posté 04 janvier 2013 - 17:05

Voir le messageSpitoven, 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.")
Tout à fait normal. Enlève le ; de cette ligne... Sinon le compilateur voit seulement :
Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "
Donc un nombre de parenthèses impair.

Voir le messageSpitoven, le 04 janvier 2013 - 02:17, dit :

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).
Rien à voir avec le soucis. Aucun soucis de taille avec l'éditeur externe (lance quand même la compilation à partir de l'éditeur externe). Cela prouve juste que Bethesda utilise aussi un autre éditeur papyrus (en plus d'un équivalent du version control pour les scripts).

Voir le messageSpitoven, le 04 janvier 2013 - 02:17, dit :

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

Starting 1 compile threads for 1 files...
Compiling "DLC1PlayerVampireChangeScript"...
No output generated for DLC1PlayerVampireChangeScript, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on DLC1PlayerVampireChangeScript
Il manque les ralages du compilateur avec les numéros de ligne concernées... Cette partie là, sans ces info, est totalement inutile.

Voir le messageSpitoven, le 04 janvier 2013 - 02:17, dit :

J'utilise la version 1-3-1_2 disponible sur Wiwiland :help:
Remonte quelques posts plus haut et prends les liens directs vers des versions plus récentes dans ce sujet.

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...
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#86 MagikMike

MagikMike

    Crétins de bugs !


Posté 04 janvier 2013 - 20:35

Comparer le code et rien que le code, notamment pour voir quels sont les fragments modifiés d'un fichier A a un fichier B..

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...
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)

#87 Gérauld

Gérauld

Posté 04 janvier 2013 - 21:17

Début du HS (toujours pas trouvé de balise hors-sujet) :
* Passe par là avec un mal de crâne provoqué par visual studio 2012 (donc indirectement par Lucead...), le C# et une base SQL... :help:*
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. :angry: 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...*
:dehor:

Modifié par Gérauld, 04 janvier 2013 - 21:18.

L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#88 Lucead

Lucead

Posté 04 janvier 2013 - 22:35

Voir le messageGérauld, le 04 janvier 2013 - 17:05, dit :

Tout à fait normal. Enlève le ; de cette ligne... Sinon le compilateur voit seulement :
Debug.Trace("VAMPIRE: Player's health is only " + currHealth + "
Donc un nombre de parenthèses impair.
Là j'hallucine sérieusement ! Ce sont vraiment des bras cassés chez Bethesda parfois !

Je parie qu'ils bossent sur NP++ chez Bethesda.


Voir le messageMagikMike, le 04 janvier 2013 - 20:35, dit :

Comparer le code et rien que le code, notamment pour voir quels sont les fragments modifiés d'un fichier A a un fichier B..

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...
OK, bien compris. J'aurai bien une idée pour vous aider dans ce sens-là grâce à l'analyse sémantique. Je testerai ça quand j'aurai fini l'implémentation de l'analyse du code.


Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

Passe par là avec un mal de crâne provoqué par visual studio 2012 (donc indirectement par Lucead...), le C#
Je serai disponible samedi après-midi, je pourrais t'aiguiller. Je t'avais prévenu que commencer par CKPE ne s'était pas un cadeau pour apprendre :P

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

une base SQL... :help:
Gné oO !? Pourquoi as-tu besoin d'une base SQL ? Ou alors c'est la fenêtre de connexion qui te gêne ? Par défaut, beaucoup de fenêtre sont ouvertes par défaut, alors n'hésite pas à les refermer pour te faire de la place (au pire, toutes peuvent être réouvertes).

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

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. :angry:[/i][i] La faute à Office au boulot et à ma flemme légendaire, peut-être
Tu peux mélanger des fichiers C# et VB dans un même projet, donc pas de soucis. Après cet surtout syntaxique, la plupart des objets utilisés étant les même. Les lambda et LinQ risquent de te faire très mal à la tête par contre ^^

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

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)).
La meilleure solution pour ça est encore d'utiliser un GutHub (ou équivalent), mais comme la PNO Team travaille maintenant avec l'USKP, faire des modifications d'organisation doit se révéler plus compliqué.

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

Merci pour le lien Lucead au fait, tout s'est installé sans soucis.
De rien, j'espère que cela te sera bien utile (penses à mettre le lien sur wwl/la conf bien sûr).

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

Je regarderai les sources côté traduction quand je me serai familiarisé avec les nouveaux outils...
C'est pas facile de mémoire, mais tu peux regarder du côté de TranslationEntry, et sans doute PapyrusRefactor. Dans ce dernier, tu as une fonction GetStrings permettant de remonter les textes à traduire.

#89 Gérauld

Gérauld

Posté 04 janvier 2013 - 23:10

Voir le messageLucead, le 04 janvier 2013 - 22:35, dit :

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

Passe par là avec un mal de crâne provoqué par visual studio 2012 (donc indirectement par Lucead...), le C#
Je serai disponible samedi après-midi, je pourrais t'aiguiller. Je t'avais prévenu que commencer par CKPE ne s'était pas un cadeau pour apprendre :P
Demain, ça risque d'être dur avec les oursons qui reviennent de vacances.
Spoiler

Voir le messageLucead, le 04 janvier 2013 - 22:35, dit :

Voir le messageGérauld, le 04 janvier 2013 - 21:17, dit :

Je regarderai les sources côté traduction quand je me serai familiarisé avec les nouveaux outils...
C'est pas facile de mémoire, mais tu peux regarder du côté de TranslationEntry, et sans doute PapyrusRefactor. Dans ce dernier, tu as une fonction GetStrings permettant de remonter les textes à traduire.
Dès que j'aurai terminé de bosser sur les objets dont j'ai besoin par ailleurs (et que je me serai remis à niveau), je regarderai de très près tout ceci. Ce genre de choses permettant de repérer de manière globale toutes les chaines.
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.
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#90 Lucead

Lucead

Posté 04 janvier 2013 - 23:30

Interroger une BDD en dotNet est relativement facile. C'est surtout une question de réflexe et de système à comprendre. Je te ferai une demo des différentes façon de faire si tu veux.

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 :D 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 Spitoven

Spitoven

Posté 05 janvier 2013 - 02:22

...Au fait, que je dise exactement ce que j'ai touché sur ce script (en italique gras : modifié ; en souligné : ajouté) :

Spoiler

Je n'ai rien touché d'autre.


Voir le messageLucead, le 04 janvier 2013 - 14:21, dit :

Donne moi le chemin complet d'installation de Skyrim chez toi, ainsi que l'emplacement où tu le mis CKPE, merci.

Skyrim : E:\Program Files\Steam\SteamApps\common\Skyrim
CKPE  : E:\Program Files\Steam\SteamApps\common\Skyrim\CKPE


Voir le messageGérauld, le 04 janvier 2013 - 17:05, dit :

Voir le messageSpitoven, 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.")
Tout à fait normal. Enlève le ; de cette ligne... Sinon le compilateur voit seulement :
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 ?


Voir le messageGérauld, le 04 janvier 2013 - 17:05, dit :

Citation

Starting 1 compile threads for 1 files...
Compiling "DLC1PlayerVampireChangeScript"...
No output generated for DLC1PlayerVampireChangeScript, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on DLC1PlayerVampireChangeScript
Il manque les ralages du compilateur avec les numéros de ligne concernées... Cette partie là, sans ces info, est totalement inutile.

Mais il y a tout ! Il ne râle même pas, c'est bien ça le pire du problème :angry:

Modifié par Spitoven, 05 janvier 2013 - 02:32.

Image IPB

#92 Lucead

Lucead

Posté 05 janvier 2013 - 10:43

Voir le messageSpitoven, le 05 janvier 2013 - 02:22, dit :

Skyrim : E:\Program Files\Steam\SteamApps\common\Skyrim
CKPE  : E:\Program Files\Steam\SteamApps\common\Skyrim\CKPE
Ok donc le problème ne vient pas de là.

Voir le messageSpitoven, le 05 janvier 2013 - 02:22, dit :

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 ?
Oui. Au pire, remplace simplement les ; par des :.

Voir le messageSpitoven, le 05 janvier 2013 - 02:22, dit :

Mais il y a tout ! Il ne râle même pas, c'est bien ça le pire du problème :angry:
J'ai également remarqué le phénomène également lors du développement de CKPE, je sais en pratique quelle passage de la compilation est concernée, mais je ne sais pas pourquoi.

#93 Spitoven

Spitoven

Posté 05 janvier 2013 - 11:57

Ah, tiens, nouveauté : Bien qu'il ne dise rien dans "Sortie", il parle dans "Messages". Est-ce nouveau ? Je croyais pourtant avoir regardé...

Image IPB
Image IPB

#94 Lucead

Lucead

Posté 06 janvier 2013 - 14:03

En effet, l'onglet Messages permet d'avoir les erreurs de compilation sous une forme plus lisible. Et surtout, en double-cliquant sur une ligne, CKPE te montrera exactement où l'erreur est dans ton script. Les erreurs devraient également être soulignées par des vaguelettes rouges, pour les voir rapidement. Si la traduction des erreurs ne te satisfait pas, passe CKPE en anglais (dans les options).

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.
Spoiler

L'indentation est pas terrible par contre ;/

Voir le messageLucead, le 04 janvier 2013 - 22:35, dit :

[blabla] quand j'aurai fini l'implémentation de l'analyse du code.[blabla]
Cette partie est finalement hallucinante en terme de facilité et de rapidité de développement ! L'analyse sémantique est tellement puissante qu'à partir du résultat de l'analyse je peux recréer sans soucis le script. Alors autant dire que des comparaisons de scripts pour savoir quels events/fonctions ont été modifiés sera enfantin ! Bref, des résultats très encourageants, et surtout toujours aussi prometteuses !

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 :P), ç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 ! :D

Modifié par Lucead, 05 janvier 2013 - 23:40.


#95 MagikMike

MagikMike

    Crétins de bugs !


Posté 06 janvier 2013 - 15:14

Merci, ho camarade developpeur .
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)

#96 Spitoven

Spitoven

Posté 07 janvier 2013 - 21:27

D'accord, alors j'ai les explications, mais du coup je fais quoi pour corriger les erreurs ? Je n'ai pas très envie de bousiller le script de Beth'...
Image IPB

#97 Lucead

Lucead

Posté 07 janvier 2013 - 21:50

Est-ce que tu obtiens ces erreurs aussi si tu essayes de compiler le script original, sans rien avoir rajouter ?

#98 Spitoven

Spitoven

Posté 09 janvier 2013 - 23:52

Alors oui, j'obtiens exactement la même réaction et le même listing d'erreurs, dans les moindres détails.

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.

Image IPB

#99 Lucead

Lucead

Posté 10 janvier 2013 - 19:24

@Spitoven : Voilà ce que j'obtiens en compilant leur script de m**** depuis le CK par défaut :
Spoiler
Il ne trouve pas le script, donc je le déplace là où il peut le trouver, et voilà le résultat :
Spoiler
Je précise que ce script est l'original, vu que j'ai réinstallé le jeu il y a peu (pour DragonBorn), et que je n'ai toujours pas joué dessus.

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 :P 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 Spitoven

Spitoven

Posté 11 janvier 2013 - 00:28

Voir le messageLucead, le 10 janvier 2013 - 19:24, dit :

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).

C'est mort alors :(

Merci quand même ;)

Modifié par Spitoven, 11 janvier 2013 - 00:29.

Image IPB




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)