Salut,
Ayant déjà utilisé plusieurs scripts dans un de mes projets, j'ai été confronté à plusieurs problèmes de compatibilité et manques.
Donc, en trifouillant un peu, j'ai fini par faire un script hybride qui n'a plus grand chose à voir avec le script originel.
Bon il n'est pas totalement fini et est encore victime de quelques bugs du coup je ne le partage pas encore en tant que script mais plutôt comme une base de travail presque fonctionnelle.
J'ai particulièrement une difficulté avec la durée d'animation qui ne bloque pas le jeu. Du coup on peut bouger pendant l'anim.
COMMENTAIRES:
Spoiler (cliquez pour afficher)
"use strict";
PluginManager.register("EszSimcraft_collecte", "2.3.1", {
"email": "contact@esz-game.org",
"website": "Esz-Game.org",
"name": "Esziaprez based on SnOwCrack gathering"
}, "2016-11-22");
/*:
* @help
* ----■■■■■■■------■■■■■■----■■■■■■■■■■
* ---■■■■■■■■---■■■■■■■■---■■■■■■■■■
* --■■■■-------- -■■■■----■■■■--■■■■
* -■■■■----------■■■■------■■■■--■■■■
* -■■■■-----------■■■■-----■■■■---■■■■
* -■■■■--------------■■■■--------------■■■■
* -■■■■■■■■■--------■■■■-----------■■■■
* -■■■■■■■■■------------■■■■--------■■■■
* -■■■■------------------------■■■■-------■■■■
* -■■■■-------------------------■■■■-------■■■■
* -■■■■-------------■■■■-----■■■■-------■■■■
* --■■■■------------■■■■----■■■■---------■■■■
* ---■■■■■■■■----■■■■■■■■■---■■■■■■■■
* ----■■■■■■■--------■■■■■■-----■■■■■■■■■
*
* -------- ▼ EszSimcraft_collecte.js ▼--------
* Contact : contact[at]esz-game.org
* THE SIMCRAFT SYSTEM => COLLECTE (GATHERING) Based on snowGather plugin
* Script commented in French by Esz and addon by Esz. Enjoy!
* Free to commercial or no commercial
* Credit SnowCrack, Esz, Kadokawa
*-------------------------------------------------------------------------------------
* ============================================================================
* Introduction FR
* ============================================================================
* Salut,
*
* Bienvenue au utilisateur de SimCraft et particulièrement de cette partie
* batisée "Collecte".
*
* Initiallement créé par Sn0wCrack, ce script permet de créer facilement
* des événements pour permettre à votre personnage de collecter des ressources
* en utilisant (ou non) des outils ou ustensils.
*
* En plus de traduire et de commenter intégralement le script en Français,
* Esz (Parce que je parle de moi à la troisième personne) a ajouté de nombreuses
* fonctions supplémentaires et rendu le script compatible avec plusieurs autres
* de la comu anglophone (humilité).
* Tout cela en restructurant le code, pour le rendre plus fluide et agréable
* à utiliser.
* Enfin, Esz a travaillé sur l'interface pour la rendre plus "graphique" et
* toujours aussi simple d'utilisation. En créant de nouvelles windows et
* de nouveaux Huds adaptés aux nouvelles fonctionnalités du plugin.
*
* Espérant que ce travail vous permettra de rendre vos jeux RMMV
* encore plus attractifs et distrayants, je vous souhaite une bonne découverte
* et vous invite à contacter Esziaprez Game pour vos questions
* ou suggestions.☺
*
* Si vous utilisez ce script n'oubliez pas de créditer SnowCrack pour la base
* et Esz si ça vous fait plaisir!
* Et une copie de vos projets serai sympa (parce que j'aime jouer).
* Je serai ravis de voir vos jeux et de vous donner mon point de vue
* et des conseils encourageants (si possible ♥).
*
* ============================================================================
* Parametrage
* ============================================================================
* Dans la Database, dans les commentaire des objets, vous pouvez ajouter des
* balises qui seront reconnues par le systeme. Certaines sont indispensables
* au bon fonctionnement du systeme d'autres falcultatives ou comprenant une
* valeur par defaut.
*
* Les commentaires concernent uniquement les items ou "objets";
* ni les armes ni les armures.
*
* =============================================================================
* USTENCILS DE COLLECTE :
* =============================================================================
* ◙ Cette partie concerne le notetag des outils de collecte.
* ◙ Les ustencils de collecte sont les outils permettant de recolter des
* ◙ ressources. Par ex.: une pioche, une pelle, une hache...
* ◙ N'oubliez pas il s'agit d'objet et non d'equipement !!!
* ◙ A la diff de la première version, les balises ont été traduite en FR et
* ◙ beaoucoup d'autres ont été ajoutées
*
* <Chance de boost collecte:[VALEUR]> ► Facultatif
*
* ◙ Remplacez [VALEUR] par le pourcentage de boost
* ◙ Ce montant defini le pourcentage de boost des collectes réussies du tool.
* ◙ Le boost augmente aleatoirement la quantité
*
* <Chance Collecte>
* itemId: pourcentage%
* </Chance Collecte> ► Indispensable pour fonctionner
*
* ◙ Ces balises définissent les chances de collecter des objets avec l'outil.
* ◙ Remplacez [itemId] par l'Id de l'objet à collecter dans la BDD de RM.
* ◙ exemple :
* ◙ <Chance Collecte>
* ◙ 1: 50%
* ◙ 2: 37%
* ◙ </Chance Collecte>
* ◙ Cela signifie que les chances de collecter de l'objet 1 sont de 50% et
* ◙ celles de reussir à collecter de l'objet 2 sont de 37% avec cet outil.
*
* <Risque Usure>
* itemId: pourcentage%
* </Risque Usure> ► Facultatif
*
* ◙ Cette balise définie les chance que l'outil se brise pendant la récolte.
* ◙ exemple :
* ◙ <Risque Usure>
* ◙ 1: 50%
* ◙ 2: 37%
* ◙ </Rsique Usure>
* ◙ Cela signifie que les chance que le tool se brise en recoltant l'objet 1
* ◙ sont de 50%
* ◙ et celles de l'objet 2 sont de 37% avec l'outil
*
*===========================================================
* * ♥♥♥♥ REQUIRE REXAL VISUAL EQUIPEMENT
* * ♥♥♥♥ POSES DU CHARACTER(by Esz) (Vraiment époustouflant)
*
* ◙ Pas mal de plugin utilise $gameParty.actor.pose dont RexalVisualEquipment
* ◙ grace à la balise pose vous pouvez definir une pose pour chaque outils.
* ◙ pour que cela ai une réélle utilité vous pouvez soit utiliser la variable
* ◙ comme bon vous semble,
* ◙ soit simplement definir "true" au param "ACTIVE POSE".
* ◙ De cette façon le plugin changera automatiquement la pose du character du
* ◙ joueur et l'animera à l'arret pendant une duree spécifique.
* ◙ Cependant pour ne pas créer de bugs et fonctionner correctement le plugin
* ◙ doit être bien paramétré et ceci rend plusieurs balises obligatoires.
*
* <Pose Collecte: [VALEUR]> ► Preferable
*
* ◙ Cette balise definie le nom de la pose
* ◙ par exemple : <Pose Collecte: marche> ou <Pose Collecte: 10>
* ◙ Vous pouvez définir cette variable come bon vous semble,
* ◙ C'est simplement la valeur que va revétir $gameParty.leader().pose
* ◙ Si la pose n'est pas definir par la balise l'outil utilisera la valeur
* ◙ par defaut defini dans le param "Pose par defaut"
*
* ◙ Pour définir la duree de l'animation, Vous disposez de 2 options :
* ◙
* ◙ L'Option rapide :
* ◙ Vous utilisez une valeur globale definit dans les paramêtre du plugin
* ◙ C'est l'option la plus simple et la plus rapide.
* ◙ - Définissez le param "ACTIVE TIMER ANIM" comme false
* ◙ sans guillemets ni rien...
* ◙ - Définissez le param "Duree Anim par defaut" qui sera la duree(frames)
* ◙ utilisée systématiquement.
* ◙
* ◙ L'option personnalisable :
* ◙ Vous pouvez définir la valeur par defaut et celle de chaque ustencil avec
* ◙ une balise.
* ◙ C'est un peu plus contraignant mais cela peut être utile. (Déjà pour moi ça l'est)
* ◙ - Définissez le param "ACTIVE TIMER ANIM" comme true
* ◙ sans guillemets ni rien...
* ◙ - Définissez le param "Duree Anim par defaut" qui sera la durée(frames)
* ◙ par defaut utilisée en cas d'absence de la balise.
* ◙ - Utilisez la balise suivante dans les commentaire de l'objet :
*
* <Duree Pose:[FRAMES]> ► Preferable
*
* ◙ C'est la durée en frames de l'animation liée à l'ustencil
* ◙ Elle comprend aussi d'autres attributs liés aux autres fonctions de ce
* ◙ script mais nous verrons ça...
*
* <Forme: [POURCENTAGE]> ► Facultatif/forme active
*
* ◙ La FORME est definie par les hp du leader de l'equipe du joueur.
* ◙ Comprenez que lorsque je parle d'impact sur la forme,
* ◙ cela équivaut donc à impact sur les hp de ce personnage.
* ◙ Dans un ustencils de collecte cela defini le pourcentage de modification
* ◙ de l'impact sur la forme qui est, lui, defini dans les notetags
* ◙ des ressources collectables.
* ◙ La valeur peut etre comprise entre 0 (supprime totalement l'impact)
* ◙ à plus de 100 (augmente l'impact)
* ◙ Par exemple :
* ◙ Si la ressource a une valeur de forme (voire plus bas) de 16
* ◙ l'utilisation d'un outil avec une valeur de forme de 50
* ◙ reduira de moitié l'impacte donc : 8
*
*=======================================================
* * ♥♥♥♥ VISUEL DE l'OUTIL(by Esz) (Absolument fabuleux)
*
* ◙ Le son fonctionne à peu de chose près comme la pose en dehors du fait qu'il
* ◙ n'y a pas de temps à mesurer.
* ◙ - En premier lieu définissez le param "ACTIVE SON" comme true
*
* ◙ Pour définir le son, Vous disposez de 2 options :
* ◙
* ◙ Vous pouvez définir la valeur par defaut et celle de chaque ustencil avec
* ◙ une balise.
* ◙ - Définissez le param "Son par defaut" qui sera la le son par defaut.
* ◙ utilisée en cas d'absence de la balise.
* ◙ Si vous souhaitez définir un son spécifique:
* ◙ - Utilisez la balise suivante dans les commentaire de l'objet :
*
* <Son Collecte:[NOM DU FICHIER SE]> ► Preferable
*
* ◙ Il est aussi possible de définir un son lorsque l'objet se brise dans le
* ◙ param "Son Casse par defaut" et avec la balise :
*
* <Son Casse Collecte:[NOM DU FICHIER SE]> ► Pas indispensable
*
* ◙ Le son lorsqu'il casse
* <Icon collecte: [ID]> ► Pour le fun
*
* ◙ La balise ci-dessus définie l'icon utilisé pour les message qui n'est pas
* ◙ necessairement l'icone de l'objet par exemple ce peut être la meme icon
* ◙ pour toute les pioches mais chaque pioche differente peut très bien avoir
* ◙ sa propre icone. Si l'icone n'est pas definit alors c'est l'icone de la
* ◙ database qui sera utilisé.
*
* =============================================================================
* RESSOURCES COLLECTABLES :
* =============================================================================
* ◙ Les ressources collectables sont les objets pouvant être recolté grâce
* ◙ aux outils de collecte.
* ◙ Par ex.: du bois, de la pierre, de l'or, de fruits...
* ◙ N'oubliez pas! Il s'agit d'objets et non d'équipements !!!
* ◙ A la diff de la première version, les balises ont été traduite en FR et
* ◙ beaoucoup d'autres ont été ajoutées
*
* <Minimum Collecte: [VALEUR]> ► Indispensable
*
* ◙ Le nombre minimum de cet objet obtenu en cas de succès de la collecte
*
* <Maximum Collecte: [VALEUR]> ► Indispensable
*
* ◙ Le nombre maximum de cet objet obtenu en cas de succès de la collecte
*=======================================================
* * ♥♥♥♥ TALENT DE COLLECTE(by Esz) (Extraodinairement fantastique)
* ◙
* ◙ Cet ajout aurait pu faire l'objet d'un plugin à lui tout seul !
* ◙ Cependant Collecte n'étant qu'une petite partie d'un système beaoucoup
* ◙ plus large (SimCraft), je me suis dit qu'il valait mieux regrouper le plus
* ◙ possible les composantes.
* ◙ Cet ajout est inspiré de la partie talent du système de Craft de MrTS
* ◙ Dont j'utilise par ailleurs une version personnalisée dans mon systeme.
* ◙ A la difference de beaucoup de script MrTS_crafting utilise pas des tags
* ◙ mais bel et bien un fichier Json stocké dans data ce que je trouve pas
* ◙ mal.
*
* ◙ Donc pour modifier tout ça vous devez utiliser le fichier
* ◙ LISEZMOI_CollecteTalent.txt que je vais joindre à ce script
* ◙ car $TalentCollecte.Json est necessaire au fonctionnement et vous
* ◙ Vous aurez besoin de LISEZMOI_CollecteTalent.txt pour le généré
* ◙ Et le modifier facilement.
* ◙ Cet addon ajoute plusieurs compétences de Collecte
* ◙ exemple : Mineur, Bûcheron, pêcheur...
* ◙ Tout est paramétré dans le Json
* ◙ Deux balises peuvent être utilisées dans les items notetags
*
* <Talent Collecte: [ID]> ► Non négociable!
*
* ◙ ID the la Talent definie dans le Json Lié à l'objet
* ◙ Par defaut il utisera la Talent 0 mais bon c'est pas vraiment
* ◙ pratique.
*
* <Collecte Niveau: [NIVEAU]> ► Obligatoire
*
* ◙ Niveau requis de la Talent pour pouvoir collecter l'objet
* ◙ Cela defini aussi le nombre de Xp généré pour la Talent
* ◙ via un algorythme expodentiel simple modifiable dans le JSON.
* ◙ Par defaut il utilisera le plugin
*
* <Forme: [VALEUR]> ► Obligatoire
*
* ◙ HP requis pour pouvoir collecter l'objet et diminué en collectant
*
* <Icon collecte: [ID]> ► Pour le fun
*
* ◙ La balise ci-dessus définie l'icon utilisé pour les message qui n'est pas
* ◙ necessairement l'icone de l'objet par exemple ce peut être la meme icon
* ◙ pour tout les legumes mais une tomate peut très bien avoir
* ◙ sa propre icone. Si l'icone n'est pas definit alors c'est l'icone de la
* ◙ database qui sera utilisé.
* =============================================================================
* EVENEMENTS DE COLLECTE
* =============================================================================
* ◙ La fonction suivante necéssite d'avoir un script de gestion du temps
* ◙ il fonctionne avec MOG_timeSystem et EszSimcraft_temps qui utilisent tout
* ◙ des variables de $gameSystem (hour, day, year...)
* ◙ Lorsque le param ACTIVE AUTOEVENT est activé, les interrupteurs locaux
* ◙ de l'evenement de collecte se désactivent et s'activent un par un de façon
* ◙ automatique.
* ◙ De cette manière , il est possible de simuler un systeme de repousse ou
* ◙ de régénération des elements de collecte.
* ◙ Vous devez d'abord placer le tag suivant dans le commentaire de l'evenement
*
* <AutoCollect: [VALEUR]>
*
* ◙ [VALEUR] correspond au nombre d'heure ($gameSystem) à attendre entre
* ◙ chaque réactivation de l'interupteur local.
* ◙ Les switch s'active dans le sens A=>B=>C=>D et se désactive dans le sens
* ◙ inverse D=>C=>B=>A. Le "D" devant (à priori) servir à définir quand la
* ◙ collecte est épuisée et "A" pleine.
*
* ◙ Exemple d'utilisation :
* ◙ On crée un evenement "rocher" avec le beau character d'un rocher
* ◙ Dans les commentaire de l'evenement on ajoute la balise <autocollecte: 50>
* ◙ Sur la page 1, on met condition Touche action
* ◙ dans le contenu de la page, la commande de plugin
* ◙ dans la page 2, on met condition Touche action et interupteur A, B, C ou D
* ◙
* =============================================================================
* COMMANDE DE PLUGIN :
* =============================================================================
* ◙ Pour appeler le script, créez un événement avec une commande de plugin
*
* Collecte [OUTIL REQUIS] [TABLEAU DES RESSOURCES] [EVNT COMMUN] this
*
* ◙ [OUTIL REQUIS]:
* ◙ true= menu de choix de l'outil false= outil main par defaut
* ◙ [TABLEAU DES RESSOURCES]:
* ◙ un tableau (entre deux crochet "[]" et séparé par des virgule) definissant
* ◙ la liste des ressources collectables par leur id dans la base de donnée.
* ◙ [EVNT COMMUN]:
* ◙ evenement commun appelé après la collecte
* ◙ this n'est requis que si vous utilisez autoevent
*
* ◙ Exemple : <Collecte true [5,3,1] 4 this>
* ◙ Dans cette exemple:
* ◙ - le joueur aura à choisir un outil
* ◙ - la commande appellera une collecte des ressources 5,3,1
* ◙ - à la fin l'evenement commun 4 sera appelé
SCRIPT (gtihub)
JSON talents
|