Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

381 connectés actuellement

29379791 visiteurs
depuis l'ouverture

9158 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Comptoir Du clickeur

ConsoleFun

Planète Glutko

RPG Fusion

Offgame

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Reprise du message précédent:

FdRstar - posté le 06/03/2013 à 21:02:52 (10 messages postés)

❤ 0

Merci, ça marche bien.^^


Suite du sujet:

Noein - posté le 16/03/2013 à 16:16:04 (155 messages postés)

❤ 0

Support : RPG Maker XP
Question : Affichage partielle d'une image + scrolling horizontal et vertical. [Résolu dans le post ci dessous par Estheone]

Bonjour,

J'ai déjà posé cette question sur le topic des Questions idiotes sur RM mais j'aimerai des éléments supplémentaires concernant un script et son utilisation.

Post de l'autre topic :

Citation:


Je m'explique. Je souhaiterai créer une minimap en temps réelle sur laquelle on verrai l'environnement dans lequel on évolue ainsi que notre joueur et les ennemis... Jusqu'à la il n'y pas de soucis j'ai réussi à obtenir ce que je voulais à l'aide des tutoriels.

Voici ce que ça donne:

image
Map test de 20 tiles x 15 tiles (soit 640px x 480px)

J'ai calculé les dimensions de la minimap par rapport à une map de taille minimum (soit 640px x 480px) en ayant un ratio de 6, c'est à dire une minimap de 120 px x 90px (6 fois plus petite que ma map). Jusque là toujours aucun problème.

Mon soucis est que si je crée une map plus grande (par exemple 25 tiles x 20tiles équivalent à 800px x 640px), si je veux conserver le même niveau de détail sur la minimap je vais devoir garder mon ratio de 6 ce qui à pour conséquence d'avoir une minimap de taille plus importante (150px x 120px). Hors moi je souhaiterais conserver une minimap de même dimensions.

Ma question est donc la suivante, est il possible d'afficher partiellement une image de dimension plus grande pour en garder que les 120px de large et 90px de haut et d'afficher le reste de l'image par un scrolling horizontal et verticalement en fonction des coordonnées du héros sur la map ? En d'autres termes faire défiler ma minimap en même temps que l'écran.



J'ai retrouvé un script qu'un membre m'avait donné pour une question similaire il y a pas mal de temps mais n'ayant pas à l'époque continué de m'intéresser à RM je suis toujours au même point.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class Spriteset_Map
 
  def initialize
    
    # Permet d'afficher des images dans un cadre choisis de sorte qu'elles ne
    # dépassent pas
    
    # Configurer ici le cadre
    rect = Rect.new(488, 32, 120, 90) #(x, y,largeur, hauteur)
    
    # Toutes les images d'ID supérieur ou égale seront dans le cadre
    id_image = 1
    
    
    # Make viewports
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport4 = Viewport.new(rect)
    @viewport2.z = 200
    @viewport4.z = 200
    @viewport3.z = 5000
    # Make tilemap
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # Make panorama plane
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # Make fog plane
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # Make character sprites
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # Make weather
    @weather = RPG::Weather.new(@viewport1)
    # Make picture sprites
    @picture_sprites = []
    for i in 1..id_image
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
    for i in id_image..50
      @picture_sprites[i] = Sprite_Picture.new(@viewport4, $game_screen.pictures[i])
    end  
    # Make timer sprite
    @timer_sprite = Sprite_Timer.new
    # Frame update
    update
  end
  
end



Voici ce que j'ai fait en event pour afficher ma minimap :

Spoiler (cliquez pour afficher)



Spoiler (cliquez pour afficher)



J'ai un soucis c'est que via le script mes images n° 2 et 3 ne s'affichent pas. J'ai également fait un test en affichant la minimap en haut à gauche (x=0 ; y=0) pour voir l'influence du script sur l'affichage des images, résultat l'image s'affiche 2 fois, en haut à gauche et également dans le cadre défini par le script. J'aurai également voulu savoir si via le script il est possible de faire un scrolling de mon image dans le cadre défini en fonction des coordonnées du héros pour avoir un affichage en temps réel de ce que le joueur voit sur son écran (en fait sur le même principe que le script Minimap).

En espérant avoir été assez clair dans l’énoncé de ma question, je vous remercie par avance des éventuels éléments de réponse que vous voudriez bien m'apporter.


Estheone - posté le 16/03/2013 à 17:29:51 (312 messages postés)

❤ 0

Citation:

Question 1 : Affichage partielle d'une image + scrolling horizontal et vertical.



Petite remarque avant tout : 120x90 n'a pas un ratio 1:6 par rapport à 640*480 mais 1:5.333. ;)

On va laisser tomber la mini map en event, c'est de la daube.
Je t'en ai fait une scriptée et facilement paramétrable.
Voila un aperçu :
image

C'est fait à l'arrache mais tout fonctionne sans problème (défilement de la map qui est en ratio 1:5.333, rafraîchissement dynamique des curseurs en fonction de la position du héros et des events).

Le code :
Tu rajoutes ça dans le Scene_Map :

Portion de code : Tout sélectionner

1
2
3
  def create_mini_map(mini_map_name, event_ids)
    @mini_map_spriteset = Spriteset_Mini_Map.new(mini_map_name, event_ids)
  end


Tu ajoutes cette ligne en-dessous de @spriteset.update dans la fonction update du Scene_Map :

Portion de code : Tout sélectionner

1
@mini_map_spriteset.update if @mini_map_spriteset


Tu ajoutes ça dans le if $game_map.map_id != $game_temp.player_new_map_id dans la fonction transfer_player du Scene_Map :

Portion de code : Tout sélectionner

1
2
3
4
      if @mini_map_spriteset
        @mini_map_spriteset.dispose
        @mini_map_spriteset = nil
      end



Tu ajoutes ce code au-dessus du main :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Spriteset_Mini_Map
  
  def initialize(map_name, event_ids)
    @map_name = map_name
    @viewport = Viewport.new(520, 0, 120, 90)
    @viewport.z = 190
    @mini_map_sprite = Sprite.new(@viewport)
    @mini_map_sprite.bitmap = RPG::Cache.picture(@map_name)
    @player_dot = Sprite.new(@viewport)
    @player_dot.bitmap = RPG::Cache.picture("Player_Dot")
    @player_dot.ox = @player_dot.bitmap.width/2
    @player_dot.oy = @player_dot.bitmap.height/2
    @events = []
    @event_dots = []
    for e in event_ids
      event = $game_map.events[e]
      if event
        @events.push(event)
        @event_dots.push(Sprite.new(@viewport))
        @event_dots.last.bitmap = RPG::Cache.picture("Event_Dot")
        @event_dots.last.ox = @event_dots.last.bitmap.width/2
        @event_dots.last.oy = @event_dots.last.bitmap.height/2
      end
    end
    update
  end
  
  def dispose
    @mini_map_sprite.dispose
    @player_dot.dispose
    for e in @event_dots
      e.dispose
    end
    @viewport.dispose
  end
  
  def update
    @mini_map_sprite.ox = $game_map.display_x*3/64
    @mini_map_sprite.oy = $game_map.display_y*3/64
    @player_dot.x = ($game_player.real_x+64-$game_map.display_x)*3/64
    @player_dot.y = ($game_player.real_y+64-$game_map.display_y)*3/64
    for i in 0...@events.size
      @event_dots[i].x = (@events[i].real_x+64-$game_map.display_x)*3/64
      @event_dots[i].y = (@events[i].real_y+64-$game_map.display_y)*3/64
    end
  end
end
 


Bien sûr il te faut modifier "Player_Dot" et "Event_Dot" par les noms des images de tes curseurs.

Pour initialiser la mini-map c'est simple :
image
Le premier paramètre c'est le nom de l'image de ta mini-map (dans Pictures), le deuxième est un tableau qui contient les id de tous les events que tu veux afficher sur la mini-map.

Si tu veux déplacer un peu la mini-map (genre qu'elle soit pas complètement collée en haut à droite) c'est les 2 premiers paramètres du viewport qu'il te faut modifier.

Je pense que c'est à peu près tout. Essaie donc. ^^

Wandering Souls : Jeu complet / Topic sur Oniro


Noein - posté le 16/03/2013 à 18:32:33 (155 messages postés)

❤ 0

Merci Estheone pour ta réponse et surtout d'avoir prit le temps de créer un script, c'est vraiment super sympa de ta part :sourit. C'est exactement ce dont j'avais besoin.

Citation:

Petite remarque avant tout : 120x90 n'a pas un ratio 1:6 par rapport à 640*480 mais 1:5.333. ;)


Le ratio est une valeur arbitraire puisque c'est le rapport entre les dimensions de la minimap en pixel et celles de la map en tiles. J'ai oublié de le préciser dans mon post, autant pour moi ;). Mais tu as raison la minimap n'est pas réellement au 1/6ème de ma map.

J'ai testé mais j'ai un message d'erreur. J'ai du faire une étourderie quelque part.

image

La portion de code ci dessous, tu l'insères au debut du Scene_Map ?

Portion de code : Tout sélectionner

1
2
3
 def create_mini_map(mini_map_name, event_ids)
    @mini_map_spriteset = Spriteset_Mini_Map.new(mini_map_name, event_ids)
 end




Mack - posté le 16/03/2013 à 18:35:59 (2288 messages postés) - staff

❤ 0

Ouais, essaie de mettre un attendre avant.
En faite, là il va te chercher le code dans Scene_Title au lieux de Scene_Map.
( Parce que pour le jeu à ce moment t'es toujours dans l'écran titre. )

( Je prend note de tout les commentaires, même si je n'y répond pas )


Estheone - posté le 16/03/2013 à 18:43:11 (312 messages postés)

❤ 0

la fonction create_mini_map tu peux la mettre n'importe où dans le Scene_Map ça ne changera rien.

Le $scene.create_mini_map il faut l'appeler à partir d'un event, et pas à partir de l'écran-titre. :F

Wandering Souls : Jeu complet / Topic sur Oniro


Noein - posté le 16/03/2013 à 19:07:16 (155 messages postés)

❤ 0

Merci à vous deux pour ce complément d'information.

J'ai bien appelé le $scene_create_mini_map dans un event mais avec un déclenchement en processus parallèle. Avec une attente de 1 frame ça fonctionne ou alors en déclenchement automatique ;). Maintenant ça fonctionne très bien.

Encore merci Estheone pour ce coup de pouce, c'est vraiment ce que je cherchais ;).

J'édite mon premier post pour mettre que c'est résolu.


Estheone - posté le 16/03/2013 à 19:40:19 (312 messages postés)

❤ 0

Ouais j'avais oublié que les proc parallèles étaient déclenchés avant la création du Scene_Map, d'où l'erreur de script.
Avec le déclenchement auto ça me paraît bien mais l'affichage de la mini-map est trop abrupt, je te propose quelques modifs sur l'opacité :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class Spriteset_Mini_Map
  
  def initialize(map_name, event_ids)
    @map_name = map_name
    @viewport = Viewport.new(520, 0, 120, 90)
    @viewport.z = 190
    @mini_map_sprite = Sprite.new(@viewport)
    @mini_map_sprite.bitmap = RPG::Cache.picture(@map_name)
    @mini_map_sprite.opacity = 0
    @player_dot = Sprite.new(@viewport)
    @player_dot.bitmap = RPG::Cache.picture("Player_Dot")
    @player_dot.ox = @player_dot.bitmap.width/2
    @player_dot.oy = @player_dot.bitmap.height/2
    @player_dot.opacity = 0
    @events = []
    @event_dots = []
    for e in event_ids
      event = $game_map.events[e]
      if event
        @events.push(event)
        @event_dots.push(Sprite.new(@viewport))
        @event_dots.last.bitmap = RPG::Cache.picture("Event_Dot")
        @event_dots.last.ox = @event_dots.last.bitmap.width/2
        @event_dots.last.oy = @event_dots.last.bitmap.height/2
        @event_dots.last.opacity = 0
      end
    end
    update
  end
  
  def dispose
    @mini_map_sprite.dispose
    @player_dot.dispose
    for e in @event_dots
      e.dispose
    end
    @viewport.dispose
  end
  
  def update
    @mini_map_sprite.ox = $game_map.display_x*3/64
    @mini_map_sprite.oy = $game_map.display_y*3/64
    @mini_map_sprite.opacity += 8
    @player_dot.x = ($game_player.real_x+64-$game_map.display_x)*3/64
    @player_dot.y = ($game_player.real_y+64-$game_map.display_y)*3/64
    @player_dot.opacity += 8
    for i in 0...@events.size
      @event_dots[i].x = (@events[i].real_x+64-$game_map.display_x)*3/64
      @event_dots[i].y = (@events[i].real_y+64-$game_map.display_y)*3/64
      @event_dots[i].opacity += 8
    end
  end
end


Avec ça l'affichage de la mini-map se fait graduellement, c'est mieux. Enfin bon à toi de voir. ;)

Wandering Souls : Jeu complet / Topic sur Oniro


Noein - posté le 16/03/2013 à 21:24:25 (155 messages postés)

❤ 0

Merci, l'affichage de la minimap est en en effet plus jolie avec les modifs que tu as apporté. J'étais justement en train de regarder la manière d'afficher une image en RGSS et les différents attributs qu'on pouvait assigner aux Sprites. J'ai tenter de faire des essais sur ton script pour pouvoir définir l'opacité finale de ma minimap. Je connais rien du tout aux scripts mais j'essai de comprendre un peu comment ça marche.

Cette portion de code correspond à l'opacité de départ de l'image ?

Portion de code : Tout sélectionner

1
@mini_map_sprite.opacity = 0



Et celle ci te permet de faire monter graduellement l'opacité à 255 ?

Portion de code : Tout sélectionner

1
@mini_map_sprite.opacity += 8



En dessous de la ligne précédente j'ai ajouter la ligne de code suivante de manière intuitive pour définir une opacité à 180.

Portion de code : Tout sélectionner

1
@mini_map_sprite.opacity = 180


J'ai fait de même pour les curseurs.

Portion de code : Tout sélectionner

1
2
@player_dot.opacity = 180
@event_dots[i].opacity = 180



Cela fonctionne mais j'aimerai savoir si j'ai bien compris comment tout cela fonctionnait et si ma démarche était bonne ?


Estheone - posté le 16/03/2013 à 21:56:39 (312 messages postés)

❤ 0

Citation:

Cette portion de code correspond à l'opacité de départ de l'image ?


Oui.

Citation:

Cela fonctionne mais j'aimerai savoir si j'ai bien compris comment tout cela fonctionnait et si ma démarche était bonne ?


Non là ça ne se fait plus progressivement (ça passe direct à 180 dès la première frame).
Si tu veux fixer un maximum à 180 ce sont ces lignes qu'il faut rajouter (après les opacity +=) :

Portion de code : Tout sélectionner

1
2
3
@mini_map_sprite.opacity = [@mini_map_sprite.opacity, 180].min
@player_dot.opacity = [@player_dot.opacity, 180].min
@event_dots[i].opacity = [@event_dots[i].opacity, 180].min


Ou alors tu inclus les opacity += dans des if (plus simple mais moins précis, l'opacité va dépasser 180 vu que ce n'est pas un multiple de 8) :

Portion de code : Tout sélectionner

1
2
3
if @mini_map_sprite.opacity < 180
  @mini_map_sprite.opacity += 8
end



Wandering Souls : Jeu complet / Topic sur Oniro


Noein - posté le 16/03/2013 à 22:15:30 (155 messages postés)

❤ 0

Citation:

Non là ça ne se fait plus progressivement (ça passe direct à 180 dès la première frame).



Je me suis concentré sur l'affichage finale si bien que je ne n'avais pas vu qu'il ne se faisait plus graduellement.

Merci en tous cas le résultat est vraiment sympa maintenant. Il faudrait que je me mette au RGSS pour comprendre un peu les scripts. C'est conseillé d'apprendre le Ruby ou pas pour comprendre le RGSS ?


Estheone - posté le 16/03/2013 à 22:26:10 (312 messages postés)

❤ 0

Apprendre la syntaxe de base oui ça me semble indispensable (initialiser des variables, faire des boucles, créer des fonctions...). ^^
M'enfin, il te suffit de fouiller les scripts de base, quasiment tout ce que tu chercheras à faire se rapprochera d'un autre truc (le coup des .min pour imposer une valeur max tu peux le voir dans Game_Battler par exemple).

Wandering Souls : Jeu complet / Topic sur Oniro


maxadona - posté le 19/03/2013 à 16:31:59 (146 messages postés)

❤ 0

Drawing my dreams on sheets of paper ...

J'ai un petit souci avec le SBS de Victor. Lorsque je veux ranimer un perso, ce message erreur s'affiche.

A la ligne 2611, on trouve ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
alias :revive_ve_animated_battle :revive
  def revive
    call_pose(:revive, :clear)
    revive_ve_animated_battle
  end



Mon Game_Actor n'a subit aucune modification antérieure et je tourne sous VX Ace.
Je me doute que je dois définir call_pose(:revive), mais n'y connaissant rien en script, je fais appel à vous ^^'. Btw, ça me permettra d'apprendre à définir des états :)

Merci d'avance.

Lien de la page de présentation du script.

Notre imagination ne serait-elle pas la folie de notre génie ? - Last Chance Projet (Site à mettre à jour) ... Présentation bientôt - Chaine Youtube


Estheone - posté le 19/03/2013 à 18:52:02 (312 messages postés)

❤ 0

Trouvé sur ton link :
Requires the Victor Engine – Basic Module

Il viendrait pas de là le problème ?
L'auteur du script a sûrement redéfini pas mal de trucs dans ce module.

Wandering Souls : Jeu complet / Topic sur Oniro


Neither - posté le 19/03/2013 à 18:52:55 (21 messages postés)

❤ 0

Résolu Par : Cortez

Support : Rpg Maker VX

Question : Comment faire un format parfait pour l'animation des sorts

Bonjour j'ai un petit soucis concernant l'animation des sorts , j'ai essayé de créer un sort avec des mouvements du Personnage: Sasuke et son Chidori mais problème j'ai de nombreux décalage et je suis perdu...j'ai remodifié plusieurs fois l'image mais rien à faire...

Voici le screen :

L'image Png que je veux faire :

[Spoiler] http://www.hapshack.com/images/pSE4f.png [/Spoiler]


Le résultat sur Rpg Maker VX :

[Spoiler] http://www.hapshack.com/images/tv38E.png [/Spoiler]


Cortez - posté le 19/03/2013 à 20:23:50 (523 messages postés)

❤ 0

Réponse :
De mémoire les cases d'animation fond 192 x 192 pixels.
Le décalage provient soit de la taille de l'image qui n'est pas bonne (5 cases de large) Soit un décalage du sprite des personnages dans la case.


Aide tutoriel + ressource :
Je vais m'occuper de cette animation (c'est ma spécialité).

Par contre j'ai 2 choses à ajouter :

- Ton image est en JPG flou inutilisable, du coup va faire un tour ici :
http://spriters-resource.com/gameboy_advance/narutonc2/

- Je n'ais pas le temps d'en faire d'autre, pour t'aider je vais t'expliquer ma technique.
D'abord il te faut un Template (un fichier avec les cases dessinées)
Et aussi un logiciel de dessin qui gère les calques et transparences (Gimp, Paint.net)

Spoiler (cliquez pour afficher)


Ensuite il te faut la planche de sprites (je ne les agrandis pas comme ça dans RmVX tu n'auras qu'a modifier le zoom.)

Spoiler (cliquez pour afficher)



Ensuite afin d'éviter le décalage, il faut choisir la place du premier sprite dans la 1ere case.
(Pour faire simple on le place au milieu.)
Une fois la place choisie, tu sélectionne la 1ere case et tu la copie/colle sur chaque autre case du Template.

Spoiler (cliquez pour afficher)



Maintenant on à la position du sprite sur chaque case. Fait un nouveau calque et prend les autres sprites et place les de façon à respecter la le modèle du fond (conseil, prend comme référence les pieds.)
On voit bien la superposition aux niveau des pieds :

Spoiler (cliquez pour afficher)


Pour la suite, il suffit de continuer.


Le résultat final :
image


Neither - posté le 19/03/2013 à 23:09:26 (21 messages postés)

❤ 0

Un grand merci à toi Cortez je vais pouvoir enfin créer des Animations géniales encore merci !!!<3


Cortez - posté le 09/04/2013 à 18:47:37 (523 messages postés)

❤ 0

Demande d'aide pour syntaxe

Je suis en train d'apprendre quelques truc en ruby, notamment la traduction en script des commandes d'évènement. Je lis donc les script interpreter 1-7 et je trouve dans le numéro 5 une ligne un peu compliquée :

Portion de code : Tout sélectionner

1
2
3
# Show picture
    $game_screen.pictures[number].show(@parameters[1], @parameters[2],
      x, y, @parameters[6], @parameters[7], @parameters[8], @parameters[9])



Je voudrais savoir à quoi renvoie les nombreux "parameters"
ainsi que leur syntaxe et les valeur qu'il peuvent prendre (true/false, suite de mot, nombres, nom de fichier.)

Puisque dans l'idéal j'aimerais afficher une image selon un chiffre stocké dans une variable.
Exemple V[2] = 3 on affiche en image 1, l'image du nom de 3.png
si V[2] = 9 on affiche en image 1, l'image du nom de 9.png


Mack - posté le 09/04/2013 à 18:52:37 (2288 messages postés) - staff

❤ 0

Ils sont dans le même ordre que dans l'éditeur de RM.

Donc pour Ace :
Nom de l'image (String), Origine (Integer), X (Integer), Y (Integer), Zoom_X (Integer), Zoom_y (Integer), Opacity (Integer), Mode de Fusion ( Integer).

Grosso modo, ça doit être pareil pour tout les versions.



Pour avoir comme nom de fichier le contenu d'une variable faut mettre :

Portion de code : Tout sélectionner

1
$game_variables[ID].to_s+".png"



Et petite astuce :
Tu peux décomposé une variable de cette façon grâce aux scripts :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
$game_variables[51] = $game_variables[50].to_s[0]
if ( $game_variables[50].to_s.size>1 )
  $game_variables[52] = $game_variables[50].to_s[1]
end
if ( $game_variables[50].to_s.size>2 )
  $game_variables[53] = $game_variables[50].to_s[2]
end


Et une explication :
La variable 51 devient le premier caractère de la variable 50.
Si la variable 50 comporte deux caractères, alors la variable 52 devient le second.
Si la variable 50 comporte trois caractère, la variable 53 devient le troisième.

Ça marche pour les chiffres, comme pour le texte.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Nukidoudi - posté le 09/04/2013 à 18:52:39 (733 messages postés) -

❤ 0

yo

@parameters correspond aux arguments extraits de ce que tu as entré dans l'interface graphique dédié à cette commande.
Les arguments que prennent show se trouvent dans le script Game_Picture show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
A ce stade ci tu peux facilement faire :

Portion de code : Tout sélectionner

1
2
3
 
$game_screen.pictures[number].show($game_variables[2].to_s, 0, x, y, 100.0, 100.0, 255, 0)
 



A noter que le ".png" est useless.

https://xvw.lol


Cortez - posté le 11/04/2013 à 11:28:35 (523 messages postés)

❤ 0

[RPGmakerXP]Ajout de la profondeur z=1 pour une image.

Re-boujour, j'ai un autre soucis... Il faudrait que l'image n°8 suivent les priorités d'affichages donc qu'elle soit en couche 1 (sous la tête du perso et devant les pieds).

Je sais par expérience que c'est la valeur Z (profondeur qu'il faut modifier) mais je ne trouve pas comment faire.
Il me semble que la profondeur ne soit pas directement modifiable car le script de base n'inclut pas ce paramètre dans la classe Picture.


Estheone - posté le 11/04/2013 à 18:42:48 (312 messages postés)

❤ 0

Il y a plusieurs problèmes qui vont se poser donc tu vas devoir faire plusieurs modifs importantes.

Déjà, les images et les charas ne sont pas sur le même viewport d'origine, donc même en mettant à l'image un z négatif il sera toujours au-dessus du héros.
Dans l'initialize du Spriteset_Map, remplace :

Portion de code : Tout sélectionner

1
2
3
4
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport1,
        $game_screen.pictures[i]))
    end



Ensuite dans Game_Picture tu rajoutes un

Portion de code : Tout sélectionner

1
  attr_accessor :z

avec les attr_reader
et tu initialises z dans l'initialize :

Portion de code : Tout sélectionner

1
    @z = 10000+number


Dans Sprite_Picture, tu remplaces le self.z de l'update par :

Portion de code : Tout sélectionner

1
    self.z = @picture.z



Pour finir, tu modifies la coordonnée z de l'image en appel de script.
Exemple :

Portion de code : Tout sélectionner

1
$game_screen.pictures[8].z = 300


Il te reste plus qu'à trouver la bonne valeur z pour obtenir l'effet voulu.

Wandering Souls : Jeu complet / Topic sur Oniro


Cortez - posté le 23/04/2013 à 10:24:20 (523 messages postés)

❤ 0

Edit : le système marche bien mais toutes les images on une priorité égale à 2,3,4 et du coup les effets sur les map sont foirés même avec la commande en script pour chaque image, ca marche pas, z reste compris entre 1 et 4 (la couche 4 et 5 passe au dessus).
T'as une idées ?

Du coup j'ai une autre question :

Syntaxe en ruby

La ligne suivante, permet d'indiquer les monstres d'ID listé qui sont pris en compte dans un script.

Portion de code : Tout sélectionner

1
ENEMY_ID = [1,33,34]



Je voudrais ajouter tous les monstres de la base de donnée.
Mais je voudrais éviter de les rentrer 1 par 1 :

Portion de code : Tout sélectionner

1
ENEMY_ID = [1,2,3,4,5,6,7,8,9,10, ... ,33,34]



Existe-t-il une façon d'écrire pour inclure tout un groupe de valeur ?


Estheone - posté le 23/04/2013 à 11:00:40 (312 messages postés)

❤ 0

Normalement avec un z de 99999 ou un truc comme ça ton image devrait être au-dessus de n'importe quel tile et même au-dessus des fogs, du coup je sais pas quoi te dire.

Pour l'autre question :

Portion de code : Tout sélectionner

1
2
ENEMY_ID = []
for i in 1..34 ; ENEMY_ID.push(i) ; end



Wandering Souls : Jeu complet / Topic sur Oniro


Cortez - posté le 23/04/2013 à 11:16:08 (523 messages postés)

❤ 0

Bon pour les images, je verrais plus tard (le viewport 1 est limité en couche je crois). Il faudrais mieux faire une classe alternative pour afficher des images selon le viewport.
Utilisation normale = picture viewport2
Appel en script = picture viewport1 avec z = 2

Bref pour la deuxième réponse, je voulais juste savoir si je veux faire 2 intervalles, je fait comme ça ?

Portion de code : Tout sélectionner

1
2
ENEMY_ID = []
for i in 1..34 ; for i in 50..100; ENEMY_ID.push(i) ; end




Estheone - posté le 23/04/2013 à 11:18:06 (312 messages postés)

❤ 0

Citation:

Utilisation normale = picture viewport2
Appel en script = picture viewport1 avec z = 2


Les sprites des pictures sont initialisés à l'avance donc je suis pas convaincu que tu puisses changer leur viewport par la suite.
En revanche tu peux toujours modifier la façon dont ils sont initialisés pour en avoir sur le viewport 1 et d'autres sur le 2 :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
    for i in 1..25
      @picture_sprites.push(Sprite_Picture.new(@viewport1,
        $game_screen.pictures[i]))
    end
    for i in 26..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end



Citation:

si je veux faire 2 intervalles, je fait comme ça ?


Comme ça plutôt :

Portion de code : Tout sélectionner

1
2
3
ENEMY_ID = []
for i in 1..34 ; ENEMY_ID.push(i) ; end
for i in 50..100 ; ENEMY_ID.push(i) ; end


:D

Wandering Souls : Jeu complet / Topic sur Oniro

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

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