Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
438 connectés actuellement
30912731 visiteurs depuis l'ouverture
2367 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
William Samy -
posté le 23/08/2012 à 16:39:19 (488 messages postés)
| revenant des vivant. | Domaine concerné: Script Logiciel utilisé: RMXP Salut,
En fait je veux juste savoir dans l'éditeur de script où puis-je remplacer l'appel de Scene_Gameover par l'appel d'un événement commun quand les PV du héros tombent à zéro; et ce quelque-soit les circonstances (combat, sur la carte etc...)
J'ai cherché un moment dans l'éditeur de script mais j'ai rien trouvé (pourtant je suppose que la commande y est, ou alors je comprend rien aux scripts)
C'est histoire de faire un écran game over customisé en event.
Merci d'avance !
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
parasoft -
posté le 23/08/2012 à 17:06:32 (252 messages postés)
| « Tant qu’il y aura des hommes, il y aura la guerre. » Albert Einstein | La meilleure chose à mon avis est de faire un évènement parallèle.
Crée une variable et rend-la égale au point de vie du héros. Pour ce faire, rentre dans l'option, Gestion de variables, choisis ta variable et rend-la égale à Allié, "Ton perso" - PV.
Puis, fixe une condition.
Condition :
------- Si Variable 1 = ou < 0
-------------- Tu mets ce que tu veux
------- Fin du si
Fin de la condition
Sinon, tu peux lire les tutoriaux de Joke qui sont une mine d'or et un peu d'algorithmique peut te servir (c'est ultra important pour coder ou résoudre des solutions).
|
Découvrez Détective Alice (un jeu d'enquête non linéaire) ! Téléchargez maintenant la démo de Détective Alice ! |
Joke -
posté le 23/08/2012 à 17:37:31 (5090 messages postés)
| Bilouteux fou | Je pense que le mieux c'est de modifier le script... C'est faisable en évent mais il faut se passer des combats aléatoires par défaut pour faire ton propre événement qui gère l'aléatoire. Par exemple tu compte le nombre de pas en faisant :
x héros old = x héros
y héros old = y héros
boucle
x héros = x héros
y héros = y héros
si x héros différent de x héros old
<> nombre de pas += 1
<> x héros old = x héros
fin de condition
si y héros différent de y héros old
<> nombre de pas += 1
<> y héros old = y héros
fin de condition
attendre 10 frames
fin de boucle
Et dans un processus parallèle sur chaque map tu mets :
<>modifier variable "nombre de pas combat" = valeur aléatoire entre ce que tu veux et ce que tu veux
boucle
si nombre de pas = nombre de pas combat
si interrupteur "scène" est désactivé
<> démarrer un combat, avec autorisation de la fuite et de la défaite
<> sortir de la boucle
fin de condition
fin de condition
attendre 60 frames
fin de boucle
Sachant que l'interrupteur "scène" c'est au cas où tu fais une scène où le héros se déplace tout seul sur la map, il faudrait pas qu'un combat intervienne.
Et là c'est pour le même combat sur toute la map, il faut ajouter une condition avec une variable aléatoire pour que les combats soient des groupes de monstres aléatoires, et il faut utiliser les zones par variables pour faire des zones de combat différentes.
C'est chiant... Donc une p'tite ligne modifiée quelque part dans le battle script c'est mieux je pense. ^^
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
arttroy -
posté le 23/08/2012 à 17:53:44 (2394 messages postés)
| Just working | salut, l'évènement que tu veux faire intervenir si les pv tombent à O c'est quoi ? Une vidéo ? où un event qui se passe sur la map ?
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
William Samy -
posté le 23/08/2012 à 18:04:06 (488 messages postés)
| revenant des vivant. | parasoft a dit: Crée une variable et rend-la égale au point de vie du héros. Pour ce faire, rentre dans l'option, Gestion de variables, choisis ta variable et rend-la égale à Allié, "Ton perso" - PV.
Puis, fixe une condition.
Condition :
------- Si Variable 1 = ou < 0
-------------- Tu mets ce que tu veux
------- Fin du si
Fin de la condition
|
C'est exactement ce que j'ai fait, sauf que visiblement, l'écran Game Over se déclenche en priorité par rapport à l’événement.
En fait je fait un système de jauge de vie où celle-ci baisse progressivement si d'autre jauge (faim, etc) sont vides. Dans cette situation je fais perdre 1 PV à mon héros toute les 20 frames.
J'ai beau décocher la case "l'allié meurt si les PV tombe à 0" mais rien y fait, le Game Over apparait avant que d'autre évents communs ait le temps de se déclancher...
Joke a dit: une p'tite ligne modifiée quelque part dans le battle script c'est mieux je pense. ^^ |
Oui c'est justement cette p'tite ligne là que je cherche désespéremment
EDIT:
arttroy: En fait j'ai commencé par faire un évent commun en processus parallèle qui gère les PV.
Dès que les PV =0 il appelle un autre évent commun avec des commande quelconques (ton d'écran, image, message avec choix etc, retour à l'écran titre....)
Comme le Gameover se déclenche à la place, j'aimerai soit le désactiver tout bêtement, ou le remplacer par l'appel d'un évent commun dans le script
Bref, je veux l'éradiquerGAME OVER
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Joke -
posté le 23/08/2012 à 18:08:27 (5090 messages postés)
| Bilouteux fou | J'dirais que c'est à la ligne 116 du scene_battle 1 que ça se joue, reste à savoir comment on appelle un événement commun en script
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
Mack -
posté le 23/08/2012 à 18:13:59 (2313 messages postés)
- | | Solution de bourrin, mais ça devrait fonctionner :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #==============================================================================
# ** Scene_Gameover
#------------------------------------------------------------------------------
# This class performs game over screen processing.
#==============================================================================
class Scene_Gameover
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
$game_temp.common_event_id = X
$scene = Scene_Map.new
end
end |
Sinon, tu remplaces dans tout tes scripts $scene=Scene_Gameover.new par
$game_temp.common_event_id = X
A toi de voir.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
William Samy -
posté le 23/08/2012 à 18:14:34 (488 messages postés)
| revenant des vivant. | Joke: J'y connais pas grand chose en ruby, j'ai mis "false" à la ligne 116 mais rien ne change...
EDIT
Mack:Je n'ai trouvé aucun $scene=Scene_Gameover.new dans les scripts pour l'instant...
Mais je vais essayer ton script voir ce que ça donne, Merci !
EDIT 2: Ton script ne marche pas vraiment: en fait une fois que les PV tombent à 0 le jeu se met à laguer comme pas possible, et l'évent commun ne marche pas (j'ai mis juste un flash d'écran pour tester).
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
arttroy -
posté le 23/08/2012 à 18:21:32 (2394 messages postés)
| Just working | Citation:
regardes cette partie des scripts et compare avec ce que Mack à mis à mon avis en temps que tel ça ne fera rien. Pour trouver :
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Cantarelle -
posté le 23/08/2012 à 18:26:50 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Scene_Battle 1, ligne 280...
Et pour chercher dans tous les scripts... Ctrl+MAJ+F
Et sérieusement, il y a une façon très simple de faire ça... Après, ça dépend si c'est un combat imposé ou pas.
Parce que si c'est un combat imposé... Tu coches la case Autoriser la défaite...
|
Makeuse à la crosse de street-hockey. Livestream. |
parasoft -
posté le 23/08/2012 à 18:27:30 (252 messages postés)
| « Tant qu’il y aura des hommes, il y aura la guerre. » Albert Einstein | Je crois avoir trouvé une solution alternative.
Tiens, essaie de suivre cette manipulation.
L'idée est de créer une boucle qui synchronise constamment la variable hp.
La variable hp old ne peut se rafraîchir, tant qu'on ne sort pas de la boucle.
Spoiler (cliquez pour afficher)
Peut-être que ce n'est pas propre comme méthode, mais elle peut faire l'affaire.
EDIT : Joke a raison. Pour les combats, il faut cocher la case Autoriser la défaite. Donc, pas besoin du système de pas.
Donc, pour résumer, si défaite, rends hp old égal à 0 et après la fin du combat, synchronise les points de vie avec hp old.
|
Découvrez Détective Alice (un jeu d'enquête non linéaire) ! Téléchargez maintenant la démo de Détective Alice ! |
Joke -
posté le 23/08/2012 à 18:46:13 (5090 messages postés)
| Bilouteux fou | parasoft, je vois pas où tu veux en venir, comme l'a dit Cantarelle, les combats peuvent avoir la défaite autorisée, ça créé automatiquement une condition dans laquelle on effectue ce qu'on veut si on meurt.
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
William Samy -
posté le 23/08/2012 à 18:51:00 (488 messages postés)
| revenant des vivant. | Bon pour l'instant je me suis servis de ce qu'a dit Cantarelle pour changer tout les $scene = scene_Gameover.new par $game_temp.common_event_id = 13 mais rien ne se passe et les autres évents de la carte ne fonctionnent plus...
Edit: Joke: Oui mais si le héros meurt sur la map c'est différent, je compte faire un A-RPG et comme j'ai dit, les PV baisse progressivement, même sur la map
En théorie maintenant ça devrait marcher mais soit il se passe rien, soit ça lague quand je rajoute $scene = Scene_Map.new
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
parasoft -
posté le 23/08/2012 à 18:57:15 (252 messages postés)
| « Tant qu’il y aura des hommes, il y aura la guerre. » Albert Einstein | Sinon, tu as testé ma proposition ?
Chez moi, ça marche. Je n'ai testé que pour la carté générale.
|
Découvrez Détective Alice (un jeu d'enquête non linéaire) ! Téléchargez maintenant la démo de Détective Alice ! |
William Samy -
posté le 23/08/2012 à 18:59:06 (488 messages postés)
| revenant des vivant. | Ok je vais essayer ta proposition, même si je comprend pas trop ^^
EDIT: Désolé mais je ne comprend vraiment pas l'intérêt de ta manip, je ne vois pas à quoi ça sert... :S
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Joke -
posté le 23/08/2012 à 20:35:53 (5090 messages postés)
| Bilouteux fou | La solution bourrine de Mack devrait aller ^^
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
William Samy -
posté le 23/08/2012 à 20:43:58 (488 messages postés)
| revenant des vivant. | Citation: La solution bourrine de Mack devrait aller ^^ |
Bin non je comprend pas quand je fait avec cette méthode, dès que les PV tombent à 0 le jeu lag et les évenement sont tous stoppé
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Mack -
posté le 23/08/2012 à 21:12:52 (2313 messages postés)
- | | Ouais, j'ai testé, ça marche pas.
( L'évent est pas appeler, et le player peut pas bouger. )
J'vais jeter un oeil.
Par contre la deuxième solution devrait marcher.
EDIT : Rajoutes $scene=Scene_Map.new
Pour la deuxième solution, ça devrait marcher un peu mieux.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
William Samy -
posté le 23/08/2012 à 21:27:50 (488 messages postés)
| revenant des vivant. | Citation: EDIT : Rajoutes $scene=Scene_Map.new
Pour la deuxième solution, ça devrait marcher un peu mieux. |
Nan j'y ai pensé, ça fait la même chose, si on ne met que l'appel de l'event commun les events ne marche plus,
et si on rajoute $scene=Scene_Map.new, ça fait tout laguer
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Mack -
posté le 23/08/2012 à 21:59:25 (2313 messages postés)
- | | J'viens de comprendre pourquoi ça marchait pas.
Remplaces ton GameOver par ça :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #==============================================================================
# ** Scene_Gameover
#------------------------------------------------------------------------------
# This class performs game over screen processing.
#==============================================================================
class Scene_Gameover
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
$game_temp.common_event_id = X
$game_temp.gameover=false
$scene = Scene_Map.new
end
end |
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
William Samy -
posté le 23/08/2012 à 23:14:49 (488 messages postés)
| revenant des vivant. | Ah super la ça marche et ça ralenti plus!
Un probleme subsiste: l'évenement commun a l'air de se répéter en boucle, comment je l'arrête?
EDIT: c'est pire que ça les comande s'enchaine sans raison, quand je met un message il s'affiche à peine et disparait aussitôt...
EDIT 2:En fait c'est bon je vais me débrouiller avec ça.
Merci pour tout.
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Index du forum > Entraide > [RESOLU] [RMXP] Désactiver Game Over quand PV=0
|
|
|