Night.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

Jeux: Le secret de vanoiseau / Sorties: Happiness Adventure / Tutos: [RM 2003] Tuto CBS Zelda 2D - (...) / Packs de ressources: Ressources midi / Programmes: TileD / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

78 connectés actuellement

26131189 visiteurs
depuis l'ouverture

3223 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Lunae - le bazar d'Emz0

Alex d'Or

New RPG Maker

RPG Maker VX

RPG Maker Détente

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

Reprise du message précédent:

zebrot - posté le 07/08/2010 à 15:26:06 (1601 messages postés)

❤ 0

Troller lvl 1

Bonjour, comme le précise le titre du topic, ma question est vraiment conne:
Support : RMXP

Question 1 :
Il existe un moyen d'appeler un script depuis la commande d'event.
Existe-t'il un moyen d'appeler un common event par un script?
Je pense que oui, mais il me manque la toute p'tite ligne de code qui me permettra de le faire.

En fait, c'est pour faire un CMS, c'est assez dur en event, donc je fais le menu en script et certaines Scene seraient beaucoup plus faciles en event (les quêtes...)

01010011 01110101 01100011 01100101 00100000 01101101 01101111 01101001 00100000 00111100 00110011


Suite du sujet:

Lufia - posté le 07/08/2010 à 15:50:25 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

@TIMO et Joke :
$game_actors[id]

Ensuite, on peut faire des concaténations de chaîne avec des +, mais il faut faire attention au type de ce que t'écris :

Portion de code : Tout sélectionner

1
2
3
print "chtonk" + $game_variables[0] # Type Error
print "chtonk #{$game_variables[0]}"
print "chtonk" + $game_variables[0].to_s


to_s = to string, convertit (en tout cas essaye) l'objet précédent en chaîne de caractère.

Enfin, $game_actors[id], ça sera un objet Game_Actor. Ça va t'afficher un truc du genre #<Game_Actor:deschiffres>. Faut aller lire la classe Game_Actor et voir quel attribut tu veux afficher, exactement.

@zebrot :
$game_temp.common_event_id = id
Attention, les events communs ne se jouent que sur la carte. (Et dans les combats, mais bref.) Cette commande permet simplement de dire qu'il faudra jouer un évènement commun lorsque tu reviendras à Scene_Map, pas de le lancer tout de suite.

Une signature ? Pour quoi faire ?


zebrot - posté le 07/08/2010 à 16:05:31 (1601 messages postés)

❤ 0

Troller lvl 1

Citation:

Attention, les events communs ne se jouent que sur la carte. (Et dans les combats, mais bref.) Cette commande permet simplement de dire qu'il faudra jouer un évènement commun lorsque tu reviendras à Scene_Map, pas de le lancer tout de suite.


=/
Oui bon donc c'est inutile...
Y'a aucun moyen de jouer un event commun ou pas dans une scene autre scene_map?
EDIT: c'est bon, merci beaucoup =)

01010011 01110101 01100011 01100101 00100000 01101101 01101111 01101001 00100000 00111100 00110011


Lufia - posté le 07/08/2010 à 16:13:19 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

Peut-être en créant un nouvel objet Game_Interpreter dans ta scène ? Ça risque juste d'être un peu la galère à gérer.

Une signature ? Pour quoi faire ?


TIMO - posté le 07/08/2010 à 17:09:54 (822 messages postés)

❤ 0

Portion de code : Tout sélectionner

1
2
    self.contents.draw_text(4, 0, 190, 32, "Empire " $game_actors[2].to_s", ")
 

Il me dit qu'il y a une erreur de syntaxe à cet ligne, je vois pas où.

Portion de code : Tout sélectionner

1
$game_actors[2]

C'est bien pour afficher le nom du 2° héros de la base de données.


Lufia - posté le 07/08/2010 à 18:08:45 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

TIMO a dit:


Portion de code : Tout sélectionner

1
2
    self.contents.draw_text(4, 0, 190, 32, "Empire " $game_actors[2].to_s", ")
 

Il me dit qu'il y a une erreur de syntaxe à cet ligne, je vois pas où.


Tu m'expliques la syntaxe de
"Empire " $game_actors[2].to_s", "
je la comprends pas. T'as réfléchi 2 minutes à la façon d'écrire ta chaîne de caractères ? Surtout que j'en ai donné des exemples corrects 2 messages plus haut. Que t'orthographies mal un nom de variable, je veux bien. Mais les guillemets à la nawak, c'est déjà moins excusable.

TIMO a dit:

Portion de code : Tout sélectionner

1
$game_actors[2]

C'est bien pour afficher le nom du 2° héros de la base de données.


Non. $game_actors[2].name, oui.

Une signature ? Pour quoi faire ?


TIMO - posté le 07/08/2010 à 19:01:43 (822 messages postés)

❤ 0

Ce qui t'étonne c'est le ", " à la fin. Je l'ai mit pour mettre une virgule après le nom du deuxième héros. En plus je l'ai enlevé pour voir si c'est ça qui gêné mais ça n'a rien changé.


Portion de code : Tout sélectionner

1
2
    self.contents.draw_text(4, 0, 190, 32, "Empire " $game_actors[2].name.to_s)
 



Ça me dit la même chose.


Lufia - posté le 07/08/2010 à 19:07:55 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

Quand je dis que t'as écris ta chaîne à la nawak et d'aller regarder les exemples donnés plus haut, c'était pas juste une façon de parler, hein.

"truchmuche #{unevariable} bidulechouette"
ou
"trucmuche" + unevariable + "bidulechouette"
mais pas des trucs hybrides bizarres.

Et oui, je refuse obstinément de t'écrire ta chaîne. Le truc à propos d'apprendre au gens à pêcher au lieu de leur donner du poisson, tout ça...

Une signature ? Pour quoi faire ?


TIMO - posté le 07/08/2010 à 19:20:27 (822 messages postés)

❤ 0

Chouette ! Ça marche !

Portion de code : Tout sélectionner

1
2
    self.contents.draw_text(4, 0, 190, 32, "Empire #{$game_actors[2].name.to_s}, ")
 


Merci.

Edit :
Comment affiche-t-on la vie d'un héros ?


Angel-of-93(kikoo) - posté le 08/08/2010 à 08:54:19 (26 messages postés)

❤ 0

En affichant une image représentant la vie du héro :F


trophe - posté le 18/08/2010 à 10:29:49 (136 messages postés)

❤ 0

les pouvoirs de l'infini...

j'ai une question et J'AIMERAIS AVOIR UNE REPONCE!:fache2
quand j'active rpg maker VX, il me dit :
impossible de lire les données de l'énnemi.
qu'es ce que sa veut dire? des heures de créations en l'air?
si je n'ai pas de réponce, je retournerais par obligation à 001 action/rpg maker :'(

forum LPDI : http://lpdileforumofficiel.forumgratuit/ - chaîne youtube : http://www.youtube.com/user/trophe80


sriden - posté le 18/08/2010 à 20:23:53 (16344 messages postés) -

❤ 0

The eyes are useless when the mind is blind

strophe a dit:

J'AIMERAIS AVOIR UNE REPONCE!:fache2

Trophe, ton 2e pseudo c'est pas Catas' ?

Escapade | La 7e porte | Vader Ou La Fin des Haricots | Ketsuro | Polaris 03 | Blog ciné/jv | Mes albums de zyk : Diaphanous Horizons & Retranchements


Ephy - posté le 18/08/2010 à 20:29:34 (29601 messages postés) - honor -

❤ 0

[BIG SHOT]

trophe> Ptêtre le fichier "ennemies" du dossier data qu'est corrompu.
Remplace le et ça marchera je pense (à savoir que, si tu avais modifié les données des monstres, ce sera perdu si tu n'a pas fait de sauvegarde (et vu que tu pose la question je pense que tu n'en a pas fait).

Du coup cet incident t'apprendra surement qu'il faut faire pleins de copies de son projet.

Citation:

J'AIMERAIS AVOIR UNE REPONCE!:fache2


Je sais pas si tu en aura. Personnellement, je dois avouer que je sais pas ce que c'est une "réponce"...



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


trophe - posté le 19/08/2010 à 22:02:08 (136 messages postés)

❤ 0

les pouvoirs de l'infini...

c'est bon, j'ai changé de jeu et maintenant, j'ai une séquence d'introduction mais à la fin, mon héros ne fait aucun geste... (même échap ne fonctionne pas par contre il y a un combat à un moment et sa marche assez bien..... (sa me rend fou!) :fou
EDIT: catas' n'est pas mon deuxième pseudo, mais par contre je dessine des BD dont le perso principal est un lycéen appelé "Catasse trophe"

forum LPDI : http://lpdileforumofficiel.forumgratuit/ - chaîne youtube : http://www.youtube.com/user/trophe80


Ephy - posté le 19/08/2010 à 22:04:57 (29601 messages postés) - honor -

❤ 0

[BIG SHOT]

Faut surement mettre un interrupteur (local ou non) pour terminer l'événement automatique.
Mais après pour en savoir plus faut aller consulter les tutos sur les interrupteurs ou encore mieux, le tuto de Monos pour apprendre à faire une introduction.

Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 20/08/2010 à 12:33:06 (2158 messages postés)

❤ 0

Support : RMXP

Questions : Condition "si l'évent comporte "XXX" dans son nom", et Condition de contact entre évent.

Donc voila, comme l'indique la question, je suis à la recherche des deux conditions ci dessus, elles seront toutes deux placé dans un évent.

J'ai essayer :

Portion de code : Tout sélectionner

1
2
3
4
5
for event in $game_map.events.values
if event.name.include?("[DJ]")
print "123"
end
end


Pour le nom, mais la fonction "include?" n'a pas l'air de marcher ... ( Je sais pas si ça viens de la fonction, ou de " $game_map.events.values " )
( ??? NoMethodError ????
undefined method 'includeN' for nil:NilClass )

Pour le contact, je pense que ça doit être un truc du genre :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
gme = $game_map.events
    x = gme[@event_id].x + (gme[@event_id].direction == 6 ? 1 : gme[@event_id].direction == 4 ? -1 : 0)  
    y = gme[@event_id].y + (gme[@event_id].direction == 2 ? 1 : gme[@event_id].direction == 8 ? -1 : 0)  
    for e in $game_map.events.values  
      if e.name.include?("[DJ]")
        if e.x == x and e.y == y  
        print "123"  
        end  
      end
    end  
 


Mais le code rentre pas dans la commande insérer un script ...
J'arrive plus à me souvenir le nom du logiciel pour augmenter la taille de la boite, j'vais essayer de le retrouver.

Bref', merci d'avance.

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


Kaila - posté le 20/08/2010 à 14:09:57 (3617 messages postés)

❤ 0

Hmmm ?

As-tu rendu le nom de l'event accessible par le biais d'un script dans ce genre ?:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#====================================
# Modif de Game_Event pour pouvoir
# récupérer le nom d'un événement en
# écrivant "$game_map.events[x].name"
#====================================
class Game_Event
  attr_reader :name
  alias k_name_initialize initialize
  def initialize(map_id, event)
    @name = event.name
    k_name_initialize(map_id, event)
  end
end
#====================================



Pour ta seconde demande, même si je n'ai pas testé, je pense que c'est ça.
Par contre, étant donné que ton code ne rentre pas dans la fenêtre d'insertion de script et que, je pense, tu seras amené à le réécrire plusieurs fois (j'anticipe, mais je me trompe peut être ?), tu peux en faire une commande supplémentaire de l'interpreter que tu appelleras simplement par son nom.

Everything is better with zombies.


Lufia - posté le 20/08/2010 à 14:11:46 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

C'est quoi ce "values" ?

Sinon, t'auras un autre problème : le nom d'un évènement n'est pas accessible par défaut. Si tu vas faire un tour dans Game_Event, tu verras que les seules variables accessibles sont @trigger, @list et @starting.

Tu peux faire de deux façons.
- Rendre accessible la variable @event pour écrire $game_map.events.event.name
- Créer une nouvelle variable d'instance @name dans initialize en lui donnant pour valeur event.name



Pour le contact, je comprends pas ce que tu fais. Si tu veux savoir si deux évènements se touchent, tu compare juste leurs coordonnées.

Une signature ? Pour quoi faire ?


Mack - posté le 20/08/2010 à 14:29:40 (2158 messages postés)

❤ 0

La solution de Kaila marche pour le nom.

En faite, j'ai trouvé ce code pour le héros :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
[...]
    x = $game_player.x + ($game_player.direction == 6 ? 1 : $game_player.direction == 4 ? -1 : 0)  
    y = $game_player.y + ($game_player.direction == 2 ? 1 : $game_player.direction == 8 ? -1 : 0)  
    event = nil  
    for e in $game_map.events.values  
      if e.x == x and e.y == y  
        event = e  
      else        
        $game_system.map_interpreter.agir 
      end      
    end  
[...]
 


Donc j'ai pensé qu'on pouvait s'en servir pour le faire avec les évents.

Mais, j'arrive pas vraiment à le faire fonctionner ^^".

Le faire dans une Interpreter serait surement pas mal, mais comment m'y prendre ?

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


Lufia - posté le 20/08/2010 à 14:52:35 (5792 messages postés)

❤ 0

Un Oniromancien. PVs 1, Attaque 0, Défense 0.

Bin, faut voir ce que t'appelles "contact", quoi. Là, ça vérifie si un évènement est en face du joueur, pas dessus, pas derrière, pas sur les côtés, juste en face.

Pis rajouter des trucs à l'interpréteur, c'est très simple :

Portion de code : Tout sélectionner

1
2
3
4
5
class Intepreter
  def ma_nouvelle_commande
    print "pouet"
  end
end


Et hop, on peut utiliser ma_nouvelle_commande dans une insertion de script.

Une signature ? Pour quoi faire ?


Mack - posté le 20/08/2010 à 15:11:37 (2158 messages postés)

❤ 0

Oui, mais la c'est dans "Inserer un Script".
J'voulais dire dans la commande Condition.

Pour le contact, c'est si un évènement est à côté d'un autre et essaie de se déplacer sur l'autre évènement ( J'sais pas si c'est possible, si c'est pas possible, peut être faire que la boule doit regarder l'évent devant elle pour que la condition soit vrai ? ).
Exemple :
Mon évent 1 se déplace à droite, ignorer commande si impossible, et répéter les commandes.
Mon évent 2 est un pnj normal, donc in-traversable.
Voila un petit schéma.
image
Donc la boule va aller vers la droite jusqu'à rencontrer l'évent.
Lorsque celle ci va "toucher" l'évènement la boule va disparaitre.
La conditions sera dans l'évent 2.
Mais lorsque la boule passe à côté ( Le même schéma qu'au dessus, mais avec la boule une case plus haut ), rien ne se passe.
Bien entendu c'est pour les 4 directions.

Voila, j'espère que c'est plus clair.

EDIT : J'ai réussis à faire la condition, manqueras plus que la collision.

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


Joke - posté le 22/08/2010 à 19:09:10 (5087 messages postés)

❤ 0

Mack, si la flamme part vers la droite, et entre en collision, tu auras : Xflamme+1=Xperso et Yflamme = flamme, c'est tout ^^


Support : RMVX

Question : [résolu]
Je voudrais savoir comment faire en script pour modifier le sprite d'un événement, du genre : modifier les couleurs de l'événement 2... ^^

biloumaster.fr


Mack - posté le 22/08/2010 à 19:26:07 (2158 messages postés)

❤ 0

Effectivement, j'ai fait ça :

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
   def contactevent(eventname)
     x = $game_map.events[@event_id].x 
     y = $game_map.events[@event_id].y 
     for event in $game_map.events.values
       if event.name.include?(eventname)
         dir = event.direction
         case dir
         when 2
           posx = x
           posy = y-1
         when 4
           posx = x+1
           posy = y
         when 6
           posx = x-1
           posy = y
         when 8
           posx = x
           posy = y+1
         end
         if posx == event.x and
           posy == event.y
           return true 
         end
       end
     end 
   end
 


Ça marche, mais si quelqu'un à une meilleur solution ^^".


Joke, j'vais voir si je trouve pour VX ^^.



EDIT :
T'as de la chance, ça marche plus ou moins comme sur XP :

Portion de code : Tout sélectionner

1
2
3
4
5
$game_map.events[@event_id].character_name = "Animal"# Le nom du Fichier
$game_map.events[@event_id].character_index  = 2 #L'index du character (Ceux de VX sont 
découper en tablette de 6 Character, cette commande permet de savoir laquelle tu veux 
prendre, si tu le met pas, ça te garderas la même que celle d'avant
 ( Elle se compte à partir de 0 et augmente de 1 en allant vers la droite. )


Dans le script Game_Character rajoute :

Portion de code : Tout sélectionner

1
2
  attr_accessor :character_name           # character graphic filename
  attr_accessor :character_index          # character graphic index


Au dessus la def initialize, avec les autres attr.
Ah et @event_id définit l'évent actuel, remplace par l'id de l'évent que tu veux. ( J'sais pas si tu t'y connais ^^" )

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


Joke - posté le 22/08/2010 à 19:40:33 (5087 messages postés)

❤ 0

Hmmm oui en fait je ne cherchais pas à modifier le charset, mais la couleur du sprite quel que soit le charset... serais-ce :

"$game_map.events[id].bitmap.tone = set(R,V,B,G)" ?

L'info est sympa ^^

biloumaster.fr


berka - posté le 22/08/2010 à 20:09:09 (493 messages postés)

❤ 0

planchant sur un script

Bonsoir,

Le probleme c'est que Bitmap ne dispose pas d'attribut Tone.
Seuls Plane, Sprite et Viewport en ont. il faudrait donc faire :
Sprite.tone.set(r,g,b,a)

Ce qui se passe aussi en l'occurrence, c'est que ton $game_map.events[id]
n'est pas du tout un sprite, mais un objet Game_Event, qui hérite de Game_Character. Donc c'est de la "donnée", pas du graphisme. Pas étonnant, car les scripts sont identifiables par leur nom:
Données: Game_xxx / Scene_xxx
Graphiques: Sprite_xxx / Spriteset / Window_xxx

Donc pour oser modifier ton charset, il faut que tu te tournes vers Sprite_Character
Ou bien que tu passes indirectement par la propriété character_hue de Game_Character, donc par $game_map.events[id].character_hue.
Mais c'est très fortement limité...

Mais si tu veux modifier tous les sprites d'évents, le plus simple est de te tourner vers Spriteset_Map, mettre le tableau @character_sprites en attribut rw. Il suffira d'une simple boucle pour égir sur chacun des sprites d'event qu'il contient.

Bonne soirée,
Berka

Twitter: Pensées politiques et juridiques. Réflexions informatiques


Zeus81 - posté le 22/08/2010 à 21:38:17 (11071 messages postés)

❤ 0

C'est plus compliqué que ça Joke.
Il faut créer une variable dans Game_Character :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
class Game_Character
  attr_accessor :tone
  alias :joke_initialize :initialize
  def initialize
    joke_initialize
    @tone = Tone.new(0, 0, 0, 0)
  end
end


Ensuite il faut mettre à jour le ton dans la classe Sprite_Character

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
class Sprite_Character
  alias :joke_update :update
  def update
    joke_update
    self.tone = @character.tone
  end
end


Pour l'utiliser :

Portion de code : Tout sélectionner

1
2
$game_map.events[id].tone.set(r, v, b, g)
$game_player.tone.set(r, v, b, g)



Et tu peux en rajouter d'autres pareillement.

Et Mack tu déformes la page et ça fait chier !

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

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