Partagez
Aller en bas
Douk
Douk
Membre

Nombre de messages : 296
Age : 25
Distinction : aucune
Date d'inscription : 23/04/2008
http://www.arcantia.info-a.googlepages.com/index.html

Système de points à chaque passage de niveau ! Empty Système de points à chaque passage de niveau !

le Dim 29 Juin 2008 - 15:48
Bonjour !


Auteur :
CACAO

A quoi ça sert ?
A chaque passage de niveau, le héros à des points de compétences à distribuer !

Screen :

Système de points à chaque passage de niveau ! Distpo10

Script :
Code:
#==============================================================================
# Simples Distribuição de Pontos
#------------------------------------------------------------------------------
# Criado por CACAO
# Versão 1.01
#==============================================================================
# :: Como utilizar
#
# Utilisation ou de commande événement "Appeller Script" pour appeller une fenêtre de
# Points de distribution. A l'intérieur de la boîte de texte qui apparaît fenêtre nd
# Command "Appeller Script", ou inserer code suivante:
#
#  $game_temp.next_scene = "spoint"
#
#==============================================================================

#===============================================================
#                           
#                www.rpgmakervx-fr.com                                           
#       
#===============================================================

class Game_Interpreter
  alias _cbs_execute_command execute_command
  def execute_command
    if @index >= @list.size-1
      command_end
      return true
    else
      return command_108_line if @list[@index].code == 108
    end
    _cbs_execute_command
  end
  def command_108_line
    for i in 0...6
      @params = @list[@index].parameters[0]
      command_108
      break if @list[@index + 1].code != 408
      @index += 1
    end
    return true
  end
  def command_108
  end
end


class Scene_Map < Scene_Base
  alias _cbs_update_scene_change update_scene_change
  def update_scene_change
    return if $game_player.moving?
    update_scene_change_cao
    _cbs_update_scene_change
  end
  def update_scene_change_cao
    return if $game_player.moving?
  end
end

module CAO; class Status
 
  #--------------------------------------------------------------------------
  # Configuração do Script
  #--------------------------------------------------------------------------
  # Número de pontos a ser ganho quando subir de nível
  #--------------------------------------------------------------------------
    STATUS_POINT = 5
  #--------------------------------------------------------------------------
  # Máximo de pontos a serem adicionados a um atributo
  #--------------------------------------------------------------------------
    MAX_SORT = 10
  #--------------------------------------------------------------------------
  # 1 ponto aumenta quantos pontos nos atributos?
  #--------------------------------------------------------------------------
    UP_HP  = 5    # HP
    UP_MP  = 5    # MP
    UP_ATK = 1    # Ataque
    UP_DEF = 1    # Defesa
    UP_SPI = 1    # Inteligência
    UP_AGI = 1    # Agilidade
  #--------------------------------------------------------------------------
  # Frase de pontos restantes
  #--------------------------------------------------------------------------
    INFOS_REMAINING_POINT = "Pontos restantes:"

end; end

class Game_Actor < Game_Battler
  attr_accessor :spoint
  alias _cao_setup_status setup
  def setup(actor_id)
    @spoint = 0
    _cao_setup_status(actor_id)
  end
  alias _cao_level_up_status level_up
  def level_up
    _cao_level_up_status
    $game_actors[self.id].spoint += CAO::Status::STATUS_POINT
  end
end


class Scene_Map < Scene_Base
  alias _update_scene_change_cao_spoint update_scene_change_cao
  def update_scene_change_cao
    _update_scene_change_cao_spoint
    if $game_temp.next_scene == "spoint"
      $game_temp.next_scene = nil
      $scene = Scene_ActorSelect_S.new
    end
  end
end


class Scene_Menu < Scene_Base
  def start_spoint(type = 0)
    @from_spoint = type
    start_actor_selection
  end
  alias _cao_update_actor_selection_spoint update_actor_selection
  def update_actor_selection
    if Input.trigger?(Input::C) && @from_spoint == 0
      @from_spoint = nil
      Sound.play_decision
      actor_id = $game_party.members[@status_window.index].id
      $scene = Scene_StatusPoint.new(actor_id, @command_window.index)
    end
    _cao_update_actor_selection_spoint
  end
end

class Window_ParaStatus < Window_Base
  def initialize(actor_id)
    super(132, 28, 280, 128)
    @actor = $game_actors[actor_id]
    refresh
  end
  def refresh
    draw_actor_name(@actor, 2, WLH * 0)
    draw_actor_class(@actor, 2, WLH * 1)
    draw_actor_hp(@actor, 2, WLH * 2)
    draw_actor_mp(@actor, 2, WLH * 3)
    for i in 0...4
      draw_actor_parameter(@actor, 132, WLH * i, i)
    end
  end
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = Vocab::atk
      parameter_value = actor.atk
    when 1
      parameter_name = Vocab::def
      parameter_value = actor.def
    when 2
      parameter_name = Vocab::spi
      parameter_value = actor.spi
    when 3
      parameter_name = Vocab::agi
      parameter_value = actor.agi
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 72, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 72, y, 40, WLH, parameter_value, 2)
  end
end

class Window_StatusPoint < Window_Selectable
  def initialize(actor_id)
    super(132, 156, 280, 176)
    @actor = $game_actors[actor_id]
    @spoint = @actor.spoint
    @psort = Array.new(6, 0)
    s = CAO::Status
    @s_rate = [s::UP_HP, s::UP_MP, s::UP_ATK, s::UP_DEF, s::UP_SPI, s::UP_AGI]
    @dumy_status = Array.new(6, 0)
    @item_max = 6
    @index = 0
    refresh
  end
  def refresh
    self.contents.clear
    s_name = [Vocab.hp, Vocab.mp, "ATA", "DEF", "INT", "AGI"]
    for i in 0...6
      self.contents.font.color = system_color
      self.contents.draw_text(0, WLH * i, 48, WLH, s_name[i], 1)
      gauge(WLH * i, @psort[i])
      total_point = @psort[i] * @s_rate[i]
      if total_point < 10
        total_point = "000" + total_point.to_s
      elsif total_point < 100
        total_point = "00" + total_point.to_s
      elsif total_point < 1000
        total_point = "0" + total_point.to_s
      end
      self.contents.font.color = normal_color
      self.contents.draw_text(184, WLH * i, 16, WLH, "+", 2)
      self.contents.draw_text(200, WLH * i, 48, WLH, total_point, 2)
    end
  end
  def gauge(y, point)
    color = Color.new(200, 200, 200)
    g1, g2 = Color.new(240, 120, 30), Color.new(230, 160, 50)
    for i in 0...point
      x = 120 / CAO::Status::MAX_SORT * i + 58
      w = 80 / CAO::Status::MAX_SORT
      self.contents.fill_rect(x + 2, y + 3, w, 18, color)
      self.contents.gradient_fill_rect(x + 3, y + 4, w - 2, 16, g1, g2)
    end
  end
  def update
    if cursor_movable?
      last_index = @index
      if Input.repeat?(Input::DOWN)
        cursor_down(Input.trigger?(Input::DOWN))
      end
      if Input.repeat?(Input::UP)
        cursor_up(Input.trigger?(Input::UP))
      end
      if Input.repeat?(Input::RIGHT)
        cursor_right
        refresh
      end
      if Input.repeat?(Input::LEFT)
        cursor_left
        refresh
      end
      if @index != last_index
        Sound.play_cursor
      end
    end
    update_cursor
    call_update_help
  end
  def cursor_right
    if @actor.spoint > 0 && @psort[@index] < CAO::Status::MAX_SORT
      status = [ @actor.maxhp, @actor.maxmp,
                  @actor.atk, @actor.def, @actor.spi, @actor.agi ]
      @psort[@index] == 0 ? ps = 1 : ps = @psort[@index]
      if @index < 2 && status[@index] + @s_rate[@index] * ps < 9999
        Sound.play_cursor
        @actor.spoint -= 1
        @psort[@index] += 1
      elsif status[@index] + @s_rate[@index] * ps < 999
        Sound.play_cursor
        @actor.spoint -= 1
        @psort[@index] += 1
      else
        Sound.play_buzzer
      end
    end
  end
  def cursor_left
    if @psort[@index] > 0
      Sound.play_cursor
      @actor.spoint += 1
      @psort[@index] -= 1
    end
  end
  def update_cursor
    if @index < 0
      self.cursor_rect.empty
    else
      row = @index / @column_max
      if row < top_row
        self.top_row = row
      end
      if row > bottom_row
        self.bottom_row = row
      end
      rect = item_rect(@index)
      rect.x = 50
      rect.width = 134
      rect.y -= self.oy
      self.cursor_rect = rect
    end
  end
  def cancel_sort
    @actor.spoint = @spoint
  end
  def decision_sort
    for i in 0...6
      case i
        when 0 ; @actor.maxhp += @s_rate[i] * @psort[i]
        when 1 ; @actor.maxmp += @s_rate[i] * @psort[i]
        when 2 ; @actor.atk  += @s_rate[i] * @psort[i]
        when 3 ; @actor.def  += @s_rate[i] * @psort[i]
        when 4 ; @actor.spi  += @s_rate[i] * @psort[i]
        when 5 ; @actor.agi  += @s_rate[i] * @psort[i]
      end
    end
  end
end

class Window_SpointInfos < Window_Base
  def initialize(actor_id)
    super(132, 332, 280, 56)
    @actor = $game_actors[actor_id]
    @spoint = @actor.spoint
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    text = CAO::Status::INFOS_REMAINING_POINT
    self.contents.draw_text(12, 0, 200, WLH, text)
    if @actor.spoint < 10
      spoint_s = "00" + @actor.spoint.to_s
    elsif @actor.spoint < 100
      spoint_s = "0" + @actor.spoint.to_s
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(200, 0, 36, WLH, spoint_s, 1)
  end
  def update
    if @spoint != @actor.spoint
      @spoint = @actor.spoint
      refresh
    end
  end
end

class Scene_StatusPoint < Scene_Base
  def initialize(actor_id, from = -1)
    @actor_id = actor_id
    @from = from
  end
  def start
    super
    create_menu_background
    @pstatus_window = Window_ParaStatus.new(@actor_id)
    @spoint_window = Window_StatusPoint.new(@actor_id)
    @sinfos_window = Window_SpointInfos.new(@actor_id)
  end
  def terminate
    super
    dispose_menu_background
    @pstatus_window.dispose
    @spoint_window.dispose
    @sinfos_window.dispose
  end
  def return_scene
    @from == -1 ? $scene = Scene_Map.new : $scene = Scene_Menu.new(@from)
  end
  def update
    super
    update_menu_background
    @pstatus_window.update
    @spoint_window.update
    @sinfos_window.update
    if Input.trigger?(Input::C)
      Sound.play_decision
      @spoint_window.decision_sort
      return_scene
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @spoint_window.cancel_sort
      return_scene
    end
  end
end

class Scene_ActorSelect_S < Scene_Base
  def start
    super
    create_menu_background
    create_command_window
  end
  def post_start
    super
    open_command_window
  end
  def pre_terminate
    super
    close_command_window
  end
  def terminate
    super
    dispose_command_window
    dispose_menu_background
  end
  def update
    super
    update_menu_background
    @command_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      actor_id = $game_party.members[@command_window.index].id
      $scene = Scene_StatusPoint.new(actor_id)
    end
  end
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 128)
  end
  def create_command_window
    para = []
    for i in 0...$game_party.members.size
      para[i] = $game_party.members[i].name
    end
    @command_window = Window_Command.new(172, para)
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    @command_window.openness = 0
  end
  def dispose_command_window
    @command_window.dispose
  end
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
end
Informations sup' :

Je croit qu'il faut appeller un script avec la commande "appeller un script" et mettre $game_temp.next_scene = "spoint"

Enjoy ! Système de points à chaque passage de niveau ! 697634
yakzawik
yakzawik
Staffeux retraité

Nombre de messages : 1845
Age : 28
Localisation : Dans un trou perdu avec ma copine !
Distinction : Yakzawiki, l'encyclopédie libre !
[Elisa']
Force Zinzoline au fond de son coeur
Il est TROPDARKMECHAN
[Coco' Système de points à chaque passage de niveau ! 522164]
Date d'inscription : 31/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Dim 29 Juin 2008 - 15:53
Et après comment ça marche ?? Il faut mettre un truc du style "si le héros à tant de points" alors "il apprend" tel ou tel truc ?
Douk
Douk
Membre

Nombre de messages : 296
Age : 25
Distinction : aucune
Date d'inscription : 23/04/2008
http://www.arcantia.info-a.googlepages.com/index.html

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Dim 29 Juin 2008 - 15:57
Non c'est juste pour le caractéristiques, pas pour les sorts.

Exemple :
Mon personnage passe de niveau, je peut lui mettre 3 points dans les points de vies, 2 dans l'agilité, etc ...
Tom1695
Tom1695
Membre

Nombre de messages : 57
Age : 24
Localisation : Tarn
Distinction : aucune
Date d'inscription : 07/04/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Lun 30 Juin 2008 - 10:54
@Douk a écrit:Je croit qu'il faut appeller un script avec la commande "appeller un script" et mettre [b] $game_temp.next_scene = "spoint"
Désolé de te contredire mais ce n'est pas ça, c'est $game_temp.next_scene = "spoint"
Douk
Douk
Membre

Nombre de messages : 296
Age : 25
Distinction : aucune
Date d'inscription : 23/04/2008
http://www.arcantia.info-a.googlepages.com/index.html

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Lun 30 Juin 2008 - 11:09
@Tom1695 a écrit:
@Douk a écrit:Je croit qu'il faut appeller un script avec la commande "appeller un script" et mettre [b] $game_temp.next_scene = "spoint"
Désolé de te contredire mais ce n'est pas ça, c'est $game_temp.next_scene = "spoint"

C'est pour te moquer de moi que t'as écrit ça ?

J'écrit :
$game_temp.next_scene = "spoint"

Tu écris :
$game_temp.next_scene = "spoint"

Différence ??
Tom1695
Tom1695
Membre

Nombre de messages : 57
Age : 24
Localisation : Tarn
Distinction : aucune
Date d'inscription : 07/04/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Lun 30 Juin 2008 - 11:32
Embarassed Désolé, je ne vois pas très les écriture à cause de l'ecran de mon ordinateur Système de points à chaque passage de niveau ! 728442 qui beuge. Embarassed
Douk
Douk
Membre

Nombre de messages : 296
Age : 25
Distinction : aucune
Date d'inscription : 23/04/2008
http://www.arcantia.info-a.googlepages.com/index.html

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Lun 30 Juin 2008 - 11:35
Ok c'est pas grave alors ^^
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 12:02
Hello ! Very Happy
Est-ce que cela serait possible de pouvoir donner les points à partir du menu ?
Si oui, comment S.V.P ?
Système de points à chaque passage de niveau ! 614393
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 12:06
Si tu bidouilles le script Scene_Menu et que tu rajoutes une sélection parmi celles déjà présentes (Items, équipement etc) et que tu la nommes Points par exemple, mets comme instruction à cette sélection la ligne de script que Douk a donnée et je pense que ça devrait fonctionner. A savoir, $game_temp.next_scene = "spoint".

Edit :
Nan, j'arrive à placer l'option dans le menu, l'activer et afficher la sélection du perso que tu veux booster, mais je n'arrive pas à le valider. Là je demande l'aide d'un vrai scripteur '^^
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 12:22
Ne te fatigues pas !
J'ai trouvé une solution !
Système de points à chaque passage de niveau ! 545134
Il suffit de faire des orbes ( exemple) dans les villes, villages ect...
Qui appelleront ce script !
Le joueur sera donc obligé pour devenir plus fort de retourner en ville !
Système de points à chaque passage de niveau ! 409336

Je pose souvent des questions pour trouver une solution après.....
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 12:31
Ouais mais c'est pas vraiment à partir d'un menu ça... enfin fais comme tu le sens, j'me suis bien marré à bidouiller du script tiens faudra que j'fasse ça plus souvent xD
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 12:53
On pourrait pas par contre faire en sorte que le texte soit en français ??

Pontos restos ===> Points restants
ça serait possible ? Système de points à chaque passage de niveau ! 919540
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 13:09
Je m'occupe de ça Wink

Spoiler:
#==============================================================================
# Simples Distribuição de Pontos
#------------------------------------------------------------------------------
# Criado por CACAO
# Versão 1.01
#==============================================================================
# :: Como utilizar
#
# Utilisation ou de commande événement "Appeller Script" pour appeller une fenêtre de
# Points de distribution. A l'intérieur de la boîte de texte qui apparaît fenêtre nd
# Command "Appeller Script", ou inserer code suivante:
#
# $game_temp.next_scene = "spoint"
#
#==============================================================================

class Game_Interpreter
alias _cbs_execute_command execute_command
def execute_command
if @index >= @list.size-1
command_end
return true
else
return command_108_line if @list[@index].code == 108
end
_cbs_execute_command
end
def command_108_line
for i in 0...6
@params = @list[@index].parameters[0]
command_108
break if @list[@index + 1].code != 408
@index += 1
end
return true
end
def command_108
end
end


class Scene_Map < Scene_Base
alias _cbs_update_scene_change update_scene_change
def update_scene_change
return if $game_player.moving?
update_scene_change_cao
_cbs_update_scene_change
end
def update_scene_change_cao
return if $game_player.moving?
end
end

module CAO; class Status

#--------------------------------------------------------------------------
# Configuração do Script
#--------------------------------------------------------------------------
# Número de pontos a ser ganho quando subir de nível
#--------------------------------------------------------------------------
STATUS_POINT = 5
#--------------------------------------------------------------------------
# Máximo de pontos a serem adicionados a um atributo
#--------------------------------------------------------------------------
MAX_SORT = 10
#--------------------------------------------------------------------------
# 1 ponto aumenta quantos pontos nos atributos?
#--------------------------------------------------------------------------
UP_HP = 5 # HP
UP_MP = 5 # MP
UP_ATK = 1 # Ataque
UP_DEF = 1 # Defesa
UP_SPI = 1 # Inteligência
UP_AGI = 1 # Agilidade
#--------------------------------------------------------------------------
# Frase de pontos restantes
#--------------------------------------------------------------------------
INFOS_REMAINING_POINT = "Points restants :"

end; end

class Game_Actor < Game_Battler
attr_accessor :spoint
alias _cao_setup_status setup
def setup(actor_id)
@spoint = 0
_cao_setup_status(actor_id)
end
alias _cao_level_up_status level_up
def level_up
_cao_level_up_status
$game_actors[self.id].spoint += CAO::Status::STATUS_POINT
end
end


class Scene_Map < Scene_Base
alias _update_scene_change_cao_spoint update_scene_change_cao
def update_scene_change_cao
_update_scene_change_cao_spoint
if $game_temp.next_scene == "Points"
$game_temp.next_scene = nil
$scene = Scene_ActorSelect_S.new
end
end
end


class Scene_Menu < Scene_Base
def start_spoint(type = 0)
@from_spoint = type
start_actor_selection
end
alias _cao_update_actor_selection_spoint update_actor_selection
def update_actor_selection
if Input.trigger?(Input::C) && @from_spoint == 0
@from_spoint = nil
Sound.play_decision
actor_id = $game_party.members[@status_window.index].id
$scene = Scene_StatusPoint.new(actor_id, @command_window.index)
end
_cao_update_actor_selection_spoint
end
end

class Window_ParaStatus < Window_Base
def initialize(actor_id)
super(132, 28, 280, 128)
@actor = $game_actors[actor_id]
refresh
end
def refresh
draw_actor_name(@actor, 2, WLH * 0)
draw_actor_class(@actor, 2, WLH * 1)
draw_actor_hp(@actor, 2, WLH * 2)
draw_actor_mp(@actor, 2, WLH * 3)
for i in 0...4
draw_actor_parameter(@actor, 132, WLH * i, i)
end
end
def draw_actor_parameter(actor, x, y, type)
case type
when 0
parameter_name = Vocab::atk
parameter_value = actor.atk
when 1
parameter_name = Vocab::def
parameter_value = actor.def
when 2
parameter_name = Vocab::spi
parameter_value = actor.spi
when 3
parameter_name = Vocab::agi
parameter_value = actor.agi
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 72, WLH, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 72, y, 40, WLH, parameter_value, 2)
end
end

class Window_StatusPoint < Window_Selectable
def initialize(actor_id)
super(132, 156, 280, 176)
@actor = $game_actors[actor_id]
@spoint = @actor.spoint
@psort = Array.new(6, 0)
s = CAO::Status
@s_rate = [s::UP_HP, s::UP_MP, s::UP_ATK, s::UP_DEF, s::UP_SPI, s::UP_AGI]
@dumy_status = Array.new(6, 0)
@item_max = 6
@index = 0
refresh
end
def refresh
self.contents.clear
s_name = [Vocab.hp, Vocab.mp, "ATK", "DEF", "INT", "AGI"]
for i in 0...6
self.contents.font.color = system_color
self.contents.draw_text(0, WLH * i, 48, WLH, s_name[i], 1)
gauge(WLH * i, @psort[i])
total_point = @psort[i] * @s_rate[i]
if total_point < 10
total_point = "000" + total_point.to_s
elsif total_point < 100
total_point = "00" + total_point.to_s
elsif total_point < 1000
total_point = "0" + total_point.to_s
end
self.contents.font.color = normal_color
self.contents.draw_text(184, WLH * i, 16, WLH, "+", 2)
self.contents.draw_text(200, WLH * i, 48, WLH, total_point, 2)
end
end
def gauge(y, point)
color = Color.new(200, 200, 200)
g1, g2 = Color.new(240, 120, 30), Color.new(230, 160, 50)
for i in 0...point
x = 120 / CAO::Status::MAX_SORT * i + 58
w = 80 / CAO::Status::MAX_SORT
self.contents.fill_rect(x + 2, y + 3, w, 18, color)
self.contents.gradient_fill_rect(x + 3, y + 4, w - 2, 16, g1, g2)
end
end
def update
if cursor_movable?
last_index = @index
if Input.repeat?(Input::DOWN)
cursor_down(Input.trigger?(Input::DOWN))
end
if Input.repeat?(Input::UP)
cursor_up(Input.trigger?(Input::UP))
end
if Input.repeat?(Input::RIGHT)
cursor_right
refresh
end
if Input.repeat?(Input::LEFT)
cursor_left
refresh
end
if @index != last_index
Sound.play_cursor
end
end
update_cursor
call_update_help
end
def cursor_right
if @actor.spoint > 0 && @psort[@index] < CAO::Status::MAX_SORT
status = [ @actor.maxhp, @actor.maxmp,
@actor.atk, @actor.def, @actor.spi, @actor.agi ]
@psort[@index] == 0 ? ps = 1 : ps = @psort[@index]
if @index < 2 && status[@index] + @s_rate[@index] * ps < 9999
Sound.play_cursor
@actor.spoint -= 1
@psort[@index] += 1
elsif status[@index] + @s_rate[@index] * ps < 999
Sound.play_cursor
@actor.spoint -= 1
@psort[@index] += 1
else
Sound.play_buzzer
end
end
end
def cursor_left
if @psort[@index] > 0
Sound.play_cursor
@actor.spoint += 1
@psort[@index] -= 1
end
end
def update_cursor
if @index < 0
self.cursor_rect.empty
else
row = @index / @column_max
if row < top_row
self.top_row = row
end
if row > bottom_row
self.bottom_row = row
end
rect = item_rect(@index)
rect.x = 50
rect.width = 134
rect.y -= self.oy
self.cursor_rect = rect
end
end
def cancel_sort
@actor.spoint = @spoint
end
def decision_sort
for i in 0...6
case i
when 0 ; @actor.maxhp += @s_rate[i] * @psort[i]
when 1 ; @actor.maxmp += @s_rate[i] * @psort[i]
when 2 ; @actor.atk += @s_rate[i] * @psort[i]
when 3 ; @actor.def += @s_rate[i] * @psort[i]
when 4 ; @actor.spi += @s_rate[i] * @psort[i]
when 5 ; @actor.agi += @s_rate[i] * @psort[i]
end
end
end
end

class Window_SpointInfos < Window_Base
def initialize(actor_id)
super(132, 332, 280, 56)
@actor = $game_actors[actor_id]
@spoint = @actor.spoint
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
text = CAO::Status::INFOS_REMAINING_POINT
self.contents.draw_text(12, 0, 200, WLH, text)
if @actor.spoint < 10
spoint_s = "00" + @actor.spoint.to_s
elsif @actor.spoint < 100
spoint_s = "0" + @actor.spoint.to_s
end
self.contents.font.color = normal_color
self.contents.draw_text(200, 0, 36, WLH, spoint_s, 1)
end
def update
if @spoint != @actor.spoint
@spoint = @actor.spoint
refresh
end
end
end

class Scene_StatusPoint < Scene_Base
def initialize(actor_id, from = -1)
@actor_id = actor_id
@from = from
end
def start
super
create_menu_background
@pstatus_window = Window_ParaStatus.new(@actor_id)
@spoint_window = Window_StatusPoint.new(@actor_id)
@sinfos_window = Window_SpointInfos.new(@actor_id)
end
def terminate
super
dispose_menu_background
@pstatus_window.dispose
@spoint_window.dispose
@sinfos_window.dispose
end
def return_scene
@from == -1 ? $scene = Scene_Map.new : $scene = Scene_Menu.new(@from)
end
def update
super
update_menu_background
@pstatus_window.update
@spoint_window.update
@sinfos_window.update
if Input.trigger?(Input::C)
Sound.play_decision
@spoint_window.decision_sort
return_scene
end
if Input.trigger?(Input::B)
Sound.play_cancel
@spoint_window.cancel_sort
return_scene
end
end
end

class Scene_ActorSelect_S < Scene_Base
def start
super
create_menu_background
create_command_window
end
def post_start
super
open_command_window
end
def pre_terminate
super
close_command_window
end
def terminate
super
dispose_command_window
dispose_menu_background
end
def update
super
update_menu_background
@command_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
actor_id = $game_party.members[@command_window.index].id
$scene = Scene_StatusPoint.new(actor_id)
end
end
def update_menu_background
super
@menuback_sprite.tone.set(0, 0, 0, 128)
end
def create_command_window
para = []
for i in 0...$game_party.members.size
para[i] = $game_party.members[i].name
end
@command_window = Window_Command.new(172, para)
@command_window.x = (544 - @command_window.width) / 2
@command_window.y = (416 - @command_window.height) / 2
@command_window.openness = 0
end
def dispose_command_window
@command_window.dispose
end
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
end

Voilà =)


Dernière édition par Gamemaker le Mar 15 Juil 2008 - 13:19, édité 1 fois
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 13:15
Merci, t'assures !
Système de points à chaque passage de niveau ! 724130
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 15:53
J'arrive pas à appeler le script maintenant...

EDIT : HELP s'il vous plaît ! Système de points à chaque passage de niveau ! 354280
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 17:07
Arf c'est vrai j'ai oublié de préciser, j'ai aussi changé cette ligne (mais qui ne servait à rien finalement).

Voici comment appeler le script :

Dans ton event, tu cliques sur "Appeler un script", ensuite tu y mets ça : $game_temp.next_scene == "Points"
Et voilà ^^
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 17:11
Toujours rien... Suspect
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 17:26
Rassure-moi t'as quand même pas oublié de faire monter tes persos de niveau avant d'appeller le tableau...??
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 15 Juil 2008 - 17:28
ça marche quand même pas..

EDIT : Personne n'a de solutions ...?
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Jeu 17 Juil 2008 - 22:55
Sincèrement désolé pour le double-post, mais j'ai (encore et toujours) besoin d'aide...
Le script ne fonctionne pas si le personnage n'a pas de points...
Mais coment faire pour qu'il ne puisse activer le script QUE s'il a des points ??
Système de points à chaque passage de niveau ! 264173
Gummy
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 28
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Jeu 17 Juil 2008 - 22:56
Le script ne fonctionne pas si le personnage n'a pas de points...
Mais coment faire pour qu'il ne puisse activer le script QUE s'il a des points ??

Heu... tu te contredis toi même, là Suspect
Zodiak
Zodiak
Membre

Nombre de messages : 209
Age : 24
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Jeu 17 Juil 2008 - 22:59
Je voulais dire, pour qu'il puisse..
lol!
Hamaar
Hamaar
Membre

Nombre de messages : 183
Age : 25
Localisation : Les fesses calées dans mon fauteuil
Distinction : aucune
Date d'inscription : 25/02/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Lun 28 Juil 2008 - 3:48
Je souhaiterais savoir s'il est possible de faire un truc du genre :
je réussis une quête et en plus de l'expérience je reçois des points d'upgrade ?

Y aurait-il un appel de script permettant de faire une distribution de points à travers un event tel un PNJ ?
Higinia
Higinia
Membre

Nombre de messages : 191
Age : 26
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Sam 9 Aoû 2008 - 15:30
Tu fais la meme methode que pour un orbe.
Sauf que tu met le charas d'un PNJ... enfin je pense.

Moi j'ai un probleme avec ce script. Au moment de distribuer les points ca me marque un message d'erreur avec un + point qui ne serait pas bon
avatar
Adrezo
Membre

Nombre de messages : 233
Age : 31
Distinction : aucune
Date d'inscription : 29/01/2008

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

le Mar 9 Sep 2008 - 16:23
Pour mettre un lien dans le menu, regardez le tuto fais pour modifier le menu et mettez comme commande :
$scene = Scene_ActorSelect_S.new

Et ca fonctionne niquel Smile
Contenu sponsorisé

Système de points à chaque passage de niveau ! Empty Re: Système de points à chaque passage de niveau !

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