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

Project1

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

[已经过期] 真实商店和标题流星冲突了..怎么办?

 关闭 [复制链接]

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

跳转到指定楼层
1
发表于 2009-7-3 09:54:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
真实商店:
#==============================================================================
# 本脚本来自www.66rpg.com,转载和使用请保留此信息
# 脚本名:真实商店,脚本作者:柳柳
#==============================================================================
#
# 功能:
#
# 买进卖出的物品在商店有所体现,卖出后会在商店可买物品中出现,物品有数量限制
# 商店可进货出货————总之就是模拟真实商店。
#  
# 这个脚本和原装商店并不冲突,两个商店可以并存。
#
# 使用方法:
#
# 1、在下面被井号框起来的中间部分,设置初期物品。格式如下:
#    @goods[商店编号] = [ [种类,ID,可卖数量] ,  [种类,ID,可卖数量]......]
#    其中种类,0为道具,1为武器,2为防具;ID是数据库编号
#
# 2、调用:$scene = Scene_Shop_Va.new(商店编号)  
#    比如你可以直接测试$scene = Scene_Shop_Va.new(1),已经设置好了。
#
# 3、商店出货:$game_system.shop_change(商店编号,种类,ID,数量)
#    如果是进货,把数量设置为负数即可
#
#==============================================================================
# ■ Scene_Shop
#------------------------------------------------------------------------------
#  处理商店画面的类。
#==============================================================================
class Game_System
attr_accessor :goods   
alias vaule_shop_66RPG_initialize initialize
def initialize
   vaule_shop_66RPG_initialize
   @goods = []
###########################################################################
   # 初期的时候的商店物品,编号顺序:种类,ID,可卖数量
   @goods[1] = [[0,1,15],[0,2,10],[0,3,3]]  #范例演示
   @goods[2] = [[0,3,8],[1,4,1],[1,2,1],[1,3,1],[1,4,1]]  
   @goods[3] = [[0,5,2],[1,3,1],[1,2,3]]  
###########################################################################
end
def shop_change(shop,kind,id,delnumber)
   dl = delnumber
   for dt in $game_system.goods[shop]
     if (dt[0]==kind) and (dt[1]==id)
       dt[2] -= dl
       dt[2] = [dt[2],99].min
       if dt[2] == 0
         $game_system.goods[shop].delete(dt)
       end
       return
     end
   end
   $game_system.goods[shop].push([kind,id,-delnumber])
end
end

class Scene_Shop_Va
def initialize(shop_number)
   # 当前商店编号
   @shop_now = shop_number     
end   
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
   # 生成帮助窗口
   @help_window = Window_Help.new
   # 生成指令窗口
   @command_window = Window_ShopCommand.new
   # 生成金钱窗口
   @gold_window = Window_Gold.new
   @gold_window.x = 480
   @gold_window.y = 64
   # 生成时间窗口
   @dummy_window = Window_Base.new(0, 128, 640, 352)
   # 生成购买窗口
   @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
   @buy_window.active = false
   @buy_window.visible = false
   @buy_window.help_window = @help_window
   # 生成卖出窗口
   @sell_window = Window_ShopSell.new
   @sell_window.active = false
   @sell_window.visible = false
   @sell_window.help_window = @help_window
   # 生成数量输入窗口
   @number_window = Window_ShopNumber.new
   @number_window.active = false
   @number_window.visible = false
   # 生成状态窗口
   @status_window = Window_ShopStatus.new
   @status_window.visible = false
   # 执行过渡
   Graphics.transition
   # 主循环
   loop do
     # 刷新游戏画面
     Graphics.update
     # 刷新输入信息
     Input.update
     # 刷新画面
     update
     # 如果画面切换的话就中断循环
     if $scene != self
       break
     end
   end
   # 准备过渡
   Graphics.freeze
   # 释放窗口
   @help_window.dispose
   @command_window.dispose
   @gold_window.dispose
   @dummy_window.dispose
   @buy_window.dispose
   @sell_window.dispose
   @number_window.dispose
   @status_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
   # 刷新窗口
   @help_window.update
   @command_window.update
   @gold_window.update
   @dummy_window.update
   @buy_window.update
   @sell_window.update
   @number_window.update
   @status_window.update
   # 指令窗口激活的情况下: 调用 update_command
   if @command_window.active
     update_command
     return
   end
   # 购买窗口激活的情况下: 调用 update_buy
   if @buy_window.active
     update_buy
     return
   end
   # 卖出窗口激活的情况下: 调用 update_sell
   if @sell_window.active
     update_sell
     return
   end
   # 个数输入窗口激活的情况下: 调用 update_number
   if @number_window.active
     update_number
     return
   end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (指令窗口激活的情况下)
#--------------------------------------------------------------------------
def update_command
   # 按下 B 键的情况下
   if Input.trigger?(Input::B)
     # 演奏取消 SE
     $game_system.se_play($data_system.cancel_se)
     # 切换到地图画面
     $scene = Scene_Map.new
     return
   end
   # 按下 C 键的情况下
   if Input.trigger?(Input::C)
     # 命令窗口光标位置分支
     case @command_window.index
     when 0  # 购买
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 窗口状态转向购买模式
       @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  # 卖出
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 窗口状态转向卖出模式
       @command_window.active = false
       @dummy_window.visible = false
       @sell_window.active = true
       @sell_window.visible = true
       @sell_window.refresh
     when 2  # 取消
       # 演奏确定 SE
       $game_system.se_play($data_system.decision_se)
       # 切换到地图画面
       $scene = Scene_Map.new
     end
     return
   end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (购买窗口激活的情况下)
#--------------------------------------------------------------------------
def update_buy
   # 设置状态窗口的物品
   @status_window.item = @buy_window.item
   # 按下 B 键的情况下
   if Input.trigger?(Input::B)
     # 演奏取消 SE
     $game_system.se_play($data_system.cancel_se)
     # 窗口状态转向初期模式
     @command_window.active = true
     @dummy_window.visible = true
     @buy_window.active = false
     @buy_window.visible = false
     @status_window.visible = false
     @status_window.item = nil
     # 删除帮助文本
     @help_window.set_text("")
     return
   end
   # 按下 C 键的情况下
   if Input.trigger?(Input::C)
     # 获取物品
     @item = @buy_window.item
     # 物品无效的情况下、或者价格在所持金以上的情况下
     if @item == nil or @item.price > $game_party.gold
       # 演奏冻结 SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # 获取物品所持数
     case @item
     when RPG::Item
       number = $game_party.item_number(@item.id)
     when RPG::Weapon
       number = $game_party.weapon_number(@item.id)
     when RPG::Armor
       number = $game_party.armor_number(@item.id)
     end
     # 如果已经拥有了 99 个情况下
     if number == 99
       # 演奏冻结 SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # 演奏确定 SE
     $game_system.se_play($data_system.decision_se)
     # 计算可以最多购买的数量
     max = @item.price == 0 ? 99 : $game_party.gold / @item.price
     max = [[max, 99 - number].min,@buy_window.item_number].min
     # 窗口状态转向数值输入模式
     @buy_window.active = false
     @buy_window.visible = false
     @number_window.set(@item, max, @item.price)
     @number_window.active = true
     @number_window.visible = true
   end
end
#--------------------------------------------------------------------------
# ● 画面更新 (卖出窗口激活的情况下)
#--------------------------------------------------------------------------
def update_sell
   # 按下 B 键的情况下
   if Input.trigger?(Input::B)
     # 演奏取消 SE
     $game_system.se_play($data_system.cancel_se)
     # 窗口状态转向初期模式
     @command_window.active = true
     @dummy_window.visible = true
     @sell_window.active = false
     @sell_window.visible = false
     @status_window.item = nil
     # 删除帮助文本
     @help_window.set_text("")
     return
   end
   # 按下 C 键的情况下
   if Input.trigger?(Input::C)
     # 获取物品
     @item = @sell_window.item
     # 设置状态窗口的物品
     @status_window.item = @item
     # 物品无效的情况下、或者价格为 0 (不能卖出) 的情况下
     if @item == nil or @item.price == 0
       # 演奏冻结 SE
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     # 演奏确定 SE
     $game_system.se_play($data_system.decision_se)
     # 获取物品的所持数
     case @item
     when RPG::Item
       number = $game_party.item_number(@item.id)
     when RPG::Weapon
       number = $game_party.weapon_number(@item.id)
     when RPG::Armor
       number = $game_party.armor_number(@item.id)
     end
     # 最大卖出个数 = 物品的所持数
     max = number
     # 窗口状态转向个数输入模式
     @sell_window.active = false
     @sell_window.visible = false
     @number_window.set(@item, max, @item.price / 2)
     @number_window.active = true
     @number_window.visible = true
     @status_window.visible = true
   end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (个数输入窗口激活的情况下)
#--------------------------------------------------------------------------
def update_number
   # 按下 B 键的情况下
   if Input.trigger?(Input::B)
     # 演奏取消 SE
     $game_system.se_play($data_system.cancel_se)
     # 设置个数输入窗口为不活动·非可视状态
     @number_window.active = false
     @number_window.visible = false
     # 命令窗口光标位置分支
     case @command_window.index
     when 0  # 购买
       # 窗口状态转向购买模式
       @buy_window.active = true
       @buy_window.visible = true
     when 1  # 卖出
       # 窗口状态转向卖出模式
       @sell_window.active = true
       @sell_window.visible = true
       @status_window.visible = false
     end
     return
   end
   # 按下 C 键的情况下
   if Input.trigger?(Input::C)
     # 演奏商店 SE
     $game_system.se_play($data_system.shop_se)
     # 设置个数输入窗口为不活动·非可视状态
     @number_window.active = false
     @number_window.visible = false
     # 命令窗口光标位置分支
     case @command_window.index
     when 0  # 购买
       # 购买处理
       temp = 0
       $game_party.lose_gold(@number_window.number * @item.price)
       case @item
       when RPG::Item
         $game_party.gain_item(@item.id, @number_window.number)
       when RPG::Weapon
         $game_party.gain_weapon(@item.id, @number_window.number)
         temp = 1
       when RPG::Armor
         $game_party.gain_armor(@item.id, @number_window.number)
         temp = 2
       end
       goods_del(temp,@item.id,@number_window.number)
       # 刷新各窗口
       @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
       @buy_window.help_window = @help_window
       @gold_window.refresh
       @buy_window.refresh
       @status_window.refresh
       # 窗口状态转向购买模式
       @buy_window.active = true
       @buy_window.visible = true
     when 1  # 卖出
       # 卖出处理
       $game_party.gain_gold(@number_window.number * (@item.price / 2))
       temp = 0
       case @item
       when RPG::Item
         $game_party.lose_item(@item.id, @number_window.number)
       when RPG::Weapon
         $game_party.lose_weapon(@item.id, @number_window.number)
         temp = 1
       when RPG::Armor
         $game_party.lose_armor(@item.id, @number_window.number)
         temp = 2
       end
       # 刷新各窗口
       goods_del(temp,@item.id,-@number_window.number)
       @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
       @buy_window.active = false
       @buy_window.visible = false
       @buy_window.help_window = @help_window
       @gold_window.refresh
       @sell_window.refresh
       @status_window.refresh
       # 窗口状态转向卖出模式
       @sell_window.active = true
       @sell_window.visible = true
       @status_window.visible = false
     end
     return
   end
end
# 删除可出售商品内容
def goods_del(kind,id,delnumber)
   dl = delnumber
   for dt in $game_system.goods[@shop_now]
     if (dt[0]==kind) and (dt[1]==id)
       dt[2] -= dl
       dt[2] = [dt[2],99].min
       if dt[2] == 0
         $game_system.goods[@shop_now].delete(dt)
       end
       return
     end
   end
   $game_system.goods[@shop_now].push([kind,id,-delnumber])
end
end

#==============================================================================
# ■ Window_ShopBuy_Va
#------------------------------------------------------------------------------
#  商店画面、浏览显示可以购买的商品的窗口。
#==============================================================================

class Window_ShopBuy_Va < Window_Selectable
attr_accessor :shop_goods
#--------------------------------------------------------------------------
# ● 初始化对像
#     shop_goods : 商品
#--------------------------------------------------------------------------
def initialize(shop_goods)
   super(0, 128, 368, 352)
   @shop_goods = shop_goods
   refresh
   self.index = 0
end
#--------------------------------------------------------------------------
# ● 获取物品
#--------------------------------------------------------------------------
def item
   return @data[self.index]
