Project1
标题:
关于个性化商店的装备比较问题
[打印本页]
作者:
saturnfjh
时间:
2009-7-26 19:25
标题:
关于个性化商店的装备比较问题
本帖最后由 saturnfjh 于 2009-7-28 22:12 编辑
http://rpg.blue/viewthread.php?t ... =%E5%95%86%E5%BA%97
用的是这个个性化商店,怎么在右边空白的地方增加要购买的装备和身上装备的比较效果(比如身上穿的装备是25防御,商店是40防御,那么显示防御+15)?左右键切换人物,应该怎么写脚本?知道的告诉下,谢谢了。
今天改了下脚本,把窗口位置调整了。就是在原来显示说明的地方用来比较装备。只是定出了框体位置,后面比较装备的脚本应该怎么写?谁稍微指点下?谢谢了···
作者:
越前リョーマ
时间:
2009-7-26 19:29
没地方写了啊……
而且比较这个功能并不重要,已经写出了属性,可以让玩家自己比较。
作者:
saturnfjh
时间:
2009-7-26 19:33
没地方写了啊……
而且比较这个功能并不重要,已经写出了属性,可以让玩家自己比较。
越前リョーマ 发表于 2009-7-26 19:29
让玩家一个个看了自己身上的装备再去买东西很麻烦。。要不就把下面的属性框改成对比的地方我觉得都不错- -
作者:
saturnfjh
时间:
2009-7-28 22:14
今天改了下脚本,把窗口位置调整了。就是在原来显示说明的地方用来比较装备。只是定出了框体位置,后面比较装备的脚本应该怎么写(把原来系统的自带脚本复制过来了但是什么效果都没有)?谁稍微指点下?谢谢了···
作者:
saturnfjh
时间:
2009-7-29 13:27
我在 Scene_Shop里面相应的地方加了这一段:
@Compare_window = Window_ShopStatus.new
@Compare_window.set_item(nil)
@Compare_window.active = false
@Compare_window.visible = false
复制代码
Window_ShopBuy和Window_ShopSell加了这一段:
def update_compare
@Compare_window.set_item(item)
end
复制代码
新增的装备比较窗口代码:
class Window_ShopStatus < Window_Base
def initialize
super(336, 56, 208, 248)
for actor in $game_party.members
@actor = actor
end
refresh
end
def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_parameter(0, WLH * 1, 0)
draw_parameter(0, WLH * 2, 1)
draw_parameter(0, WLH * 3, 2)
draw_parameter(0, WLH * 4, 3)
end
def set_new_parameters(new_atk, new_def, new_spi, new_agi)
if @new_atk != new_atk or @new_def != new_def or
@new_spi != new_spi or @new_agi != new_agi
@new_atk = new_atk
@new_def = new_def
@new_spi = new_spi
@new_agi = new_agi
refresh
end
end
def new_parameter_color(old_value, new_value)
if new_value > old_value # 变强
return power_up_color
elsif new_value == old_value # 没有变化
return normal_color
else # 变弱
return power_down_color
end
end
def draw_parameter(x, y, type)
case type
when 0
name = Vocab::atk
value = @actor.atk
new_value = @new_atk
when 1
name = Vocab::def
value = @actor.def
new_value = @new_def
when 2
name = Vocab::spi
value = @actor.spi
new_value = @new_spi
when 3
name = Vocab::agi
value = @actor.agi
new_value = @new_agi
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 56, WLH, name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 56, y, 48, WLH, value, 2)
self.contents.font.color = system_color
self.contents.draw_text(x + 112, y, 36, WLH, "→", 1)
if new_value != nil
self.contents.font.color = new_parameter_color(value, new_value)
self.contents.draw_text(x + 152, y, 48, WLH, new_value, 2)
end
end
def set_item(item)
if item.nil?
@item = nil
return
end
if item != @item
@item = item
end
refresh
end
end
复制代码
运行的时候却提示 “未定义@Compare_window的set_item方法”,谁告诉下是什么情况?
作者:
zh99998
时间:
2009-8-2 07:48
帮顶……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1