Créer des Plugin PSDK

  • 7 Réponses
  • 1347 Vues
Créer des Plugin PSDK
« le: 25 mars 2017, 14:10:39 »

Introduction

Les plugins sur PSDK qu’est-ce que c’est ? Pourquoi on en parle autant ?
Des questions que vous pourriez vous poser, je vais y répondre simplement et suivre cette réponse d’une explication détaillée.

Les plugins sur PSDK c’est concrètement, des ajouts de script avancés. Plutôt que de distribuer un script, vous distribuez un fichier .addsdk qui permet de faire les ajouts automatiquement : c’est de la simplicité pour les Maker.

Dans le détail, les plugins ne sont pas là pour rien. Ils servent une cause simple : la mise à jour de PSDK. Vous rappelez vous la galère que c’était lorsque vous faisiez une mise à jour sur PSP ? Et oui, passer de la version 0.7 à 0.9 ça veut dire, retravailler sa base script. La promesse du système de Plugin de PSDK c’est justement vous éviter ce travail à chaque mise à jour, encore faut-il que vous fassiez des plugins.


Comment faire un plugin

Pour créer un plugin vous avez besoin d’un template de base :
#encoding: utf-8
require "zlib"
require "../core/PluginObject.rb"
a = PluginObject.new
a.set_info("Nom","Auteur","Catégorie")

#<Inserez vos modifications ici>

begin
a.build()
rescue Exception
  puts $!.class
  puts $!.message
  GC.start
  filename = "../#{a.id}"
  File.delete(filename) if File.exist?(filename) rescue nil
  system("pause")
end
Vous devez créer un fichier .rb encodé en UTF-8 sans BOM dans le dossier plugins/make_plugin/.
Vous collez ce template dans ce fichier puis vous commencez vos modifications :
Indiquer le nom du plugin : remplacer Nom par son nom (sans caractères spéciaux)
Indiquer l’auteur du plugin : remplacer Auteur par votre pseudo (sans caractères spéciaux)
Indiquer sa catégorie : Remplacer Catégorie par ce que touche le plugin (sans caractères spéciaux).

Exemple
Mon plugin se nomme Objets Invisibles, il touche les évents et a été créé à l’origine par FL0RENT_, après remplacement ça donne :
a.set_info("ObjetsInvisibles","FL0RENT_","EventPatch")

Une fois que vous avez renseigné les informations de base, vous pouvez commencer à insérer les modifications :
1. Ajouter un script
Pour ajouter un script, la procédure est simple, vous devez coller votre script dans un fichier .rb dans un sous dossier de make_plugin. Le fichier doit être encodé en UTF-8 sans BOM.
Supposons que j'ai crée un fichier « Horloge.rb » dans « /plugins/make_plugin/mes_scripts/ »
Pour l'ajouter au plugin j'ajoute juste après "#<Inserez vos modifications ici>" la ligne suivante :
a.add_script("Nom du script", "chemin vers le fichier")
Vous remplacez Nom du script par le nom que vous voulez lui donner dans la base script de PSDK (quand vous aurez une erreur ça indiquera Nom du script en source).
Vous remplacez chemin vers le fichier par le chemin relatif qui permet de lire ce fichier.

Exemple avec notre script :
a.add_script("Mon Horloge", "mes_scripts/Horloge.rb")

Depuis la version Alpha 19 de PSDK vous pouvez indiquer avant quel script vous voulez mettre votre script. Si vous voulez par exemple qu'il soit placé avant le script "Scene_Map", vous écrivez :
a.add_script("Mon Horloge", "mes_scripts/Horloge.rb", "Scene_Map")

Un conseil, faites bien gaffe à l'ordre des scripts, exécutez les commandes add_script dans le bon ordre et normalement il ne devrait pas y avoir de problèmes ^^
L'aspect ajouter avant sert surtout à faire en sorte à ce que certaines de vos modification ne cause pas d'erreur qui empêche PSDK à s'exécuter normalement.

2. Modifier un script
Les principales choses que vous faites lorsque vous proposez des scripts, c’est des modifications voir des corrections. Le système de plugin de PSDK permet ceci avec une commande simple.
a.add_mod(
  "Nom du script à modifier",
  "Contenu de la ligne à trouver",
  type_de_modification,
  "Contenu de la modification")
Cette commande va vous permettre d'éviter d'expliquer vos modifications aux Makers puis-ce que c'est PSDK qui va les interpréter.
Vous remplacez Nom du script à modifier par le nom du script à modifier.
Vous remplacez Contenu de la ligne à trouver par ce que contient la ligne sur laquelle vous voulez faire des modification (ça peut être plusieurs lignes, le saut de ligne est autorisé).
Vous remplacez type_de_modification par l'un de ces trois choses :
  • :add_before Ajouter la modification avant la ligne concernée.
  • :replace Remplacer la ligne concernée par la modification
  • :add_after Ajouter la modification après la ligne concernée.
Vous remplacez Contenu de la modification par le contenu de la modification.

Exemple
Nous voulons pouvoir parler à un évènement qui porte le nom "OBJ_INVISIBLE" par les cotés et non dessus. La modification porte sur la condition de la méthode over_trigger? du script Game_Event. Nous devons ajouter la condition @event.name.include?(EV_ObjInvName) dans la condition existante, nous optons pour le remplacement (pour respecter la syntaxe).
Ca donne le code suivant :
a.add_mod(
  "Game_Event",
  "def over_trigger?
    # グラフィックがキャラクターで、すり抜け状態ではない場合
    if @character_name != nil.to_s and not @through",
  :replace,
  'EV_ObjInvName = "OBJ_INVISIBLE"
  def over_trigger?
    # グラフィックがキャラクターで、すり抜け状態ではない場合
    if @character_name != nil.to_s and not @through or @event.name.include?(EV_ObjInvName)'
)

Notez que j'ai mis le contenu de la modification entre apostrophes et non entre guillemets. C'était à cause de la constante qui contient "OBJ_INVISIBLE", sans procéder ainsi il y aurait eu une erreur de syntaxe. Pour éviter les erreurs de syntaxe vous pouvez utiliser les apostrophes mais dans ce cas mettez \' si votre modification contient des apostrophes (rare).


Finaliser le plugin

Une fois que vous avez écrit toute vos modifications, vous pouvez compiler le plugin, pour le compiler c'est très simple, vous avez besoin d'avoir installé Ruby sur votre machine.
Pour lancer la compilation, il vous suffit de double cliquer sur le fichier .rb de votre plugin (ou exécuter la commande ruby).
Si tout ce passe bien, la fenêtre se faire instantanément et vous devriez voir un fichier .addsdk supplémentaire dans le dossier plugins/.
Si la fenêtre se ferme et que le fichier .addsdk n'a pas été ajouté, vous avez une erreur de syntaxe dans votre plugin, vérifiez ce que vous avez écrit.
Si la fenêtre ne se ferme pas, il y a un ensemble d'erreur (fichier non trouvé généralement), vérifiez que vous avez bien spécifié les fichiers.

Lorsque vous lancerez PSDK, le plugin s'exécutera et s'il n'y a pas de problème PSDK ne dit rien. Vous devriez voir les modifications à l'action.

Note : Le système de plugin permet aussi d'ajouter des tâches mais cette partie n'est pas traitée sur ce tutoriel ^^
« Modifié: 25 mars 2017, 14:13:51 par Nuri Yuri »
ln(yo) = <3
 
Utilisateurs ayant remercié ce post : Palbolsky, 『Otaku』, FL0RENT_, Graphel, Vulvoch, Metaiko, yyyyj, ralandel

*

Hors ligne 『Otaku』

Créer des Plugin PSDK
« Réponse #1 le: 25 mars 2017, 16:56:06 »
Pour PSDK DS ça va être super, je te remercie beaucoup pour ce tuto qui va me (énormément) servir pour le développement de PSDK DS. :3
 
Utilisateurs ayant remercié ce post : yyyyj

Créer des Plugin PSDK
« Réponse #2 le: 02 avril 2017, 09:43:44 »
J'ai un petit souci avec ça, le plugin n'accepte pas PSDK en catégorie, seulement psdk est-ce normal? Et il n'acdepte pas non plus 2 majuscules au nom de l'auteur (Nuri_Yuri ne marche pas alors que Nuri_yuri marche.
« Modifié: 02 avril 2017, 09:46:32 par yyyyj »
 

Créer des Plugin PSDK
« Réponse #3 le: 02 avril 2017, 13:25:29 »
C'est normal puis-ce que la comparaison est sensible à la case. Et t'es pas censé faire de plugin avec pour auteur Nuri_Yuri ou nom de projet PSDK.
ln(yo) = <3
 
Utilisateurs ayant remercié ce post : yyyyj

Créer des Plugin PSDK
« Réponse #4 le: 02 avril 2017, 13:34:25 »
Mais du coup les plugins dans le dossier make_plugin sont inutilisables

Créer des Plugin PSDK
« Réponse #5 le: 02 avril 2017, 13:37:28 »
Je les ai pas compilés mais rien ne t'empêche de changer l'auteur et le projet puis de les compiler ^^
ln(yo) = <3
 

Créer des Plugin PSDK
« Réponse #6 le: 02 avril 2017, 13:44:29 »
ok

*

Hors ligne Leikt

Créer des Plugin PSDK
« Réponse #7 le: 01 mai 2017, 17:45:04 »
Génial,

Pour compléter le tutoriel, il faudrait ajouter une informations :
Pour trouver les scripts PSDK, ouvrir le fichier "Data/__.rxproj" dans une nouvelle fenêtre RPGMaker XP
Je comprend que c'est scripts doivent resté au maximum verrouillés.
Faciliter l'accès à une copie de ces script serait utile pour les scripteurs voulant modifier les scripts existants via un plugin (un dossier généré contenant une copie de chaque script sur une commande console, ou autre chose)
Ainsi les scripts étudiés se retrouveront accessible par Notepad++ et ça évite de jongler entre RPG maker et notepad++
Beau boulot avec ce système de plugin !
 
Utilisateurs ayant remercié ce post : Nuri Yuri, Alizia