Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / News: RPG Maker With / Site: Oniro va mieux / Site: Problèmes sur Oniro / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

248 connectés actuellement

30679427 visiteurs
depuis l'ouverture

1724 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

Guelnika & E-magination

New RPG Maker

Offgame

Lumen

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RM VX Ace] Ami scripteur une petite aide svp ?


Sofreack - posté le 04/06/2014 à 11:43:20 (938 messages postés)

❤ 0

J'ai dix doigts et une main.

Domaine concerné: Script
Logiciel utilisé: RM VX Ace
Salut,
dans le déplacement personnalisé d'un event j'utilise la commande: moveto($game_player.x,$game_player.y)" et moveto(x,y)
la première correspondant à la position du joueur sur la map et la seconde à des coordonnées de la map.
Mon but est de créer un sort de téléportation. Soit un truc du genre.
moveto($game_player.x+4case vers l'avant,$game_player.y): si le perso regarde vers la droite ou la gauche
moveto($game_player.x,$game_player.y+4cases vers l'avant): si le perso regarde vers le haut ou le bas.
Mais je ne sais pas comment l'écrire et si c'est possible.
La commande moveto(x,y) ne m'a pas l'aire très utile puisque qu'elle tp directement aux coordonnées x et y et ce peut importe la position du joueur sur la map.

J'aimerais donc juste savoir si c'est possible de faire un "moveto($game_player.x)+ 4 cases vers l'avant" ?

Merci d'avance à celui qui se penchera dessus.

Valjean Story


Joke - posté le 04/06/2014 à 12:19:20 (5090 messages postés)

❤ 0

Bilouteux fou

Tu as $game_player.direction qui renvoit :

2 = bas
8 = haut
4 = gauche
6 = droite

(mnémonique : regarder le pavé numérique, 8 est en haut, 2 est en bas, 4 est à gauche, 6 est à droite)

Du coup tu dois faire :

Portion de code : Tout sélectionner

1
moveto($game_player.x + a,$game_player.y + b)



Avec a et b qui seront égal à "0", "4", ou "-4" selon la direction du héros.

Pour donner a et b, la solution immédiate c'est :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
case $game_player.direction 
when 2
  a, b =  0,  4
when 4
  a, b = -4,  0
when 6
  a, b =  4,  0
when 8
  a, b =  0, -4
end
moveto($game_player.x + a,$game_player.y + b)



Et bien sûr, on peut aussi très bien se passer de script pour faire exactement la même chose en événement.

EDIT :

Pour m'amuser, j'ai trouvé une solution par le calcul pour trouver a et b en fonction de $game_player.direction sans faire de condition :

Portion de code : Tout sélectionner

1
2
3
4
d = $game_player.direction
a = 4 * ((d-4)%3-1)
b = 4 * (((d+3)%8-3)%3-1)
moveto($game_player.x + a,$game_player.y + b)



Ne me demande pas comment j'ai trouvé, je suis nul, c'est parfaitement empirique :D (et certainement simplifiable)

biloumaster.fr, mon joli site ouèb tout bô tout frai !


Sofreack - posté le 04/06/2014 à 13:20:00 (938 messages postés)

❤ 0

J'ai dix doigts et une main.

Merci beaucoup Joke, j'étais sûr que c'est toi qui allait me donner la solution ;) tes tuto mon d'ailleur bien servit c'est cool des mecs qui aide comme toi .

Valjean Story


Joke - posté le 04/06/2014 à 15:01:42 (5090 messages postés)

❤ 0

Bilouteux fou

C'est un plaisir. ;) :)

Je m'amuse à trouver des solutions inutiles :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
r = $game_player.direction / 2 - 1
m = [[ 0, 4],
     [-4, 0],
     [ 4, 0],
     [ 0,-4]]
a, b = m[r][0], m[r][1]
moveto($game_player.x + a, $game_player.y + b)



*attends l'arrivée d'un vrai scripteur*

biloumaster.fr, mon joli site ouèb tout bô tout frai !


Sofreack - posté le 04/06/2014 à 15:18:17 (938 messages postés)

❤ 0

J'ai dix doigts et une main.

Ba j'ai fait ça et ça marche nickel:

image

Par contre j'ai un souci maintenant c'est que lorsque je me retrouve face à l'un des bords de la map ça me téléporte à l'autre extrémité de la map.
Si par exemple je suis coller à droite de la map je me retrouve tout a gauche sur le même axe avec 3 case de plus. Ça risque d'être plus compliqué de bloquer ça non ?

Valjean Story


Joke - posté le 04/06/2014 à 15:44:28 (5090 messages postés)

❤ 0

Bilouteux fou

Tu veux que la téléportation soit annulée, ou bien par exemple au lieu d'un déplacement de 4 ça fait un déplacement de 3, 2, 1... ?


Aussi, il y a une différence entre "moveto" et "téléporter" ?

S'il n'y a pas de différence, par solution "événement", j'entendais :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Modifier variable "ID" rendre égal à "ID de la map"
Modifier variable "X" rendre égal à "Coordonnée X carte du héros"
Modifier variable "Y" rendre égal à "Coordonnée Y carte du héros"
Condition : Héros regarde vers le bas
   Modifier variable "Y" additionner "4"
Fin de condition
Condition : Héros regarde vers le gauche
   Modifier variable "X" soustraire "4"
Fin de condition
Condition : Héros regarde vers le droite
   Modifier variable "X" additionner "4"
Fin de condition
Condition : Héros regarde vers le haut
   Modifier variable "Y" soustraire "4"
Fin de condition
Téléporter équipe : Variables "ID", "X", "Y"



Et tu aurais pu épargner à RM tes "+ 0", aussi. :D

biloumaster.fr, mon joli site ouèb tout bô tout frai !


Sofreack - posté le 04/06/2014 à 18:00:17 (938 messages postés)

❤ 0

J'ai dix doigts et une main.

J'ai mal employé le mot c'est un moveto pas une téléportation comme le "Téléporter" du bouton. Si je lance le moveto au bord de la map je me retrouve a l'opposé sur le même axe.
Sinon le 3,2,1 serait le top voir même un 0 car imaginon que mon event ennemi soit collé au bord et que je soit juste devant lui même avec le 1 je me retrouverais alors sur lui.

En fait je crois que ça sera trop compliqué à gérer car cette façon de téléporter permétra au joueur de traverser les décor et passer à travers des événement comme un chemin bloqué ou des endroit qu'il ne devrait pas avoir accès. Il faudrait créer tout un system de colision avec le décor et les évent c'est trop lourd pour moi. Merci de ton aide en tout cas ça me sera quand même utile pour d'autre choses.

Valjean Story

Index du forum > Entraide > [RM VX Ace] Ami scripteur une petite aide svp ?

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers