cortez - posté le 13/03/2023 à 17:45:51. (500 messages postés)
Je suis très content que l'on puisse débattre sans prise de tête. D'autant plus car ma vision du JDR est portée sur un narratif fort et des règles "faibles" (en gros l'inverse de D&D)
Confronter (sans animosité) nos point de vue devrait nous faire gagner chacun des choses. (et j'adorerai que ce soit le cas)
Le coup des math j'avoue c'est pas mon truc, mais je reconnait que c'est assez bien foutu dans les stats et les objets.
L'usure + la gestion de l'endurance est assez particulier, perso j'en aurait gardé 1 des deux (l'usure comme option avancée pour les joueurs confirmés).
En lisant tes retours il y a quelques points que je n'avais pas compris ou mal interprétés lors de ma 1ere lecture des pdf.
Un truc que je fait (et qui semble marcher) c'est tout au long des explications sur les mécaniques, feuille de personnages et autre c'est d'utiliser un joueur fictif comme exemple pour illustrer les différentes parties. Si possible conserver le même joueur fictif pour que le lecteur puisse suivre la progression des connaissances au même rythme que le joueur en exemple.
Avoir vu ta présentation me donne envie de présenter mes jdr également.
cortez - posté le 12/03/2023 à 21:44:14. (500 messages postés)
Super une présentation d'un JDR ça change j'aime bien. Par contre il y a des trucs qui vont pas...
Soucis techniques D'abord le pdf "livret de donnée" n'a pas de sommaire fonctionnel (on peut pas cliquer pour aller sur la rubrique directement) alors que le sommaire du manuel de règle fonctionne.
Le livre de règle présente les informations dans le désordre, tu devrais présenter dans cet ordre : 1-Histoire et contexte (aucune règle, juste le lore)
2-Feuille de personnage
3-explication de chaque icones et expliquer la forme de lame avec des trous dans les savoirs
4-Explication de toutes les règles de gestion (action, jet de dés, vie, magie, niveau, ...)
5-Explications des objets et équipement/reliques.
6-Les classes/races (lore uniquement)
7-Comment créer un personnage (règles)
8-Statistiques des races/classes.
Le déroulement est guidé par le fonctionnement suivant : Le joueur voit un jdr sur le thème de TLoZ donc il s'attend a avoir des explications sur l'univers.
Ensuite il arrive sur la feuille de personnage, il est intrigué il faut immédiatement expliquer chaque élément de cette feuille (il est important qu'il ai une idée de comment la feuille fonctionne avant même d'avoir les stats des personnages.)
Ensuite on explique comment on joue (lancé de dés, actions et systèmes de jeux)
Après on présente les personnages possibles (races et classes)
On lui indique juste après comment il peut créer son propre personnage.
Enfin on présente la grosse partie avec les statistiques et points forts de chaque peuples.
Souci d'accumulation Le JDR est dérivé d'un jeu de société (jeu de plateau) et ça se voit.Pour un jeu ayant été créé en plusieurs années il a accumulés les couches de mécaniques et complexité au fil du temps.
Bref il a le syndrome des règles a tiroir ou règles poupées-russes. Tout est très complexe et chaque point nécessite de retourner a une autre section des règles pour pouvoir être compris.
Exemple le plus parlant :
Tu nous présente les hyliens et on voit directement une forme de lame avec des points dedans on a aucune idée de ce que c'est il faut alors aller page 65 pour trouver une explication avec deux symboles différents pour un même truc. Et pour savoir ce que fait concrètement le savoir en question il faut aller page 101 du 2e livre pour comprendre ce que fait réellement la cuisine niveau 1.
Beaucoup de changement de pages et renvois de règles pour un truc a résumer en 1 ligne : Savoir - Cuisine niv1 (Permet de préparer des plats)
Ensuite tu as raison de rassembler tous les savoir dans le livret de données mais tu dois fournir l'information au lecteur immédiatement sinon il va fatiguer a force de scroller partout dans le document et vite se décourager de lire...
Un peu trop (peut-être) Il y a peut être aussi des systèmes superflux, l'alignement (bon mauvais loyal chaotique) alors c'est pas mon truc mais c'est pas le problème, c'est la phrase en page 53 :
L’alignement type des races n’est pas forcément l’alignement qu’un représentant de cette race aura, c’est seulement celui que sa culture tend à lui faire avoir. Donc c'est pas obligatoire de suivre l'alignement de la race que l'on joue, alors quel est l'intérêt de fixer un alignement par races si les joueurs choisissent celui qu'il veulent ?
L'utilisation d'un système d'usure est assez particulier, j'ai pas trouvé si attaquer avec une arme lui fait perdre de la durabilité ? Du coup si le stuff est détruit régulièrement les joueurs doivent looter constamment de l'équipement pour pouvoir rester équipés correctement (pas sûr que ce soit fun)
Des mathématiques Ensuite le gros point faible c'est le système de formule d'algèbre pour les équipement (armes) et le fonctionnement de la foudre... C'est trop compliqué pour être jouable selon moi.
Conclusion/conseils Désolé d'être aussi direct, mais je suis sûr que c'est un bon jeu mais il fait tout pour me repousser...
Pour te guider dans tes corrections essaye l'exercice suivant, résume chaque élément du jeu/ mécanique en 5 lignes maxi (il faut que l'on comprennent uniquement avec le résumé) si ça marche pas il faut simplifier (quitte a conserver le détail dans le livret de données.)
cortez - posté le 16/02/2023 à 20:44:22. (500 messages postés)
Nemau a dit:
J'ai retrouvé le problème que j'avais rencontré sous RMXP :
Contrairement à RM 200X, on ne peut pas choisir la hauteur d'un chara par rapport au héros, on peut juste cocher une case faisant que le héros passe à travers. Et du coup, si cette case est cochée mais que le chara fait plus de 32 pixels de haut, et qu'avec notre héros on traverse ce chara de haut en bas ou de bas en haut, on va le voir passer derrière pendant une fraction de seconde :
Dans l'exemple ci-dessus, le chara sur lequel passe le héros est sur la même planche que l'objet à droite, donc pour le jeu il fait un truc du genre 32*48, même si visuellement il fait 32*32 et est pile sur un carreau de map.
Bien sûr dans cet exemple il suffit de déplacer le chara vers une planche de charas en 32*32, mais on peut imaginer un cas où le héros doit marcher sur un objet en event faisant plus de 32*32. Il reste la possibilité de créer cet objet via plusieurs charas en 32*32 chacuns, mais ça fonctionne seulement si l'objet sur lequel marche le héros est statique. S'il se déplace de manière aléatoire ça devient très compliqué à créer.
Juste pour aider ceux qui ont des soucis avec ce "défaut" de ne pas pouvoir régler la priorité d'affichage des événements (fixes ou mobiles) j'ai trouvé ce script (il y a au moins 10ans) si ça peux aider... C'est fonctionnel pour XP et VX.
#==============================================================================# ** Event Layer Script Advanced (ELSA)#------------------------------------------------------------------------------# by DerVVulfman and Jay Ray# version 1.3# 02-24-2015# RGSS & RGSS2 / RPGMaker XP & RPGMaker VX#==============================================================================## INTRODUCTION:## More Event Layers. This script, originally titled 'Events Always Under' allowed# for the ability to have events actually break through the floor, sitting above# the panorama layer, but below the Tiles, still using the Tiles passability.# As the new Event Layer Script Advanced (ELSA), we have increased the z-index to# nine total flattened positions, allowing for more mapping options for RPG Maker# XP and VX## Three Events can go UNDEr the tiles. Now, you'll probably never need more# than that, but this allows you to have large event floor tiles, smaller accents# on top of them, and then maybe even smaller accents on the accents! Or use the# layers for water effects, lava effects and more, as the events can be animated!## Next, Use Mid-layer events to add embelishments on the floor, that stay under# the player but above tiles with priority level 0. You get three so, you can add# a nice rug or something, add some overlapping stool, and a pair of boots on that# stool, all without having to render a parallax map## Next for my own personal benefit, I created the Variations of Always Over Events# because for me personally, if I'm creating rooftops for houses, I want to be able# to customize them without locking myself into a specific tile layer and priority set.# Make a Huge Windmill, and then use another event layer to add the moving arms. Put# a tower that stands over the city, with a sperate layer for the flag or banners# that drape from it, (animated or not). The possibilities!!! Now you can have the# pre-rendered or hand-drawn map you want, without the massive parallax images needed# for maps with any large size.#### With ELSA and this can increase your layers from the seven possible before# (Panorama, Tile Layers (3), Event Layer, Above Event Layer, Fog)# to a total of FIFTEEN layers# (Panorama, Unders (3), Tile Layers (3), Mids (3), Aboves(4), and Fog)##### ------------------------------------------------------------------------------## USAGE:## Simply put, add one of the Event Words (Given below) to your event's name# (EX: EV003 Under 1), or create a comment in your event's list of commands# and have that comment be one of the words given below (again, without quotes). This# will flag the event as an 'Always Under' or a 'Stacked Layers' or an 'Above All' event# and place it in one of now ten layers.## On personal preference, I would recommend using it within a comment as the# event can have the 'Always Under' flag turned on/off if the event erased,# gone from one event page to another, or the like.## Event Comments and Effects# Comment: Under 1 - Puts event below tiles (z-depth: -3)# Comment: Under 2 - Puts event below tiles (z-depth: -2)# Comment: Under 3 - Puts event below tiles (z-depth: -1)# Comment: Mid 1 - Puts event above layer1 tiles (z-depth: 1)# Comment: Mid 2 - Puts event above layer1 tiles (z-depth: 2)# Comment: Mid 3 - Puts event above layer1 tiles (z-depth: 3)# Comment: Over 1 - Puts event above all other events (z-depth: 985)# Comment: Over 2 - Puts event above all other events (z-depth: 990)# Comment: Over 3 - Puts event above all other events (z-depth: 995)## Remember that the 'Always On Top' Flag can be clicked without a comment to# make even another layer!#==============================================================================## NOTE:## While one can apply a characterset graphic to an event, the 'through' flag# in an event will not let the player step upon any such tile. So if it is# the intention of the game/map designer for the player to walk upon such# tiles, only use graphics from the tileset for these events. Additionally,# setting the 'through' flag on may actively hamper movement and disable the# passages flags. Remember that this is mainly meant as a cosmetic change.##==============================================================================## TERMS AND CONDITIONS:## Free for use, even in commercial games. This script was originally created# as 'Events Always Under' by DerVVulfman. I went through and buffed it up for# more layers, other Event functions, so credit goes to DerVVulfman and JayRay## (Doesn't HAVE to be in that order, just saying...)## COMPATIBILITY ISSUES: THis script SHOULD work with other event changing scripts# as long as those scripts do not change#==============================================================================#==============================================================================# ** Game_Map#------------------------------------------------------------------------------# This class handles the map. It includes scrolling and passable determining# functions. Refer to "$game_map" for the instance of this class.#==============================================================================class Game_Map
#--------------------------------------------------------------------------# * Alias Listings#--------------------------------------------------------------------------alias eventadvanced_setup setup
#--------------------------------------------------------------------------# * Setup# map_id : map ID#--------------------------------------------------------------------------def setup(map_id)
eventadvanced_setup(map_id)for e in@events.valuesnextif e.nil?
e.eventadvanced1=trueif e.name=~"Under 1"
e.eventadvanced2=trueif e.name=~"Under 2"
e.eventadvanced3=trueif e.name=~"Under 3"
e.eventadvanced4=trueif e.name=~"Mid 1"
e.eventadvanced5=trueif e.name=~"Mid 2"
e.eventadvanced6=trueif e.name=~"Mid 3"
e.eventadvanced7=trueif e.name=~"Over 1"
e.eventadvanced8=trueif e.name=~"Over 2"
e.eventadvanced9=trueif e.name=~"Over 3"
image_flag =falseif RUBY_VERSION.slice(0,3)=="1.6"
image_flag =trueif e.character_name !=""else
image_flag =trueif e.character_name !=""or e.tile_id !=0endunless image_flag ==falseor e.list.nil?
for i in0...e.list.sizenextif e.list[i].code !=108
e.eventadvanced1=trueif e.list[i].parameters[0]=~"Under 1"
e.eventadvanced2=trueif e.list[i].parameters[0]=~"Under 2"
e.eventadvanced3=trueif e.list[i].parameters[0]=~"Under 3"
e.eventadvanced4=trueif e.list[i].parameters[0]=~"Mid 1"
e.eventadvanced5=trueif e.list[i].parameters[0]=~"Mid 2"
e.eventadvanced6=trueif e.list[i].parameters[0]=~"Mid 3"
e.eventadvanced7=trueif e.list[i].parameters[0]=~"Over 1"
e.eventadvanced8=trueif e.list[i].parameters[0]=~"Over 2"
e.eventadvanced9=trueif e.list[i].parameters[0]=~"Over 3"endendendendend#==============================================================================# ** Game_Character#------------------------------------------------------------------------------# This class deals with characters. It's used as a superclass for the# Game_Player and Game_Event classes.#==============================================================================class Game_Character
#--------------------------------------------------------------------------# * Public Instance Variables#--------------------------------------------------------------------------
attr_accessor :eventadvanced1# Event Advanced UnderLayer 1
attr_accessor :eventadvanced2# Event Advanced UnderLayer 2
attr_accessor :eventadvanced3# Event Advanced UnderLayer 3
attr_accessor :eventadvanced4# Event Advanced MiddleLayer 1
attr_accessor :eventadvanced5# Event Advanced MiddleLayer 2
attr_accessor :eventadvanced6# Event Advanced MiddleLayer 3
attr_accessor :eventadvanced7# Event Advanced OverLayer 1
attr_accessor :eventadvanced8# Event Advanced OverLayer 2
attr_accessor :eventadvanced9# Event Advanced OverLayer 3#--------------------------------------------------------------------------# * Alias Listings#--------------------------------------------------------------------------alias eventadvanced_initialize initialize
alias eventadvanced_screen_z screen_z
#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize
eventadvanced_initialize
@eventadvanced1=false@eventadvanced2=false@eventadvanced3=false@eventadvanced4=false@eventadvanced5=false@eventadvanced6=false@eventadvanced7=false@eventadvanced8=false@eventadvanced9=falseend#--------------------------------------------------------------------------# * Get Screen Z-Coordinates# height : character height#--------------------------------------------------------------------------def screen_z(height =0)return-4if@eventadvanced1return-3if@eventadvanced2return-2if@eventadvanced3return1if@eventadvanced4return2if@eventadvanced5return3if@eventadvanced6return980if@eventadvanced7return985if@eventadvanced8return990if@eventadvanced9if RUBY_VERSION.slice(0,3)=="1.6"return eventadvanced_screen_z(height)elsereturn eventadvanced_screen_z
endendend#==============================================================================# ** Game_Event#------------------------------------------------------------------------------# This class deals with events. It handles functions including event page# switching via condition determinants, and running parallel process events.# It's used within the Game_Map class.#==============================================================================class Game_Event < Game_Character
#--------------------------------------------------------------------------# * Get Event Name#--------------------------------------------------------------------------def name
return@event.nameendend
cortez - posté le 09/02/2023 à 18:24:15. (500 messages postés)
Créacoda a dit:
Beaucoup de choses à méditer, Sylvanor. Je pense que c'est une réponse qui sera utile à plusieurs.
En attendant, j'ai commencé à élaborer un concept de map. C'est soit un bunker, soit dans l'espace, alors j'ai encore de jeu pour déterminer l'endroit où se passe le jeu.
En haut à droite, c'est supposé être un logo corporatif. Présentement, ça fait un peu décoration pour enfant alors faudrait repenser le concept.
Je voulais réagir a ton logo, le plus simple serait de le dessiner comme un grafitti au pochoir (quitte a positionner des coulures et des débordement du pochoir) mais c'est un peu petit et on risque de ne pas bien voir. Soit pencher du coté minimaliste avec 1 seule couleur et styliser les formes pour que l'on comprenne que ce n'est pas un dessin au mur, mais un logo officiel.
A voir si tu veux mais il est aussi possible d'ajouter une plaque/panneau en dessous du logo (dans la vraie vie les logos sont sur des plaques ou des affiches)
# array de 5 valeurs$game_variables[45]=[33,1,2,100,57]# affiche la valeur du premier membre de l'arrayprint$game_variables[45][0]# ajoute un membre après la dernière position ayant la valeur 5$game_variables[45].push(5)# affiche le nombre de menbre que contient l'array.print$game_variables[45].length
cortez - posté le 19/01/2023 à 17:19:08. (500 messages postés)
Bon j'ai pas réussi en 3h...
Le plus gros problème c'est que le script Tankentai VX Ace est très mal écrit.
C'est dur de trouver les infos. (et a mon niveau s'est déjà pas facile de base.)
cortez - posté le 18/01/2023 à 18:35:52. (500 messages postés)
Voilà j'ai trouvé un contournement :
Il y a des restrictions cependant.
Le script est prévu pour avoir 4 personnages (tu peux en avoir plus je t'explique après) dans la base de donnée qui ont la capacité d'avoir des sorts de poison (ou des armes empoisonnées)
Cela suppose que tu ais 4 statuts de poison différent (1 attribué aux compétences propres a chaque personnage.
Astuce : Si 2 personnages ne peuvent pas être en même temps dans l'équipe (lié à l'histoire) ces 2 personnages peuvent avoir le même numéro de poison. (il ne faut pas qu'ils soient en même temps dans l'équipe)
Exemple : Basil est un personnage qui peux empoisonner l'ennemi il a donc le statut poison_1 réservé pour lui.
Si je décide que Alice dispose d'un sort de poison, elle sera le 2e personnage du jeu a avoir du poison, elle utilisera le statut poison_2
Attention aux objets et aux sort de bien attribuer le bon statut.
Les statuts aurons le texte suivant dans la boite "note"
Pour "poison_1" qui utilise l'attaque du lanceur pour infliger des dégats de poison (10% de l'attaque du lanceur en dommage sur la cible chaque tour.)
<apply effect: ATK store_1 10%>
<close effect: poison_1 >
Je stocke les valeurs des personnages au moment ou le statut poison est appliqué a la cible dans des variables (201 à 204)
Si tu as besoin de plus de 4 personnages different pouvant infliger du poison, il te suffit d'ajouter 2 status (copie colle les ligne de script des status 15 et 16 en changeant les valeurs
cortez - posté le 18/01/2023 à 17:11:09. (500 messages postés)
Je m'en sort pas trop mal en animation de magie (il faut que je teste avec des couleurs indéxés) (par contre je ne parle pas des poses du personnage mais des effets a l'écran).
Je veux bien aider bénévolement (car je suis pas régulier et possible que ça te plaise pas/colle pas avec ton style de jeu).
cortez - posté le 09/12/2022 à 22:10:40. (500 messages postés)
(je me jette dans le débat sans préparation, mais avec un cerveau fonctionnel, on sais jamais)
Le problème de l'utilitarisme c'est qu'il n'y a pas de "bonne réponse" ou de modèle infaillible pour dénouer toutes les situations et tous les dilemmes.
Chacun dispose de sa vision de la réalité et l’interprète en fonction de son vécu ce qui constitue un prisme déformant la réalité objective. (réalité numérique et quantifiable, sans aucun parti-pris ou préjugé)
La réalité telle que je la vis (perçois) m'est propre et chacun a la sienne. Il y a évidement des points communs entre chacune de nos ressentis propres mais personne n'expérimente la réalité exactement comme moi (ou vous). Ce sont les points communs qui nous rapprochent et les différences de perception qui nous sépare (parfois au point d'exprimer l'aversion/haine/...)
Pour apporter de l'eau au débat :
Un très (trop?) célèbre dilemme appelé "Trolley dilemma" expose la situation suivante :
un train/métro hors de contrôle se situe avant une bifurcation des rails. Si l'on ne fait rien l'aiguillage conduira le train/métro à écraser 5 personnes. L'autre voie conduira le train/métro a écraser 1 personne. Vous vous trouvez juste a coté du levier permettant de changer l'aiguillage et avez connaissances des informations que je viens de donner. Que faites-vous ?
A ce problème, il n'existe pas de solution utilitariste qui ne pose pas de problème si on l'analyse sur un autre angle. (l'utilitarisme vs les autres modèles de pensée/décision)
cortez - posté le 04/12/2022 à 12:29:14. (500 messages postés)
C'est exactement ce que j'ai imaginé pour concevoir ce système de mappemonde.
Sauf que j'organise la position du joueur dans une variable comme ceci :
1026
Le premier chiffre c'est pour le monde (si il est sur la world map principale ou alors sur une autre (ex 2 pour la lune, 3 sous les océans ... attention de ne pas utiliser le chiffre 0) c'est aussi le niveau de zoom minimum car on affiche la map complète.
Le 2e chiffre c'est le numéro du continent (de 0 à 9 donc maxi 10 continent par world map, dans le monde réel c'est suffisant ) C'est aussi le premier niveau de zoom pour savoir ou zoomer (on doit définir a l'avance les coordonnées de déplacement en x et y de la grande map pour centrer le continent a l'écran et zoomer dedans)
Le 3e c'est le numéro de la région du continent (encore de 0 à 9) chaque continent peux avoir 10 régions donc 100 régions par mappemonde. C'est aussi le 2e niveau de zoom, là encore on défini a l'avance selon la région du joueur les coordonnées pour centrer l'affichage de la région sur l'écran et zoomer dessus.
Le 4e chiffre c'est le numéro de la zone de la région du continent (encore de 0 à 9) chaque région contient maximum 10 zones pour un total par monde de 1000 zones (RPG maker est limité à 999 maps donc c'est suffisant). C'est le 3e zoom (maximum) possible on utilise encore une fois des coordonnées pour déplacer la map et center la zone sur l'écran et zoomer.
Pour la construction de la mappemonde. Le plus simple c'est de commencer par le niveau de "zoom" maximum (ce sera aussi la map la plus grande). Pour cela tu dézoome les maps dans l'éditeur de map de RPG maker afin de les afficher en entier sur l'écran (garde le même niveau de zoom dans l'éditeur pour éviter des abérations de proportion sur la map complète).
Tu fait une capture d'écran et dans un logiciel de dessin qui gère les calques tu "redessine" sur un calque par dessus la capture, les contours des montagnes, arbres, eau, ...
Tu définis les couleurs pour chaque type d'élément (ou alors différentes teinte sépia pour une carte "à l'ancienne".
Tu assembles chaque map du jeu sur l'image en les plaçant dans les bonnes zones/régions/continents. Pense a ajouter les noms de lieux et les points de tous les endroits sélectionnables (pour se téléporter)
Une fois les map assemblées, ajoute un calque pour numéroter les continents (0 à 9) et chacune des régions (0 à 9) et chaque zone (0 à 9) Conseil :Place le contient 0 le plus a gauche de la map, puis la région 0 la plus a gauche du contient 0, et la zone 0 la plus a gauche de la région 0. Plus tard pour effectuer une sélection par le joueur du contient/région/zone on utilisera les flèches gauche et droite qui ajouterons ou diminuerons une variable entre 0 et 9 (gauche ira vers 0 et droite vers 9 avec une condition si variable >9 alors variable =0 et pareil dans l'autre sens)
Ensuite il faut, dans l'outil de dessin rester en zoom 100% (1 pixel = 1 pixel de l'écran) ajouter un calque avec un rectangle de la taille de l'écran de jeu de ton RPG maker que tu déplace afin de le positionner sur la première zone que tu va ajouter (conseil :commence par le continent/région/zone 0/0/0 histoire de ne rien oublier) une fois que la zone est entièrement recouverte du rectangle note les coordonées du pixel haut/gauche du rectangle. (et en déduire la position du pixel central du rectangle)
exemple : zone 000 (centre du rectangle d'affichage)
x =120
y =520
pour simplifier les calculs sur RPG maker tu peux déjà calculer
(largeur en pixel de la map complète) / 2
et
(longueur en pixel de la map complète) / 2
pour obtenir le centre de l'image de ta map.
Ensuite (centre map X - centre affichage X = offsetX ) pour positionner la map sur le centre de l'écran dans le logiciel RPG maker
Si la zone comporte des points de TP note leur position par rapport au rectangle qui représente l'écran. On pourra afficher une image sur la position si le TP est débloqué ou non
Tu note chaque zone de 000 à 999 (mais je pense que tu en auras moins) et les coordonées "offsetX et Y" pour pouvoir positionner la map sur l'écran.
Ensuite tu sauvegarde la map taille 100% et sur une copie du applique un redimentionnement pour que la taille d'une région rentre dans un rectangle représentant l'écran de jeu. Pense bien a noter le redimentionnement que tu utilise ce sera notre zoom de niveau 2, (celui de niveau 3 c'est 100%)
Selon tes goûts tu peux re-dessiner les contours des zones pour lisser un peu, re-dessiner les rivières pour qu'elles gardent une largeur fixe. Si tu avais placé des noms de lieux et de villes sur la map taille 100% il faut que tu retire les noms de lieux trop petits pour être lus et re-dessiner les points représentants les lieux sélectionnables. (Un peu comme google map, si tu dézoome les petites rues et leurs nom disparaissent)
Si tu ne souhaite pas re-dessiner la map il te reste a effectuer la même manipulation que les zones mais pour les régions de 00 à 99 (toujours avec le rectangle qui représente l'écran du jeu)
région 00 :
offsetX = 657
offestY = 695
Et noter les coordonnées des point de TP de la région. Les grandes villes uniquement, pas question d'avoir une map remplie de marqueur de TP.
Tu sauvegarde ta map redimentionnée uniquement si tu l'a re-dessinée)
Ensuite tu passe aux "dézoom" pour les continent et les coordonées offset le redimentionnement et TP (de 0 à 9) et le dézoom final pour la mappemonde entière.
Comment fonctionne la map en jeu ?
Le joueur affiche la map locale (niveau de zoom 100% = niveau de zoom zones) lorsqu'il presse un touche ou lorsqu'il utilise un objet "carte" dans son inventaire.
Le joueur affiche la map complète (niveau de zoom ??% = niveau de zoom monde) lorsqu'il interagit dans le jeu avec une map sur un mur ou sur une table.
Dans la carte les touches gauche et droite servent a déplacer le curseur de point de TP en point TP (qu'ils soit actif ou pas) la touche haut sert a dézoomer (zone > région > contient > monde) et bas sert a zoomer (donc l'inverse)
Esc sert a quitter la carte et Entrée sert a valider la téléportation (si le point actuellement sélectionné est actif)
Par contre pour pouvoir utiliser la touche bas pour zoomer sur la région/zone sélectionnée il faut impérativement que la région et la zone aient 1 TP chacune. Car c'est le fait de sélectionner un point TP sur la map qui permet de savoir quelle région/zone afficher lorsque l'on zoome.
Donc dans les évènement commun :
D'abord les évènement d'affichage d'image et d'enregistrement de variable.
Il en faut 1 pour la mappemonde en "appel uniquement" (affiche le monde entier dézoomé sur l'écran) et chaque point de TP des capitales ou lieux important
Exemple :
Tu fait une suite de commandes variable
(on vide toutes les variables TP0x à TP9x et TP0y à TP9y)
TPMAX= nombre réel de TP a afficher.
TP0x=position x sur l'écran du TP du continent 0 (le plus a gauche)
TP0y=position y sur l'écran du TP du continent 0 (le plus a gauche)
...
Ensuite on affiche la mappemonde (image 1) au centre de l'écran par ses coordonnées du centre de l'image. (c'est important puisque toutes les coordonnées offsetX et Y que l'on a écrite dans un document pour chaque zone utilisent comme base le centre du rectangle représentant l'écran).
Si tu as re-dessinée chaque image pour chaque niveau de zoom, tu va pouvoir utiliser l'image n°2 pour effectuer une transition avec un effet de zoom et de transparence pour passer de d'un niveau a l'autre de zoom. (sinon l'image 2 ne servira pas)
Tu affiche chaque icones de TP avec les coordonnées TP1x TP1y ... en utilisant les images 4, 5, 6 ... Une petite condition sur un interrupteur pour savoir si le TP est actif ou pas. (tu réserves un interrupteur par TP, ON=actif OFF=inactif, sache que RPGmaker autorise 9999 interrupteurs donc utilise les interrupteur 1000 a 1999 pour les 1000 zones possibles de ton jeu.) Chaque zone comporte maximum 1 TP ce qui pourrait te donner un grand nombre de TP, par contre sache qu'avec la numérotation que l'on a utilisé pour les zones, si le joueur est sur la map associée à la zone du monde 1357 c'est aussi le numéro d'interrupteur correspondant au TP de la zone 1357.
Mais bon vu que l'on affiche actuellement les TP du monde on devrait avoir a l'écran les 10 TP (un par continent) donc les interrupteurs 1000 1100 1200 1300 1400 ... 1900 a vérifier donc maxi 10 conditions. Et donc 10 images représentant les TP.
1 évènement commun pour les continents "appel uniquement" :
Même chose pour l'affichage d'un continent et les 10 TP maxi (1 par région).
Vu qu'il y a 10 continent on fait 10 conditions pour vérifier quel continent a été sélectionné (Variable choix) par le joueur sur le zoom précédent. (c'est différent de la position réelle du joueur stockée sous la forme 1???)
Si le joueur sur la mappemonde à fait "bas" le TP du continent 0 on utilise le offsetX et Y du continent 0 on déplace la mappemonde (échelle 100%) et on zoome dessus selon le redimentionnement noté dans la partie continent.
Chacune des 10 conditions possède sa propre série de 10 coordonnées pour les points de TP du continent affichés (toujours 1 par région).
(on vide toutes les variables TP0x à TP9x et TP0y à TP9y)
TPMAX= nombre réel de TP a afficher.
TP0x=position x sur l'écran du TP le plus a gauche
TP0y=position y sur l'écran du TP le plus a gauche
Ensuite on affiche les 10 TP du continent. En vérifiant les 10 interrupteurs (si le continent 0 est choisi on vérifie les interrupteurs 1000 1010 1020 1030 ... 1090)
1 évènement commun pour les régions
Attention pour les régions on a les 10 conditions des continents avec chacune 10 conditions pour les régions.
Tout pareil que pour les continents mais on vérifie les interrupteurs ???1 ???2 ???3 ???4 ... ???9.
1 évènement commun pour les zones
Attention pour les Zones on a les 10 conditions des continents avec chacune 10 conditions pour les régions qui ont chacune les 10 conditions de zones en fonction de la Variable choix. (oui c'est un peu lourd)
Au choix, on affiche juste la mappemonde 100% avec l'unique TP dessus pour que le joueur puisse le sélectionner et revenir a un point intérêt.
Soit on affiche aussi la tête du joueur en position relative en pixel par rapport au cases de la map ou il se trouve.
Dans ce cas on devra aussi afficher la tête du joueur sur les autres niveau de dézoom mais c'est ultra simple puisqu'on connait sa position (si 1357 alors on affichera sa tête sur les points de TP Continent 3, Région 5 et zone 7 sur les différent niveaux de zoom)
Il en faut 1 pour la sélection des points et le déplacement dans les différents niveaux de zoom.
Cet évènement est en processus automatique (pour verrouiller le joueurs vu que l'on utilise les flèches) activé uniquement par un interrupteur "sélection" qui est activé à la fin de chaque évènement commun qui affiche les niveau de zoom.
Rappel : TPMAX correspond au nombre de TP affichés à l'écran, il est mis à jour a chaque affichage de niveau de map. Par défaut le choix commence sur 0 et lorsque le joueur quitte la mappemonde et la ré-affiche le choix par défaut est le dernier choix effectué. J'ai un peu optimisé le code en évitant d'afficher une image toutes les 2 frames voir ligne en jaune.
Si variable choix = 0
alors variable choix = 1000 (on construit la variable choix sur 4 chiffres comme la variable position réele du joueur)
afficher image 3 en position -50 -50 (hors de l'écran)
Placer l'étiquette DEBUT
Si Esc est préssée : allez a l'étiquette FIN.
Si gauche est préssée ET
Si Variable choixTP <0
alors Variable choixTP = TPMAX ET allez a l'étiquette UPDATE
sinon
Variable choix -1 ET allez a l'étiquette UPDATE
Si droite est préssée ET
Si Variable choixTP >TPMAX
alors Variable choixTP = 0 ET allez a l'étiquette UPDATE
sinon
Variable choix +1 ET allez a l'étiquette UPDATE
Si haut est préssée ET
Si Variable niveau de zoom = 1
alors Variable niveau de zoom = 1 ET allez a l'étiquette UPDATE
sinon
Variable niveau de zoom -1 ET allez a l'étiquette ZOOM -
Si bas est préssée ET
Si Variable niveau de zoom = 4
alors Variable niveau de zoom = 4 ET allez a l'étiquette UPDATE
sinon
Variable niveau de zoom +1 ET allez a l'étiquette ZOOM +
Placer l'étiquette UPDATE
10 conditions si Variable choix = 0 à 9 alors déplacer image 3 en position TP0x/TP0y à TP9x/TP9y
attendre 2 frames (pour éviter le clignotement de l'image 3 si les joueurs spamment les touches.)
Allez à l'étiquette DEBUT
Placer l'étiquette ZOOM -
3 conditions si Variable niveau de zoom = 1 à 3 on appelle l'évènement commun d'affichage correspondant au niveau de zoom choisi. Il faut penser aussi a reconstruire la valeur des centaines/dizaines en fonction de la valeur choixTP pour définir la bonne adresse lorsque l'on dézoom. théoriquement si on dézoom c'est que la Variable choix contient déjà des valeurs pour les centaines et dizaines.
attendre 10 frames (si vous avez une transition d'effet de zoom ou transparence a jouer avec l'image n°2 il faut attendre plus que 10 frames)
Allez à l'étiquette DEBUT
Placer l'étiquette ZOOM +
3 conditions si Variable niveau de zoom = 2 à 4 on appelle l'évènement commun d'affichage correspondant au niveau de zoom choisi. Il faut penser aussi a reconstruire la valeur des centaines/unités/dizaines en fonction de la valeur choixTP pour définir la bonne adresse lorsque l'on zoom.
attendre 10 frames (si vous avez une transition d'effet de zoom ou transparence a jouer avec l'image n°2 il faut attendre plus que 10 frames)
Allez à l'étiquette DEBUT
Placer l'étiquette FIN
Effacer image 1 à 13. (les images 4 à 13 servent pour les point de TP)
Interrupteur "sélection" OFF
Avec tout ça c'est bon.
Il reste a appeler l'évènement commun "afficher mappemonde" lorsqu'un joueur consulte une map sur un mur ou une table et aussi mettre la Variable niveau de zoom = 1
Et appeler l'évènement commun "afficher zone" lorsqu'un joueur consulte une map dans les items, il faut rendre égale la variable choix égale à la variable position réelle du joueur (pour que l'affichage de la zone correspondent a la position du joueur.) et aussi mettre la Variable niveau de zoom = 4
cortez - posté le 03/12/2022 à 18:47:40. (500 messages postés)
Théoriquement tout est possible en gérant avec des images, y compris les points de TP. Par contre en évent c'est assez rigoureux, et je n'ai pas le logiciel MZ.
Je ne peux pas promettre, mais j'adore les défis je pense tester dans mon coin la gestion des images et d'un "menu de téléportation" tout en évènement.
Si quelque chose ressort de mes test je te partagerait les évènements et la manière dont j'ai procédé. (par contre se sera sur XP donc il faudra adapter).
cortez - posté le 03/12/2022 à 14:38:05. (500 messages postés)
Je n'arrive pas a comprendre ce dont tu as besoin. Pourrais-tu répondre a mes questions ? Histoire que j'ai une idée précise de ce que tu cherches a faire.
Tu parles d'une mappemonde, es-ce que c'est l'une des propositions ci-dessous ?
Une map sur laquelle le personnage (sous forme de character) peut ce déplacer case pas case (comme une map classique) mais qui, lorsqu'on arrive sur le bord droit de la map nous fait continuer depuis le bord gauche. Idem pour le haut et le bas pour avoir une map qui boucle.
Une image dessinée avec une représentation des continents et des zones principales depuis laquelle le joueur peux sélectionner une destination et s'y téléporter.
cortez - posté le 02/12/2022 à 17:34:56. (500 messages postés)
Quelques sources possible d'énigmes :
Les jeux "professeur Layton" (toute la serie sur DS et 3DS)
Les jeux "Golden Sun" (toutes les énigmes de donjons.)
Si tu as déjà joué a des escapes games, pas mal d'enigmes peuvent être intéressantes.
cortez - posté le 07/11/2022 à 23:03:47. (500 messages postés)
Au sujet de l'histoire des ressources, quand je participe pas je peux voter.
Perso je suis plus sympa avec les erreurs de maping de ceux qui utilisent des ressources rtp et/ou mappant avec des cases, que ceux utilisant du custom et/ou des calques d'image pour leur maps.
Un custom, si c'est fait sur mesure, il ne devrait pas y avoir d'erreur ou de souci de manque d'objet/variété dans la map (puisque le créateur du tileset c'est le mappeur, il ajoute ce qui pourrait manquer)
Par contre sortir une belle map avec des rtp (ou des tileset trouvé sur le net) c'est pas aussi simple, vu qu'on ne l'a pas crée nous-même il faut être créatif pour en tirer le meilleur.
Bref c'est comme cela que je vois les choses. (implicitement ça encourage les débutants et je trouve que c'est pas si mal)
Ps: Mon opinion ne tient pas compte du temps passé lors de la création de custom, c'est pas fait exprès mais je préfère noter la qualité du mapping que la qualité des ressources employées.
cortez - posté le 26/10/2022 à 23:15:46. (500 messages postés)
C'est l'histoire d'un héron nommé héron qui prend le soleil près d'un cour d'eau.
Arrive au loin un petit moineau qui se dirige vers lui en disant ceci :
"Tapon !, Tapon, pourrait-tu m'indiquer le nord ?"
Alors le héron un peu surpris, prend la parole et répond gentiment au moineau :
"La direction du nord c'est par là" il tendit son aile dans la bonne direction.
Le moineau le remercie aussitôt : "Merci, Tapon."
Avant que le moineau ne parte, héron insista : "Moi c'est héron ! Héron petit, pas tapon!"
cortez - posté le 18/10/2022 à 16:17:38. (500 messages postés)
Gari a dit:
J'aime pas Final Fantasy, mais j'adore le dessin (avec crayons de couleur et scanné à l'ancienne ?) de cortez, même si Degenpy mérite totalement sa première place.
Le dessin est assez grand c'est une photo. J'ai une multitude d'essais au crayon (dans un style réaliste pour la plupart) mais je dessine plus. (au pire je les posterais les semaines spéciales artworks)
[mode vieux c**] Un dessin qui est pas palpable n'est pas un vrai dessin, regardez vous avec vos palettes virtuelles au trouze-mille couleurs et effets. Le dessin sur papier ya que ça de vrai.[fin du mode vieux c**]
Troll mis a part, bravo au participants tant de styles différents ça fait plaisir a voir.
cortez - posté le 14/10/2022 à 16:42:28. (500 messages postés)
Je n'ai pas les compétences pour modifier ce qu'il faut dans le script. Par contre je te conseille ce script : (qui permet de tout gérer avec des %)
https://pastebin.com/raw/VB5QUann
Et je t'ai préparé un petit script de menu pour aller avec a partir de celui de DoctorTodd: (il faut le placer au dessus de main mais en dessous de celui de TheoAllen)
#===============================================================================## Difficulty Menu# Author: DoctorTodd# Date (06/24/2012)# Version: (1.0.0) (VXA)# Level: (Medium)# Email: Todd@beacongames.com##Script Found here: https://rmrk.net/index.php/topic,46302.0.html##===============================================================================## NOTES: 1)This script will only work with ace.##===============================================================================## Description: Lets the player select the games difficulty.## Credits: Me (DoctorTodd), D&P3 for saving bug fix.##===============================================================================## Instructions# Paste above main.##===============================================================================## Free for any use as long as I'm credited.##===============================================================================## Editing begins 38 and ends on 71.##===============================================================================module TODDDIFFICULTY
#Easy Text.
EASYT ="Facile - Suivez l'histoire sans souci"#Normal Text.
NORMALT ="Normal - Difficulté par défaut"#Heroic Text.
HEROICT ="Heroïque - Pour ceux en quête de défis"#Hard Text.
HARDT ="Hard"#Easy enemy parameters multiplier.
EASYM =0#Heroic enemy parameters multiplier (Normal is skipped since it's what put#you into the database).
HEROICM =2#Hard enemy parameters multiplier.
HARDM =3#The text above where the selection is made.
TEXT ="Choisissez la difficulté :"#Menu command?
MENU =true#Sound effect to play when difficulty is selected.
SE ="Darkness8"#Switch to allow cancelling the difficulty selection.#MUST NOT BE ON WHEN SELECTING FOR THE FIRST TIME.
SWITCH =5end#==============================================================================# ** Game_System#------------------------------------------------------------------------------# This class handles system data. It saves the disable state of saving and# menus. Instances of this class are referenced by $game_system.#==============================================================================class Game_System
#--------------------------------------------------------------------------# * Public Instance Variables#--------------------------------------------------------------------------
attr_accessor :todd_difficulty# save forbidden#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------alias todd_difficulty_gamesystem_init initialize
def initialize
@todd_difficulty=0
todd_difficulty_gamesystem_init
endend#==============================================================================# ** Window_DifficultySelection#==============================================================================class Window_DifficultySelection < Window_Command
#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize
super(0,0)end#--------------------------------------------------------------------------# * Get Window Width#--------------------------------------------------------------------------def window_width
Graphics.width/2+216end#--------------------------------------------------------------------------# * Get Digit Count#--------------------------------------------------------------------------def line_max
return3end#--------------------------------------------------------------------------# * Create Command List#--------------------------------------------------------------------------def make_command_list
add_command(TODDDIFFICULTY::EASYT,:easy)
add_command(TODDDIFFICULTY::NORMALT,:normal)
add_command(TODDDIFFICULTY::HEROICT,:heroic)
add_command(TODDDIFFICULTY::HARDT,:hard)endend#==============================================================================# ** Window_DifficultyName#==============================================================================class Window_DifficultyName < Window_Base
#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize
super(0,0, window_width, fitting_height(1))
refresh
end#--------------------------------------------------------------------------# * Get Window Width#--------------------------------------------------------------------------def window_width
return Graphics.width/2+64end#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refresh
contents.clear
draw_text(4,0,400,80,TODDDIFFICULTY::TEXT)endend#==============================================================================# ** Scene_Difficulty#==============================================================================class Scene_Difficulty < Scene_MenuBase
#--------------------------------------------------------------------------# * Start Processing#--------------------------------------------------------------------------def start
super
create_command_window
create_name_window
end#--------------------------------------------------------------------------# * Create Command Window#--------------------------------------------------------------------------def create_command_window
@command_window= Window_DifficultySelection.new@command_window.set_handler(:easy, method(:command_easy))@command_window.set_handler(:normal, method(:command_normal))@command_window.set_handler(:heroic, method(:command_heroic))@command_window.set_handler(:hard, method(:command_hard))@command_window.set_handler(:cancel, method(:return_scene))if$game_switches[TODDDIFFICULTY::SWITCH]==true@command_window.x= Graphics.width/2-252@command_window.y= Graphics.height/2-50end#--------------------------------------------------------------------------# * Create Difficulty Window#--------------------------------------------------------------------------def create_name_window
@name_window= Window_DifficultyName.new@name_window.x= Graphics.width/2-176@name_window.y= Graphics.height/2-97end#--------------------------------------------------------------------------# * [easy] Command#--------------------------------------------------------------------------def command_easy
$game_system.todd_difficulty=0$game_variables[THEOLIZED::DIFFSETTING::VAR_ID]=1
Audio.se_play("Audio/SE/"+TODDDIFFICULTY::SE,100,100)
return_scene
end#--------------------------------------------------------------------------# * [normal] Command#--------------------------------------------------------------------------def command_normal
$game_system.todd_difficulty=1$game_variables[THEOLIZED::DIFFSETTING::VAR_ID]=2
Audio.se_play("Audio/SE/"+TODDDIFFICULTY::SE,100,100)
return_scene
end#--------------------------------------------------------------------------# * [heroic] Command#--------------------------------------------------------------------------def command_heroic
$game_system.todd_difficulty=2$game_variables[THEOLIZED::DIFFSETTING::VAR_ID]=3
Audio.se_play("Audio/SE/"+TODDDIFFICULTY::SE,100,100)
return_scene
end#--------------------------------------------------------------------------# * [hard] Command#--------------------------------------------------------------------------def command_hard
$game_system.todd_difficulty=3$game_variables[THEOLIZED::DIFFSETTING::VAR_ID]=4
Audio.se_play("Audio/SE/"+TODDDIFFICULTY::SE,100,100)
return_scene
endendifTODDDIFFICULTY::MENU==true#==============================================================================# ** Scene_Menu#------------------------------------------------------------------------------# This class performs the menu screen processing.#==============================================================================class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------# * Create Command Window#--------------------------------------------------------------------------alias todd_dif_menu_add_menu_command create_command_window
def create_command_window
todd_dif_menu_add_menu_command
@command_window.set_handler(:dif, method(:command_dif))endend#--------------------------------------------------------------------------# * [Difficulty] Command#--------------------------------------------------------------------------def command_dif
SceneManager.call(Scene_Difficulty)endendifTODDDIFFICULTY::MENU==true#==============================================================================# ** Window_MenuCommand#------------------------------------------------------------------------------# This command window appears on the menu screen.#==============================================================================class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------# * Add Main Commands to List#--------------------------------------------------------------------------alias todd_dif_menu_command_add_to_menu add_main_commands
def add_main_commands
todd_dif_menu_command_add_to_menu
add_command("Difficulty",:dif, main_commands_enabled)endendend
Vu que le menu n'affiche que 4 choix, il permet seulement d'utiliser les 4 premières valeurs du script de TheoAllen.
# value => [mhp ,mmp ,atk ,def ,mat ,mdf ,agi ,luk , exp,gold, buy,sell]
1 => [100 ,100 ,100 ,100 ,100 ,100 ,100 ,100 , 100, 100, 100, 100],
2 => [100 ,100 ,100 ,100 ,100 ,100 ,100 ,100 , 100, 100, 100, 100],
3 => [100 ,100 ,100 ,100 ,100 ,100 ,100 ,100 , 100, 100, 100, 100],
4 => [100 ,100 ,100 ,100 ,100 ,100 ,100 ,100 , 100, 100, 100, 100],
5 => [100 ,100 ,100 ,100 ,100 ,100 ,100 ,100 , 100, 100, 100, 100],
J'ai prévu le coup si tu change la variable qui gère la difficulté (var n°9 par défaut) c'est pris en compte dans le menu (pas besoin de modifier le script de menu)
Tu choisi la version en fonction de celle de ton windows: (les package .msi sont installables sous windows.)
Tiled-1.8.6-win32.msi
Tiled-1.8.6-win64.msi
Pour connaitre la version windows que l'on possède :
touche "windows" + R
vous tapez cmd dans la fenêtre qui s'ouvre
dans la fenêtre noire vous tapez : dxdiag
vous validez avec entrée.
Une fenêtre qui récapitule la config de votre PC apparait : la ligne "Système d'exploitation" indique si c'est une version 32 bits ou 64 bits.
Je ne pourrais pas tester (j'ai pas MV), essaye ce plugin dans un projet vide pour tester :
Une map avec le tag : (pour mettre l'heure a 23h00 - donc la nuit)
<cl: daynight>
<cl: Daynight hour 23 00>
Ajoute un événement sur la map (juste a coté du héro) qui a joue les commandes suivantes lorsque tu lui parle.
Script : Light radius r0 #000000
Script : Light radiusgrow r200 #FFFFFF b3 20
commande : attendre 20 frames
Script : Light radius r200 #FFFFFF
Normalement si tout ce passe bien les commandes devraient permettre d'avoir une lumière progressive croissante pendant 1 seconde (20 frames) puis une lumière fixe.
cortez - posté le 08/10/2022 à 15:59:58. (500 messages postés)
Si tu utilise la commande script 'Light radiusgrow 200 #FFFFFF' le chiffre 200 correspond au nombres de frames pour que le rayon augmente de 0 a la taille max de la zone éclairée.
Il faut que tu utilise une valeur plus petite pour que l'effet soit plus rapide :
Light radiusgrow 4 #FFFFFF (en 4 frames soit 1/5e de seconde)
cortez - posté le 05/10/2022 à 15:54:55. (500 messages postés)
Sylvanor a dit:
Waow incroyable et super cool le rendu 3D! Comment fait ce type, c'est sûr que c'est du RM2003? Je pense qu'il a dû hacker le logiciel.
Je pense au contraire que tout est réalisé en images. Comme on le voit sur une capture de la vidéo certaines parties semble de répéter en profondeur ce qui me fait penser au système de Joke de shooter en couloir 3D. C'est tout de même très impressionnant. Pour savoir un peu comment ça (pourrait) être fait je vous conseille l'excellente vidéo de Coding Secrets
cortez - posté le 03/10/2022 à 16:46:05. (500 messages postés)
Ya aussi un bout de code (plugin ?) Par contre je parle pas russe donc j'en sait pas plus (c'est possiblement une autre langue que le russe utilisant le même alphabet)
//=============================================================================// RPG Maker MZ - Plomax(Zero) Max Battlers and Status
//=============================================================================/*:
*@target MZ
*@plugindesc v1.00 Plomax(Zero) Max Battlers and Status
*@author Plomax(Zero)**@param MaxBattlers
*@text Number of Max Battlers
*@desc Number of Max Battlers
*@default*@param MaxStatus
*@text Number of Max Status
*@desc Number of Max Status
*@default******/
var PM = PM ||{}; PM.MaxBattlers= PM.MaxBattlers||{};
var Imported = Imported ||{}; Imported["PM_MaxBattlersAndStatus"]=1.00;(($_$)=>{
const pluginName ="PM_MaxBattlersAndStatus";
function getPluginParameters(){var a = document.currentScript||(function(){ var b = document.getElementsByTagName('script');return b[b.length-1];})();return PluginManager.parameters(a.src.substring((a.src.lastIndexOf('/')+1), a.src.indexOf('.js')));}$_$.par= getPluginParameters();$_$.par['MaxBattlers']=$_$.par['MaxBattlers']||4;$_$.par['MaxStatus']=$_$.par['MaxStatus']||4;
Window_BattleStatus.prototype.maxCols= function(){return$_$.par['MaxBattlers']||4;};
Game_Party.prototype.maxBattleMembers= function(){return$_$.par['MaxBattlers']||4;};
Window_MenuStatus.prototype.numVisibleRows= function(){return$_$.par['MaxStatus']||4;};})(PM.MaxBattlers);
cortez - posté le 03/10/2022 à 16:36:25. (500 messages postés)
Gari a dit:
Oui, il avait effectivement des erreurs, encore, désolé.
Du coup j'ai pris la version de cortez pour faire la MAJ.
Pas de souci, par contre c'est bizarre que sur ma version Steam de XP, la ligne 180/181 et 207/208 pose problème, vous avez quoi dans votre script Main ?
(il me semble que la version gratuite possède les script issus de la version jap)
cortez - posté le 30/09/2022 à 22:30:02. (500 messages postés)
Mon avis n'est pas nécessaire mais je le donne quand même.
Personne ne devrait avoir besoin de se conformer a quoi que ce soit (si il ne le souhaite pas). Le fait que nous soyons des individus par sémantique implique que nous soyons différents les uns des autres. (de diverse façon et dans divers domaines)
C'est à chacun d'effectuer un choix afin de se conformer selon différents degrés en fonction de l'attitude (ou archétype) majoritaire.
(je ne prend pas ici le temps d'expliquer la pression sociale/familliale/par les pairs, non pas parce que je ne veux pas mais pour simplifier et raccourcir mon propos) Le fait de diverger d'une certaine quantité de cette norme, ne doit aucunement être perçue et jugée comme un tord. (ce n'est pas le cas dans la vraie vie véritable, quelque soit cette différence)
Ce raisonnement est valable également sur ce débat, c'est parce que nos avis sont différents que nous débattons (plus ou moins pacifiquement).
Je comprend le point de vue de Virgile, effectuer un effort pour se conformer depuis autant de temps ce n'est pas négligeable. Chacun doit également comprendre que quantifier ce que l'on considère comme un effort est une vision qualitative et quantitative propre a chacun.
Prenons un exemple "neutre" imaginons que pour moi "sortir les poubelles" constitue un effort considérable (mentalement), cela m'est propre. Par contre si un autre être humain n'y voyait aucun effort (mentalement) il pourrait déclarer que je ne fait pas d'effort.
Le pire c'est que nous aurions tous les deux raison a notre façon.
Faire changer le point de vue de l'autre est l'une des issues possibles d'un débat, mais elle n'est pas la seule. Le statu quo est également parfaitement accepté.
Après si un échange a plus ou moins affecté une personne pendant le débat, il faut aussi reconnaitre que l'on puisse avoir blessé autrui, (les suites a donner sont a la discrétion de chacun) l'idéal est de reconnaitre la situation comme elle apparait pour la personne lésée (se mettre a la place de l'autre) mais comme je l'ai dit plus haut c'est un effort qu'il faut consentir a faire.
Aucun jugement sur le fait de ne pas reconnaitre ses éventuels tords, c'est comme cela.
(oui ça fait pas avancer beaucoup le sujet mais j'apprécie pas les tensions donc j'ai pris le temps de réagir aussi factuellement que possible.)
cortez - posté le 30/09/2022 à 21:49:52. (500 messages postés)
Ephy a dit:
Merci mais justement, je me sers beaucoup de ces tiles-là C'est quand même fou de pas trouver à quel moment ces ombres sont générées dans les scripts de base pour pouvoir les faire sauter.
C'est bon j'ai trouvé, c'est un script gratuit (pour un jeu gratuit) mais il faudra payer Zeus81 si le projet est commercialisé. Merci a Zeus81, le script ne fait pas que supprimer les ombres auto, mais il ajoute la gestion de lumières et ombres des personnages si besoin.
cortez - posté le 30/09/2022 à 18:38:42. (500 messages postés)
Ephy a dit:
Support : RMVXAce
Question :
Est-ce qu'il est possible de désactiver les ombres auto de VXAce (les rectangles noirs semi-transparent ajoutés automatiquement quand on mappe) en changeant un réglage dans les scripts de base?
Je pourrais les virer demi-tile par demi-tile à la main mais c'est très relou et trop source d'oublier une ombre quelque part donc autant éviter
J'ai ce que tu cherche mais ya un hic, cela supprime la couche 2 qui est composée des ombres automatiques et aussi des éléments situés dans le cadre que j'ai sélectionné.
Donc ça marche mais il faut se passer de ces 8 autotiles. (j'ai pas compté le marécage et la sorte d'escalier juste en dessous)
Le script est de Nelderson (il ne demande pas de crédit pour le script mais on sait jamais)
## Use the script call: (switch_autoshadow) to enable/disable autoshadows.#Credits for Abt Plouton$autoshadow_switch=true#Default autoshadow - true means regular autoshadowclass Game_Map
attr_writer :autoshadowsdef autoshadows
# Set autoshadows to false if it is not yet defined@autoshadows=@autoshadows==nil ? false : @autoshadowsreturn@autoshadowsendalias ma_remove_auto_shadows_on_setup setup
def setup(map_id)
ma_remove_auto_shadows_on_setup(map_id)# Rather than repeatedly call a method, set a local variable to have it's dataif$autoshadow_switch==false
ma_data = data
returnif autoshadows
# For all squares on the mapfor x in0...ma_data.xsizefor y in0...ma_data.ysize# If there is an autoshadow on this tileif ma_data[x,y,2]==0# Delete auto Shadow
ma_data[x,y,2]= ma_data[x,y,0]
ma_data[x,y,0]=0endendendendendendclass Game_Interpreter
def switch_autoshadow
if$autoshadow_switch==true$autoshadow_switch=falseelse$autoshadow_switch=trueend$game_map.setup($game_map.map_id)$game_map.refreshendend
cortez - posté le 28/09/2022 à 17:27:16. (500 messages postés)
Perso j'aurais fait l'inverse, divisé par 2 la taille des personnages de RO et gardé les tileset en x1. Les chara avec un petit contour noir (histoire qu'ils se détachent un peu du fond et aussi de compenser la différence graphique.)
D'ailleurs pour ceux qui veulent tester du code de n'importe quel langage y compris le ruby, il y a ce site https://tio.run/# (680 langages différents)