设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1828|回复: 0
打印 上一主题 下一主题

[已经过期] 魔法商店的显示问题

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
719
在线时间
684 小时
注册时间
2009-5-29
帖子
461
跳转到指定楼层
1
发表于 2009-10-27 11:19:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
用了魔法商店的脚本
请问下,如何设定只让商店显示4个人的学习状态?就是无论队伍有多少人(大于5),只显示前4个?或者把所有人物显示出来(Pagedown翻页)?

#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
# Learn Text
How_Learn = "队伍信息"
Can_Learn = "可以学习"
Can_Learn_Lv = "需要等级"
Cant_Learn = "不可学习"
Learnt = "已习得"
Teach = "学习计策"
Cancel = "离开"
# Price Data
PRICE = {
# for No Set Price
0 => 100,
# Add Price Here
1 => 150,
2 => 550,
3 => 450,
# End
}
# Hero Data
SKILL_BUY = {
# Add what skill can hero buy Here

# [ID of skill,Level]

1 => [

[54,10],[56,20],

],

2 => [

[53,10],[55,20],

],
# End
}
# Add Price
def self.skill_price(id)
   if PRICE.include?(id)
     return PRICE[id]
   else
     return PRICE[0]
   end
end
# Add Hero id
def self.skill_buy(id)
   if SKILL_BUY.include?(id)
     return SKILL_BUY[id]
   else
     return []
   end
end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
def learn?(skill)
   learn = skill_learn?(skill)
   if learn == true
     return false
   else
     return true
   end
end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
#--------------------------------------------------------------------------
def initialize(x, y)
   super(x, y, 304, 304)
   @skill_shop_goods = $skill_shop
   refresh
   self.index = 0
end
#--------------------------------------------------------------------------
def skill
   return @data[self.index]
end
#--------------------------------------------------------------------------
def refresh
   @data = []
   for i in 0...@skill_shop_goods.size
     skill = $data_skills[@skill_shop_goods]
     if skill != nil
       @data.push(skill)
     end
   end
   @item_max = @data.size
   create_contents
   for i in 0...@item_max
     draw_item(i)
   end
end
#--------------------------------------------------------------------------
def draw_item(index)
   skill = @data[index]
   price = SKILL_SHOP.skill_price(skill.id)
   enabled = (price <= $game_party.gold)
   rect = item_rect(index)
   self.contents.clear_rect(rect)
   draw_item_name(skill, rect.x, rect.y, enabled)
   rect.width -= 4
   self.contents.draw_text(rect, price, 2)
end
#--------------------------------------------------------------------------
def update_help
   @help_window.set_text(skill == nil ? "" : skill.description)
end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
#--------------------------------------------------------------------------
def initialize(x, y)
   super(x, y, 240, 304)
   @item = nil
   refresh
   self.active = false
   self.index = -1
end
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   @item_max = $game_party.members.size
   if @item != nil
     self.contents.font.color = system_color
     self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
     for actor in $game_party.members
       x = 4
       y = WLH * (2 + actor.index * 2)
       draw_actor_can_learn(actor, x, y)
     end
   end
end
#--------------------------------------------------------------------------
def draw_actor_can_learn(actor, x, y)
   can = false
   lv = false
   ac_lv = 0
   can_learn = SKILL_SHOP.skill_buy(actor.id)
   id = @item.id
   for i in 0...can_learn.size
     if can_learn[0] == id
       can = true
       if can_learn[1] <= actor.level
         lv = true
       else
         lv = false
         ac_lv = can_learn[1]
       end
       break
     else
       can = false
     end
   end
   enabled = (can and lv and actor.learn?(@item))
   self.contents.font.color = normal_color
   self.contents.font.color.alpha = enabled ? 255 : 128
   name = actor.character_name
   index = actor.character_index
   size = contents.text_size(actor.name).width
   draw_character(name, index, x + 20 + size , y + 30)
   self.contents.draw_text(x, y, 200, WLH, actor.name)
   if can == false
     text = SKILL_SHOP::Cant_Learn
   elsif can == true and lv == false
     ac = ac_lv.to_s
     text = SKILL_SHOP::Can_Learn_Lv +  ac
   elsif actor.learn?(@item) == false
     text = SKILL_SHOP::Learnt
   else
     text = SKILL_SHOP::Can_Learn
   end
   self.contents.draw_text(x, y, 200, WLH, text, 2)
end
#--------------------------------------------------------------------------
def item=(item)
   if @item != item
     @item = item
     refresh
   end
end
#--------------------------------------------------------------------------
def update_cursor
   if @index < 0
     self.cursor_rect.empty
   elsif @index < @item_max
     y = WLH * (2 + @index * 2)
     self.cursor_rect.set(0, y - 4, contents.width,34)
   end
end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
#--------------------------------------------------------------------------
def start
   super
   create_menu_background
   create_command_window
   @viewport = Viewport.new(0, 0, 544, 416)
   @help_window = Window_Help.new
   @gold_window = Window_Gold.new(384, 56)
   @dummy_window = Window_Base.new(0, 112, 544, 304)
   @buy_window = Window_Skill_ShopBuy.new(0, 112)
   @buy_window.active = false
   @buy_window.visible = false
   @buy_window.help_window = @help_window
   @status_window = Window_Skill_ShopStatus.new(304, 112)
   @status_window.visible = false
   @status_window.active = false
end
#--------------------------------------------------------------------------
def terminate
   super
   dispose_menu_background
   dispose_command_window
   @help_window.dispose
   @gold_window.dispose
   @dummy_window.dispose
   @buy_window.dispose
   @status_window.dispose
end  
#--------------------------------------------------------------------------
def update
   super
   update_menu_background
   @help_window.update
   @command_window.update
   @gold_window.update
   @dummy_window.update
   @buy_window.update
   @status_window.update
   if @command_window.active
     update_command_selection
   elsif @buy_window.active
     update_buy_selection
   elsif @status_window.active
     update_target_selection
   end
end
#--------------------------------------------------------------------------
def create_command_window
   s1 = SKILL_SHOP::Teach
   s2 = SKILL_SHOP::Cancel
   @command_window = Window_Command.new(384, [s1, s2], 2)
   @command_window.y = 56
end
#--------------------------------------------------------------------------
def dispose_command_window
   @command_window.dispose
end
#--------------------------------------------------------------------------
def update_command_selection
   @help_window.set_text("")
   if Input.trigger?(Input::B)
     Sound.play_cancel
     $scene = Scene_Map.new
   elsif Input.trigger?(Input::C)
     case @command_window.index
     when 0
       Sound.play_decision
       @command_window.active = false
       @dummy_window.visible = false
       @buy_window.active = true
       @buy_window.visible = true
       @buy_window.refresh
       @status_window.visible = true
     when 1
       Sound.play_decision
       $scene = Scene_Map.new
     end
   end
end
#--------------------------------------------------------------------------
def update_buy_selection
   @status_window.item = @buy_window.skill
   if Input.trigger?(Input::B)
     Sound.play_cancel
     @command_window.active = true
     @dummy_window.visible = true
     @buy_window.active = false
     @buy_window.visible = false
     @status_window.visible = false
     @status_window.item = nil
     return
   end
   if Input.trigger?(Input::C)
     @item = @buy_window.skill
     @price = SKILL_SHOP.skill_price(@item.id)
     enabled = (@price <= $game_party.gold)
     if not enabled
       Sound.play_buzzer
     else
       Sound.play_decision
       show_target_window
     end
   end
end
#--------------------------------------------------------------------------
def update_target_selection
   if Input.trigger?(Input::B)
     Sound.play_cancel
     hide_target_window
   elsif Input.trigger?(Input::C)
     @actor = $game_party.members[@status_window.index]
     can = false
     lv = false
     can_learn = SKILL_SHOP.skill_buy(@actor.id)
     id = @item.id
     for i in 0...can_learn.size
       if can_learn[0] == id
         can = true
         if can_learn[1] <= @actor.level
           lv = true
         else
           lv = false
         end
         break
       else
         can = false
       end
     end
     enabled = (can and lv and @actor.learn?(@item))
     if not enabled
       Sound.play_buzzer
     else
       learn_target(@item.id)
     end
   end
end
#--------------------------------------------------------------------------
def learn_target(skill_id)
   Sound.play_shop
   @actor.learn_skill(skill_id)
   $game_party.lose_gold(@price)
   @buy_window.refresh
   @gold_window.refresh
   @status_window.refresh
   hide_target_window
end
#--------------------------------------------------------------------------
def show_target_window
   @buy_window.active = false
   @status_window.active = true
   @status_window.index = 0
end
#--------------------------------------------------------------------------
def hide_target_window
   @buy_window.active = true
   @status_window.active = false
   @status_window.index =- 1
end
end
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-12 06:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表