Mack - posté le 15/11/2022 à 16:23:35. (2290 messages postés) -
BlisterB a dit:
Mack : J'ai déjà essayé de compiler sous Windows, j'ai jeté l'éponge.
Tu peux setup nativement une VM Ubuntu depuis Windows (ça s'appelle WSL), ça avait bien fonctionné. Sous W10 t'as une petite manipulation à faire pour activer l'interface graphique, apparemment sous W11 l'interface graphique dispo d'office.
Par contre si tu veux travailler sur le portage Android, la conclusion de tous mes essai est qu'une vrai partition Ubuntu est requise (sinon le système de debug USB ne fonctionne pas bien).
Sinon oui je confirme les fonctionnalités liées aux combats ne seront pas supportées par EasyRPG, d'après Ghabry les modif du Maniac Patch sont des hacks difficile à supporter proprement.
J'avoue que j'osef un peu du système de combat de base.
Bah, de toute façon, à terme le but c'est de proposer le .exe, donc j'aurais pas le choix que d'arriver à compiler sous Windows :f
C'est un peu dommage pour les commandes de combats, j'ai pas encore vraiment essayer, mais déjà j'arrive à lancer des CE depuis un combat, notamment des évent en //.
Du coup j'ai commencé à bidouiller des trucs :
En haut, c'est l'UI faite en évent, et en bas c'est l'UI que j'ai recoder en C++.
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 13/11/2022 à 08:58:23. (2290 messages postés) -
BlisterB a dit:
Mack : Yes je le fais à chaque fois que je dois travailler sur la partie Android. Tout d'abord je te conseille très fortement de compiler sous Linux.
Tu as toutes les information dans le readme : https://github.com/EasyRPG/Player Penses bien à "sudo apt-get install" les librairies dans la partie Requirements.
Si tu galères, n'hésites pas à joindre le Discord et poser tes questions (je ne suis pas un expert sur la partie C++) :
https://discord.com/invite/NrC8yGCgqj
Arf, j'aurais justement voulu éviter de passer sous Linux pour ça, mais sous Windows j'arrive vraiment à rien :/
Merci pour le Discord, je passerais surement faire un tour !
Edit :
Bon, c'est enfin bon, même si ma VM rame du cul comme pas permis ><
Zam a dit:
EasyRPG supporte déjà tous les changements du patch Maniacs aux combats ? (les fonctions pour gérer l'atb, le targetting, le pop des dégats, les parallel process en combat, etc.)
Si le Show String Picture viens juste d'arriver, je suis presque sur que non :/
Ce qui est dommage, puisque c'est justement sur ce genre de fonction que je voulais faire des modifs / en rajouter.
EDIT :
En plus sur le lien de BlisterB, on peut voir que les cases de ces commandes ne sont pas cochés
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 06/11/2022 à 12:40:24. (2290 messages postés) -
Faut bien rajouter dans un script sous Materials, pas modifié Window_ItemList.
Et autant pour moi, je pensais que RM serait moins con
Je pensais qu'en coupant la ligne comme ça, RM considérerais les deux lignes comme étant une seule, mais évidemment c'est pas le cas !
( Du coup j'ai modifié le script plus haut. )
Par contre, effectivement, ça fait complètement bugguer le menu des Items, j'vais voir ça.
Edit :
J'avais juste oublié un "="
( Merci le langage propriétaire de ma boite qui utilise un seul "=" pour les conditions >< )
( Je prend note de tout les commentaires, même si je n'y répond pas )
class Window_ItemList < Window_Selectable
#--------------------------------------------------------------------------# * Display in Enabled State?#--------------------------------------------------------------------------def enable?(item)if@category==:key_item2trueelse$game_party.usable?(item)endend#--------------------------------------------------------------------------# * Include in Item List?#--------------------------------------------------------------------------definclude?(item)case@categorywhen:item
item.is_a?(RPG::Item)&& !item.key_item?
when:weapon
item.is_a?(RPG::Weapon)when:armor
item.is_a?(RPG::Armor)when:key_item
item.is_a?(RPG::Item)&& item.key_item?
when:key_item2(item.is_a?(RPG::Item)&& item.occasion==3)||(item.is_a?(RPG::Item)&& item.key_item?)elsefalseendendendclass Window_KeyItem < Window_ItemList
# Si tu veux un truc vraiment propre, remplace dans le script original la # ligne qui contient :key_item#--------------------------------------------------------------------------# * Start Input Processing#--------------------------------------------------------------------------def start
self.category=:key_item2# Ici
update_placement
refresh
select(0)open
activate
endend
J'avais un doute si tu voulais garder les KeyItems dans la sélection, donc j'ai laisser.
T'as une petite indication pour ne pas les afficher si tu veux.
( Je prend note de tout les commentaires, même si je n'y répond pas )
class Scene_Map < Scene_Base
def create_message_window
if@message_window !=nil@message_window.disposeend@message_window= Window_Message.newendend
Mais en gros, dans ton sens à toi, tu créais la boite, puis tu la fermes instant, donc forcément quand il veut y afficher du truc, ça plante
( Ma faute, j'ai pas précisé )
Dans le bon sens ça marche bien, même pour la fenêtre qui se ferme pas vraiment.
Citation:
Je pensais pas que ce serait aussi compliqué de juste appliquer le nombre de lignes avant l'ouverture de la fenêtre. C'est rigide à ce point le code de base de RM?
Disons que parfois y a des trucs qui sont bien fait, des fois beaucoup moins
( Je prend note de tout les commentaires, même si je n'y répond pas )
#==============================================================================# ** Window_Message#------------------------------------------------------------------------------# This message window is used to display text.#==============================================================================class Window_Message < Window_Base
#--------------------------------------------------------------------------# * Get Number of Lines to Show#--------------------------------------------------------------------------def visible_line_number
return$game_variables[8]endend#==============================================================================# ** Game_Interpreter#------------------------------------------------------------------------------# An interpreter for executing event commands. This class is used within the# Game_Map, Game_Troop, and Game_Event classes.#==============================================================================class Game_Interpreter
alias command_101_a command_101
#--------------------------------------------------------------------------# * Show Text#--------------------------------------------------------------------------def command_101
if(SceneManager.scene_is?(Scene_Map)or SceneManager.scene_is?(Scene_Battle))
SceneManager.scene.create_message_window()end
command_101_a
endend
C'est pas ultra élégant comme méthode, puisque ça recréer une nouvelle fenêtre à chaque ouverture d'un message, mais au moins ça marche.
EDIT :
En vrai, j'suis surtout en train de me dire que ça peut peut être causé des problèmes de mémoires sur la durée, vu que je dispose jamais l'ancienne fenêtre de message, et que du coup selon comment gère RM, elle reste peut être en mémoire.
Pour régler ça, dans Scene_Map et Scene_Battle, dans la fonction create_message_window(), faudrait rajouter un truc comme ça :
Mack - posté le 27/10/2022 à 11:01:51. (2290 messages postés) -
T'es sur que la Scene_Map se recharge quand tu changes de maps ?
J'ai un peu un doute.
J'suis pas chez moi, mais une idée qui pourrait marcher serait de rajouter une fonction pour reset la fenêtre de dialogue dans Scene_Map.
Un truc du genre :
def reset_winMessage()@windowMessage=nil@windowMessage= WindowMessage.new()# Bref, reprendre le même code qu'à l'initend
( C'est du pseudo code, copie colle pas ça ça marchera pas )
Et plutôt que de faire dans l'update, le plus logique serait de recalculer la taille de la fenêtre quand on ouvre le boite de dialogue, pas à sa création, et encore moins dans l'update.
Edit :
Voir même peut être mieux, recréer la fenêtre que si la taille change.
class Scene_Map
def openMessage
if@line_height !=@windowMessage.visible_line_number# Le code pour recréer la fenêtre@line_height=@windowMessage.visible_line_numberend# Le code classique pour ouvrir la fenêtre. J'me souviens plus comment ça marche, mais un Alias ferait l'affaire je penseendend
( Si dans Scene_Map t'as pas de méthode, faut trouver la fonction qui ouvre la fenêtre. Dans le pire des cas, tu l'auras dans Game_Interpreter )
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 24/10/2022 à 17:16:42. (2290 messages postés) -
Ben, de toute façon RM gère pas Tiled, t'es obligé de passer par un plugin, non ?
Donc aussi bien le plugin gère les collisions.
Mais pour savoir ça, faudrait plus d'info.
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 28/09/2022 à 19:43:55. (2290 messages postés) -
J'continue un peu sur ma lancé de conneries, cette fois, les FaceSets et les choix sont au programme \o/
Pour les Facesets, c'est cool, c'est le système de base. Ça gère pas tout, comme l'affichage Gauche/Droite, ou le Flip Horizontal, mais j'ai pas la possibilité de le faire pour l'instant :/
Et du côté des choix, c'est un bête texte comme pour les messages, mais l'appel de l'EC est différent, on passe sur un truc spé qui fait les choix.
Le seul "problème" c'est que j'ai forcé l'affichage de la première ligne comme un texte "d'introduction", on peut pas s'en servir comme choix pour l'instant.
Zam a dit:
C'est que contrairement à tes autres systèmes c'est un truc très flexible est facilement adaptable que tu montres là. Sans compter que les fonctions de la boite de base de 2k3 sont déprimantes.
Pas faux pour les deux
Mais c'est toujours drôle de faire un truc qu'on trouve complétement fou et super dur à faire, qui intéresse pas grande monde, et faire u truc "de merde" et quand même très simple qui hype de fou x)
Citation:
Moi aussi ça me hype un peu, surtout que j'avais commencé à mettre en place un système de dialogue qui utilise un fichier .txt plutôt que du code brut, pour simplifier les modifs et corrections que je ferais dans le futur, donc ton truc pourrait être la seconde moitié du système.
Hésite pas si dedans y a des trucs qui t'intéresse ^^
Nemau a dit:
Citation:
Beloved Rapture
(woh, ça gère)
( Ouais, c'est ultra beau, et au niveau du gameplay, de la petite heure que j'ai sur la démo c'est cool.
Ça reste assez classique, et qu'est ce que c'est dur par contre xD )
EDIT : 18/10/22
Cette fois je pars sur du full custom pour mon CBS.
J'ai essayer de reprendre le principe de Vagrant Story ( Un mélange entre Tour par Tour et Action donc ), mais en rajoutant un système d'ATB.
Pour l'instant c'est vraiment très tôt, y a juste l'attaque normal qui marche, et un tout début d'IA pour les ennemis.
EDIT : 17/12/22
J'continu un peu mes conneries avec EasyRPG, j'ai commencé à ajouter certaine commandes de Maniac qui n'était pas encore prise en compte ( Control Battle : ATB, Damage Pop, Target ), et j'ai aussi rajouter pas mal de commande custom pour changer l'affichage de l'interface.
J'vais voir si je continue à rajouter les commande de Maniac, ou si je repense le système de Common Event en combat, pour l'instant ça marche, mais c'est dégueu et y a pas mal de bug.
( Genre, on peut pas utiliser la commande Wait sans faire complétement crasher le jeu )
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 21/09/2022 à 18:46:30. (2290 messages postés) -
Ødd Clock a dit:
Dommage en tous cas, espérons que tes systèmes puissent servir à quelqu'un !
Ça je m'inquiètes pas trop, un des mecs derrière Beloved Rapture utilise une partie de mes travaux ^^.
( Le menu c'est une grosse modification du menu de Siam, le système de combat reprend la base de mon système d'ennemi animés, ... )
Et pour le système de message, sur le discord US spé RM2k3, y a plein de mecs qui ont l'air d'être ultra hype x)
( Encore plus que pour le système de combat ou le menu, j'trouve ça hilarant pour un truc aussi "simple" )
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 20/09/2022 à 21:09:59. (2290 messages postés) -
Je parle de tout ce qui va être mapping, écriture du scénario, mise en place de celui ci, bref, tout ce qui s'éloigne justement de la prog
Ce genre de truc, c'est vraiment ce qui me saoule le plus, et en général c'est pour ça que j'arrête tout mes projets
( Je prend note de tout les commentaires, même si je n'y répond pas )
Une quête de jeu vidéo qu'un chasseur vivant dans un petit village donne au joueur. Le jeu vidéo s'appelle "Village chasseur". Il est situé dans un petit village en France. L'histoire suit un chasseur qui vit dans ce village. Il donne une quête au joueur pour chasser un cerf dans les bois. Le joueur doit ensuite tuer le cerf et ramener sa carcasse au chasseur.
Autre tentative :
Citation:
Déroulement d'une quête de jeu vidéo qu'un chasseur vivant dans un petit village donne au joueur : Le joueur se dirige vers le petit village et voit le chasseur assis à l'entrée. Le chasseur lui dit qu'il a entendu parler d'un grand monstre qui terrorise les villageois et qu'il a besoin d'aide pour le tuer. Le joueur accepte et le chasseur lui donne une arme. Le joueur se dirige vers le monstre et le tue. Le chasseur le remercie et le joueur peut choisir de rester dans le village ou de partir.
Pareil avec OpenAI, résultat vraiment pas mal :
Citation:
Write a video game quest that a hunter living in a small village can give a player. Realistic setting.
The hunter tells the player that there has been a strange creature prowling around the village at night, and he wants the player to help him track it down. He gives the player a map of the village and marks the areas where the creature has been seen. The player must use their tracking skills to follow the creature's footprints and find its lair. Once the player has found the creature's lair, they must battle it and defeat it in order to protect the village.
Write a list of several video game quests that a NPC living in a small village can give a player. Realistic setting.
1. Find the lost sheep.
2. Help the old lady cross the street.
3. Get the rat out of the village.
4. Find the lost cat.
5. Help the blacksmith forge a new sword.
6. Help the farmer harvest his crops.
7. Deliver a message to the nearby town.
8. Escort a caravan through the dangerous forest.
9. Help the villagers defend against a band of raiders.
10. Find a cure for the village’s sick children.
Et encore :
Citation:
Write a 50 bullet point list of several video game quests that a NPC living in a small village can give a player. Realistic setting.
1. Find a lost pet
2. Help a farmer with their crops
3. Collect herbs for the village healer
4. Go on a hunting trip for the village
5. Guard the village from bandits
6. Escort a merchant through the forest
7. Find a missing person
8. Help with the construction of a new village well
9. Investigate a strange noise in the forest
10. Collect honey from a beehive
11. Deliver a message to the nearest town
12. Help a lost traveler find their way
13. Get rid of a rat problem in the village
14. Investigate a haunted house
15. retrieve a stolen item
16. clear a field of boulders
17. help a blacksmith forge a sword
18. help a tailor make a dress
19. take care of a sick animal
20. shear a sheep
21. milk a cow
22. collect eggs from chickens
23. bake a cake
24. make a soup
25. chop wood
26. carry water from the river
27. mend a fence
28. build a chicken coop
29. plow a field
30. plant seeds
31. weed a garden
Je crois que je vais en utiliser...
Tiens, ce générateur d'histoire va bien m'aider pour faire des scénarios nul pour mes jeux =>[]
Plus qu'à trouver un générateur de map convainquant
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 14/09/2022 à 13:54:42. (2290 messages postés) -
Dall-E c'est pas semi gratuit comme ce que tu décris dans Nightcafe ?
Perso après avoir reçu mon invite j'ai eu 50 crédits ( donc 50 générations ), et de mémoire ça disait que tu récupérais 5 ou 10 crédit par mois
Musenet j'en ai entendu parlé, faut que je prenne le temps de choper des midi de musique SNES pour voir !
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 11/09/2022 à 22:52:27. (2290 messages postés) -
sriden a dit:
Hey merci !
Version Android, tu l'as fait sur téléphone alors, zomg. Les mini-jeux (cheval, phase d'A-RPG au sabre) sont fluides, si tu les as faits ?
Version Android à la manette, mais non aucun lag ou quoi ^^.
sriden a dit:
Tu as collecté les têtes de dragons bleus pour avoir la section bonus après le générique ? Les scènes et dialogues de PNJ humoristiques t'en as pensé quoi ?
Ah non, j'ai pas trouvé une seule tête de dragon
Après j'ai pas fait tout les points sur la carte, j'en ai fait une grosse partie, mais clairement pas tous :P
Je prendrais surement un peu plus de temps pour parcourir un peu plus le jeu, j'ai trouvé qu'un seul mini jeu pour amélioré le héros, et je suppose que y en a plus que ça !
( Et j'ai parlé à quasi aucun PNJ qui ne faisait pas avancer l'histoire )
sriden a dit:
Les différents avis sont assez contradictoires sur certains aspects, alors je suivrai la méthode classique de surtout revoir les points qui font plutôt consensus (genre la faiblesse des premières potions).
Pour les dialogues je voulais pas partir sur des phrases trop pompeuses à certains moment, surtout pour exprimer l'humour ou la colère qui en japonais préservent souvent des mêmes termes familiers depuis des siècles (on peut voir ça ici comme une retranscription olol).
J'ai veillé à ce que ce soit jamais trop moderne oklm, ça reste toujours des expressions qui ont au moins un ou deux siècles d'histoire déjà. À moins que tu t'en rappelles d'une en particulier que tu pourrais me ressortir ?
Globalement, c'est les phrases où un des perso te sors un gros "Euh ...", c'est clairement le genre de truc que je m'attend pas à voir x)
Pour Hyô, oui c'est forcément lui lors de cette scène. C'est toujours moins mauvais que la mort d'Aeris alors, parce que la mienne au moins elle arrive à la fin du jeu.
Ça veut dire quoi, que les combats sont scriptés ? Le fait que les ennemis soient présents sur l'écran d'exploration comme dans Mystic Quest ? J'ai du mal à voir autre chose vu que t'as bien saisi que les combats eux-mêmes ont le mode d'attaques aléatoires de ceux par défaut dans RM2003.
Le fais qu'ils soient tous sur la cartes ouais ^^.
Mais que malgré qu'ils soient sur la carte, c'est pas des combats "aléatoires", ils sont là, et s'ils sont fait, ils repop pas.
( Et accessoirement, je pense qu'à équilibré ça peut être la merde, puisque si quelqu'un fait tout les combats, flambent tout son pognons, il est dans la merde puisque y a plus de combat xD )
sriden a dit:
Citation:
C'est un choix un peu étrange que d'avoir fait du full magie, surtout que le jeu reste assez réalistes x)
Tu préfères qu'on fasse que la commande attaque tout le jeu ? Après, en utilisant le mode de combat par défaut et sans créer des dizaines d'animations de coups spéciaux custom, c'est un peu le mode de combat par défaut d'RM qui dicte le truc.
Bah, justement, c'est pour ça que je parle de technique de sabre x)
Typiquement, t'aurais pu faire une technique ou le perso embrase son épée et donne un coup enflammé, ou se genre de truc ^^.
Mais oui, je me doute que niveau animation, c'est clairement pas la même chose x)
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 11/09/2022 à 20:44:33. (2290 messages postés) -
J'ai enfin pris le temps de tester, et franchement, chapeau !
C'était très très cool !
J'ai terminé le jeu en un week end, en utilisant la version Android de Eeasy-RPG, ça tourne nickel, je suppose que c'est pareil pour la version PC.
Dans les trucs qui vont pas :
- Le système de combat, sans être mauvais, puisque c'est celui de base, est assez relou sur certains points, surtout quand tu te retrouves avec un seul perso.
Quand te soigner te rajoutes à peine plus de 50PV que l'attaque la plus nul de l'ennemi, c'est pas terrible
L'IA est pas toujours très bien foutue, y a plein de combat que j'ai gagné en grande partie parce que l'IA se buffait comme une débile, en particulier sur des résistance alors que j'avais pas les sorts associés.
Vraiment pas fan on plus des battlecharset des héros, et des animations de combats, ça aurait pas mal gagné à être un peu plus custom ^^.
- Le fait de perdre ses héros aux furs et à mesure.
D'habitude je suis pas fan, mais alors là j'ai trouvé ça assez mauvais :/
Par exemple, j'ai fait tout le jeu avec Hyo, j'ai utilisé plusieurs sources sur lui, j'ai changé son stuff, et quand il est mort, j'étais très déçu d'avoir perdu tout ça :/
Ça va que ça arrive vers la fin du jeu, mais c'est très frustrant !
D'ailleurs, c'est forcément lui qui meurs ? Ou ça change selon ton équipe ?
Dans les trucs neutres :
- L'histoire / l'écriture. Je suis pas un grand fan de japon médiéval, globalement c'était très cool, mais je trouve que l'écriture de certains dialogues pas ouf.
Souvent, c'est ceux qui utilisaient des expressions trop actuelle qui m'ont "dérangé".
- Le fait que le nombre de combat soit "limité". Pas de rencontres aléatoire, c'est très agréable. Par contre, le fait que TOUT les combats soient scripté, c'est un choix étrange. Qui marche globalement très bien, mais qui reste étrange, et un peu bizarre.
- Je m'attendais pas à voir de la magie en combat. Et à l'inverse, je m'attendais à voir des techniques aux sabres. C'est un choix un peu étrange que d'avoir fait du full magie, surtout que le jeu reste assez réalistes x)
- La difficulté du jeu est assez étrange, t'as les combats en 1V1 qui sont assez dur, principalement parce que les items / compétences soignent pas assez, et t'as le reste des combat qui sont relativement très très simple, suffit de bourré les magies.
Dans les trucs biens :
- Le mapping / level design. C'est du très bon, c'est lisible, tu comprends globalement très bien ce que tu dois faire / où tu dois aller, dans les parties un peu plus labyrinthique, le fait que y ai pas de rencontre aléatoire c'est plus que agréable !
- La world map. Elle regorge de petit endroits à visités, souvent t'as que un item et un peu de lore, mais c'est très cool ! Mention spéciale pour les boss annexes, j'aime beaucoup l'idée !
- Le flow global du jeu. Le jeu s'enchaine bien, t'es pas trop soulé par de longue phase de scénario, idem pour les combats.
- Certains passages vraiment très cool ! ( Le passage sous l'eau dans le temple, ça rend tellement bien ! )
- La mise en scène, que ça soit avec les quelques dessins / background, ou simplement les actions des personnages, c'est très cool.
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 11/09/2022 à 01:37:33. (2290 messages postés) -
T'as créer un nouveau script ou remplacer l'ancien ?
Si t'as rempalcer l'ancien, pardon, c'est ma faute j'ai fait en sorte que le script du dessus soit à mettre dans un nouveau, j'ai pas pensé à le préciser désolé ><
#==============================================================================# ** Sprite_Battler#------------------------------------------------------------------------------# This sprite is used to display the battler.It observes the Game_Character# class and automatically changes sprite conditions.#==============================================================================class Sprite_Battler <RPG::Sprite#--------------------------------------------------------------------------# * Public Instance Variables#--------------------------------------------------------------------------
attr_accessor :battler# battler#--------------------------------------------------------------------------# * Object Initialization# viewport : viewport# battler : battler (Game_Battler)#--------------------------------------------------------------------------def initialize(viewport, battler =nil)super(viewport)@battler= battler
@battler_visible=falseend#--------------------------------------------------------------------------# * Dispose#--------------------------------------------------------------------------def dispose
ifself.bitmap !=nilself.bitmap.disposeendsuperenddef update
super# If battler is nilif@battler==nilself.bitmap=nil
loop_animation(nil)returnend# If file name or hue are different than current onesif@battler.battler_name !=@battler_nameor@battler.battler_hue !=@battler_hue# Get and set bitmap@battler_name=@battler.battler_name@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@height# Change opacity level to 0 when dead or hiddenif@battler.hiddenself.opacity=0endif@battler.dead?
@battler_name=@battler.battler_name+"_dead"@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@heightendend# If animation ID is different than current oneif@battler.damage==niland@battler.state_animation_id !=@state_animation_id@state_animation_id=@battler.state_animation_id
loop_animation($data_animations[@state_animation_id])end# If actor which should be displayedif@battler.is_a?(Game_Actor)and@battler_visible# Bring opacity level down a bit when not in main phaseif$game_temp.battle_main_phaseself.opacity+=3ifself.opacity<255elseself.opacity-=3ifself.opacity>207endend# Blinkif@battler.blink
blink_on
else
blink_off
end# If invisibleunless@battler_visible# Appearifnot@battler.hiddenandnot@battler.dead? and(@battler.damage==nilor@battler.damage_pop)
appear
@battler_visible=trueendend# If visibleif@battler_visible# Escapeif@battler.hidden$game_system.se_play($data_system.escape_se)
escape
@battler_visible=falseend# White flashif@battler.white_flash
whiten
@battler.white_flash=falseend# Animationif@battler.animation_id !=0
animation =$data_animations[@battler.animation_id]
animation(animation,@battler.animation_hit)@battler.animation_id=0end# Damageif@battler.damage_pop
damage(@battler.damage,@battler.critical)@battler.damage=nil@battler.critical=false@battler.damage_pop=falseend# Collapseif@battler.damage==niland@battler.dead?
if@battler.is_a?(Game_Enemy)$game_system.se_play($data_system.enemy_collapse_se)else$game_system.se_play($data_system.actor_collapse_se)end#collapse#@battler_visible = false@battler_name=@battler.battler_name+"_dead"@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@heightendendself.x=@battler.screen_xself.y=@battler.screen_y+25self.z=@battler.screen_zendend
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 10/09/2022 à 20:26:48. (2290 messages postés) -
Roi of the Suisse a dit:
Cool.
Si le résultat est lourd, il y a peut-être moyen d'alléger un peu le truc en supprimant les images en doublon.
Ça compliquerais beaucoup les évents, mais faudrait déjà que j'arrive à produire toute les images dans le bon format, pour l'instant c'est pas le cas, et c'est très lourd
( 94 méga pour 25s de vidéo )
Citation:
Est-ce que le BGM s'arrête quand on désélectionne la fenêtre de RM ?
Nope, bien pensé :/
J'ai un peu regardé, y a pas moyen de détecter si la fenêtre est sélectionné ou pas :/
Bref, c'est une solution possible, mais ça me semble pas forcément la meilleure x)
( Je prend note de tout les commentaires, même si je n'y répond pas )
#==============================================================================# ** Sprite_Battler#------------------------------------------------------------------------------# This sprite is used to display the battler.It observes the Game_Character# class and automatically changes sprite conditions.#==============================================================================class Sprite_Battler <RPG::Sprite#--------------------------------------------------------------------------# * Frame Update#--------------------------------------------------------------------------def update
super# If battler is nilif@battler==nilself.bitmap=nil
loop_animation(nil)returnend# If file name or hue are different than current onesif@battler.battler_name !=@battler_nameor@battler.battler_hue !=@battler_hue# Get and set bitmap@battler_name=@battler.battler_name@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@height# Change opacity level to 0 when dead or hiddenif@battler.hiddenself.opacity=0endif@battler.dead?
@battler_name=@battler.battler_name+"_dead"@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@heightendend# If animation ID is different than current oneif@battler.damage==niland@battler.state_animation_id !=@state_animation_id@state_animation_id=@battler.state_animation_id
loop_animation($data_animations[@state_animation_id])end# If actor which should be displayedif@battler.is_a?(Game_Actor)and@battler_visible# Bring opacity level down a bit when not in main phaseif$game_temp.battle_main_phaseself.opacity+=3ifself.opacity<255elseself.opacity-=3ifself.opacity>207endend# Blinkif@battler.blink
blink_on
else
blink_off
end# If invisibleunless@battler_visible# Appearifnot@battler.hiddenandnot@battler.dead? and(@battler.damage==nilor@battler.damage_pop)
appear
@battler_visible=trueendend# If visibleif@battler_visible# Escapeif@battler.hidden$game_system.se_play($data_system.escape_se)
escape
@battler_visible=falseend# White flashif@battler.white_flash
whiten
@battler.white_flash=falseend# Animationif@battler.animation_id !=0
animation =$data_animations[@battler.animation_id]
animation(animation,@battler.animation_hit)@battler.animation_id=0end# Damageif@battler.damage_pop
damage(@battler.damage,@battler.critical)@battler.damage=nil@battler.critical=false@battler.damage_pop=falseend# Collapseif@battler.damage==niland@battler.dead?
if@battler.is_a?(Game_Enemy)$game_system.se_play($data_system.enemy_collapse_se)else$game_system.se_play($data_system.actor_collapse_se)end#collapse#@battler_visible = false@battler_name=@battler.battler_name+"_dead"@battler_hue=@battler.battler_hueself.bitmap=RPG::Cache.battler(@battler_name,@battler_hue)@width= bitmap.width@height= bitmap.heightself.ox=@width/2self.oy=@heightendendself.x=@battler.screen_xself.y=@battler.screen_y+25self.z=@battler.screen_zendend
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 10/09/2022 à 19:21:26. (2290 messages postés) -
A un moment je t'avais proposé de passer par des pictures + BGM pour éviter les vidéos, t'avais pas vraiment l'air chaud car ça aurait pris trop de travail.
J'avais pas grand chose a faire et du coup j'ai regardé si on pouvais automatiser tout ça, maintenant que tu utilises la version Steam tu peux passer par la fonction qui permet de remplacer la fin d'un fichier par une variable.
En cherchant un peu, on trouve facilement ffmpeg qui permet de faire plein de chose sur les vidéos.
Notamment extraire le son dans un fichier séparé, et d'extraire les images de la vidéo.
Du coup en bidouillant un peu, j'ai réussi à te sortir ça :
( Bon, là ça tourne avec le player de Maniacs, donc c'est pas bon, mais faut juste que je trouve comment mettre le bon format sur toute les images de la vidéo )
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 09/09/2022 à 11:46:57. (2290 messages postés) -
Ben, ça dépend, si dans ta BDD tes joueurs vides sont des copié collé du héros principale auquel t'as fait sauté certaines infos, et qu'ils sont toujours dans cette onglet, bah, t'auras quand même 4 héros, même si dans l'onglet Héros c'est des Héros "vides".
Sinon, une solution barbare pour vérifié tout ça ( donc si tu la tente, fais une sauvegarde de ton projet dans un autre dossier ), c'est de copier ton Héros 3 : Boniface, en première position de l'onglet Personnage, de faire "Modifier Max", et de mettre 1.
Comme ça, même dans ta BDD t'auras plus que 1 héros.
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 06/09/2022 à 15:54:10. (2290 messages postés) -
Recruteur :Mack Compétences :Graphismes / Event Making / Un petit peu le scénario Projet : Pas de topic présent, pas de nom non plus
Recherche :Mappeur Précisions :
Salut !
Donc comme l'intitulé le précise, je cherche quelqu'un pour m'accompagner / me faire la partie mapping sur mon projet de JRPG tour par tour sous RM2k3.
Pour faire une présentation très simple, c'est censé être un RPG tour par tour, avec, à la manière d'un Slay the Spire ou n'importe quel Deckbuilder, l'ennemi qui annonce sa prochaine attaque.
Cependant, ici ça n'annonce jamais clairement, c'est juste le sprite de l'ennemi qui change selon l'attaque de prévue.
Aussi, comparé à n'importe quel RPG classique, quand on subit une attaque, les HP ne descendent pas directement, ils sont perdus au fur et a mesure, comme dans Earthbounds.
Ça c'est les principaux éléments de game design différent de d'habitude, mais j'ai plus ou moins prévue plein d'autre trucs \o/
Toute la partie amélioration du personnage sera surement faite à la manière d'un RPG occidental classique, avec des points à distribuer dans les différentes stats.
Pour la partie compétence, j'y réfléchie encore, mais ça sera très certainement en partie lié à l'équipement porté, avec éventuellement une partie compétence à choisir comme dans un Souls.
Pour le scénario, ça sera du très classique, y a des méchants monstres, faut aller leur casser la gueule pour pas qu'ils détruisent le monde =>[]
J'y rajouterais surement un soupçon de lore dans le genre de L'Autre de Pierre Bottero, avec tout le délire des Portes qui permettent de se déplacer entre les mondes.
Par rapport au mapping, pour l'instant je partirais sur 5 zones différentes, 4 boss aux 4 points cardinaux, la zone "centrale" qui sert de lien principal entre les 4 zones, mais les 4 zones aussi interconnectées entres elles.
On rajoute à ça un HUB à la manière d'un Bloodborne qui permet de se téléporter à chaque points de sauvegarde trouvé, de monter de niveaux, d'acheter du stuff, ...
( Je prend note de tout les commentaires, même si je n'y répond pas )
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------# * Get Battle Screen X-Coordinate#--------------------------------------------------------------------------def screen_x
# Return after calculating x-coordinate by order of members in partyifself.index !=nil# Plus la variable x est grande plus les perso sont à droite
x =221return x -self.index*30elsereturn0endend#--------------------------------------------------------------------------# * Get Battle Screen Y-Coordinate#--------------------------------------------------------------------------def screen_y
returnself.index*40+205end#--------------------------------------------------------------------------# * Get Battle Screen Z-Coordinate#--------------------------------------------------------------------------def screen_z
# Return after calculating z-coordinate by order of members in partyifself.index !=nilreturnself.indexelsereturn0endendend
Par contre deux petits points, j'ai callé tout le monde de manière à avoir une répartition uniforme, donc c'est pas exactement comme toi, et aussi :
J'espère donc que t'as prévu de déplacer / changer la fenêtre
Si tu veux mettre tes héros plus à droite, il suffit d'augmenter la valeur de la variable x à la ligne 9.
Pour les pictures en fond, t'as un Windowskin transparent, et / ou un Script pour modifier l'affichage de l'interface ?
Edit : Ah, ben surement les même que la démo du screen précédent en faite
#==============================================================================# ** Window_BattleStatus#------------------------------------------------------------------------------# This window displays the status of all party members on the battle screen.#==============================================================================class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize
super(0,380,640,100)self.contents= Bitmap.new(width -32, height -32)@level_up_flags=[false,false,false,false]
refresh
end#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refresh
self.contents.clear
bitmap =RPG::Cache.picture("hud_back")@item_max=$game_party.actors.sizefor i in0...$game_party.actors.size
actor =$game_party.actors[i]
actor_x = i *160+4self.contents.blt(actor_x-25,3, bitmap, Rect.new(0,0,170,93),255)
draw_actor_name(actor, actor_x,-9)
draw_actor_hp(actor, actor_x,10,120)
draw_actor_sp(actor, actor_x,25,120)if@level_up_flags[i]self.contents.font.color= normal_color
self.contents.draw_text(actor_x,40,120,32,"LEVEL UP !")else
draw_actor_state(actor, actor_x,40)endendendend
Avec dans ton dossier Pictures, l'image que tu m'as fait passer avec comme nom "hud_back".
( Je prend note de tout les commentaires, même si je n'y répond pas )
Mack - posté le 03/09/2022 à 15:32:19. (2290 messages postés) -
Fait une image avec les 4 héros positionnés aux bon endroits, j'te change les lignes qu'il faut si tu veux
( Et envoie aussi les 4 battlers que tu utilises, sauf si des RTP, comme ça je serais sur que c'est bon xD )
( Je prend note de tout les commentaires, même si je n'y répond pas )