RPG Creator : créez votre MMORPG ou RPG sans aucune connaissance en programmation


Disponible le 4 Juin !




- Jouez à votre jeu sur tablettes tactiles, Smartphones et navigateurs Web
- Personnalisez vos menus
- Dessinez facilement et rapidement vos cartes
- Créez des actions pour le combat A-RPG


www.rpgcreator.net


Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: Petit menu sur la carte
MessagePublié: 01 Mar 2007, 12:31 
Ancien membre du staff
Ancien membre du staff

Inscrit le: 12 Aoû 2006, 00:00
Messages: 1060
Points d'aide: 60/60

Créations :

Voir ses créations

Voici un petit script qui devrait servir à certaine personne d'après ce qu'on m'a dis donc je le poste ^^.

Ce script permet d'afficher sur la carte un menu avec sauver charger et quitter actionnable à la sourie.

Code: Tout sélectionner
#==============================================================================
#
# Mouse Script v1                                       created by: cybersam
#
#==============================================================================
#
# this script is what you think it is...
# this one let you use and see you mouse...
# (of course not realy use since the buttons are handled in the keyboard module)
# but here we dont need to change anything...
# only the variables...
# if you already using the first 2 variables...
# comments are over the lines with the variables so you wont have to go
# through the script if you're not good with this kind of stuff ^-^
#
#==============================================================================
module Mouse
  $RMouse_BUTTON_L = 0x01        # left mouse button
  $RMouse_BUTTON_R = 0x02        # right mouse button
  $RMouse_BUTTON_M = 0x04        # middle mouse button
  $RMouse_BUTTON_4 = 0x05        # 4th mouse button # only tested with win2k with a logitech mouse (MX900)
  $RMouse_BUTTON_5 = 0x06        # 5th mouse button # only tested with win2k with a logitech mouse (MX900)
 
  GetKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
  GetKeyboardState = Win32API.new("user32","GetKeyState",['i'],'i')
 
  module_function
 
  def press?(rkey)
    GetKeyState.call(rkey) & 0x01 == 1  #
  end
 
  def trigger?(rkey, key = 0)
    GetKeyboardState.call(rkey) & 0x01 == key #
  end

  gsm = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i')

  @cursor_pos = Win32API.new('user32', 'GetCursorPos', 'p', 'i')

  def mouse_global_pos
    pos = [0, 0].pack('ll')
    if @cursor_pos.call(pos) != 0
      return pos.unpack('ll')
    else
      return nil
    end
  end

  def mouse_pos(catch_anywhere = false)
    x, y = screen_to_client(*mouse_global_pos)
    width, height = client_size
    if catch_anywhere or (x >= 0 and y >= 0 and x < width and y < height)
      # the only ones that needs to be changed... if you already using these to
      # variables...
      # change only the number in these 2 lines...
      # if you change other stuff it might srew up the whole module...
      $mouse_x = x
      $mouse_y = y
      return x, y
    else
      return nil
    end
  end
 
  def del
    if @oldcursor == nil
      return
    else
      @SetClassLong.call(handel ,-12, @oldcursor)
      @oldcursor = nil
    end
  end
end

$scr2cli = Win32API.new('user32', 'ScreenToClient', %w(l p), 'i')
$client_rect = Win32API.new('user32', 'GetClientRect', %w(l p), 'i')
$readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
$findwindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')

def screen_to_client(x, y)
  return nil unless x and y
  pos = [x, y].pack('ll')
  if $scr2cli.call(hwnd, pos) != 0
    return pos.unpack('ll')
  else
    return nil
  end
end

def hwnd
  game_name = "\0" * 256
  $readini.call('Game','Title','',game_name,255,".\Game.ini")
  game_name.delete!("\0")
  return $findwindow.call('RGSS Player',game_name)
end

def client_size
  rect = [0, 0, 0, 0].pack('l4')
  $client_rect.call(hwnd, rect)
  right, bottom = rect.unpack('l4')[2..3]
  return right, bottom
end

class MapMenu
  def initialize(x,y)
    @x = x
    @y = y
    @spritesave = Sprite.new
    @spriteload = Sprite.new
    @spritequit = Sprite.new
    @savebmp = RPG::Cache.picture('save1')
    @loadbmp = RPG::Cache.picture('load1')
    @quitbmp = RPG::Cache.picture('quit1')
    @actifsavebmp = RPG::Cache.picture('save2')
    @actifloadbmp = RPG::Cache.picture('load2')
    @actifquitbmp = RPG::Cache.picture('quit2')
    @spritesave.x = @x
    @spriteload.x = @x - 20
    @spritequit.x = @x - 40
    @spritesave.y = @y
    @spriteload.y = @y+@savebmp.height+10
    @spritequit.y = @y+@savebmp.height+@loadbmp.height+20
    @spritesave.z = 200
    @spriteload.z = 200
    @spritequit.z = 200
    @actif = -1
    refresh
  end
 
  def dispose
    @spritesave.dispose
    @spriteload.dispose
    @spritequit.dispose
  end
 
  def refresh
    case @actif
    when 0
      @spritesave.bitmap = @actifsavebmp
      @spriteload.bitmap = @loadbmp
      @spritequit.bitmap = @quitbmp
    when 1
      @spritesave.bitmap = @savebmp
      @spriteload.bitmap = @actifloadbmp
      @spritequit.bitmap = @quitbmp
    when 2
      @spritesave.bitmap = @savebmp
      @spriteload.bitmap = @loadbmp
      @spritequit.bitmap = @actifquitbmp
    when -1
      @spritesave.bitmap = @savebmp
      @spriteload.bitmap = @loadbmp
      @spritequit.bitmap = @quitbmp
    end
  end
 
  def update
    oldactif = @actif
    pos = Mouse.mouse_pos(true)
    press = false
    x = @x
    y = @y
    if pos[0].between?(x,x+@savebmp.width) and
       pos[1].between?(y,y+@savebmp.height)
      @actif = 0
      press = true
    end
    x -= 20
    y += @savebmp.height+10
    if pos[0].between?(x,x+@loadbmp.width) and
       pos[1].between?(y,y+@loadbmp.height)
      @actif = 1
      press = true
    end
    x -= 20
    y += @loadbmp.height+10
    if pos[0].between?(x,x+@quitbmp.width) and
       pos[1].between?(y,y+@quitbmp.height)
      @actif = 2
      press = true
    end
    if press == false
      @actif = -1
    end
    refresh if oldactif != @actif
    command
  end
 
  def command
    if Mouse.press?($RMouse_BUTTON_L)
      case @actif
      when 0
        $game_temp.save_calling = true
      when 1
        $scene = Scene_MapLoad.new
      when 2
        $scene = Scene_MapEnd.new
      end
    end
  end
end

class Scene_Map
  alias mimiman_mapmenu_scenemap_main main
  def main
    @mapMenu = MapMenu.new(550,320)
    mimiman_mapmenu_scenemap_main
    @mapMenu.dispose
  end
  alias mimiman_mapmenu_scenemap_update update
  def update
    @mapMenu.update
    mimiman_mapmenu_scenemap_update
  end
end

#==============================================================================
# ¦ Scene_Load
#------------------------------------------------------------------------------
#  ?????????????????
#==============================================================================

class Scene_MapLoad < Scene_File
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def initialize
    # ??????????????????
    $game_temp.last_file_index = 0
    latest_time = Time.at(0)
    for i in 0..3
      filename = make_filename(i)
      if FileTest.exist?(filename)
        file = File.open(filename, "r")
        if file.mtime > latest_time
          latest_time = file.mtime
          $game_temp.last_file_index = i
        end
        file.close
      end
    end
    super("Charger quelle partie?")
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def on_decision(filename)
    # ????????????
    unless FileTest.exist?(filename)
      # ??? SE ???
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # ??? SE ???
    $game_system.se_play($data_system.load_se)
    # ???????????
    file = File.open(filename, "rb")
    read_save_data(file)
    file.close
    # BGM?BGS ???
    $game_system.bgm_play($game_system.playing_bgm)
    $game_system.bgs_play($game_system.playing_bgs)
    # ?????? (????????)
    $game_map.update
    # ??????????
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ? ?????????
  #--------------------------------------------------------------------------
  def on_cancel
    # ????? SE ???
    $game_system.se_play($data_system.cancel_se)
    # ???????????
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ? ???????????
  #     file : ??????????????? (??????)
  #--------------------------------------------------------------------------
  def read_save_data(file)
    # ?????????????????????????
    characters = Marshal.load(file)
    # ??????????????????????
    Graphics.frame_count = Marshal.load(file)
    # ????????????????
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $game_self_switches = Marshal.load(file)
    $game_screen        = Marshal.load(file)
    $game_actors        = Marshal.load(file)
    $game_party         = Marshal.load(file)
    $game_troop         = Marshal.load(file)
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
    # ???????????????????
    # (?????????????????)
    if $game_system.magic_number != $data_system.magic_number
      # ????????
      $game_map.setup($game_map.map_id)
      $game_player.center($game_player.x, $game_player.y)
    end
    # ???????????????
    $game_party.refresh
  end
end

#==============================================================================
# ¦ Scene_End
#------------------------------------------------------------------------------
#  ???????????????????
#==============================================================================

class Scene_MapEnd
  #--------------------------------------------------------------------------
  # ? ?????
  #--------------------------------------------------------------------------
  def main
    # ????????????
    s1 = "Écran-Titre"
    s2 = "Quitter"
    s3 = "Annuler"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 240 - @command_window.height / 2
    # ?????????
    Graphics.transition
    # ??????
    loop do
      # ????????
      Graphics.update
      # ???????
      Input.update
      # ??????
      update
      # ????????????????
      if $scene != self
        break
      end
    end
    # ?????????
    Graphics.freeze
    # ????????
    @command_window.dispose
    # ???????????????
    if $scene.is_a?(Scene_Title)
      # ??????????
      Graphics.transition
      Graphics.freeze
    end
  end
  #--------------------------------------------------------------------------
  # ? ??????
  #--------------------------------------------------------------------------
  def update
    # ????????????
    @command_window.update
    # B ??????????
    if Input.trigger?(Input::B)
      # ????? SE ???
      $game_system.se_play($data_system.cancel_se)
      # ???????????
      $scene = Scene_Map.new
      return
    end
    # C ??????????
    if Input.trigger?(Input::C)
      # ???????????????????
      case @command_window.index
      when 0  # ?????
        command_to_title
      when 1  # ???????
        command_shutdown
      when 2  # ???
        command_cancel
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ? ???? [?????] ??????
  #--------------------------------------------------------------------------
  def command_to_title
    # ?? SE ???
    $game_system.se_play($data_system.decision_se)
    # BGM?BGS?ME ????????
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # ???????????
    $scene = Scene_Title.new
  end
  #--------------------------------------------------------------------------
  # ? ???? [???????] ??????
  #--------------------------------------------------------------------------
  def command_shutdown
    # ?? SE ???
    $game_system.se_play($data_system.decision_se)
    # BGM?BGS?ME ????????
    Audio.bgm_fade(800)
    Audio.bgs_fade(800)
    Audio.me_fade(800)
    # ???????
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # ? ???? [???] ??????
  #--------------------------------------------------------------------------
  def command_cancel
    # ?? SE ???
    $game_system.se_play($data_system.decision_se)
    # ???????????
    $scene = Scene_Map.new
  end
end


Vous avez juste à créer 6 images, save1 save2 load1 load2 quit1 et je pense que vous devinez que la dernière est quit2 ^^.

Les *1 sont les images quand la sourie n'est pas dessus et les *2 le contraire, quand la sourie passe sur l'option.

Donc voila, amusez-vous ^^.


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 20 Mar 2011, 08:57 
Artisan (Nv 3)
Avatar de l’utilisateur

Inscrit le: 12 Mar 2011, 12:35
Messages: 144
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Event',Scripts
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

:?: juste une question , on creer les images c'est tout ou il faut les dessiner aussi ?

_________________
Mes points forts :
Scripts ; Scénario ; (Inventer des noms) ; Eventmaking ; Charas
Mes points faibles:
Tilesets
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 20 Mar 2011, 09:09 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 12 Avr 2009, 00:00
Messages: 372
Logiciel(s) préféré(s): RMXP
Point(s) Fort(s): Ruby
Sexe: Masculin
Points d'aide: Illimité

Créations :

Voir ses créations

Bonjour,

Ça me semble pourtant logique, quand mimiman dit de créez les images, il faut aussi que tu la dessine, si tu laisse l'image blanche, je voit pas l’intérêt :p

Et puis, bon, ça c'est des questions que tu pourrais résoudre en testant le script.

Ah et je précise au cas ou, les images sont à créez dans ton dossier "Graphics/Pictures"


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 21 Mar 2011, 06:36 
Artisan (Nv 3)
Avatar de l’utilisateur

Inscrit le: 12 Mar 2011, 12:35
Messages: 144
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Event',Scripts
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

quest-ce qu'on dessine dessus?

_________________
Mes points forts :
Scripts ; Scénario ; (Inventer des noms) ; Eventmaking ; Charas
Mes points faibles:
Tilesets
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 21 Mar 2011, 10:28 
Garde
Garde
Avatar de l’utilisateur

Inscrit le: 26 Sep 2006, 00:00
Messages: 1973
Points d'aide: Illimité

Créations :

Voir ses créations

Citer:
Vous avez juste à créer 6 images, save1 save2 load1 load2 quit1 et je pense que vous devinez que la dernière est quit2 ^^.

Les *1 sont les images quand la sourie n'est pas dessus et les *2 le contraire, quand la sourie passe sur l'option.

Sérieusement, y'a 5 lignes à lire dans le post... On est très patient avec toi mais fais au moins un effort.

_________________
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 21 Mar 2011, 20:14 
Artisan (Nv 3)
Avatar de l’utilisateur

Inscrit le: 12 Mar 2011, 12:35
Messages: 144
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Event',Scripts
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

Donc en gros faut savoir dessiner c'est ça que je voulais savoir ...

_________________
Mes points forts :
Scripts ; Scénario ; (Inventer des noms) ; Eventmaking ; Charas
Mes points faibles:
Tilesets
Image
Image


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 21 Mar 2011, 20:49 
Villageois (Nv 1)
Avatar de l’utilisateur

Inscrit le: 16 Fév 2011, 13:11
Messages: 8
Localisation: Nord (59)
Niveau RPG Maker: Noob en devenir !
Logiciel(s) préféré(s): Rpg Maker VX
Sexe: Masculin
Points d'aide: 0/60

Créations :

Voir ses créations

Tu crées six images avec les noms décrits un peu plus haut, ces images représentes les choix de ton menu rien de compliqué...

Un petit exemple pour couper court :

Image

un save1 tout à fait banal.

ImageImage

Et deux variantes possibles pour le save2, c'est à dire quand la souris survole le choix. Pas besoin de dessiner, donc il suffit d'avoir une bonne police, un peu d'imagination et dix secondes de ton temps sur un logiciel comme paint, gimp, toshop, etc.


Haut
 Profil  
 
 Sujet du message: Re: Petit menu sur la carte
MessagePublié: 22 Mar 2011, 19:01 
Artisan (Nv 3)
Avatar de l’utilisateur

Inscrit le: 12 Mar 2011, 12:35
Messages: 144
Niveau RPG Maker: Correct
Logiciel(s) préféré(s): RPG Maker XP
Point(s) Fort(s): Event',Scripts
Sexe: Masculin
Points d'aide: 1/60

Créations :

Voir ses créations

erreur : ????'Mouse Menu'?164??? NoMetthod Error ???? undefined method'between' for nil:NilClass

_________________
Mes points forts :
Scripts ; Scénario ; (Inventer des noms) ; Eventmaking ; Charas
Mes points faibles:
Tilesets
Image
Image


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728