end
#--------------------------------------------------------------------------
# ● 获取物品
#--------------------------------------------------------------------------
def item_number
   return @data_number[self.index]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   @data_number = []
   for goods_item in @shop_goods
     case goods_item[0]
     when 0
       item = $data_items[goods_item[1]]
     when 1
       item = $data_weapons[goods_item[1]]
     when 2
       item = $data_armors[goods_item[1]]
     end
     if (item != nil) and (goods_item[2] != 0)
       @data.push(item)
       @data_number.push(goods_item[2])
     else
       @data.delete(item)
     end
   end
   # 如果项目数不是 0 就生成位图、描绘全部项目
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
end
#--------------------------------------------------------------------------
# ● 描绘羡慕
#     index : 项目编号
#--------------------------------------------------------------------------
def draw_item(index)
   item = @data[index]
   # 获取物品所持数
   case item
   when RPG::Item
     number = $game_party.item_number(item.id)
   when RPG::Weapon
     number = $game_party.weapon_number(item.id)
   when RPG::Armor
     number = $game_party.armor_number(item.id)
   end
   # 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
   # 除此之外的情况设置为无效文字色
   if item.price <= $game_party.gold and number < 99
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4
   y = index * 32
   rect = Rect.new(x, y, self.width - 32, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   bitmap = RPG::Cache.icon(item.icon_name)
   opacity = self.contents.font.color == normal_color ? 255 : 128
   self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
   self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
   self.contents.draw_text(x + 240, y, 88, 32, "剩  ", 2)
   self.contents.draw_text(x + 240, y, 88, 32, @data_number[index].to_s, 2)
   self.contents.draw_text(x + 180, y, 88, 32, item.price.to_s, 2)
end
#--------------------------------------------------------------------------
# ● 刷新帮助文本
#--------------------------------------------------------------------------
def update_help
   @help_window.set_text(self.item == nil ? "" : self.item.description)
end
end




#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

2
 楼主| 发表于 2009-7-3 09:55:12 | 只看该作者
本帖最后由 ONEWateR 于 2009-7-5 23:12 编辑

标题流星:
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
# 作者:chaochao+66rpg的66
#==============================================================================

#==============================================================================
#■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。
#==============================================================================

class Scene_Title
  WEATHER = 4    # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  MAXNUMBER = 18  # 天气图片数量
  
  WEATHER_FILE = "Graphics/Pictures/流星.png"
  # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨
  
  BLEND_TYPE = 0 # 合成方式(0:普通,1:加法,2:减法)
  WEATHER_X = 5 # X方向每回合减少象素
  WEATHER_Y = 5 # Y方向每回合减少象素
  WEATHER_OPACITY = 2 #每回合减低透明度
  START_OPACITY = 200 #出现时的透明度
  RAND_X = 1200 # 随机X范围
  RAND_Y = 600 # 随机Y范围
  HEIGHT = -600 # 出现时候的屏幕Y
  WIDTH = 100 # 出现时候的屏幕X
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  
  def main
    if $BTEST
      battle_test
      return
    end
    $data_actors = load_data("Data/Actors.rxdata")
    $data_classes = load_data("Data/Classes.rxdata")
    $data_skills = load_data("Data/Skills.rxdata")
    $data_items = load_data("Data/Items.rxdata")
    $data_weapons = load_data("Data/Weapons.rxdata")
    $data_armors = load_data("Data/Armors.rxdata")
    $data_enemies = load_data("Data/Enemies.rxdata")
    $data_troops = load_data("Data/Troops.rxdata")
    $data_states = load_data("Data/States.rxdata")
    $data_animations = load_data("Data/Animations.rxdata")
    $data_tilesets = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system = load_data("Data/System.rxdata")
    $game_system = Game_System.new
    # 生成标题图形
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    @ox = 0
    @oy = 0
    color1 = Color.new(255,255,255, 255)
    color2 = Color.new(255, 255, 255, 128)
    @rain_bitmap = Bitmap.new(7, 56)
    for i in 0..6
      @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
    end
    @storm_bitmap = Bitmap.new(34, 64)
    for i in 0..31
      @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
      @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
      @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
    end
    @snow_bitmap = Bitmap.new(6, 6)
    @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
    @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
    @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
    @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
    @sprites = []
    for i in 1..40
      sprite = Sprite.new
      case WEATHER
      when 1
        sprite.bitmap = @rain_bitmap
      when 2
        sprite.bitmap = @storm_bitmap
      when 3
        sprite.bitmap = @snow_bitmap
      when 4
        sprite.bitmap = Bitmap.new(WEATHER_FILE)
      end
      sprite.z = 1000
      sprite.x = -1000
      sprite.y = -1000
      sprite.visible = (i <= MAXNUMBER)
      sprite.blend_type = BLEND_TYPE
      sprite.opacity = START_OPACITY
      @sprites.push(sprite)
    end
    weather_update

    # 生成标题图形
    @sprite = [Sprite.new]
    for i in 0..6
      @sprite = Sprite.new
      @sprite.opacity = 0
    end
    @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
    @sprite[0].opacity = 0
    #开始游戏的图片
    @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/开始1.png")
    @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/开始2.png")
    #继续游戏的图片
    @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/继续1.png")
    @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/继续2.png")
    #结束游戏的图片
    @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/退出1.png")
    @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/退出2.png")
    #图片位置
    for i in 1..6
      x=75
      y=(i+1)/2*45+240
      @sprite.x =x
      @sprite.y =y
    end
    @continue_enabled = false
    for i in 0..3
      if FileTest.exist?("Save/Save#{i}.rxdata")
        @continue_enabled = true
      end
    end
    if @continue_enabled
      @command_index = 0
    else
      @command_index = 0
      @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/继续1.png")
    end
    $game_system.bgm_play($data_system.title_bgm)
    Audio.me_stop
    Audio.bgs_stop
    Graphics.transition
    loop do
      Graphics.update
      #淡出背景圖形
      if @sprite[0].opacity <= 255
        @sprite[0].opacity += 15
      end
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    # 釋放圖形
    for i in 0..6
      @sprite.bitmap.dispose
      @sprite.dispose
    end
      for sprite in @sprites
      sprite.dispose
    end
    @rain_bitmap.dispose
    @storm_bitmap.dispose
    @snow_bitmap.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新天气
  #--------------------------------------------------------------------------
  def weather_update
    return if WEATHER == 0
    for i in 1..MAXNUMBER
      sprite = @sprites
      if sprite == nil
        break
      end
      if WEATHER == 1
        sprite.x -= 2
        sprite.y += 16
        sprite.opacity -= 8
      end
      if WEATHER == 2
        sprite.x -= 8
        sprite.y += 16
        sprite.opacity -= 12
      end
      if WEATHER == 3
        sprite.x -= 2
        sprite.y += 8
        sprite.opacity -= 8
      end
      if WEATHER == 4
        sprite.x -= WEATHER_X
        sprite.y += WEATHER_Y
        sprite.opacity -= WEATHER_OPACITY
      end
      x = sprite.x - @ox
      y = sprite.y - @oy
      if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
        sprite.x = rand(RAND_X) + WIDTH + @ox
        sprite.y = rand(RAND_Y) + HEIGHT + @oy
        sprite.opacity = START_OPACITY
      end
    end
  end


  def update
  chaochaocommandchaochao
  if Input.trigger?(Input::C)
    case @command_index
      when 0
        command_new_game
      when 1
        command_continue
      when 2
        command_shutdown
      end
    end
    weather_update
  end
  
  def chaochaocommandchaochao
    if Input.trigger?(Input::UP)
      @command_index -= 1
      if @command_index < 0
        @command_index = 2
      end
      $game_system.se_play($data_system.cursor_se)
    end
    if Input.trigger?(Input::DOWN)
      @command_index += 1
      if @command_index > 2
        @command_index = 0
      end
      $game_system.se_play($data_system.cursor_se)
    end
    case @command_index
    when 0
      if @sprite[1].opacity >= 0
        @sprite[1].opacity -= 30
      end
      if @sprite[2].opacity <= 240
        @sprite[2].opacity += 30
      end
      if @sprite[3].opacity <= 210
        @sprite[3].opacity += 30
      end
      if @sprite[4].opacity >= 0
        @sprite[4].opacity -= 30
      end
      if @sprite[5].opacity <= 210
        @sprite[5].opacity += 30
      end
      if @sprite[6].opacity >= 0
        @sprite[6].opacity -= 30
      end
    when 1
      if @sprite[1].opacity <= 210
        @sprite[1].opacity += 30
      end
      if @sprite[2].opacity >= 0
        @sprite[2].opacity -= 30
      end
      if @sprite[3].opacity >= 0
        @sprite[3].opacity -= 30
      end
      if @sprite[4].opacity <= 240
        @sprite[4].opacity += 30
      end
      if @sprite[5].opacity <= 210
        @sprite[5].opacity += 30
      end
      if @sprite[6].opacity >= 0
        @sprite[6].opacity -= 30
      end
    when 2
      if @sprite[1].opacity <= 210
        @sprite[1].opacity += 30
      end
      if @sprite[2].opacity >= 0
        @sprite[2].opacity -= 30
      end
      if @sprite[3].opacity <= 210
        @sprite[3].opacity += 30
      end
      if @sprite[4].opacity >= 0
        @sprite[4].opacity -= 30
      end
      if @sprite[5].opacity >= 0
        @sprite[5].opacity -= 30
      end
      if @sprite[6].opacity <= 240
        @sprite[6].opacity += 30
      end
    end
  end
end

# ————————————————————————————————————
# 本脚本来自www.66rpg.com,转载请保留此信息
# ————————————————————————————————————

class Interpreter
  
  BOOK_READING = 50 # 默认打开50开关后进入读书系统
  
  #--------------------------------------------------------------------------
  # ● 显示文章
  #--------------------------------------------------------------------------
  def command_101
    # 另外的文章已经设置过 message_text 的情况下
    if $game_temp.message_text != nil
      # 结束
      return false
    end
    # 设置信息结束后待机和返回调用标志
    @message_waiting = true
    $game_temp.message_proc = Proc.new { @message_waiting = false }
    # message_text 设置为 1 行
    $game_temp.message_text = @list[@index].parameters[0] + "\n"
    line_count = 1
    # 循环
    loop do
      # 下一个事件指令为文章两行以上的情况
      if $game_switches[BOOK_READING] and @list[@index+1].code == 101#阅读书刊报纸
        unless $game_temp.in_battle
          $scene.message_window.height = 320
          $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
          $scene.message_window.contents.font.size = 20
          $game_temp.message_text += @list[@index+1].parameters[0] +"\n"
          line_count+=1
          @index+=1
        end
      end
      if $game_switches[BOOK_READING]==false
        unless $game_temp.in_battle
          if $scene.message_window.height == 320
            $scene.message_window.height = 160
            $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
            $scene.message_window.contents.font.size = 22
          end
        end
      end
      if @list[@index+1].code == 401
        # message_text 添加到第 2 行以下
        $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
        line_count += 1
      # 事件指令不在文章两行以下的情况
      else
        # 下一个事件指令为显示选择项的情况下
        if @list[@index+1].code == 102
          # 如果选择项能收纳在画面里
          if @list[@index+1].parameters[0].size <= 4 - line_count
            # 推进索引
            @index += 1
            # 设置选择项
            $game_temp.choice_start = line_count
            setup_choices(@list[@index].parameters)
          end
        # 下一个事件指令为处理输入数值的情况下
        elsif @list[@index+1].code == 103
          # 如果数值输入窗口能收纳在画面里
          if line_count < 4
            # 推进索引
            @index += 1
            # 设置输入数值
            $game_temp.num_input_start = line_count
            $game_temp.num_input_variable_id = @list[@index].parameters[0]
            $game_temp.num_input_digits_max = @list[@index].parameters[1]
          end
        end
        # 继续
        return true
      end
      # 推进索引
      @index += 1
    end
  end
end

class Scene_Map
  attr_accessor :message_window
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2009-7-5 23:13:46 | 只看该作者
无论哪个脚本,独立使用都有bug = =~
不知是否偶弄错了~
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

4
 楼主| 发表于 2009-7-7 13:56:32 | 只看该作者
无论哪个脚本,独立使用都有bug = =~
不知是否偶弄错了~
ONEWateR 发表于 2009-7-5 23:13

因为脚本许多地方被论坛自动变成表情了..
你把表情换成代码就可以了- -
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-7-9
帖子
22
5
发表于 2009-7-11 01:09:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-1-27 07:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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