Page 1 sur 2 • 1, 2
Système de points à chaque passage de niveau !
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 :
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"
#
#==============================================================================
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
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
Je croit qu'il faut appeller un script avec la commande "appeller un script" et mettre $game_temp.next_scene = "spoint"
Enjoy !
- yakzawikStaffeux retraité
- Nombre de messages : 1845
Age : 33
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' ]
Date d'inscription : 31/05/2008
Re: Système de points à chaque passage de niveau !
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 ?
Re: Système de points à chaque passage de niveau !
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 ...
Exemple :
Mon personnage passe de niveau, je peut lui mettre 3 points dans les points de vies, 2 dans l'agilité, etc ...
- Tom1695Membre
- Nombre de messages : 57
Age : 29
Localisation : Tarn
Distinction : aucune
Date d'inscription : 07/04/2008
Re: Système de points à chaque passage de niveau !
Lun 30 Juin 2008 - 10:54
Désolé de te contredire mais ce n'est pas ça, c'est $game_temp.next_scene = "spoint"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"
Re: Système de points à chaque passage de niveau !
Lun 30 Juin 2008 - 11:09
Tom1695 a écrit:Désolé de te contredire mais ce n'est pas ça, c'est $game_temp.next_scene = "spoint"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"
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 ??
- Tom1695Membre
- Nombre de messages : 57
Age : 29
Localisation : Tarn
Distinction : aucune
Date d'inscription : 07/04/2008
Re: Système de points à chaque passage de niveau !
Lun 30 Juin 2008 - 11:32
Désolé, je ne vois pas très les écriture à cause de l'ecran de mon ordinateur qui beuge.
Re: Système de points à chaque passage de niveau !
Lun 30 Juin 2008 - 11:35
Ok c'est pas grave alors ^^
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 12:02
Hello !
Est-ce que cela serait possible de pouvoir donner les points à partir du menu ?
Si oui, comment S.V.P ?
Est-ce que cela serait possible de pouvoir donner les points à partir du menu ?
Si oui, comment S.V.P ?
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
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 '^^
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 '^^
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 12:22
Ne te fatigues pas !
J'ai trouvé une solution !
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 !
Je pose souvent des questions pour trouver une solution après.....
J'ai trouvé une solution !
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 !
Je pose souvent des questions pour trouver une solution après.....
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
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
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
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 ?
Pontos restos ===> Points restants
ça serait possible ?
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 13:09
Je m'occupe de ça
Voilà =)
- 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à =)
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 13:15
Merci, t'assures !
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 15:53
J'arrive pas à appeler le script maintenant...
EDIT : HELP s'il vous plaît !
EDIT : HELP s'il vous plaît !
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
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à ^^
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à ^^
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 17:11
Toujours rien...
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
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...??
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Mar 15 Juil 2008 - 17:28
ça marche quand même pas..
EDIT : Personne n'a de solutions ...?
EDIT : Personne n'a de solutions ...?
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
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 ??
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 ??
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Système de points à chaque passage de niveau !
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à
- ZodiakMembre
- Nombre de messages : 209
Age : 29
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
Re: Système de points à chaque passage de niveau !
Jeu 17 Juil 2008 - 22:59
Je voulais dire, pour qu'il puisse..
- HamaarMembre
- Nombre de messages : 183
Age : 30
Localisation : Les fesses calées dans mon fauteuil
Distinction : aucune
Date d'inscription : 25/02/2008
Re: Système de points à chaque passage de niveau !
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 ?
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 ?
- HiginiaMembre
- Nombre de messages : 191
Age : 31
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008
Re: Système de points à chaque passage de niveau !
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
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
- AdrezoMembre
- Nombre de messages : 233
Age : 36
Distinction : aucune
Date d'inscription : 29/01/2008
Re: Système de points à chaque passage de niveau !
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
$scene = Scene_ActorSelect_S.new
Et ca fonctionne niquel
Page 1 sur 2 • 1, 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum