La guilde des makers de KalHidia
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
La guilde des makers de KalHidia

Site pour tous les programmeurs, musiciens, dessinnateur qui voudraient se perfectionner dans ces arts!
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
SAMSUNG Galaxy A14 5G Noir 64 Go à 98,49€
96.99 €
Voir le deal

 

 Ajouter des points à ses personnages

Aller en bas 
AuteurMessage
Drogo-Hardbottle
Admin
Drogo-Hardbottle


Nombre de messages : 113
Date d'inscription : 09/08/2006


Catégorie Principale: Programmeur
Grade de la catégorie principale: Divinité
Niveau de la catégorie principale:
Ajouter des points à ses personnages Left_bar_bleue200/200Ajouter des points à ses personnages Empty_bar_bleue  (200/200)

Ajouter des points à ses personnages Empty
MessageSujet: Ajouter des points à ses personnages   Ajouter des points à ses personnages EmptyLun 21 Aoû - 5:09

Qui est l' auteur de ce script? ???
A quoi sert ce script? Permet d' ajouter des points à ses personnages lorsqu' ils gagnent des niveaux.
Marche t'il? ??%
Comment installer ce script? Copiez ce script, ouvrez l'éditeur de scripts RmXp ( en appuyant sur la touche "F11" ) et créez un nouveau script au dessus de 'Main'.
Nommez ce script comme vous le voudrez du moment
qu' il est compréhensible et collez le code.


Code:

#=======================================================================
# ■ Distribution de point de caractéristiques
# ■ Scene_caracplus v1.0 par Krazplay
#=======================================================================
# Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr
# Nécessite : le scrîpt Window_caracplus
# Description :
# Permet de donner des points à distribuer à n'importe quel personnage de l'équipe entre ses
# 4 caractéristiques principales (force, agilité, dextérité et intelligence).
# Utilisation :
# A l'aide de la ligne de scrîpt suivante dans n'importe quel scrîpt ou évènement :
# $scene = Scene_caracplus.new(acteurs, points à distribuer)
# Attention, ces deux variables doivent être des arrays (tableaux).
# MAUVAIS exemples : acteurs = $game_party.actors[0] points = 10
# BONS exemples : acteurs = [$game_party.actors[0]] points = [10]
# Ainsi pour donner 8 point au premier héro de l'équipe et 5 points au troisième, la bonne commande sera :
# $scene = Scene_caracplus.new([$game_party.actors[0], $game_party.actors[2]], [8,5])
# Pour donner 10 points à toute l'équipe on écrirait :
# $scene = Scene_caracplus.new($game_party.actors, [10,10,10,10])
# Oui $game_party.actors est déjà un tableau donc il n'a pas besoin de crochets supplémentaires
# Eviter de distribuer 0 ou nil point, enlever plutôt l'acteur de la variable.
#=======================================================================
class Scene_caracplus

def initialize(actors, pointgagnés, n=0)
@n = n
@actors = actors
@pg = pointgagnés
@pointgagnés = pointgagnés[n]
@actor = actors[n]
@confirmation = false
end

def main
@caracplus_window = Window_Caracplus.new(@actor,@pointgagnés)
Graphics.transition
loop do
Graphics.update
Input.update
update_command
if $scene != self
@caracplus_window.dispose
Graphics.update
if @actors.size > @n+1 and @pg[@n+1] != nil
$scene = Scene_caracplus.new(@actors, @pg, @n+1)
else if @actors.size > @n+2 and @pg[@n+2] != nil
$scene = Scene_caracplus.new(@actors, @pg, @n+2)
else if @actors.size > @n+3 and @pg[@n+3] != nil
$scene = Scene_caracplus.new(@actors, @pg, @n+3)
end
end
end
break
end
end
end #main

def update_command
if Input.trigger?(Input::DOWN) and @confirmation != true
@caracplus_window.ligneplusun
@caracplus_window.refresh
end
if Input.trigger?(Input::UP) and @confirmation != true
@caracplus_window.lignemoinsun
@caracplus_window.refresh
end
if Input.trigger?(Input::LEFT) and @confirmation != true
@caracplus_window.pointmoinsun
@caracplus_window.refresh
end
if Input.trigger?(Input::RIGHT) and @confirmation != true
@caracplus_window.pointplusun
@caracplus_window.refresh
end
if Input.trigger?(Input::B) and @confirmation != true #Cancel
@caracplus_window.pointazero
@caracplus_window.refresh
end
if Input.trigger?(Input::B) and @confirmation == true #Cancel
@confirmation = false
@confirmer_window.dispose
end
if Input.trigger?(Input::C) #Confirmer
if @confirmation == true
@confirmation = false
@confirmer_window.dispose
@caracplus_window.terminer
$scene = Scene_Map.new
else
if @caracplus_window.toutestbon? == true and @confirmation != true
@confirmer_window = Window_confirmer.new(450,20)
@confirmation = true
end
end
end
if Input.trigger?(Input::X) #Touche A
for i in 0..14
@caracplus_window.pointmoinsun
end
@caracplus_window.refresh
end
if Input.trigger?(Input::A) #Touche Z
for i in 0..14
@caracplus_window.pointplusun
end
@caracplus_window.refresh
end
end

end


#=======================================================================
# ■ Distribution de point de caractéristiques
# ■ Window_caracplus v1.0 par Krazplay
#=======================================================================
# Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr
# Nécessite : le scrîpt Scene_caracplus
# Description et Utilisation décris dans le scrîpt Scene_caraplus
#=======================================================================
class Window_Caracplus < Window_Base

