- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
[résolu] script popup bulle de gain d'exp aprés une quête
Ven 24 Juin 2011 - 19:11
bonjour
est-ce que quelqu'un pourrait me créer un script simple d'utilisation si possible qui afficherais dans un popup le gain d'exp lorsque l'on rend une quête
il faudrais quel ne soit pas trop grosse et qu'elle n'apparaisse que quelque seconde avant de s'effacer
merci d'avance a celui qui repondra a ma requete
est-ce que quelqu'un pourrait me créer un script simple d'utilisation si possible qui afficherais dans un popup le gain d'exp lorsque l'on rend une quête
il faudrais quel ne soit pas trop grosse et qu'elle n'apparaisse que quelque seconde avant de s'effacer
merci d'avance a celui qui repondra a ma requete
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Ven 24 Juin 2011 - 19:31
Ah , ça , j'ai !!!
En fait , c'est un script de woratana que j'ai modifié .
Dans ton evenement , utilise "appeler script"
puis met :
$scene.expwin(gain en XP, id du perso (0 pour tous), true/false : message gain niveau ,true/false : ajouter l'xp tout de suite , frames avant de s'effacer)
Accessoirement , ce script gére aussi les gains d'objet et d'or .
Attention : j'ai eu des problemes de compatibilité avec d'autres scripts . A tester !
En fait , c'est un script de woratana que j'ai modifié .
Dans ton evenement , utilise "appeler script"
puis met :
$scene.expwin(gain en XP, id du perso (0 pour tous), true/false : message gain niveau ,true/false : ajouter l'xp tout de suite , frames avant de s'effacer)
Accessoirement , ce script gére aussi les gains d'objet et d'or .
Attention : j'ai eu des problemes de compatibilité avec d'autres scripts . A tester !
- Code:
#===============================================================
# ● [VX] ◦ Get Item Window ◦ □
# * Show window to tell player what item he/she got~
#--------------------------------------------------------------
# ◦ by Woratana [woratana@hotmail.com]
# ◦ Thaiware RPG Maker Community
# ◦ Released on: 19/12/2008
# ◦ Version: 2.0
#--------------------------------------------------------------
# ● How to Use ●
#--------------------------------------------------------------
# Call Script:
# $scene.new_itemwin(type, item_ID, quantity, *auto_add_item?, *wait_count)
# * type: 0 for Item, 1 for Weapon, 2 for Armor
# * Item_ID: ID of the item you want to show
# * Quantity: Amount of the item the player got
# * Auto_Add_Item (Optional): Do you want the script to add item for you?
# (Or you can just use event command to add item yourself)
# * Wait_Count (Optional): How long (in frame) the item window will stay on screen?
# (Default is 160 frames)
#--------------------------------------------------------------
# ● Examples ●
#--------------------------------------------------------------
# $scene.new_itemwin(0, 1, 5)
# ^ The window will show that player got 5 Potions.
# $scene.new_itemwin(0, 1, 5, true)
# ^ The window will show that player got 5 Potions and also add 5 Potions to
# player's inventory immediately.
# $scene.new_itemwin(0, 1, 5, false, 100)
# ^ The window will show that player got 5 Potions, but will not add 5 the items
# to player's inventory. The window will stay for 100 frames before dissappear.
#--------------------------------------------------------------
# ● Extra! ●
#--------------------------------------------------------------
# You can put an array in item_ID and the item will give out randomly,
# for example,
# $scene.new_itemwin(0, [1,2,3], 5, true)
# ^ It will randomly give 5 of Potion/Hi Potion/or Full Potion.
#--------------------------------------------------------------
# Dricc extension
#--------------------------------------------------------------
# traduction en français , si y'a qu'un objet , ne pas mettre de ' * 1'
# Ajout d'un gain d'or :
# $scene.goldwin(<gain>, <true/false : ajouter l'or tout de suite> , <frames avant de s'effacer>)
# $scene.goldwin(100,false,100)
# => vous met un message "vous avez gagné 100 or" mais vous devez mettre l'or dans l'event
# puis attend 100 frames avant de s'effacer
# Ajout d'un gain d'exp :
# $scene.expwin(<gain>, <id du perso (0 pour tous)>, <true/false : message gain niveau> ,<true/false : ajouter l'xp tout de suite> , <frames avant de s'effacer>)
# $scene.expwin(100,0,false,100)
# => vous met un message "vous avez gagné 100 exp" mais vous devez mettre l'exp dans l'event
# puis attend 100 frames avant de s'effacer
# A noter que le message de gain de niveau ne s'affichera pas si l'xp n'est pas ajouté tout de suite
#===============================================================
class Window_GetItem < Window_Base
def initialize(type, items, quantity, auto_add = false, wait_count = nil)
super(0,0, 200, WLH + 32)
self.z = 199
# Default Wait Count
wait_count = 160 if wait_count.nil?
@wait_count = wait_count
# if random item
case type
when 0; dbase = $data_items
when 1; dbase = $data_weapons
when 2; dbase = $data_armors
end
if items.is_a?(Array)
items = items[rand(items.size)]
end
items = dbase[items]
# THAI
# memname = $game_party.members.size == 1 ? $game_party.members[0].name : 'คุณ'
# text = memname + ' ได้รับ ' + items.name + ' x ' + quantity.to_s
# FRENCH
if quantity.to_s == 1 then
text = ' Vous obtenez : ' + items.name
else
text = ' Vous obtenez : ' + items.name + ' x ' + quantity.to_s
end
# Auto Add Item
$game_party.gain_item(items, quantity) if auto_add
#print auto_add
# Calculate Size
w_w = self.contents.text_size(text).width + 32 + 24 + 8
w_w = Graphics.width if w_w > Graphics.width
self.width = w_w
create_contents
self.x = (Graphics.width - self.width) / 2
self.y = (Graphics.height - self.height) / 2
# Draw Item Data
draw_icon(items.icon_index, 0, 0)
self.contents.draw_text(24 + 8, 0, self.contents.width, WLH, text)
@opac_per_sec = (255 / @wait_count) if @wait_count != 0
end
def update
if @wait_count > 0
@wait_count -= 1
self.opacity -= @opac_per_sec if !@opac_per_sec.nil?
else
dispose
end
end
end
# end classwindow_getitem
class GetItem_Controller
attr_accessor :data
def initialize
@data = []
end
def update
@data.each {|d| d.update if !d.nil? and !d.disposed?}
end
def terminate
@data.each {|d| d.dispose if (!d.nil? and !d.disposed?) }
end
def create(*args)
@data.each_index do |i|
if !@data[i].nil?
@data[i].dispose if !@data[i].disposed?
@data[i] = nil
end
end
@data.push (Window_GetItem.new(*args))
end
end
# ajout dricc : fenetre de gain d'or
class Window_Getgold < Window_Base
def initialize(quantity, auto_add = false, wait_count = nil)
super(0,0, 200, WLH + 32)
self.z = 199
# Default Wait Count
wait_count = 160 if wait_count.nil?
@wait_count = wait_count
# THAI
# memname = $game_party.members.size == 1 ? $game_party.members[0].name : 'คุณ'
# text = memname + ' ได้รับ ' + items.name + ' x ' + quantity.to_s
# Tout depend de la monnaie que vous avez choisi ....
# ici , vous pouvez regler le pluriel
if quantity.to_s == 1 then
text = ' Vous obtenez : ' + quantity.to_s + ' ' + Vocab.send ('gold')
else
text = ' Vous obtenez : ' + quantity.to_s + ' ' + Vocab.send ('gold')
end
# PEUX ETRE MODIFIE
gold_icon_index1 = 205 # icone pour gain de 1 or (une piece d'or dans l'iconset standard)
gold_icon_index = 147 # icone pour gain > 1 or (une bourse d'or dans l'iconset standard)
# Auto Add Item
$game_party.gain_gold(quantity) if auto_add
# Calculate Size
w_w = self.contents.text_size(text).width + 32 + 24 + 8
w_w = Graphics.width if w_w > Graphics.width
self.width = w_w
create_contents
self.x = (Graphics.width - self.width) / 2
self.y = (Graphics.height - self.height) / 2
# Draw Item Data
if quantity.to_s == 1 then
draw_icon(gold_icon_index1, 0, 0)
else
draw_icon(gold_icon_index, 0, 0)
end
self.contents.draw_text(24 + 8, 0, self.contents.width, WLH, text)
@opac_per_sec = (255 / @wait_count) if @wait_count != 0
end
def update
if @wait_count > 0
@wait_count -= 1
self.opacity -= @opac_per_sec if !@opac_per_sec.nil?
else
dispose
end
end
end
# end classwindow_getitem
class Getgold_Controller
attr_accessor :data
def initialize
@data = []
end
def update
@data.each {|d| d.update if !d.nil? and !d.disposed?}
end
def terminate
@data.each {|d| d.dispose if (!d.nil? and !d.disposed?) }
end
def create(*args)
@data.each_index do |i|
if !@data[i].nil?
@data[i].dispose if !@data[i].disposed?
@data[i] = nil
end
end
@data.push (Window_Getgold.new(*args))
end
end
# fin dricc add gold
# ajout dricc : fenetre de gain d'xp
class Window_Getexp < Window_Base
def initialize(quantity, actor_id , lvlup_mess = true, auto_add = true, wait_count = nil)
super(0,0, 200, WLH + 32)
self.z = 199
# Default Wait Count
wait_count = 160 if wait_count.nil?
@wait_count = wait_count
# Tout depend de la monnaie que vous avez choisi ....
# ici , vous pouvez relger le pluriel
if actor_id == 0 then
text1 = ' L\'equipe obtient ' + quantity.to_s + ' Exp'
else
text1 = $game_actor[actor_id].name + ' obtient ' + quantity.to_s + ' Exp'
end
# PEUX ETRE MODIFIE
xp_icon_index = 135 # icone pour gain d'xp
lv_icon_index = 27 # icone pour gain d'xp avec level up
nb_level_up = 0
# Auto Add Item
text2 = ''
text3 = ''
text4 = ''
if auto_add then
if actor_id ==0 then
for actor in $game_party.members
old_level = actor.level
actor.change_exp(actor.exp + quantity, false)
if old_level != actor.level then
nb_level_up +=1
if nb_level_up <=2 then
text2 = text2 + actor.name + ' Niveau ' + actor.level.to_s + ' '
else
if nb_level_up <=4 then
text3 = text3 + actor.name + ' Niveau ' + actor.level.to_s + ' '
else
text4 = text4 + actor.name + ' Niveau ' + actor.level.to_s + ' '
end
end
end
end
else
actor = $game_party.members[actor_id]
actor.change_exp(actor.exp + quantity, false)
end
end
# Calculate Size
w_w = self.contents.text_size(text1).width + 32 + 24 + 8
if self.contents.text_size(text2).width > w_w - 32 - 24- 8 then
w_w = self.contents.text_size(text2).width + 32 + 24 + 8
end
if self.contents.text_size(text3).width > w_w - 32 - 24- 8 then
w_w = self.contents.text_size(text3).width + 32 + 24 + 8
end
if self.contents.text_size(text4).width > w_w - 32 - 24- 8 then
w_w = self.contents.text_size(text4).width + 32 + 24 + 8
end
w_w = Graphics.width if w_w > Graphics.width
self.width = w_w
self.height = self.height + 24 if text2 != nil
self.height = self.height + 24 if text3 != nil
self.height = self.height + 24 if text4 != nil
create_contents
self.x = (Graphics.width - self.width) / 2
self.y = (Graphics.height - self.height) / 2
# Draw Item Data
if nb_level_up > 0 then
draw_icon(lv_icon_index, 0, 0)
else
draw_icon(xp_icon_index, 0, 0)
end
self.contents.draw_text(24 + 8, 0, self.contents.width, WLH, text1)
if text2 != nil then
self.contents.draw_text(24 + 8, 24, self.contents.width, WLH, text2)
end
if text3 != nil then
self.contents.draw_text(24 + 8, 48, self.contents.width, WLH, text3)
end
if text4 != nil then
self.contents.draw_text(24 + 8, 72, self.contents.width, WLH, text4)
end
@opac_per_sec = (255 / @wait_count) if @wait_count != 0
end
def update
if @wait_count > 0
@wait_count -= 1
self.opacity -= @opac_per_sec if !@opac_per_sec.nil?
else
dispose
end
end
end
# end classwindow_getitem
class Getexp_Controller
attr_accessor :data
def initialize
@data = []
end
def update
@data.each {|d| d.update if !d.nil? and !d.disposed?}
end
def terminate
@data.each {|d| d.dispose if (!d.nil? and !d.disposed?) }
end
def create(*args)
@data.each_index do |i|
if !@data[i].nil?
@data[i].dispose if !@data[i].disposed?
@data[i] = nil
end
end
@data.push (Window_Getexp.new(*args))
end
end
# fin dricc add exp
class Scene_Map < Scene_Base
alias wora_scemap_str_getitemwin start
alias wora_scemap_upd_getitemwin update
alias wora_scemap_ter_getitemwin terminate
def start
wora_scemap_str_getitemwin
@getitem_control = GetItem_Controller.new
@getgold_control = Getgold_Controller.new
@getexp_control = Getexp_Controller.new
end
def update
wora_scemap_upd_getitemwin
@getitem_control.update
@getgold_control.update
@getexp_control.update
end
def terminate
@getitem_control.terminate
@getgold_control.terminate
@getexp_control.terminate
wora_scemap_ter_getitemwin
end
# Create Get Item Window
def new_itemwin(*args)
@getitem_control.create(*args)
end
# Create Get gold Window
def goldwin(*args)
@getgold_control.create(*args)
end
# Create Get exp Window
def expwin(*args)
@getexp_control.create(*args)
end
end
#=begin
#add for GTBS
class Scene_Battle_TBS
alias wora_scemap_str_getitemwin1 start
alias wora_scemap_upd_getitemwin1 update
alias wora_scemap_ter_getitemwin1 terminate
def start
@getitem_control = GetItem_Controller.new
@getgold_control = Getgold_Controller.new
@getexp_control = Getexp_Controller.new
wora_scemap_str_getitemwin1
end
def update
@getitem_control.update
@getgold_control.update
@getexp_control.update
wora_scemap_upd_getitemwin1
end
def terminate
@getitem_control.terminate
@getgold_control.terminate
@getexp_control.terminate
wora_scemap_ter_getitemwin1
end
# Create Get Item Window
def new_itemwin(*args)
@getitem_control.create(*args)
end
# Create Get gold Window
def goldwin(*args)
@getgold_control.create(*args)
end
# Create Get exp Window
def expwin(*args)
@getexp_control.create(*args)
end
end
#=end
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Sam 25 Juin 2011 - 14:15
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Sam 25 Juin 2011 - 23:19
ah , pardon , faut enlever la partie rajoutée pour le GTBS .
repére les lignes :
#=begin
#=end
Et enleve les # pour mettre en commentaire
repére les lignes :
#=begin
#=end
Et enleve les # pour mettre en commentaire
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Dim 26 Juin 2011 - 12:37
nickel ça marche mais par contre ou est-ce que je peux changer les image dans le script parce que j'ai pas le planche iconset de base
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Lun 27 Juin 2011 - 16:02
Oui , bien sur .
cherche :
# PEUX ETRE MODIFIE
xp_icon_index = 135 # icone pour gain d'xp
lv_icon_index = 27 # icone pour gain d'xp avec level up
et remplace les numéros par les bons indexes .
cherche :
# PEUX ETRE MODIFIE
xp_icon_index = 135 # icone pour gain d'xp
lv_icon_index = 27 # icone pour gain d'xp avec level up
et remplace les numéros par les bons indexes .
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu] script popup bulle de gain d'exp aprés une quête
Lun 27 Juin 2011 - 22:38
ok merci beaucoup t'es trop cool
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|