Project1
标题:
求人改下这个得失物品脚本~
[打印本页]
作者:
土萌萤
时间:
2008-11-2 08:46
提示:
作者被禁止或删除 内容自动屏蔽
作者:
雪流星
时间:
2008-11-2 12:07
#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================
# 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。
# 開關定義:
$noshowgold = 41 # 不显示金钱得失
$noshowitem = 42 # 不显示物品得失
$noshowweapon = 43 # 不显示武器得失
$noshowarmor = 44 # 不显示防具得失
# 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示
# 不想提示等级升降时,就在事件命令直接选择是否显示就行了。
#——聲效,可以自己改
folder = "Audio/SE/"
$gain_gold_se = folder +"Shop" # 获得金钱声效
$loss_gold_se = folder +"Blow2" # 失去金钱声效
$gain_item_se = folder +"Item1" # 获得物品声效
$loss_item_se = folder +"Blow2" # 失去物品声效
$gain_weapon_se = folder +"Item1" # 获得武器声效
$loss_weapon_se = folder +"Blow2" # 失去武器声效
$gain_armor_se = folder +"Item1" # 获得防具声效
$loss_armor_se = folder +"Blow2" # 失去防具声效
$gain_lv_se = folder +"Item1" # 提升等级声效
$loss_lv_se = folder +"Blow2" # 降低等级声效
# ————————————————————————————————————
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 增減金錢
#--------------------------------------------------------------------------
def command_125
value = operate_value(@params[0], @params[1], @params[2])
$game_party.gain_gold(value)
if $game_switches[$noshowgold]==false
show_gain_window(0, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增減物品
#--------------------------------------------------------------------------
def command_126
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_items[@params[0]], value)
if $game_switches[$noshowitem]==false
show_gain_window(1, value)
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# ● 增減武器
#--------------------------------------------------------------------------
def command_127
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
if $game_switches[$noshowweapon]==false
show_gain_window(2, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增減防具
#--------------------------------------------------------------------------
def command_128
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
if $game_switches[$noshowarmor]==false
show_gain_window(3, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 等级増減
#--------------------------------------------------------------------------
def command_316
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
actor.change_level(actor.level + value, false)
if @params[4]
show_gain_level_window(actor,value)
end
end
return true
end
def show_gain_window(type, value)
snstar2006_66rpg_item = $data_armors[@params[0]]
snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
if value >= 0
gain_text = "獲得"
else
gain_text = "失去"
end
case type
when 0
gain_type = "金錢"
if value >=0
Audio.se_play($gain_gold_se,80,100)
else
Audio.se_play("Audio/SE/"+"Item1",80,100)
end
when 1
gain_type = "物品"
string = $data_items[@params[0]]
if value >=0
Audio.se_play($gain_item_se,80,100)
else
Audio.se_play($loss_item_se,80,100)
end
when 2
gain_type = "武器"
string = $data_weapons[@params[0]]
if value >=0
Audio.se_play($gain_weapon_se,80,100)
else
Audio.se_play($loss_weapon_se,80,100)
end
when 3
gain_type = "防具"
string = $data_armors[@params[0]]
if value >=0
Audio.se_play($gain_armor_se,80,100)
else
Audio.se_play($loss_armor_se,80,100)
end
end
text = "#{gain_text}#{gain_type}:"
unless type == 0
text += string.name + "x" + value.abs.to_s
else
text += value.abs.to_s + " "+ Vocab::gold
end
tsize = snstar2006_66rpg.contents.text_size(text)
snstar2006_66rpg.width = tsize + 32
snstar2006_66rpg.contents.draw_text(0,0,tsize,24,text)
snstar2006_66rpg.opacity = 160
for i in 0..30
Graphics.update
end
for i in 0..10
snstar2006_66rpg.opacity -= 30
snstar2006_66rpg.contents_opacity -= 30
Graphics.update
end
snstar2006_66rpg.dispose
end
def show_gain_level_window(actor,value)
lvstring = Vocab::level
snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
if value >= 0
gain_text = "提升"
Audio.se_play($gain_lv_se,80,100)
else
gain_text = "降低"
Audio.se_play($loss_lv_se,80,100)
end
snstar2006_66rpg.contents.draw_text(0, 0, 108, 32, actor.name)
string = lvstring+gain_text+value.abs.to_s+"级"
snstar2006_66rpg.contents.draw_text(32,32,160,32,string)
snstar2006_66rpg.opacity = 160
for i in 0..30
Graphics.update
end
for i in 0..10
snstar2006_66rpg.opacity -= 30
snstar2006_66rpg.contents_opacity -= 30
Graphics.update
end
snstar2006_66rpg.dispose
end
end
#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================
复制代码
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
[LINE]1,#dddddd[/LINE]
版主对此帖的评论:『自己扣分』,积分『-100』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者:
土萌萤
时间:
2008-11-2 12:13
提示:
作者被禁止或删除 内容自动屏蔽
作者:
雪流星
时间:
2008-11-2 16:45
以下引用
土萌萤于2008-11-2 4:13:40
的发言:
不好意思~您的脚本出错拉~
錯誤訊息?
因為我是直接修改的
沒有測試
作者:
土萌萤
时间:
2008-11-3 03:13
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2008-11-3 03:21
150行
tsize = snstar2006_66rpg.contents.text_size(text).width
作者:
土萌萤
时间:
2008-11-3 05:06
提示:
作者被禁止或删除 内容自动屏蔽
作者:
mlglz
时间:
2008-11-3 05:22
这个脚本怎么加进去呢?加在哪里?
作者:
亿万星辰
时间:
2008-11-3 05:47
我重写一下好了……{/pz}
作者:
土萌萤
时间:
2008-11-3 06:05
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2008-11-3 06:17
#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================
# 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。
# 開關定義:
$noshowgold = 41 # 不显示金钱得失
$noshowitem = 42 # 不显示物品得失
$noshowweapon = 43 # 不显示武器得失
$noshowarmor = 44 # 不显示防具得失
# 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示
# 不想提示等级升降时,就在事件命令直接选择是否显示就行了。
#——聲效,可以自己改
folder = "Audio/SE/"
$gain_gold_se = folder +"Shop" # 获得金钱声效
$loss_gold_se = folder +"Blow2" # 失去金钱声效
$gain_item_se = folder +"Item1" # 获得物品声效
$loss_item_se = folder +"Blow2" # 失去物品声效
$gain_weapon_se = folder +"Item1" # 获得武器声效
$loss_weapon_se = folder +"Blow2" # 失去武器声效
$gain_armor_se = folder +"Item1" # 获得防具声效
$loss_armor_se = folder +"Blow2" # 失去防具声效
$gain_lv_se = folder +"Item1" # 提升等级声效
$loss_lv_se = folder +"Blow2" # 降低等级声效
# ————————————————————————————————————
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 增減金錢
#--------------------------------------------------------------------------
def command_125
value = operate_value(@params[0], @params[1], @params[2])
$game_party.gain_gold(value)
if $game_switches[$noshowgold]==false
show_gain_window(0, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增減物品
#--------------------------------------------------------------------------
def command_126
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_items[@params[0]], value)
if $game_switches[$noshowitem]==false
show_gain_window(1, value)
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# ● 增減武器
#--------------------------------------------------------------------------
def command_127
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
if $game_switches[$noshowweapon]==false
show_gain_window(2, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增減防具
#--------------------------------------------------------------------------
def command_128
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
if $game_switches[$noshowarmor]==false
show_gain_window(3, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 等级増減
#--------------------------------------------------------------------------
def command_316
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
actor.change_level(actor.level + value, false)
if @params[4]
show_gain_level_window(actor,value)
end
end
return true
end
def show_gain_window(type, value)
snstar2006_66rpg = Window_Base.new(0,128,152,80)
snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
if value >= 0
gain_text = "獲得"
else
gain_text = "失去"
end
case type
when 0
gain_type = "金錢"
if value >=0
Audio.se_play($gain_gold_se,80,100)
else
Audio.se_play("Audio/SE/"+"Item1",80,100)
end
when 1
gain_type = "物品"
string = $data_items[@params[0]]
if value >=0
Audio.se_play($gain_item_se,80,100)
else
Audio.se_play($loss_item_se,80,100)
end
when 2
gain_type = "武器"
string = $data_weapons[@params[0]]
if value >=0
Audio.se_play($gain_weapon_se,80,100)
else
Audio.se_play($loss_weapon_se,80,100)
end
when 3
gain_type = "防具"
string = $data_armors[@params[0]]
if value >=0
Audio.se_play($gain_armor_se,80,100)
else
Audio.se_play($loss_armor_se,80,100)
end
end
up_width = snstar2006_66rpg.contents.text_size(gain_text+gain_type+":").width + 48
unless type == 0
total_text = string.name + "×"+value.abs.to_s
text_width = snstar2006_66rpg.contents.text_size(total_text).width + 24 + 48
text_width = [text_width, up_width].max
else
total_text = value.abs.to_s + " "+ Vocab::gold
text_width = snstar2006_66rpg.contents.text_size(total_text).width + 48
text_width = [text_width, up_width].max
end
snstar2006_66rpg.width = text_width + 32
snstar2006_66rpg.x = 544 / 2 - (text_width + 32)/ 2
snstar2006_66rpg.contents = Bitmap.new(text_width, 48)
snstar2006_66rpg.contents.draw_text(0,0,text_width,24,gain_text+gain_type+":")
unless type == 0
snstar2006_66rpg.draw_icon(string.icon_index, 48, 24, true)
snstar2006_66rpg.contents.draw_text(72, 24, text_width - 72, 24, total_text, 2)
else
snstar2006_66rpg.contents.draw_text(48, 24, text_width - 48, 24, value.abs.to_s + " "+ Vocab::gold, 2)
end
snstar2006_66rpg.opacity = 160
for i in 0...60
Graphics.update
end
for i in 0..10
snstar2006_66rpg.opacity -= 30
snstar2006_66rpg.contents_opacity -= 30
Graphics.update
end
snstar2006_66rpg.dispose
end
def show_gain_level_window(actor,value)
lvstring = Vocab::level
snstar2006_66rpg = Window_Base.new(0,128,152,80)
snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
if value >= 0
gain_text = "提升"
Audio.se_play($gain_lv_se,80,100)
else
gain_text = "降低"
Audio.se_play($loss_lv_se,80,100)
end
total_text = lvstring + gain_text + value.abs.to_s + "级"
text_width = snstar2006_66rpg.contents.text_size(total_text).width + 48
text_width = [text_width, snstar2006_66rpg.contents.text_size(actor.name).width + 48].max
snstar2006_66rpg.width = text_width + 32
snstar2006_66rpg.x = 544 / 2 - (text_width + 32)/ 2
snstar2006_66rpg.contents = Bitmap.new(text_width, 48)
snstar2006_66rpg.contents.draw_text(0, 0, text_width, 24, actor.name)
snstar2006_66rpg.contents.draw_text(48, 24, text_width, 24, total_text)
snstar2006_66rpg.opacity = 160
for i in 0..60
Graphics.update
end
for i in 0..10
snstar2006_66rpg.opacity -= 30
snstar2006_66rpg.contents_opacity -= 30
Graphics.update
end
snstar2006_66rpg.dispose
end
end
#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================
复制代码
就这样了。。。 [LINE]1,#dddddd[/LINE]
版主对此帖的认可:『认可答案补分』,积分『+250』。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1