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  
-28%
Le deal à ne pas rater :
-28% Machine à café avec broyeur à grain MELITTA Purista
229.99 € 318.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

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: