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

409 connectés actuellement

29386620 visiteurs
depuis l'ouverture

5 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Leo-Games

RPG Fusion

RPG Maker VX

Le Comptoir Du clickeur

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:

Tasslehoff - posté le 04/11/2011 à 22:53:19 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Citation:

Alors apparemment, ça fonctionne ( Aucune erreur ), mais j'ai pas l'impression que ça donne des résultats correctes ...


Ah oui en verifiant mon code j'ai vu que j'ai fait un peu de la zutre.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
tableau = [1,50,20,35]
z = []
tableau.each_index{|index|
  tableau[index].times do
    z.push(index+1)
  end
}
final = z[rand(z.size)]


Là c'est mieux. (Normalement :F)



~~


Suite du sujet:

Zou - posté le 04/11/2011 à 23:13:25 (2197 messages postés)

❤ 0

Portion de code : Tout sélectionner

1
tableau.each_index{|index|


c'est comme

Portion de code : Tout sélectionner

1
for index in 0 ... tableau.size


?


Tasslehoff - posté le 04/11/2011 à 23:19:03 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Ouep.

~~


Zou - posté le 04/11/2011 à 23:23:55 (2197 messages postés)

❤ 0

ok.
En effet le script de tass est bien plus court, simple et .. mieux


yop - posté le 06/11/2011 à 16:24:52 (296 messages postés)

❤ 0

Citation:

Je me demandais également quelles sont les valeurs de base de x et de y ?


Si elles en ont X)
Sinon merci encore Mack et Youri :)
Dommage que ça ne soit pas compatible avec vx car mon 2ème mini-jeu utilise celui-ci... :(

"Thousands of years ago the old empire had enforced the Pax Morporkia, which had said to the world: 'Do not fight or we will kill you.' The Pax had arisen again, but this time it said: 'If you fight, we'll call in your mortgages. And incidentally, that's my pike you're pointing at me. I paid for that shield you're holding. And take my helmet off when you speak to me, you horrible little debtor.'" ~Terry Pratchett, Feet of Clay


Berka - posté le 06/11/2011 à 18:33:35 (493 messages postés)

❤ 0

planchant sur un script

Encore plus court:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
tableau = [1,50,20,35]
z = []
tableau.each_with_index{|v, i|
  v.times{
    z << i + 1
  }
}
final = z[rand(z.size)]



Edit:

Berka. (je suis distrait, désolé)

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


Tasslehoff - posté le 06/11/2011 à 19:08:48 (5234 messages postés)

❤ 0

Disciple de Pythagolf

Ah, je connaissais pas each_with_index, j'ai dû le louper dans la doc ruby.
Ah et au passage t'as oublié de signer ton message. :p

~~


RitoJS - posté le 12/11/2011 à 14:13:26 (801 messages postés)

❤ 0

FalcomFan

Bonjours, ben voilà je voudrais faire en sorte que dés qu'on sélectionne l'option "continuer partie" et "sauvegarder", on entende une musique à l'écran de sauvegarde et de chargement.
Donc je voudrais savoir si c'est possible et si on doit faire un script spécialement pour ( surtout que je sais pas scripter).

PS: j'utilise VX.
Voilà, merci d'avance:sourire3

Sauverez-vous le monde à temps ?. Moe Shit | Quartier Général


Raymond du Piedmont - posté le 29/11/2011 à 15:44:51 (1105 messages postés)

❤ 0

Bouc revenant (mais sans revenus)

Bonjour...ou bonsoir pour ceux qui veulent.
Je vois pas mal d'interface Tatenkiennes (en particulier Anglaises) qui virent le windowskin des actors et qui utilisent des ressources externes pour faire des barres de MP/HP personnalisés.
On se retrouve avec un HUD dans ce genre:
image
J'aimerai savoir où faut aller pour virer ce windowskin et utiliser des images pour créer des jauges et des fonts plus persos!
Quelques indications sur comment faire ne seraient pas de trop non plus (pas vraiment confiance dans mon scripting...)

Merci de votre attention.


Mack - posté le 04/12/2011 à 11:18:18 (2288 messages postés) - staff

❤ 0

Question :
Comment donner un Interpreter au héros ?

En gros, pour mon A-RPG, j'ai fait que les status soit gérer par Event en PP.
Donc, j'ai commencer par faire les ennemis, sur ce point aucun soucis.

Mais, maintenant, j'ai commencer à réfléchir sur comment faire pour le héros sans devoir tout refaire ...

Donc, voila un exemple de statuts :
image


L'idée, ça serais d'appeler l'évent commun depuis Game_Player, puis de faire que "Cet évent" retourne $game_player.

Y a un moyen de le refaire, ou faudrait que je double tout les statuts ?

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


zou - posté le 04/12/2011 à 14:25:26 (2197 messages postés)

❤ 0

Déjà, le héros n'a pas d'interpreter donc pas d’interrupteurs locaux.
Après en bidouillant tu peux lui en donner un facilement.
Ensuite ton $game_map.events foire quand tu le fait avec le héros, ce que tu peux faire c'est un truc comme ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
def event(event_id)
  if event_id == 0
    return $game_player
  else
    return $game_map.events[event_id]
  end
end


et tu mes dans t'as condition
if event(@event_id) == bkdsfksbkdb


Mack - posté le 04/12/2011 à 15:02:22 (2288 messages postés) - staff

❤ 0

Pour ça j'ferais juste un :

Portion de code : Tout sélectionner

1
if event.is_a?(Game_Player)



C'est surtout pour les commandes d'évents que je demandais ...

Nan, parce que sinon, suffit de mettre une condition tout en haut, et suivant si elle est vrai j'fais pour le héros ou pour l'ennemi, mais bon ...

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


cortez - posté le 06/12/2011 à 09:44:43 (523 messages postés)

❤ 0

Support : RMXP

Question 1 :
Comment ajouter un ID de terrain à un évenement basé sur un charset ?
(je sais que les events avec une apparence tileset on l'ID de terrain de la case choisie dans leur apparence).

L'idéal c'est un petit script dans la BDD et une ligne en "inserer script".

Merci d'avance. (une place dans les crédits de Portal XP)


Mack - posté le 09/12/2011 à 15:13:08 (2288 messages postés) - staff

❤ 0

C'est à dire ?
Donner à un évent au autre terrain tag ?
( Genre, normalement il devrait avoir un 0, et tu lui met un 1 avec un truc du genre :

Portion de code : Tout sélectionner

1
change_passability(x,y,id)


? )

Sinon, ma question est toujours d'actualité hein x).

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


cortez - posté le 09/12/2011 à 18:48:19 (523 messages postés)

❤ 0

Citation:

C'est à dire ?
Donner à un évent au autre terrain tag ?
( Genre, normalement il devrait avoir un 0, et tu lui met un 1 avec un truc du genre :

Portion de code : Tout sélectionner

1
change_passability(x,y,id)




C'est ça je veut attribuer un tag terrain à un évent.
Attention si c'est possible en donnant juste l'ID de l'évent.


Tata Monos - posté le 10/12/2011 à 13:29:25 (28 messages postés)

❤ 0

Compte Non utilisé

Je post la future demande ici pour en parler un peu.
Ace va sortir et en théorie j'aimerais qu'un seul script. Ajouter les personnages surla map; Sur vx on avait tenté un truc avec Mack mais personnellement ça c'est vite transformé en usine à gaz avec les options que je voulais.

J'ai réfléchie a ça.

Citation:

Cahier des charges pour la création d'un script de combat pour Rpg Maker Vxace.

Divers

Garde l’ensemble du système de base.

-Ajout des personnages joueurs visibles sur à l'écran.
Utiliser le charset du personnage.
Possibilité de positionner les 4 personnages par coordonner facilement.
(Genre=
Xperso1 => 320
Yperso1=> 120

Xperso2 => 320
Yperso2=> 180

ect. Ou un truc facile que je peux changer facilement.

Au moment des choix des actions, le personnage s'avance, choix de l'action du personne, et il est recule (sans changer de sens). On passe au 2em/3em/4em.

Les monstres utilisent l’animation qui sont visibles à l'écran. (Sur le ou les personnages)

Quand le héros agis, un petit déplacement sur la gauche comme avant ; Pas de déplacement vers l'ennemie. Ensuite application de animation.

Statuts
J'utilise des planches individuel pour les personnages.
Donc pour représenter graphique d'un état (poison, mort ect) je peux me servir d'un tag dans un fichier graphique qui correspond à un tag dans les notes.

Exemple si dans les notes du statuts poison est [poison]
En combat il remplacera le charset du perso par un autre avec [poison] à la fin.
Exemple :
$heros1.png
C'est le charset du 1er héros
$heros1[poison].png
c'est le nouveau charset utilisé si il est sous le coup du poison.
(Utilisez la priorité d'affichage pour savoir qu'elle graphismes changer en cas de multie statue tagé)



"Le système" est t'il réalisable simplement par vous.
Cela faciliterais pas mal de chose d'utilisé les notes / Statuts par apport au nom des tags des graphismes.


Mack - posté le 10/12/2011 à 20:36:24 (2288 messages postés) - staff

❤ 0

Cortez :
Essaie ç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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class Interpreter
  def change_terrain_tag(id,x,y,terrain_id)
    if id == nil
      z = 0
      loop do
        i = $game_map.new_terrain[z]
        if i == []
          id = z
          break
        end
        z += 1
      end
    end
    $game_map.new_terrain[id].push(x)
    $game_map.new_terrain[id].push(y)
    $game_map.new_terrain[id].push(terrain_id)
  end
end
class Game_Map
  attr_accessor :new_terrain
  alias ini initialize
  def initialize
    ini
    @new_terrain = []
    for i in 0...999
      @new_terrain[i] = []
    end
  end
  def terrain_tag(x, y)
    if @map_id != 0
      for id in 0...999#@new_terrain.size
        if x == @new_terrain[id][0] and y == @new_terrain[id][1]
          return @new_terrain[id][2]
        end
      end
      for i in [2, 1, 0]
        tile_id = data[x, y, i]
        if tile_id == nil
          return 0
        elsif @terrain_tags[tile_id] > 0
          return @terrain_tags[tile_id]
        end
      end
    end
    return 0
  end
end



Et pour s'en servir :

Portion de code : Tout sélectionner

1
2
change_terrain_tag(Id,X,Y,Terrain_Tag)
# Tu peux mettre nil pour l'Id, il t'en cherchera un nouveau.




Monos :

J'verrais si j'peux le faire à la sortit ( Surement une traduite, histoire de pas avoir des script avec du Jap' dedans ... ) de Ace ;)

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


Tata Monos - posté le 10/12/2011 à 21:06:41 (28 messages postés)

❤ 0

Compte Non utilisé

Dac Mack Merci.


S4suk3 - posté le 13/12/2011 à 18:06:21 (555 messages postés)

❤ 0

-

Bonjour,
Dans la version ruby qu'utilise RM VX (1.8.6 je pense), il n'est pas possible de passer un block à la méthode Array#index, donc la solution pour faire des traitement de block sur index est :

Portion de code : Tout sélectionner

1
[1, 2, 3, 4, 5].index([1, 2, 3, 4, 5].find{|element| element >= 3})


Personnellement, je trouve cette méthode un peu moche, donc je m'étais dit que j'allais tirer partit du monkeypatching

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
class Array
  alias ruby_index index
  def index
    if block_given?
      ( ? )
    end
    return ruby_index( ? )
  end
end


les ( ? ) correspondent a mes interrogation,
je pensais utiliser index(*args) pour avoir un nombre variable d'argument et retourner ruby_index(args[0]) dans le cas ou aucun block n'est fournit, mais si un block est donné en paramètre, je peux pas demander ruby_index(self.find(yield) je suppose?
Je vous remercie :S


Zeus81 - posté le 13/12/2011 à 19:25:55 (11071 messages postés)

❤ 0

Au début je me disais que tu pourrais faire avec find comme dans ton code précédent :

Portion de code : Tout sélectionner

1
2
3
4
5
6
class Array
  alias ruby_index index
  def index(obj=nil, &block)
    ruby_index(block ? find(&block) : obj)
  end
end


Mais en fait non, ça ferrait des erreurs par rapport à nil.
Du coup la seule solution qui marche vraiment c'est :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
class Array
  alias ruby_index index
  def index(obj=nil)
    if block_given?
      each_with_index {|obj, id| return id if yield(obj)}
      return nil
    else
      return ruby_index(obj)
    end
  end
end


Mais c'est peut être un peu plus lent, je sais pas.


S4suk3 - posté le 13/12/2011 à 19:44:26 (555 messages postés)

❤ 0

-

Merci beaucoup Zeus...
C'est dommage que les blocks n'aient pas un type spécifique... ou que yield corresponde a un block.
Peut être que je me trompe, mais ça dénote réellement l'intérêt d'un système de type complet :)


Åvygeil - posté le 15/12/2011 à 17:06:35 (2502 messages postés)

❤ 0

Ha ouais. Quand même.

Moche la cécité.


Tata Monos - posté le 23/12/2011 à 07:40:47 (28 messages postés)

❤ 0

Compte Non utilisé

Coucou les gars.
Alors voila j'avais fais un truc en RGSS2, j'ai porté la même chose pour ACE.
On m'a parlé des alias qui évite de reprend tous le morceau de la classe. Pouvez vous m'expliquer comment on fait svp.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super
    self.windowskin = Cache.system("Window")
    update_padding
    update_tone
    create_contents
    @opening = @closing = false
        self.back_opacity = 255 #Ajouter
    self.openness = 255 #Ajouter
  end
  end
 



Portion de code : Tout sélectionner

1
2
3
4
 
 self.back_opacity = 255 #Ajouter
    self.openness = 255 #Ajouter
 


Se sont les deux lignes que j'ai ajouté et donc plus tard je vais remplacer le chiffre par une variable.

Merci d'avance de vos explications sur les alias.


zou - posté le 23/12/2011 à 13:59:04 (2197 messages postés)

❤ 0

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
class Ta_class
 
  alias nouveau_nom nom
  # tu renomes la méthode "nom" en "nouveau_nom"
  
  def nom # tu fais maintenant ta nouvelle méthode
    nouveau_nom # tu appelles la méthode qui a changée de nom
    # tu fais les trucs nouveaux
  end
 
end


ce qui donne dans ton cas

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
class Window_Base < Window
  
  alias old_initialize initialize
 
  def initialize(x, y, width, height) # la "vraie" méthode prend ces 4 arguments, tu le mes donc ici
    old_initialize(x, y, width, height) # ici tu as des arguments, il faut les "faire passer" dans
    # la méthode qui a changée de nom
    self.back_opacity = 255
    self.openness = 255
  end
 
end




zou - posté le 23/12/2011 à 15:26:21 (2197 messages postés)

❤ 0

je sais pas, j'ai jamais testé sans mais ça doit marcher sans en effet


Tata Monos - posté le 23/12/2011 à 15:28:05 (28 messages postés)

❤ 0

Compte Non utilisé

Citation:

monkeyPatching


Monkey Patching, c'est un peu la même chose que Monos Patching ? (juste la langue qui change non ?)
=>[]


Merci.

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