def initialize(actor,pointgagnés)
super(5, 5, 630, 470)
@ligne = 0
@actor = actor
@statplus = [0,0,0,0]
@pointgagnés = pointgagnés
@pointarépartir = pointgagnés
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.contents.font.size = 24
self.contents.clear
deséquipement
@str = actor.str
@dex = actor.dex
@agi = actor.agi
@int = actor.int
@carac = [@str, @dex, @agi, @int]
refresh
end


def refresh
self.contents.clear
self.cursor_rect.set(190, (240 + 30*@ligne), 175, 30)
actor = @actor
self.contents.font.name = "Arial"
self.contents.font.color = normal_color
self.draw_actor_battler(actor, 90, 270)
self.draw_actor_graphic(actor, 80, 140)
self.contents.font.size = 26
longueur = contents.text_size(actor.name).width
self.draw_actor_name(actor, self.width/2-longueur/2, 10)
self.contents.font.size = 24
self.contents.draw_text(0, 50, self.width, 32, actor.class_name.to_s+" Lv "+actor.level.to_s, 1)
self.draw_actor_exp(actor, 200, 7Cool
self.draw_actor_hp(actor, 200, 101, width = 144)
self.draw_actor_sp(actor, 200, 124, width = 144)
équiper
self.draw_actor_parameter(actor, 200, 150, 0)
self.draw_actor_parameter(actor, 200, 175, 1)
self.draw_actor_parameter(actor, 200, 200, 2)
deséquipement
self.contents.font.color = system_color
self.contents.draw_text(200, 240, 120, 32, $data_system.words.str)
self.contents.draw_text(200, 270, 120, 32, $data_system.words.dex)
self.contents.draw_text(200, 300, 120, 32, $data_system.words.agi)
self.contents.draw_text(200, 330, 120, 32, $data_system.words.int)
self.contents.font.color = normal_color
self.contents.draw_text(320, 240, 36, 32, @str.to_s, 2)
self.contents.draw_text(320, 270, 36, 32, @dex.to_s, 2)
self.contents.draw_text(320, 300, 36, 32, @agi.to_s, 2)
self.contents.draw_text(320, 330, 36, 32, @int.to_s, 2)
for i in 0..3
self.contents.font.color = Color.new(255, 155, 155, 255)
self.contents.draw_text(370, 240+30*i, 36, 32, "+")
self.contents.draw_text(390, 240+30*i, 36, 32, @statplus[i].to_s, 2)
self.contents.font.color = Color.new(155, 255, 155, 255)
self.contents.draw_text(450, 240+30*i, 36, 32, "=")
stat = @carac[i] + @statplus[i]
self.contents.draw_text(490, 240+30*i, 36, 32, stat.to_s, 2)
end
self.contents.font.color = normal_color
self.contents.draw_text(50, 380, 320, 32, "Nombre de points à répartir :")
self.contents.draw_text(330, 380, 36, 32, @pointarépartir.to_s, 2)
self.contents.draw_text(430, 150, 108, 32, "[A/Z = (-15)/(+15)]")
self.contents.draw_text(430, 175, 72, 32, "[X = Reset]")
end

def ligneplusun
if @ligne<3
@ligne += 1
end
end

def lignemoinsun
if @ligne>0
@ligne -= 1
end
end

def pointmoinsun
i = @ligne
if @statplus[i]-1 > -1
@statplus[i] -= 1
@pointarépartir += 1
end
end

def pointplusun
i = @ligne
if @pointarépartir > 0 and @statplus[i]+@carac[i]+1 < 1000
@statplus[i] += 1
@pointarépartir -= 1
end
end

def pointazero
@statplus = [0,0,0,0]
@pointarépartir = @pointgagnés
end

def toutestbon?
if @pointarépartir == 0
return true
else
return false
end
end

def terminer
$game_actors[@actor.id].str += @statplus[0]
$game_actors[@actor.id].dex += @statplus[1]
$game_actors[@actor.id].agi += @statplus[2]
$game_actors[@actor.id].int += @statplus[3]
@actor.equip(0, @weapon_id)
@actor.equip(1, @armor1_id)
@actor.equip(2, @armor2_id)
@actor.equip(3, @armor3_id)
@actor.equip(4, @armor4_id)
end

def équiper
@actor.equip(0, @weapon_id)
@actor.equip(1, @armor1_id)
@actor.equip(2, @armor2_id)
@actor.equip(3, @armor3_id)
@actor.equip(4, @armor4_id)
end

def deséquipement
@weapon_id = @actor.weapon_id
@armor1_id = @actor.armor1_id
@armor2_id = @actor.armor2_id
@armor3_id = @actor.armor3_id
@armor4_id = @actor.armor4_id
@actor.equip(0, 0)
@actor.equip(1, 0)
@actor.equip(2, 0)
@actor.equip(3, 0)
@actor.equip(4, 0)
end

def draw_actor_battler(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch / 2, bitmap, src_rect)
end
end


class Window_confirmer < Window_Base
def initialize(x,y)
super(x, y, 150, 64)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.contents.font.size = 24
self.contents.draw_text(0, 0, 120, 32, "Confirmer ?")
end
end
Revenir en haut Aller en bas
https://lgdmm.forumactif.com
 
Ajouter des points à ses personnages
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ajouter une barre d'attente comme FFVII

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
La guilde des makers de KalHidia :: Ressources :: Ressources graphique 640x480 ( RmXp ) :: Scripts en ruby :: Scripts en ruby(divers)-
Sauter vers: