赞 | 1 |
VIP | 0 |
好人卡 | 0 |
积分 | 7 |
经验 | 32726 |
最后登录 | 2024-8-14 |
在线时间 | 661 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 685
- 在线时间
- 661 小时
- 注册时间
- 2012-10-21
- 帖子
- 350
|
2楼
楼主 |
发表于 2015-2-11 10:05:16
|
只看该作者
能否帮忙在获得物品提示的基础上改下?
#Sleek Item Popup v1.12a #----------# #Features: A nice and sleek little pop up you can use to tell the player # they received (or lost) an item! Now with automatic popups whenever # you use the gain item commands in events! # #Usage: Event Script Call: # popup(type,item,amount,[duration],[xoff],[yoff]) # # Where: type is category of item (0 = item, 1 = weapon, # 2 = armor, 3 = gold) # item is the id number of the item # amount is the amount lost or gained # duration is the time the window is up and is optional # # Examples: # popup(0,1,5) # popup(2,12,1,120) # $PU_AUTOMATIC_POPUP = false # $PU_AUTOMATIC_POPUP = true # #Customization: Everything down there under customization # #----------# #-- Script by: V.M of D.T # #- Questions or comments can be: # posted on the thread for the script # provided on facebook: [url]http://www.facebook.com/DaimoniousTailsGames[/url] # posed on site: daimonioustails.wordpress.com # #--- Free to use in any project, commercial or non-commercial, with credit given # - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's) #Sound effect played on popup: # "Filename", Volume(0-100), Pitch(50-150) PU_SOUND_EFFECT_GAIN = ["Item1",100,50] PU_SOUND_EFFECT_LOSE = ["Item1",100,15] #Animation to be played on the player during popup PU_USE_ANIMATION = false PU_POPUP_ANIMATION = 2 #Duration in frames of Item Popup fadein and fadeout PU_FADEIN_TIME = 8 PU_FADEOUT_TIME = 8 #Default duration of the popup PU_DEFAULT_DURATION = 40 #Use automatic popup? Can be enabled/disabled in game, see examples $PU_AUTOMATIC_POPUP = true #Whether to use a custom or default font PU_USE_CUSTOM_FONT = false #Settings for custom item popup font PU_DEFAULT_FONT_NAME = ["Verdana"] PU_DEFAULT_FONT_SIZE = 14 PU_DEFAULT_FONT_COLOR = Color.new(255,255,255,255) PU_DEFAULT_FONT_BOLD = false PU_DEFAULT_FONT_ITALIC = false PU_DEFAULT_FONT_SHADOW = false PU_DEFAULT_FONT_OUTLINE = true #Compact mode will hide the amount unless it's greater then 1 PU_COMPACT_MODE = true #Background Icon to be displayed under item icon PU_USE_BACKGROUND_ICON = false PU_BACKGROUND_ICON = 102 #Gold details: PU_GOLD_NAME = "魂" PU_GOLD_ICON = 466 #True for single line, false for multi line PU_SINGLE_LINE = true class Item_Popup < Window_Base def initialize(item, amount, duration, nosound,xoff,yoff) super(0,0,100,96) sedg = PU_SOUND_EFFECT_GAIN sedl = PU_SOUND_EFFECT_LOSE se = RPG::SE.new(sedg[0],sedg[1],sedg[2]) unless sedg.nil? or nosound se2 = RPG::SE.new(sedl[0],sedl[1],sedl[2]) unless sedl.nil? or nosound se.play if se and amount > 0 se2.play if se2 and amount < 0 self.opacity = 0 self.x = $game_player.screen_x - 16 self.y = $game_player.screen_y - 80 @xoff = 0 @yoff = 0 @duration = 40 @item = item @amount = amount @name = item.name.clone @text = "" @padding = ' '*@name.size @timer = 0 @split = (PU_FADEIN_TIME) / @name.size @split = 2 if @split < 2 amount > 0 ? @red = Color.new(0,255,0) : @red = Color.new(255,0,0) if PU_USE_CUSTOM_FONT contents.font.size = PU_DEFAULT_FONT_SIZE else contents.font.size = 16 end @textsize = text_size(@name) textsize2 = text_size("" + amount.to_s) self.width = @textsize.width + standard_padding * 2 + 24 self.width += textsize2.width + 48 if PU_SINGLE_LINE contents.font.size < 24 ? size = 24 : size = contents.font.size self.height = size + standard_padding * 2 self.height += size if !PU_SINGLE_LINE self.x -= self.width / 2 create_contents if PU_USE_CUSTOM_FONT contents.font.name = PU_DEFAULT_FONT_NAME contents.font.size = PU_DEFAULT_FONT_SIZE contents.font.color = PU_DEFAULT_FONT_COLOR contents.font.bold = PU_DEFAULT_FONT_BOLD contents.font.italic = PU_DEFAULT_FONT_ITALIC contents.font.shadow = PU_DEFAULT_FONT_SHADOW contents.font.outline = PU_DEFAULT_FONT_OUTLINE end self.contents_opacity = 0 $game_player.animation_id = PU_POPUP_ANIMATION if PU_USE_ANIMATION update end def update #super return if self.disposed? self.visible = true if !self.visible self.x = $game_player.screen_x - contents.width/4 + 12 self.y = $game_player.screen_y - 80 + @yoff self.x -= self.width / 3 open if @timer < (PU_FADEIN_TIME) close if @timer > (PU_FADEOUT_TIME + @duration) @timer += 1 return if @timer % @split != 0 @text += @name.slice!(0,1) @padding.slice!(0,1) contents.clear contents.font.color = @red stringamount = @amount stringamount = "" + @amount.to_s if @amount > 0 if PU_SINGLE_LINE width = text_size(@item.name).width#@textsize.width draw_text(27 + width,0,36,24,stringamount) unless PU_COMPACT_MODE and @amount == 1 if Module.const_defined?(:AFFIXES) contents.font.color = @item.color else contents.font.color = Font.default_color end draw_text(24,0,contents.width,contents.height,@text+@padding) draw_icon(PU_BACKGROUND_ICON,0,0) if PU_USE_BACKGROUND_ICON draw_icon(@item.icon_index,0,0) else draw_text(contents.width / 4 + 16,24,36,24,stringamount) unless PU_COMPACT_MODE and @amount == 1 if Module.const_defined?(:AFFIXES) contents.font.color = @item.color else contents.font.color = Font.default_color end draw_icon(PU_BACKGROUND_ICON,contents.width / 2 - 24,24) if PU_USE_BACKGROUND_ICON draw_icon(@item.icon_index,contents.width / 2 - 24,24) draw_text(0,0,contents.width,line_height,@text+@padding) end end def close self.contents_opacity -= (255 / (PU_FADEOUT_TIME)) end def open self.contents_opacity += (255 / (PU_FADEIN_TIME)) end end class Game_Interpreter alias pu_command_126 command_126 alias pu_command_127 command_127 alias pu_command_128 command_128 alias pu_command_125 command_125 def popup(type,item,amount,duration = PU_DEFAULT_DURATION,nosound = false, xo = 0, yo = 0) data = $data_items[item] if type == 0 data = $data_weapons[item] if type == 1 data = $data_armors[item] if type == 2 if type == 3 data = RPG::Item.new data.name = PU_GOLD_NAME data.icon_index = PU_GOLD_ICON end Popup_Manager.add(data,amount,duration,nosound,xo,yo) end def command_126 pu_command_126 value = operate_value(@params[1], @params[2], @params[3]) popup(0,@params[0],value) if $PU_AUTOMATIC_POPUP end def command_127 pu_command_127 value = operate_value(@params[1], @params[2], @params[3]) popup(1,@params[0],value) if $PU_AUTOMATIC_POPUP end def command_128 pu_command_128 value = operate_value(@params[1], @params[2], @params[3]) popup(2,@params[0],value) if $PU_AUTOMATIC_POPUP end def command_125 pu_command_125 value = operate_value(@params[0], @params[1], @params[2]) popup(3,@params[0],value) if $PU_AUTOMATIC_POPUP end end module Popup_Manager def self.init @queue = [] end def self.add(item,value,dura,ns,xo,yo) @queue.insert(0,[item,value,dura,ns,xo,yo]) end def self.queue @queue end end Popup_Manager.init class Scene_Map alias popup_update update alias popup_preterminate pre_terminate def update popup_update update_popup_window unless $popupwindow.nil? return if Popup_Manager.queue.empty? if $popupwindow.nil? or $popupwindow.contents_opacity == 0 var = Popup_Manager.queue.pop $popupwindow = Item_Popup.new(var[0],var[1],var[2],var[3],var[4],var[5]) end end def update_popup_window $popupwindow.update $popupwindow.dispose if !$popupwindow.disposed? and $popupwindow.contents_opacity == 0 $popupwindow = nil if $popupwindow.disposed? end def pre_terminate popup_preterminate $popupwindow.visible = false unless $popupwindow.nil? end end
#Sleek Item Popup v1.12a
#----------#
#Features: A nice and sleek little pop up you can use to tell the player
# they received (or lost) an item! Now with automatic popups whenever
# you use the gain item commands in events!
#
#Usage: Event Script Call:
# popup(type,item,amount,[duration],[xoff],[yoff])
#
# Where: type is category of item (0 = item, 1 = weapon,
# 2 = armor, 3 = gold)
# item is the id number of the item
# amount is the amount lost or gained
# duration is the time the window is up and is optional
#
# Examples:
# popup(0,1,5)
# popup(2,12,1,120)
# $PU_AUTOMATIC_POPUP = false
# $PU_AUTOMATIC_POPUP = true
#
#Customization: Everything down there under customization
#
#----------#
#-- Script by: V.M of D.T
#
#- Questions or comments can be:
# posted on the thread for the script
# provided on facebook: [url]http://www.facebook.com/DaimoniousTailsGames[/url]
# posed on site: daimonioustails.wordpress.com
#
#--- Free to use in any project, commercial or non-commercial, with credit given
# - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)
#Sound effect played on popup: # "Filename", Volume(0-100), Pitch(50-150)
PU_SOUND_EFFECT_GAIN = ["Item1",100,50]
PU_SOUND_EFFECT_LOSE = ["Item1",100,15]
#Animation to be played on the player during popup
PU_USE_ANIMATION = false
PU_POPUP_ANIMATION = 2
#Duration in frames of Item Popup fadein and fadeout
PU_FADEIN_TIME = 8
PU_FADEOUT_TIME = 8
#Default duration of the popup
PU_DEFAULT_DURATION = 40
#Use automatic popup? Can be enabled/disabled in game, see examples
$PU_AUTOMATIC_POPUP = true
#Whether to use a custom or default font
PU_USE_CUSTOM_FONT = false
#Settings for custom item popup font
PU_DEFAULT_FONT_NAME = ["Verdana"]
PU_DEFAULT_FONT_SIZE = 14
PU_DEFAULT_FONT_COLOR = Color.new(255,255,255,255)
PU_DEFAULT_FONT_BOLD = false
PU_DEFAULT_FONT_ITALIC = false
PU_DEFAULT_FONT_SHADOW = false
PU_DEFAULT_FONT_OUTLINE = true
#Compact mode will hide the amount unless it's greater then 1
PU_COMPACT_MODE = true
#Background Icon to be displayed under item icon
PU_USE_BACKGROUND_ICON = false
PU_BACKGROUND_ICON = 102
#Gold details:
PU_GOLD_NAME = "魂"
PU_GOLD_ICON = 466
#True for single line, false for multi line
PU_SINGLE_LINE = true
class Item_Popup < Window_Base
def initialize(item, amount, duration, nosound,xoff,yoff)
super(0,0,100,96)
sedg = PU_SOUND_EFFECT_GAIN
sedl = PU_SOUND_EFFECT_LOSE
se = RPG::SE.new(sedg[0],sedg[1],sedg[2]) unless sedg.nil? or nosound
se2 = RPG::SE.new(sedl[0],sedl[1],sedl[2]) unless sedl.nil? or nosound
se.play if se and amount > 0
se2.play if se2 and amount < 0
self.opacity = 0
self.x = $game_player.screen_x - 16
self.y = $game_player.screen_y - 80
@xoff = 0
@yoff = 0
@duration = 40
@item = item
@amount = amount
@name = item.name.clone
@text = ""
@padding = ' '*@name.size
@timer = 0
@split = (PU_FADEIN_TIME) / @name.size
@split = 2 if @split < 2
amount > 0 ? @red = Color.new(0,255,0) : @red = Color.new(255,0,0)
if PU_USE_CUSTOM_FONT
contents.font.size = PU_DEFAULT_FONT_SIZE
else
contents.font.size = 16
end
@textsize = text_size(@name)
textsize2 = text_size("" + amount.to_s)
self.width = @textsize.width + standard_padding * 2 + 24
self.width += textsize2.width + 48 if PU_SINGLE_LINE
contents.font.size < 24 ? size = 24 : size = contents.font.size
self.height = size + standard_padding * 2
self.height += size if !PU_SINGLE_LINE
self.x -= self.width / 2
create_contents
if PU_USE_CUSTOM_FONT
contents.font.name = PU_DEFAULT_FONT_NAME
contents.font.size = PU_DEFAULT_FONT_SIZE
contents.font.color = PU_DEFAULT_FONT_COLOR
contents.font.bold = PU_DEFAULT_FONT_BOLD
contents.font.italic = PU_DEFAULT_FONT_ITALIC
contents.font.shadow = PU_DEFAULT_FONT_SHADOW
contents.font.outline = PU_DEFAULT_FONT_OUTLINE
end
self.contents_opacity = 0
$game_player.animation_id = PU_POPUP_ANIMATION if PU_USE_ANIMATION
update
end
def update
#super
return if self.disposed?
self.visible = true if !self.visible
self.x = $game_player.screen_x - contents.width/4 + 12
self.y = $game_player.screen_y - 80 + @yoff
self.x -= self.width / 3
open if @timer < (PU_FADEIN_TIME)
close if @timer > (PU_FADEOUT_TIME + @duration)
@timer += 1
return if @timer % @split != 0
@text += @name.slice!(0,1)
@padding.slice!(0,1)
contents.clear
contents.font.color = @red
stringamount = @amount
stringamount = "" + @amount.to_s if @amount > 0
if PU_SINGLE_LINE
width = text_size(@item.name).width#@textsize.width
draw_text(27 + width,0,36,24,stringamount) unless PU_COMPACT_MODE and @amount == 1
if Module.const_defined?(:AFFIXES)
contents.font.color = @item.color
else
contents.font.color = Font.default_color
end
draw_text(24,0,contents.width,contents.height,@text+@padding)
draw_icon(PU_BACKGROUND_ICON,0,0) if PU_USE_BACKGROUND_ICON
draw_icon(@item.icon_index,0,0)
else
draw_text(contents.width / 4 + 16,24,36,24,stringamount) unless PU_COMPACT_MODE and @amount == 1
if Module.const_defined?(:AFFIXES)
contents.font.color = @item.color
else
contents.font.color = Font.default_color
end
draw_icon(PU_BACKGROUND_ICON,contents.width / 2 - 24,24) if PU_USE_BACKGROUND_ICON
draw_icon(@item.icon_index,contents.width / 2 - 24,24)
draw_text(0,0,contents.width,line_height,@text+@padding)
end
end
def close
self.contents_opacity -= (255 / (PU_FADEOUT_TIME))
end
def open
self.contents_opacity += (255 / (PU_FADEIN_TIME))
end
end
class Game_Interpreter
alias pu_command_126 command_126
alias pu_command_127 command_127
alias pu_command_128 command_128
alias pu_command_125 command_125
def popup(type,item,amount,duration = PU_DEFAULT_DURATION,nosound = false, xo = 0, yo = 0)
data = $data_items[item] if type == 0
data = $data_weapons[item] if type == 1
data = $data_armors[item] if type == 2
if type == 3
data = RPG::Item.new
data.name = PU_GOLD_NAME
data.icon_index = PU_GOLD_ICON
end
Popup_Manager.add(data,amount,duration,nosound,xo,yo)
end
def command_126
pu_command_126
value = operate_value(@params[1], @params[2], @params[3])
popup(0,@params[0],value) if $PU_AUTOMATIC_POPUP
end
def command_127
pu_command_127
value = operate_value(@params[1], @params[2], @params[3])
popup(1,@params[0],value) if $PU_AUTOMATIC_POPUP
end
def command_128
pu_command_128
value = operate_value(@params[1], @params[2], @params[3])
popup(2,@params[0],value) if $PU_AUTOMATIC_POPUP
end
def command_125
pu_command_125
value = operate_value(@params[0], @params[1], @params[2])
popup(3,@params[0],value) if $PU_AUTOMATIC_POPUP
end
end
module Popup_Manager
def self.init
@queue = []
end
def self.add(item,value,dura,ns,xo,yo)
@queue.insert(0,[item,value,dura,ns,xo,yo])
end
def self.queue
@queue
end
end
Popup_Manager.init
class Scene_Map
alias popup_update update
alias popup_preterminate pre_terminate
def update
popup_update
update_popup_window unless $popupwindow.nil?
return if Popup_Manager.queue.empty?
if $popupwindow.nil? or $popupwindow.contents_opacity == 0
var = Popup_Manager.queue.pop
$popupwindow = Item_Popup.new(var[0],var[1],var[2],var[3],var[4],var[5])
end
end
def update_popup_window
$popupwindow.update
$popupwindow.dispose if !$popupwindow.disposed? and $popupwindow.contents_opacity == 0
$popupwindow = nil if $popupwindow.disposed?
end
def pre_terminate
popup_preterminate
$popupwindow.visible = false unless $popupwindow.nil?
end
end
|
|