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

Jeux: Onsen RPG - A Tale of Yu / Jeux: Final Destiny / Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

262 connectés actuellement

30745960 visiteurs
depuis l'ouverture

2289 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker - La Communauté

Eclipso

RPG Maker Détente

Le Comptoir Du clickeur

Tous nos partenaires

Devenir
partenaire



Jeux: Mer, îles et fous

Script pour RPG Maker IMAGE
Signaler un script cassé

❤ 0






Zeus81 - posté le 03/10/2009 à 18:25:44 (11071 messages postés)

❤ 0

Essai comme ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
Boucle
  Condition : si Script : 'Keyboard.press?(Keys.index("A"))'
  ->Message : a
  Attendre 1 frame
  Script : 'Keyboard.update'
Fin de boucle




pele - posté le 23/01/2010 à 11:04:31 (53 messages postés)

❤ 0

Kalki

J'ai testé ce script et je me suis rendu compte qu'il mérite son
nom.Merci Ô tout puissant Zeus.
Pour vérifier si la souris est sur un évènement, mettez le en processus parallèle et créez une condition avec le code suivant:

Portion de code : Tout sélectionner

1
Mouse.x/32 == $game_map.events[@event_id].x and Mouse.y/32  == $game_map.events[@event_id].y


pour le clique, cherchez vous même.

Apprendre le ruby RGSS1/2? http://Chalcie.overblog.com


Ranger Maker - posté le 15/01/2011 à 08:20:19 (17 messages postés)

❤ 0

en train de maker

Merci Ô tout puissant Zeus ! (lèche-botte)
J'ai ce script + AMS Ultimate et ça marche ! Merci !

Bordel pourquoi tout le monde a photoshop alors que ce sont des RPG AMATEURS !


deadmat - posté le 10/02/2011 à 10:28:47 (74 messages postés)

❤ 0

Ta yeule criss!

Gros Update de Zeus81 fait le 10 fev 2011

Faite une copie de votre ancien script Mouse Ultimate si vous l'aviez édité. Remplacer le par ce script si dessous.
Ce Update vous permet d'avoir beaucoup plus de liberté avec la souris.

-Permet de jouer avec la souris, cliquer, double-cliquer et plus.
-Peut faire en sorte que la souris ne sort plus du cadre de jeux.*
-Permet de déplacer la souris en évent (script).
-Pouvez changer l'image de votre curseur.
-Permet d'enregistrer les coordonnées du curseur dans des variables du jeu.
-Détecter si le curseur est sur une coordonné et même le contraire.±

Et plus encore avec de l'imagination et de la logique.

* Peut aussi permettre le contraire et ce peut changer durant le jeu.
± Sur un évènement aussi .

Mouse Ultimate

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
# Mouse Ultimate v1.2.2
# Il y a trois touches possibles : Mouse::LEFT, Mouse::RIGHT et Mouse::MIDDLE
# pour respectivement clic gauche, clic droit et clic milieu.
# Vous pouvez trouvez les fonctions trigger?, press? et repeat? comme dans Input
# Mais aussi Mouse.release?(key) pour voir si une touche est relachée
# et Mouse.double_trigger?(key) pour les double clics.
# On récupère les coordonnées du curseur avec Mouse.x et Mouse.y
# On peut aussi déplacer le curseur avec Mouse.x = new_x et Mouse.y = new_y
# Pour changer la visibilité du curseur : Mouse.visible = true ou false
# Ajouts v1.2 :
# Optimisation des performances.
# Vous pouvez sélectionner l'image du curseur ligne 35, attention à bien
# preciser le chemin complet (ex : 'Graphics/Pictures/MonCurseur.png').
# La souris est mise à jour automatiquement tant qu'elle est visible.
# Modifications v1.2.1 :
# Après test, il semblerait qu'il soit inutile de préciser le nom de la fenêtre
# dans FindWindow tant qu'on ne crée pas de fenêtre fille.
# En gros ça ne lit plus le fichier "Game.ini" pour avoir le nom du jeu ce qui
# prévient par ailleurs le changement de nom du fichier et donc des bugs.
# Modifications v1.2.2 :
# Réparation du bug quand on presse F12.
# Ajout du ClipCursor qui permet d'empêcher la souris de sortir de la fenêtre du
# jeu quand on est en mode fenêtré.
# Vous pouvez le configurer ligne 36.
# CursorClipMode = 0 # Désactivé, la souris est libre d'aller n'importe où.
# CursorClipMode = 1 # La souris ne peut pas sortir de la fenêtre de jeu.
# CursorClipMode = 2 # La souris ne peut pas sortir de la surface de jeu.
# La différence entre 1 et 2 c'est qu'en 2 on ne peut pas aller sur les boutons
# pour Réduire ou Fermer le jeu ou même déplacer la fenêtre.
# /!\ Attention : Si on utilise le raccourci Alt+Tab cela créera un bug, la
# souris ne pouvant toujours pas sortir de son cadre, il est conseillé
# d'utiliser le mode 1 pour pouvoir réduire la fenêtre en bonnet du forme.
 
module Mouse
  CursorFileName = ''  # ex : 'Graphics/Pictures/MonCurseur.png'
  CursorClipMode = 0 # 0,1,2
  
  ClipCursor = Win32API.new('user32', 'ClipCursor', 'p', 'i')
  ShowCursor = Win32API.new('user32', 'ShowCursor', 'i', 'i')
  FindWindow = Win32API.new('user32', 'FindWindow', 'pp', 'i')
  GetKeyState = Win32API.new('user32', 'GetKeyState', 'i', 'i')
  GetCursorPos = Win32API.new('user32', 'GetCursorPos', 'p', 'i')
  SetCursorPos = Win32API.new('user32', 'SetCursorPos', 'ii', 'i')
  GetClientRect = Win32API.new('user32', 'GetClientRect', 'ip', 'i')
  GetWindowRect = Win32API.new('user32', 'GetWindowRect', 'ip', 'i')
  ClientToScreen = Win32API.new('user32', 'ClientToScreen', 'ip', 'i')
  ScreenToClient = Win32API.new('user32', 'ScreenToClient', 'ip', 'i')
  GetDoubleClickTime = Win32API.new('user32', 'GetDoubleClickTime', '', 'i')
  
  Cursor = Sprite.new
  Cursor.z, Cursor.visible = 0xFFFF, false
  if CursorFileName.empty?
    Cursor.bitmap = Bitmap.new(8, 8)
    Cursor.bitmap.fill_rect(0, 0, 3, 7, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(0, 0, 7, 3, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(5, 5, 3, 3, Color.new(0,0,0))
    Cursor.bitmap.fill_rect(1, 1, 1, 5, Color.new(255,255,255))
    Cursor.bitmap.fill_rect(1, 1, 5, 1, Color.new(255,255,255))
    Cursor.bitmap.fill_rect(6, 6, 1, 1, Color.new(255,255,255))
  else Cursor.bitmap = Bitmap.new(CursorFileName)
  end
  DCT = GetDoubleClickTime.call * Graphics.frame_rate / 1000
  RA, RB = Graphics.frame_rate*4/10, Graphics.frame_rate/10
  HWindow = FindWindow.call('RGSS Player', 0)
  LEFT, RIGHT, MIDDLE = 1, 2, 4
  @count = {LEFT=>[0, 0], RIGHT=>[0, 0], MIDDLE=>[0, 0]}
  @pos, @clip = "\0"*8, "\0"*16
  
  def self.update
    case CursorClipMode
    when 1
      GetWindowRect.call(HWindow, @clip)
      ClipCursor.call(@clip)
    when 2
      GetClientRect.call(HWindow, @clip)
      ClientToScreen.call(HWindow, @clip)
      r = @clip.unpack('llll')
      @clip[8,8] = [r[0]+r[2], r[1]+r[3]].pack('ll')
      ClipCursor.call(@clip)
    end
    GetCursorPos.call(@pos)
    ScreenToClient.call(HWindow, @pos)
    Cursor.x, Cursor.y = @pos.unpack('ll')
    dct = (gfc=Graphics.frame_count) - DCT
    for k,v in @count
      v[0] = get_press(k) ? v[0]+1 : v[0]>0 ? -1 : 0
      v[1] = v[1]>dct ? v[0]==1 ? -1 : v[1] : v[0]==1 ? gfc : 0
    end
  end
  def self.press?(k)          valid?(k) and @count[k][0]  >  0 end
  def self.trigger?(k)        valid?(k) and @count[k][0] ==  1 end
  def self.double_trigger?(k) valid?(k) and @count[k][1] == -1 end
  def self.release?(k)        valid?(k) and @count[k][0] == -1 end
  def self.repeat?(k) valid?(k) and ((c=@count[k][0])==1 or (c>RA and c%RB==0)) end
  def self.x()        Cursor.x end
  def self.y()        Cursor.y end
  def self.visible()  Cursor.visible end
  def self.x=(x)      set_pos(x, y)  end
  def self.y=(y)      set_pos(x, y)  end
  def self.visible=(v)
    loop {break if v ? ShowCursor.call(0)<0 : ShowCursor.call(1)>0}
    Cursor.visible = v
  end
  def self.valid?(k)    @count.include?(k)         end
  def self.get_press(k) GetKeyState.call(k)[15]==1 end
  def self.set_pos(x, y)
    ClientToScreen.call(HWindow, pos=[Cursor.x=x, Cursor.y=y].pack('ll'))
    SetCursorPos.call(*pos.unpack('ll'))
  end
end
 
class << Input
  unless method_defined?(:zeus_mouse_update)
    alias zeus_mouse_update update
  end
  def update
    Mouse.update if Mouse.visible
    zeus_mouse_update
  end
end
 
Mouse.visible = true # true or false, activer ou desactive le curseur.
 



Quelque commande utile a savoir pour bien utiliser ce script.

Cliquer avec la souris.

Créer un évènement en processus parallèle, inséré une condition(page 4, script).
(key) = Mouse::LEFT ou Mouse::MIDDLE ou Mouse::RIGHT

Portion de code : Tout sélectionner

1
2
3
4
5
6
 
Mouse.press?(key)
Mouse.release?(key)
Mouse.trigger?(key)
Mouse.double_trigger?(key)
 



Cliquer avec la souris sur une coordonnée ou un évènement précis.

Créer un évènement en processus parallèle, inséré une condition(page 4, script).
Remplacer ±± par:
Coordonnés= Mouse.x/32 == 10.x and Mouse.y/32 == 34.y
Évènements= Mouse.x/32 == $game_map.events[@event_id].x and Mouse.y/32 == $game_map.events[@event_id].y (trouvé par pele)

Portion de code : Tout sélectionner

1
2
3
 
Mouse.press?(Mouse::LEFT) and Mouse.x/32 == ±±.x and Mouse.y/32 == ±±.y
 



Enregistrer les coordonnées du curseur lors du clique dans des variables.

Citation:


<> Condition: Script: Mouse.trigger?(Mouse::LEFT)
<> Script: $game_variables(30) = Mouse.x
$game_variables(31) = Mouse.y
<>
: Fin Condition
<>


Breff, dans cette exemple la variable 30 et 31 enregistrerons les coordonnées.
À vous de choisir vos propres variables pour votre jeux.

Au faite je ne fais que expliquer dans le détail pour les intéressés, mais ce script est entièrement de Zeus81 que j'admire pour avoir révolutionné RMXP avec c'est scripts divins!
:lol:lol:lol


YagamiRaito - posté le 27/03/2011 à 15:02:16 (11 messages postés)

❤ 0

Bonjour,

Script parfait, mais j'aimerais de l'aide pour l'utilisation du joystick
J'aimerais pouvoir utiliser toutes les touches : R1,R2,R3, Start...
Ainsi que la gestion de deux manettes.
J'ai essayé de décortiquer le script, mais j'ai un peu de mal...

Merci de vos réponses...

Cordialement, YagamiRaito


Alchimèriste - posté le 11/07/2011 à 11:49:16 (73 messages postés)

❤ 0

Pixel's not dead .:

Excellent module ce Mouse Ultimate.

Je me suis amusé ce matin à créer un "mini jeu" de tir aux pigeons pour le tester et expérimenter le script (v.1.2.2) et l'aide de son auteur m'a permis de l'adapter légèrement (grâce aux bonnes explications de Zeus car je ne connais rien du RUBY mais un peu plus depuis..) de telle façon que les coordonnées X et Y ciblés soient relativess à l'écran:

Zeus a dit:

Ton problème c'est que tu compares la position relative à la map et non celle relative à l'écran.



Plus simplement dit, quelque soit la taille de la MAP et la position du joueur/personnage sur celle-ci, on peut cibler avec une précision paramétrable mais calculée en temps réelle (donc on peut se déplacer et tirer sur des cibles en mouvement etc.)

Pour cette modification, les scripts à insérer dans les événements à cibler (ceux qui seront clicables, par exemple un chevreuil qui cours dans une forêt, une fenêtre d'un chatêau etc..) ressembleraient à ça:

au lieu de mettre ceci dans un événement (cf. explications ci-dessus de deadmat postées le 10/02/2011).

Portion de code : Tout sélectionner

1
 Mouse.trigger?(Mouse::LEFT) and Mouse.x/32 == $game_map.events[@event_id].x and Mouse.y/32 == $game_map.events[@event_id].y 



on met ceci (conseils de Zeus):

Portion de code : Tout sélectionner

1
Mouse.trigger?(Mouse::LEFT) and (Mouse.x-$game_map.events[@event_id].screen_x+48).between?(0,32) and ($game_map.events[@event_id].screen_y-Mouse.y-32).between?(0,32)



Ce script ci-dessus est un exemple appliqué concernant le script v1.2.2 donc et ici on clique une fois (trigger) avec le bouton gauche (LEFT) de la souris.
La cible est ici circonscrite dans une case virtuelle de 32x32px mais on peut changer (comme il est expliqué sur le post original plus haut le fonctionnement du clic ou encore la fourchette min et max de la cible qui dans cet exemple est de 32).



Zeus a dit:

Comme ça ça devrait être bon, les between c'est pour avoir un seuil, c'est plus précis que de diviser par 32.


Tu pourrais rajouter aussi : Cursor.ox = Cursor.oy = 32
dans le script de la souris pour centrer le milieu du viseur sur la souris parce qu'autrement c'est un peu nul.



Je n'ai pas encore testé le reste (Cursor) mais je post ce message car ce sont d'autres pistes à explorer pour trouver de nouvelles applications et exemples de développement pour ce script qui, je le répète, est une vraie mine d'or de GamePlay l'air de rien et avec un peu d'imagination. ^^

Illustration avec une application fonctionnelle d'Ultimate Mouse v1.2.2 seul:

Spoiler (cliquez pour afficher)



The Flame in the Flood {KickStarter}


ddnlejeu - posté le 13/09/2011 à 15:06:43 (13 messages postés)

❤ 0

Entre boulot et dddnlejeu

Bonjour à tous,

Je suis en train de travailler sur le 3e jeux donjon de naheulbeuk et je suis repartis de zero avec mes propres scripts. Sauf que pour ce qui est de gérer les touches il semblerais que Zeus (c'est même sûr) soit le meilleur.

J'ai ajouté le script "input ultimate" au dessus du main (jusque là tout va bien).
En guise de test j'ai tenté un classique :

Portion de code : Tout sélectionner

1
2
3
4
5
 
if Input.trigger?(Keys.index("I"))
      print("I pressed")
end
 


Et bien entendu cela ne marche pas parce que la constante Keys n'existe pas. J'imagine que ce qu'il attend c'est le tableau récapitulatif des touches mais je ne sais pas trop ou le mettre.

Quand on me demande de codé une superbe WebApps, pas de souci, par contre dès qu'il faut faire des script qui sorte de l'ordinaire en rgss après une mauvaise nuit ça galère un peu plus ^^.

En espérant qu'une âme charitable me repêchera.

Amicalement,
Votre correspondant ddnlejeu


Zeus81 - posté le 13/09/2011 à 17:37:08 (11071 messages postés)

❤ 0

Tu veux pas attendre un peu, je devrais sortir une nouvelle version dans pas trop longtemps et j'ai pas envie de continuer à supporter celle là. :s


ddnlejeu - posté le 13/09/2011 à 23:31:05 (13 messages postés)

❤ 0

Entre boulot et dddnlejeu

Ok j'attendrai pour implémenter la gestion des touches


Zeus81 - posté le 21/03/2012 à 21:42:59 (11071 messages postés)

❤ 0

Se reporter ici pour une meilleure version.


P151013 - posté le 19/10/2013 à 17:53:49 (2 messages postés)

❤ 0

Ça marche pas avec une manette ps3...


Kipics - posté le 07/04/2016 à 08:16:29 (8 messages postés)

❤ 0

Salut à tous

Je n'y connais presque rien en scripting cependant même après avoir installé Imput Ultimate, Imput Config et Keyboard Ultimate et tenté de les faire fonctionner, je n'arrive toujours à rien :'( j'ai juste réussi à aller dans le menu de configuration.

Si j'ai bien compris, il faut ajouter certaines lignes de code au script Keyboard Ultimate (?)

Quelqu'un aurait-il une démo avec une exemple de plusieurs touches? Ou est-ce qu'on peu m'expliquer plus précisement :F

Merci

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