Partagez
Aller en bas
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:04
Bonjours a tous !

Alors voilà, j'ai foutu mon script sous Main.

J'ai créé un evenement pour lancer mon script et je doit faire un appel de script, sauf que je comprend pas très bien ce que je doit noté dans l'appel de script pour que cela fonctionne :

Script : https://www.dropbox.com/sh/sz6mpw5n2d6zxi2/EzLRBdMNm4/RMVXA%20Scripts/Player_Select_Mog.txt

appel de script : call_player_select_scene

Ce que cela doit faire : mon evenement est un PNJ qui, lorsqu'on lancera la discution avec lui, nous proposera de choisir un personnage (Homme ou Femme)

Je débute dans tout le domaine de création du jeu, mais jusqu'a je n'avais pas eu de problème a ajouter des scripts (pour personnaliser mes combats par exemple) car je n'avais pas d'appel de script a faire.


Dernière édition par Rhydan le Dim 17 Nov 2013 - 13:01, édité 1 fois
avatar
Ti-Max
Membre

Nombre de messages : 1050
Localisation : Canada/Québec
Distinction : Poisson 2018 [Amal']
Date d'inscription : 02/09/2009

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:14
DAns ton événement, la commandes pour faire un appel de script est à la 3e page et se nomme 'Script'.

Image -»

tu mets le code
Code:
call_player_select_scene
Puis une autre chose, les scripts que tu ajoutes ne va pas sous Main, mais au-dessus. Sinon ils ne s'activeront jamais.

En espérant avoir été clair et que ça fonctionne. ^^
avatar
Crayt
Membre

Nombre de messages : 216
Age : 19
Localisation : Devant mon ordinateur
Distinction : aucune
Date d'inscription : 28/10/2013

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:15
TI-MAX J'allais le dire.. ^^
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:18
J'ai suivis a la lettre ce que TI-MAX ma dis et voila le resultat :

avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:23

Alors voilà, j'ai foutu mon script sous Main.
Ton script au dessus de main pas dessous.
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:28
je l'ai mis au dessus, j'ai suivis ce que m'a dis TI-MAX a la lettre, cela inclus aussi le passage au dessus de Main
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:31
Ok j'avais pas vu désolé.

Maintenant est ce que tu as tous ce dont tu as besoin pour utiliser le script ?

Tu es bien sous rmvxAce ?

Tu as bien les ressources nécessaire pour faire fonctionner le script ?

Tu as bien le script additionnel pour le faire fonctionner ?

Voir ici :

http://himeworks.wordpress.com/2013/08/19/player-selection-mog-edition/
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:41
hallelujah !!!

En effet j'avais player manager mais il me manquer party manager !
Bon maintenant j'ai un autre petit soucis qui s'offre a moi (si c'etais déja tout résolu sa serais pas drôle ^^)


Comme vous le voyez, il y a le choix entre Roykin et ... Roykin !!

Comment dois-je procédé pour ajouter un deuxieme personnage ?
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:44
C'est expliqué dans le script Player Manager, regarde et si tu comprends pas reviens me voir Smile

avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:45
Dac merci Smile
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 22:55
Tous les joueurs doivent avoir un ID unique. Le premier joueur a ID 1.

Création d'un joueur est un processus en trois étapes:

Tout d'abord, vous pourrez choisir un ID pour le lecteur.
Ensuite, vous pourrez choisir quels acteurs seront attribués au joueur.
Enfin, vous devez définir un emplacement pour le lecteur, en utilisant l'appel de script
create_player_location (map_id, x, y)
Pour créer un nouveau joueur, vous feriez quelque chose comme ceci:

membres = [2,3,4]
location = create_player_location (5, 10, 12)
create_player (2 membres, localisation)
Cela va créer un nouveau joueur avec ID 2, avec des acteurs 2, 3 et 4.
Le joueur sera créé à la carte 5, à la position (10, 12).
Si un joueur avec l'identifiant spécifié existe déjà, alors rien ne se passera .

C'est un peu trop compliquer, pour moi ayant du mal déjà a la base avec les scripts tout fait ...

ID player 2 ça ok
location on me demande sur quel map, si je met 1 je suppose que sa sera la first map
position 10,12 sa c'est mes axe X et Y
Mais le reste je suis largué complet ... et je ne sais pas exactement ou posé tout sa dans le script player :/
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Sam 16 Nov 2013 - 23:42
Bon je regarde tes scripts depuis 20 minutes maintenant et franchement c'est le bordel...
J'ai trouvé pour toi un autre script beaucoup moins compliqué et qui fonctionne après 30 secondes, je te laisse regarder et télécharger sa démo :

Code:
#==============================================================================
# +++ MOG - Scene Character Select V1.0 | Hidden Characters Unselectable Mod
#==============================================================================
# By Moghunter
# Hidden Characters Unselectable Mod Author: SoulPour777
# Description: Adds other characters you do not want to be seen into the
# character selection.
# http://www.atelier-rgss.com/
#==============================================================================

=begin
Notes:

The $MOG_Actor_Playable = 6 is the variable that takes how many characters
in the database you want to be shown when the character select script call
is activated. Changing the variable value would also change the number
of actors shown. Please do not edit nor change MOG_Actor_Hidden_Number's
value.
=end
class Mog_Set_Up
 
  def initialize
    $MOG_Actor_Playable = 6
    $MOG_Actor_Hidden_Number = $MOG_Actor_Playable + 1
  end
 
end


class Window_Base < Window

  def draw_picture_number(x,y,value, file_name,align = 0, space = 0, frame_max = 1,frame_index = 0)   
      number_image = Cache.system(file_name)
      frame_max = 1 if frame_max < 1
      frame_index = frame_max -1 if frame_index > frame_max -1
      align = 2 if align > 2
      cw = number_image.width / 10
      ch = number_image.height / frame_max
      h = ch * frame_index
      number = value.abs.to_s.split(//)
      case align
          when 0
            plus_x = (-cw + space) * number.size
          when 1
            plus_x = (-cw + space) * number.size
            plus_x /= 2
          when 2 
            plus_x = 0
      end
      for r in 0..number.size - 1     
          number_abs = number[r].to_i
          number_rect = Rect.new(cw * number_abs, h, cw, ch)
          self.contents.blt(plus_x + x + ((cw - space) * r), y , number_image, number_rect)       
      end
      number_image.dispose 
  end
  #--------------------------------------------------------------------------
  # ● draw_char_window_status 
  #-------------------------------------------------------------------------- 
  def draw_char_window_status(x,y)
      image = Cache.system("Char_Status_Layout")   
      cw = image.width 
      ch = image.height
      src_rect = Rect.new(0, 0, cw, ch)   
      self.contents.blt(x , y , image, src_rect)
      image.dispose
  end   
end 

#===============================================================================
# ■ RPG_FileTest
#===============================================================================
module RPG_FileTest
 
  #--------------------------------------------------------------------------
  # ● RPG_FileTest.system_exist?
  #--------------------------------------------------------------------------
  def RPG_FileTest.system_exist?(filename)
      return Cache.system(filename) rescue return false
  end 
 
  #--------------------------------------------------------------------------
  # ● RPG_FileTest.picture_exist?
  #--------------------------------------------------------------------------
  def RPG_FileTest.picture_exist?(filename)
      return Cache.picture(filename) rescue return false
  end 
 
end

#==============================================================================
# ** Window_Character_Status
#==============================================================================
class Window_Character_Status < Window_Base
  attr_accessor :index
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------
  def initialize(actor)
      super(0, 0, 400, 130)
      self.opacity = 0
      actor_id = []
      @index = actor
      for i in 1...$MOG_Actor_Hidden_Number
        actor_id.push($game_actors[i])
      end
      @actor = actor_id[actor -1]
      refresh
  end
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
      self.contents.clear
      self.contents.font.bold = true
      self.contents.font.italic = true
      draw_char_window_status(0, 6)   
      draw_actor_face(@actor, 0, 0)
      draw_actor_name(@actor, 140, -5)
      draw_actor_class(@actor, 60, 70)   
      draw_picture_number(155,20,@actor.mhp, "Number_char",1) 
      draw_picture_number(145,48,@actor.mmp, "Number_char",1)   
      draw_picture_number(228,28,@actor.atk, "Number_char",1) 
      draw_picture_number(297,28,@actor.def, "Number_char",1) 
      draw_picture_number(207,68,@actor.mat, "Number_char",1) 
      draw_picture_number(277,68,@actor.agi, "Number_char",1) 
  end
end


#==============================================================================
# ■ Scene Character Select
#==============================================================================
class Scene_Character_Select
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------
 def initialize
    setup
    create_layout
    $MOG = Mog_Set_Up.new
    @char_max = $MOG_Actor_Playable
    create_window_status
    create_char_image
    reset_position(0)     
 end
 
 #--------------------------------------------------------------------------
 # ● Setup
 #--------------------------------------------------------------------------
 def setup
    @char_index = 1
    @char_max = $data_actors.size - 1
    @pw_x = 300
    @aw_x = 200   
    @nw_x = 100       
 end 
 
 #--------------------------------------------------------------------------
 # ● Main
 #--------------------------------------------------------------------------         
 def main
    Graphics.transition
    execute_loop
    execute_dispose
 end 
 
 #--------------------------------------------------------------------------
 # ● Execute Loop
 #--------------------------------------------------------------------------         
 def execute_loop
    loop do
          Graphics.update
          Input.update
          update
          if SceneManager.scene != self
              break
          end
    end
 end
 
 #--------------------------------------------------------------------------
 # ● create_background
 #-------------------------------------------------------------------------- 
 def create_layout
      @background = Plane.new 
      @background.bitmap = Cache.system("Background")
      @background.z = 0
      @layout_01 = Sprite.new 
      @layout_01.bitmap = Cache.system("Char_Layout01")
      @layout_01.z = 10     
      @layout_02 = Sprite.new 
      @layout_02.bitmap = Cache.system("Char_Layout02")
      @layout_02.blend_type = 1
      @layout_02.z = 1 
  end 
 
  #--------------------------------------------------------------------------
  # ● create_window_status
  #-------------------------------------------------------------------------- 
  def create_window_status
      @window_status = []
      for i in 1...$MOG_Actor_Hidden_Number
          @window_status[i] = Window_Character_Status.new(i)
          @window_status[i].z = 7
      end
      check_active_window
  end 
 
  #--------------------------------------------------------------------------
  # ● create_window_status
  #-------------------------------------------------------------------------- 
  def create_char_image   
      @actor_picture = []
      actor_id = []
      for i in 1...$MOG_Actor_Hidden_Number 
          actor_id.push($game_actors[i])
          actor = actor_id[i - 1]
          @actor_picture[i] = Sprite.new
          file_name = "Character" + i.to_s
          file_name = "" unless RPG_FileTest.picture_exist?(file_name)
          @actor_picture[i].bitmap = Cache.picture(file_name)
      end 
      check_active_picture
  end
  #--------------------------------------------------------------------------
  # ● check_active_window
  #-------------------------------------------------------------------------- 
  def check_active_window
    for i in 1...$MOG_Actor_Hidden_Number 
        @pw = @char_index - 1
        @pw = 1 if @pw > @char_max
        @pw_y = 32
        @pw = @char_max if @pw < 1
        @aw = @char_index
        @aw_y = 160
        @nw = @char_index + 1
        @nw = 1 if @nw > @char_max
        @nw = @char_max if @nw < 1
        @nw_y = 288
        case @window_status[i].index
            when @pw,@aw,@nw
                @window_status[i].visible = true
            else
                @window_status[i].visible = false
        end
      end 
  end
   
  #--------------------------------------------------------------------------
  # ● check_active_picture 
  #-------------------------------------------------------------------------- 
  def check_active_picture 
      for i in 1...$MOG_Actor_Hidden_Number 
        case @window_status[i].index
            when @pw,@aw,@nw
                @actor_picture[i].visible = true
                @actor_picture[@pw].z = 4
                @actor_picture[@aw].z = 6 
                @actor_picture[@nw].z = 4     
                @actor_picture[@pw].opacity = 120
                @actor_picture[@aw].opacity = 255
                @actor_picture[@nw].opacity = 120           
            else
                @actor_picture[i].visible = false
        end   
      end
  end     
 
  #--------------------------------------------------------------------------
  # ● terminate
  #--------------------------------------------------------------------------
  def execute_dispose
      RPG::BGM.fade(2500)
      Graphics.fadeout(60)
      Graphics.wait(40)
      RPG::BGM.stop     
      for i in 1...$MOG_Actor_Hidden_Number 
          @window_status[i].dispose
          @actor_picture[i].bitmap.dispose
          @actor_picture[i].dispose       
      end 
      @background.bitmap.dispose
      @background.dispose
      @layout_01.bitmap.dispose   
      @layout_01.dispose
      @layout_02.bitmap.dispose   
      @layout_02.dispose   
    end
   
  #--------------------------------------------------------------------------
  # ● update
  #--------------------------------------------------------------------------
  def update
      @background.ox += 1
      update_select
      update_slide_window
      update_slide_image
  end
 
  #--------------------------------------------------------------------------
  # ● update_slide_window
  #-------------------------------------------------------------------------- 
  def update_slide_window
      @window_status[@aw].x += 1 if @window_status[@aw].x < 0
      @window_status[@nw].x -= 2 if @window_status[@nw].x > -30
      @window_status[@pw].x -= 2 if @window_status[@pw].x > -30
      slide_window_y(@pw,@pw_y)
      slide_window_y(@aw,@aw_y)
      slide_window_y(@nw,@nw_y)
  end
 
  #--------------------------------------------------------------------------
  # ● update_slide_image 
  #-------------------------------------------------------------------------- 
  def update_slide_image 
      slide_picture_x(@pw,@pw_x,15)
      slide_picture_x(@aw,@aw_x,5)
      slide_picture_x(@nw,@nw_x,15)
  end
 
  #--------------------------------------------------------------------------
  # ● slide_picture_x
  #--------------------------------------------------------------------------   
  def slide_picture_x(i,x_pos,speed)
      if @actor_picture[i].x < x_pos
        @actor_picture[i].x += speed
        @actor_picture[i].x = x_pos if @actor_picture[i].x > x_pos
      end 
      if @actor_picture[i].x > x_pos
        @actor_picture[i].x -= speed
        @actor_picture[i].x = x_pos if @actor_picture[i].x < x_pos       
      end           
  end   
 
  #--------------------------------------------------------------------------
  # ● slide_window_y
  #--------------------------------------------------------------------------   
  def slide_window_y(i,y_pos)
      if @window_status[i].y < y_pos
        @window_status[i].y += 15
        @window_status[i].y = y_pos if @window_status[i].y > y_pos
      end 
      if @window_status[i].y > y_pos
        @window_status[i].y -= 15
        @window_status[i].y = y_pos if @window_status[i].y < y_pos       
      end           
  end 
 
  #--------------------------------------------------------------------------
  # ● reset_position
  #--------------------------------------------------------------------------   
  def reset_position(diretion)
      check_active_window
      check_active_picture
      case diretion
        when 0
            @window_status[@pw].y = -64
            @actor_picture[@pw].x = 100
        when 1 
            @window_status[@nw].y = 440
            @actor_picture[@nw].x = 400
      end       
  end 
 
  #--------------------------------------------------------------------------
  # ● update_select
  #--------------------------------------------------------------------------
  def update_select
      if Input.trigger?(Input::DOWN) or Input.trigger?(Input::LEFT)
          Sound.play_cursor
          @char_index += 1
          @char_index = 1 if @char_index > @char_max
          if @char_max < 3         
            reset_position(0)
          else 
            reset_position(1)
          end 
      elsif Input.trigger?(Input::UP) or Input.trigger?(Input::RIGHT)
          Sound.play_cursor
          @char_index -= 1
          @char_index = @char_max if @char_index < 1
          reset_position(0)
      elsif Input.trigger?(Input::C)   
          Sound.play_ok
          $game_party.add_actor(@char_index)
          SceneManager.return
      end
  end
end 

$mog_rgss3_scene_character_select = true

http://www.mediafire.com/download/al88z7vv9gzwl6w/Mog+Character+Select.exe
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Dim 17 Nov 2013 - 0:15
Party Manager et Player Manager sont installer.
J'ai remplacer le script que j'avais par celui que tu m'a donner, j'ai mis l'appel de script "call_player_select_scene"

et voilà le résultat :



Problématique :/
avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Dim 17 Nov 2013 - 0:18
Regarde la démo.

Le message d'erreur que tu as veut dire qu'il manque une ressource dans ton projet pour faire fonctionner celui-ci.

Pour bien faire télécharge la démo et supprime les script de ton projet et copie celui présent dans la démo, ensuite copie les ressources présente dans le dossier de la démo.
avatar
Rhydan
Membre

Nombre de messages : 249
Age : 23
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [Résolu]Appel de script

le Dim 17 Nov 2013 - 0:23
Je suis un abrutit des plus hardcorp !
C'est marquer noir sur blanc :
Graphics/System/Background !

><

Forcément maintenant ça marche.

Merci a tous    

avatar
Spytje
Administrateur

Nombre de messages : 5899
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [Résolu]Appel de script

le Dim 17 Nov 2013 - 0:28
De rien et bonne continuation !

PS : Oublie pas le petit résolu dans le titre de ton topic Smile
Contenu sponsorisé

Résolu Re: [Résolu]Appel de script

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum