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

Project1

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

[RMVX发布] 【怪物图鉴 + 掉宝扩张】脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2011-9-13
帖子
55
跳转到指定楼层
1
发表于 2012-10-18 16:08:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 最后的信徒 于 2012-10-18 16:17 编辑





【怪物图鉴 + 掉宝扩张】脚本
  1. #■□■□■□■□■□■□■□
  2. #□  怪物图鉴  +  掉宝扩张 ■
  3. #■□■□■□■□■□■□■□
  4. #
  5. #   作者:最后的信徒
  6. #   时间:2012/10/18
  7. #
  8. #■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
  9. #      使用说明:⑴需连同 「读取rmvx备注栏」 脚本使用
  10. #                ⑵掉落物品的设置:
  11. #                       把掉落的物品写到敌人的备注里
  12. #                       写法:掉落1 = [1,1,10]
  13. #                             掉落2 = [2,2,20]
  14. #                             掉落3 = [3,3,30]
  15. #
  16. #                   规格说明:掉落+序号 = [种类,id,概率]
  17. #                       注意:每个物品之间用 回车键 分行
  18. #                             逗号为半角字符
  19. #                             序号不能重复,不能为0,重复时最顶那个有效
  20. #                             种类(1为物品,2为武器,3为防具)
  21. #                             概率为百分比,如第一个物品的概率为10%
  22. #                             概率可以填 大于或等于0的整数
  23. #                       默认最大个数为20,可以在变量设置中修改  $宝物数
  24. #
  25. #      图鉴的呼出方法:事件中写脚本(4个中文):呼出图鉴
  26. #
  27. #                      呼出图鉴后,按方向键 左或右 来切换显示的属性
  28. #
  29. #                      图鉴不显示系统的掉落物品
  30. #
  31. #      关于属性有效度:请找到  变量  属性名称  按顺序设置你的属性有效度名称
  32. #
  33. #■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
  34. #--------------------------------------------------------------------------
  35. # ● 变量设置
  36. #--------------------------------------------------------------------------
  37.   $遇到的怪物组 = []              #遭遇到的怪物数组
  38.   $页数 = 0                       # 用于 怪物图鉴 转换属性显示
  39.   $宝物数 = 20                    
  40. #============================================================================
  41. class Window_tujian < Window_Base
  42.   #==========================================================================
  43.   # ● 初始化对象
  44.   #==========================================================================
  45.   def initialize(x,y,n,m,标题 = false)
  46.     super(x, y, n, m)
  47.     图鉴标题 if 标题
  48.   end

  49.   
  50.   def 图鉴标题
  51.     self.contents.clear
  52.     #------------------------------------------------------------------------
  53.     # ◆ 标题名称
  54.     #------------------------------------------------------------------------
  55.     self.contents.font.color = Color.new(255, 0, 0, 255)
  56.     self.contents.font.size = 40
  57.     self.contents.draw_text(0, 0, 200-32, 40, "怪物图鉴", 1)
  58.     #------------------------------------------------------------------------
  59.     # ◆ 完成度
  60.     #------------------------------------------------------------------------
  61.     text = "完成度:" + $遇到的怪物组.size.to_s + "/" + ($data_enemies.size-1).to_s
  62.     self.contents.font.color = Color.new(255, 0, 0, 255)
  63.     self.contents.font.size = 20
  64.     self.contents.draw_text(0, 60, 200-32, 20, text, 1)
  65.   end
  66.   
  67.   def 图鉴信息 (id,页数)
  68.     $页数 = 页数
  69.     self.contents.clear
  70.     if $遇到的怪物组[id-1] == true
  71.       #-----------------------------------------------------------------------
  72.       # 图像
  73.       #-----------------------------------------------------------------------
  74.       bitmap = Cache.battler($data_enemies[id].battler_name,$data_enemies[id].battler_hue)
  75.       src_rect = Rect.new(0,0,bitmap.width,bitmap.height)
  76.       self.contents.blt(150-bitmap.width/2,208-bitmap.height/2,bitmap,src_rect)
  77.       #------------------------------------------------------------------------
  78.       # ◆ 名称
  79.       #------------------------------------------------------------------------
  80.       text = $data_enemies[id].name.to_s
  81.       self.contents.font.color = Color.new(255, 0, 0, 255)
  82.       self.contents.font.size = 20
  83.       self.contents.draw_text(0, 0, 200, 20, text, 0)
  84.       
  85.       if $页数 == 0      #显示第一页内容
  86.         #------------------------------------------------------------------------
  87.         # ◆ hp
  88.         #------------------------------------------------------------------------
  89.         text = "生命值:" +$data_enemies[id].maxhp.to_s
  90.         self.contents.font.color = Color.new(255, 255, 0, 255)
  91.         self.contents.font.size = 15
  92.         self.contents.draw_text(0, 40, 150, 15, text, 0)
  93.         #------------------------------------------------------------------------
  94.         # ◆ mp
  95.         #------------------------------------------------------------------------
  96.         text = "魔法值:" +$data_enemies[id].maxmp.to_s
  97.         self.contents.font.color = Color.new(255, 255, 0, 255)
  98.         self.contents.font.size = 15
  99.         self.contents.draw_text(160, 40, 150, 15, text, 0)
  100.         #------------------------------------------------------------------------
  101.         # ◆ 攻击力
  102.         #------------------------------------------------------------------------
  103.         text = "攻击力:" +$data_enemies[id].atk.to_s
  104.         self.contents.font.color = Color.new(255, 255, 0, 255)
  105.         self.contents.font.size = 15
  106.         self.contents.draw_text(0, 70, 150, 15, text, 0)
  107.         #------------------------------------------------------------------------
  108.         # ◆ 防御力
  109.         #------------------------------------------------------------------------
  110.         text = "防御力:" +$data_enemies[id].def.to_s
  111.         self.contents.font.color = Color.new(255, 255, 0, 255)
  112.         self.contents.font.size = 15
  113.         self.contents.draw_text(160, 70, 150, 15, text, 0)
  114.         #------------------------------------------------------------------------
  115.         # ◆ 敏捷度
  116.         #------------------------------------------------------------------------
  117.         text = "敏捷度:" +$data_enemies[id].agi.to_s
  118.         self.contents.font.color = Color.new(255, 255, 0, 255)
  119.         self.contents.font.size = 15
  120.         self.contents.draw_text(0, 90, 150, 15, text, 0)
  121.         #------------------------------------------------------------------------
  122.         # ◆ 精神力
  123.         #------------------------------------------------------------------------
  124.         text = "精神力:" +$data_enemies[id].spi.to_s
  125.         self.contents.font.color = Color.new(255, 255, 0, 255)
  126.         self.contents.font.size = 15
  127.         self.contents.draw_text(160, 90, 150, 15, text, 0)
  128.         #------------------------------------------------------------------------
  129.         # ◆ 命中
  130.         #------------------------------------------------------------------------
  131.         text = "命中率:" +$data_enemies[id].hit.to_s
  132.         self.contents.font.color = Color.new(255, 255, 0, 255)
  133.         self.contents.font.size = 15
  134.         self.contents.draw_text(0, 120, 150, 15, text, 0)
  135.         #------------------------------------------------------------------------
  136.         # ◆  回避
  137.         #------------------------------------------------------------------------
  138.         text = "回避率:" +$data_enemies[id].eva.to_s
  139.         self.contents.font.color = Color.new(255, 255, 0, 255)
  140.         self.contents.font.size = 15
  141.         self.contents.draw_text(160, 120, 150, 15, text, 0)
  142.         #------------------------------------------------------------------------
  143.         # ◆ 经验
  144.         #------------------------------------------------------------------------
  145.         text = "经验值:" +$data_enemies[id].exp.to_s
  146.         self.contents.font.color = Color.new(255, 255, 0, 255)
  147.         self.contents.font.size = 15
  148.         self.contents.draw_text(0, 150, 150, 15, text, 0)
  149.         #------------------------------------------------------------------------
  150.         # ◆ 金钱
  151.         #------------------------------------------------------------------------
  152.         text = "金 钱:" +$data_enemies[id].gold.to_s
  153.         self.contents.font.color = Color.new(255, 255, 0, 255)
  154.         self.contents.font.size = 15
  155.         self.contents.draw_text(160, 150, 150, 15, text, 0)
  156.         #------------------------------------------------------------------------
  157.         # ◆ 悬浮/爆击能力
  158.         #------------------------------------------------------------------------
  159.         text = $data_enemies[id].levitate == true ? "悬浮单位   " : ""
  160.         text += $data_enemies[id].has_critical == true ? "暴击能力" : ""
  161.         self.contents.font.color = Color.new(255, 255, 0, 255)
  162.         self.contents.font.size = 15
  163.         self.contents.draw_text(100, 5, 200, 15, text, 2)
  164.    
  165.         #------------------------------------------------------------------------
  166.         # ◆ 属性有效度
  167.         #------------------------------------------------------------------------
  168.         属性名称 = ["格斗","斩击","刺突","打击","弓","鞭","精神","吸收","炎",
  169.                     "冷气","雷","水","大地","风","神圣","黑暗"]
  170.         弱点属性名称 = []
  171.         弱点属性值 = []
  172.         抗性名称 = []
  173.         抗性值 = []
  174.         n = 0
  175.         m = 0
  176.         for i in 0..属性名称.size
  177.           case $data_enemies[id].element_ranks[i]
  178.           when 1
  179.             弱点属性名称[n] =属性名称[i-1].to_s
  180.             弱点属性值[n] = "伤害增加100%"
  181.             n += 1
  182.           when 2
  183.             弱点属性名称[n] =属性名称[i-1].to_s
  184.             弱点属性值[n] = "伤害增加50%"
  185.             n += 3
  186.           when 4
  187.             抗性名称[m] =属性名称[i-1].to_s
  188.             抗性值[m] = "伤害减少50%"
  189.             m += 1
  190.           when 5
  191.             抗性名称[m] =属性名称[i-1].to_s
  192.             抗性值[m] = "无效"
  193.             m += 1
  194.           when 6
  195.             抗性名称[m] =属性名称[i-1].to_s
  196.             抗性值[m] = "回复生命"
  197.             m += 1
  198.           end
  199.         end
  200.         n = 0
  201.         for i in 0..抗性名称.size
  202.           if 抗性名称[i] != nil
  203.             text = 抗性名称[i]
  204.             self.contents.font.color = Color.new(255, 0, 255, 255)
  205.             self.contents.font.size = 15
  206.             self.contents.draw_text(160, 220 + n * 20, 140, 15, text, 0)
  207.             text = 抗性值[i]
  208.             self.contents.font.color = Color.new(255, 0, 255, 255)
  209.             self.contents.font.size = 15
  210.             self.contents.draw_text(160, 220 + n * 20, 140, 15, text, 2)
  211.             n += 1
  212.           end
  213.         end
  214.         n = 0
  215.         for i in 0..弱点属性名称.size
  216.           if 弱点属性名称[i] != nil
  217.             text = 弱点属性名称[i]
  218.             self.contents.font.color = Color.new(0, 255, 0, 255)
  219.             self.contents.font.size = 15
  220.             self.contents.draw_text(0, 220 + n * 20, 140, 15, text, 0)
  221.             text = 弱点属性值[i]
  222.             self.contents.font.color = Color.new(0, 255, 0, 255)
  223.             self.contents.font.size = 15
  224.             self.contents.draw_text(0, 220 + n * 20, 140, 15, text, 2)
  225.             n += 1
  226.           end
  227.         end
  228.         if 弱点属性名称.size > 0
  229.           self.contents.font.color = Color.new(128, 0, 255, 255)
  230.           self.contents.font.size = 15
  231.           self.contents.draw_text(0, 200, 140, 15, "弱点", 1)
  232.         end
  233.         if 抗性名称.size > 0
  234.           self.contents.font.color = Color.new(128, 0, 255, 255)
  235.           self.contents.font.size = 15
  236.           self.contents.draw_text(160, 200, 140, 15, "抗性", 1)
  237.         end
  238.       else
  239.         #--------------------------------------------------------------------
  240.         # ◆ 技能
  241.         #--------------------------------------------------------------------
  242.         n = 0
  243.         self.contents.font.color = Color.new(0, 255, 0, 255)
  244.         self.contents.font.size = 15
  245.         self.contents.draw_text(0, 45, 140, 15, "技能", 0)
  246.         for action in $data_enemies[id].actions
  247.           if action.kind != 0
  248.             self.contents.font.color = Color.new(255, 255, 0, 255)
  249.             self.contents.font.size = 15
  250.             self.contents.draw_text(0,70+n*15,140,15,$data_skills[action.skill_id].name)
  251.             n += 1
  252.           end
  253.           break if n == 20
  254.         end
  255.         #--------------------------------------------------------------------
  256.         # ◆ 掉落物品   
  257.         #--------------------------------------------------------------------
  258.         掉落 = ""
  259.         n = 0
  260.         for i in 1..$宝物数
  261.           掉落 = "掉落" + i.to_s
  262.           掉落 = $data_enemies[id].read_note(掉落)
  263.           if 掉落 != "" and 掉落 != nil
  264.             self.contents.font.color = Color.new(0, 255, 0, 255)
  265.             self.contents.font.size = 15
  266.             self.contents.draw_text(160, 45, 140, 15, "掉落物品", 0)
  267.             self.contents.draw_text(160, 45, 140, 15, "概率", 2)
  268.             case 掉落[0]
  269.             when 1  #物品
  270.               self.contents.font.color = Color.new(255, 255, 0, 255)
  271.               self.contents.font.size = 15
  272.               self.contents.draw_text(160, 70+n*15, 140, 15, $data_items[掉落[1]].name.to_s, 0)
  273.               self.contents.draw_text(160, 70+n*15, 140, 15, 掉落[2].to_s+"%", 2)
  274.               n += 1
  275.             when 2  #武器
  276.               self.contents.font.color = Color.new(255, 255, 0, 255)
  277.               self.contents.font.size = 15
  278.               self.contents.draw_text(160, 70+n*15, 140, 15, $data_weapons[掉落[1]].name.to_s, 0)
  279.               self.contents.draw_text(160, 70+n*15, 140, 15, 掉落[2].to_s+"%", 2)
  280.               n += 1
  281.             when 3  #防具
  282.               self.contents.font.color = Color.new(255, 255, 0, 255)
  283.               self.contents.font.size = 15
  284.               self.contents.draw_text(160, 70+n*15, 140, 15, $data_armors[掉落[1]].name.to_s, 0)
  285.               self.contents.draw_text(160, 70+n*15, 140, 15, 掉落[2].to_s+"%", 2)
  286.               n += 1
  287.             end
  288.           end
  289.         end
  290.       end
  291.     else
  292.       self.contents.font.color = Color.new(255, 255, 128, 255)
  293.       self.contents.font.size = 20
  294.       self.contents.draw_text(86, 200, 140, 20, "没有资料", 1)
  295.     end
  296.   end
  297. end
  298. #============================================================================
  299. # ● 处理
  300. #============================================================================
  301. class Scene_tujian < Scene_Base
  302.   #--------------------------------------------------------------------------
  303.   # ● 开始处理
  304.   #--------------------------------------------------------------------------
  305.   def start
  306.     super
  307.     @tujian_window = Window_tujian.new (200, 0, 344, 416)
  308.     @tujianbiaoti_window = Window_tujian.new (0, 0, 200, 120, true)
  309.     create_command_window                 # 生成命令窗口
  310.    
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ● 结束处理
  314.   #--------------------------------------------------------------------------
  315.   def terminate
  316.     super
  317.     @tujian_window.dispose
  318.     @tujianbiaoti_window.dispose
  319.     @command_window.dispose           #释放命令窗口
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● 更新画面
  323.   #--------------------------------------------------------------------------
  324.   def update
  325.     super
  326.     @tujian_window.update
  327.    
  328.     @command_window.update

  329.     update_command_selection         #更新命令窗口
  330.    
  331.   end
  332.   #--------------------------------------------------------------------------
  333.   # ● 生成命令窗口
  334.   #--------------------------------------------------------------------------
  335.   def create_command_window
  336.     怪物列表 = []
  337.     for i in 0..$data_enemies.size - 2
  338.       怪物列表[i] = $data_enemies[i+1].name.to_s
  339.     end
  340.    
  341.     @command_window = Window_滚动命令.new(0,120,200,296, 怪物列表)
  342.     @command_window.index = 0
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● 更新命令窗口
  346.   #--------------------------------------------------------------------------
  347.   def update_command_selection
  348.     if Input.trigger?(Input::B)
  349.       Sound.play_cancel
  350.       $scene = Scene_Map.new
  351.     elsif Input.trigger?(Input::C)
  352.       Sound.play_decision
  353.       @tujian_window.图鉴信息 (@command_window.index+1,0)
  354.     elsif Input.trigger?(Input::RIGHT) or Input.trigger?(Input::LEFT)
  355.       Sound.play_decision
  356.       if $页数 == 0
  357.         @tujian_window.图鉴信息 (@command_window.index+1,1)
  358.       else
  359.         @tujian_window.图鉴信息 (@command_window.index+1,0)
  360.       end
  361.     end
  362.   end
  363.   

  364. end

  365. #============================================================================
  366. class Game_Interpreter
  367.   #--------------------------------------------------------------------------
  368.   # ● 呼出图鉴
  369.   #--------------------------------------------------------------------------
  370.   def 呼出图鉴
  371.     return if $game_temp.in_battle           #判断是否战斗中
  372.     return if $game_map.interpreter.running? # 判断是否有事件正在执行
  373.     return if $game_player.moving?           # 判断主角是否移动中
  374.     $scene = Scene_tujian.new
  375.   end
  376. end
  377. #==============================================================================
  378. # ■ Game_Troop
  379. #------------------------------------------------------------------------------
  380. #  处理敌人队伍和战斗相关资料的类,也可执行如战斗事件管理之类的功能。
  381. # 本类的实例请参考 $game_troop。
  382. #==============================================================================
  383. class Game_Troop < Game_Unit
  384.   #--------------------------------------------------------------------------
  385.   # ● 设置
  386.   #     troop_id : 队伍 ID
  387.   #--------------------------------------------------------------------------
  388.   def setup(troop_id)
  389.     clear
  390.     @troop_id = troop_id
  391.     @enemies = []
  392.     for member in troop.members
  393.       next if $data_enemies[member.enemy_id] == nil
  394.       enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  395.       enemy.hidden = member.hidden
  396.       enemy.immortal = member.immortal
  397.       enemy.screen_x = member.x
  398.       enemy.screen_y = member.y
  399.       @enemies.push(enemy)
  400.       #----------------------------------------------------------------------
  401.       # ● 设置图鉴中 遇到过的怪物
  402.       #----------------------------------------------------------------------
  403.       $遇到的怪物组[member.enemy_id-1] = true
  404.     end
  405.     make_unique_names
  406.   end
  407.   #--------------------------------------------------------------------------
  408.   # ● 生成掉落物品数组
  409.   #--------------------------------------------------------------------------
  410.   def make_drop_items
  411.     drop_items = []
  412.     for enemy in dead_members
  413.       for di in [enemy.drop_item1, enemy.drop_item2]
  414.         next if di.kind == 0
  415.         next if rand(di.denominator) != 0
  416.         if di.kind == 1
  417.           drop_items.push($data_items[di.item_id])
  418.         elsif di.kind == 2
  419.           drop_items.push($data_weapons[di.weapon_id])
  420.         elsif di.kind == 3
  421.           drop_items.push($data_armors[di.armor_id])
  422.         end
  423.       end
  424.       for i in 1..$宝物数
  425.         掉落 = "掉落" + i.to_s
  426.         掉落 = $data_enemies[enemy.enemy_id].read_note(掉落)
  427.         if 掉落 != "" and 掉落 != nil
  428.           if rand(99)+1 <= 掉落[2].to_i
  429.             case 掉落[0].to_i
  430.             when 1
  431.               drop_items.push($data_items[掉落[1].to_i])
  432.             when 2
  433.               drop_items.push($data_weapons[掉落[1].to_i])
  434.             when 3
  435.               drop_items.push($data_armors[掉落[1].to_i])
  436.             end
  437.           end
  438.         end
  439.       end
  440.     end
  441.     return drop_items
  442.   end
  443. end
  444. #==============================================================================
  445. #------------------------------------------------------------------------------
  446. #  拥有光标的移动以及滚动功能的命令窗口类。
  447. #==============================================================================

  448. class Window_滚动命令 < Window_Base
  449.   #--------------------------------------------------------------------------
  450.   # ● 定义实例变量
  451.   #--------------------------------------------------------------------------
  452.   attr_accessor   :item_max                 # 选项数
  453.   attr_accessor   :column_max               # 行数
  454.   attr_accessor   :index                    # 光标位置
  455.   attr_accessor   :help_window              # 帮助窗口
  456.   #--------------------------------------------------------------------------
  457.   # ● 初始化对像
  458.   #     x      : 窗口 X 座标
  459.   #     y      : 窗口 Y 座标
  460.   #     width  : 窗口宽度
  461.   #     height : 窗口高度
  462.   #     命令组 :按钮数组
  463.   #     spacing : 横向排列时栏间空格
  464.   #--------------------------------------------------------------------------
  465.   def initialize(x, y, width, height, 命令组, spacing = 32)
  466.     @item_max = 命令组.size
  467.     @column_max = 1
  468.     @index = 0
  469.     @spacing = spacing
  470.     @命令组 = 命令组
  471.     super(x, y, width, height)
  472.   end
  473.   #--------------------------------------------------------------------------
  474.   # ● 生成窗口内容
  475.   #--------------------------------------------------------------------------
  476.   def create_contents
  477.     self.contents.dispose
  478.     self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH].max)
  479.   end
  480.   #--------------------------------------------------------------------------
  481.   # ● 设置光标位置
  482.   #     index : 新光标位置
  483.   #--------------------------------------------------------------------------
  484.   def index=(index)
  485.     @index = index
  486.     update_cursor
  487.   end
  488.   #--------------------------------------------------------------------------
  489.   # ● 计算行数
  490.   #--------------------------------------------------------------------------
  491.   def row_max
  492.     return (@item_max + @column_max - 1) / @column_max
  493.   end
  494.   #--------------------------------------------------------------------------
  495.   # ● 获取首行
  496.   #--------------------------------------------------------------------------
  497.   def top_row
  498.     return self.oy / WLH
  499.   end
  500.   #--------------------------------------------------------------------------
  501.   # ● 设置首行
  502.   #     row : 显示在最上的行
  503.   #--------------------------------------------------------------------------
  504.   def top_row=(row)
  505.     row = 0 if row < 0
  506.     row = row_max - 1 if row > row_max - 1
  507.     self.oy = row * WLH
  508.   end
  509.   #--------------------------------------------------------------------------
  510.   # ● 获取一页能显示的行数
  511.   #--------------------------------------------------------------------------
  512.   def page_row_max
  513.     return (self.height - 32) / WLH
  514.   end
  515.   #--------------------------------------------------------------------------
  516.   # ● 获取一页能显示的选项
  517.   #--------------------------------------------------------------------------
  518.   def page_item_max
  519.     return page_row_max * @column_max
  520.   end
  521.   #--------------------------------------------------------------------------
  522.   # ● 获取末行
  523.   #--------------------------------------------------------------------------
  524.   def bottom_row
  525.     return top_row + page_row_max - 1
  526.   end
  527.   #--------------------------------------------------------------------------
  528.   # ● 设置末行
  529.   #     row : 显示在最底的行
  530.   #--------------------------------------------------------------------------
  531.   def bottom_row=(row)
  532.     self.top_row = row - (page_row_max - 1)
  533.   end
  534.   #--------------------------------------------------------------------------
  535.   # ● 设置选项矩形
  536.   #     index : 项目编号
  537.   #--------------------------------------------------------------------------
  538.   def item_rect(index)
  539.     rect = Rect.new(0, 0, 0, 0)
  540.     rect.width = (contents.width + @spacing) / @column_max - @spacing
  541.     rect.height = WLH
  542.     rect.x = index % @column_max * (rect.width + @spacing)
  543.     rect.y = index / @column_max * WLH
  544.     return rect
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # ● 判断光标是否能够移动
  548.   #--------------------------------------------------------------------------
  549.   def cursor_movable?
  550.     return false if (not visible or not active)
  551.     return false if (index < 0 or index > @item_max or @item_max == 0)
  552.     return false if (@opening or @closing)
  553.     return true
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● 光标下移
  557.   #     wrap : 允许循环
  558.   #--------------------------------------------------------------------------
  559.   def cursor_down(wrap = false)
  560.     if (@index < @item_max - @column_max) or (wrap and @column_max == 1)
  561.       @index = (@index + @column_max) % @item_max
  562.     end
  563.   end
  564.   #--------------------------------------------------------------------------
  565.   # ● 光标上移
  566.   #     wrap : 允许循环
  567.   #--------------------------------------------------------------------------
  568.   def cursor_up(wrap = false)
  569.     if (@index >= @column_max) or (wrap and @column_max == 1)
  570.       @index = (@index - @column_max + @item_max) % @item_max
  571.     end
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ● 光标右移
  575.   #     wrap : 允许循环
  576.   #--------------------------------------------------------------------------
  577.   def cursor_right(wrap = false)
  578.     if (@column_max >= 2) and
  579.        (@index < @item_max - 1 or (wrap and page_row_max == 1))
  580.       @index = (@index + 1) % @item_max
  581.     end
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ● 光标左移
  585.   #     wrap : 允许循环
  586.   #--------------------------------------------------------------------------
  587.   def cursor_left(wrap = false)
  588.     if (@column_max >= 2) and
  589.        (@index > 0 or (wrap and page_row_max == 1))
  590.       @index = (@index - 1 + @item_max) % @item_max
  591.     end
  592.   end
  593.   #--------------------------------------------------------------------------
  594.   # ● 光标移至下一页
  595.   #--------------------------------------------------------------------------
  596.   def cursor_pagedown
  597.     if top_row + page_row_max < row_max
  598.       @index = [@index + page_item_max, @item_max - 1].min
  599.       self.top_row += page_row_max
  600.     end
  601.   end
  602.   #--------------------------------------------------------------------------
  603.   # ● 光标移至上一页
  604.   #--------------------------------------------------------------------------
  605.   def cursor_pageup
  606.     if top_row > 0
  607.       @index = [@index - page_item_max, 0].max
  608.       self.top_row -= page_row_max
  609.     end
  610.   end
  611.   #--------------------------------------------------------------------------
  612.   # ● 更新画面
  613.   #--------------------------------------------------------------------------
  614.   def update
  615.     super
  616.     if cursor_movable?
  617.       last_index = @index
  618.       if Input.repeat?(Input::DOWN)
  619.         cursor_down(Input.trigger?(Input::DOWN))
  620.       end
  621.       if Input.repeat?(Input::UP)
  622.         cursor_up(Input.trigger?(Input::UP))
  623.       end
  624.       if Input.repeat?(Input::RIGHT)
  625.         cursor_right(Input.trigger?(Input::RIGHT))
  626.       end
  627.       if Input.repeat?(Input::LEFT)
  628.         cursor_left(Input.trigger?(Input::LEFT))
  629.       end
  630.       if Input.repeat?(Input::R)
  631.         cursor_pagedown
  632.       end
  633.       if Input.repeat?(Input::L)
  634.         cursor_pageup
  635.       end
  636.       if @index != last_index
  637.         Sound.play_cursor
  638.       end
  639.     end
  640.     update_cursor
  641.   end
  642.   #--------------------------------------------------------------------------
  643.   # ● 刷新
  644.   #--------------------------------------------------------------------------
  645.   def refresh
  646.     self.contents.clear
  647.     for i in top_row..bottom_row
  648.       draw_item(i)
  649.     end
  650.   end
  651.   #--------------------------------------------------------------------------
  652.   # ● 绘制项目
  653.   #     index   : 项目位置
  654.   #     
  655.   #--------------------------------------------------------------------------
  656.   def draw_item(index)
  657.     rect = item_rect(index)
  658.     rect.x += 4
  659.     rect.width -= 8
  660.     self.contents.clear_rect(rect)
  661.     self.contents.font.color = normal_color
  662.     if $遇到的怪物组[index] == true
  663.       self.contents.draw_text(rect, (index+1).to_s + ":" + @命令组[index])
  664.     else
  665.       self.contents.draw_text(rect, (index+1).to_s + ":????")
  666.     end
  667.   end
  668.   #--------------------------------------------------------------------------
  669.   # ● 更新光标
  670.   #--------------------------------------------------------------------------
  671.   def update_cursor
  672.     if @index < 0                   # 当光标位置小于0
  673.       self.cursor_rect.empty        # 隐藏光标
  674.     else                            # 当光标位置为0或大于
  675.       row = @index / @column_max    # 获取当前行
  676.       if row < top_row              # 若先于首行
  677.         self.top_row = row          # 向上滚动
  678.       end
  679.       if row > bottom_row           # 若後于末行
  680.         self.bottom_row = row       # 向下滚动
  681.       end
  682.       rect = item_rect(@index)      # 获取所选项目矩形
  683.       rect.y -= self.oy             # 设矩形为滚动位置
  684.       self.cursor_rect = rect       # 更新光标矩形
  685.     end
  686.     refresh
  687.   end
  688. end

复制代码
关于 读取rmvx备注栏  脚本
请自行查找

评分

参与人数 1星屑 +640 收起 理由
feizhaodan + 640 奖赏条例

查看全部评分

Lv1.梦旅人

梦石
0
星屑
38
在线时间
1165 小时
注册时间
2012-3-16
帖子
5336
2
发表于 2012-10-18 17:06:28 | 只看该作者
图鉴脚本早有了的说、

点评

是么?!  发表于 2013-1-9 21:45
我想要到的是保护同伴的力量,能与同伴一起欢笑的未来的力量,如果无法做到的话,那就无需继承,如果是这样的彭格列的话,那我亲手毁掉它!
  
                       欢迎加入我们的家族~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2011-9-13
帖子
55
3
 楼主| 发表于 2012-10-18 17:09:49 | 只看该作者
彭格列第XI代 发表于 2012-10-18 17:06
图鉴脚本早有了的说、

知道啊.....不过还是自己写的好啊.......

点评

新手一个  发表于 2012-10-18 21:24
a=[1,2,3,4,5,6,7]那个问题是LZ问的吧,嗷呜,LZ到底是新手还是大触啊?  发表于 2012-10-18 20:49
乃不是说是新手嘛- -怎么写脚本了...不好看滴说→_→  发表于 2012-10-18 17:11
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
676
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

4
发表于 2012-10-18 17:28:26 | 只看该作者
界面比较差劲【请允许我用这个词
配色不吐槽了。
其他觉得很不错啊,楼主的脚本很好的,稍微改一改排版跟颜色就是很棒的系统了~w
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
204 小时
注册时间
2012-10-5
帖子
258
5
发表于 2012-10-18 17:38:00 | 只看该作者
好好野,可惜是vx的,有xp的吗

点评

表示本人开始接触也是从xp开始,不过不够一个礼拜就改vx了......  发表于 2012-10-18 21:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

6
发表于 2012-10-18 18:42:28 | 只看该作者
可以非常不客气的说Ruby或RGSS对中文的支持很差囧
方法名类名最好还是用英文吧囧

点评

中文好理解的说......  发表于 2012-10-18 21:26
回复 支持 反对

使用道具 举报

Lv3.寻梦者

最萌的小猫

梦石
0
星屑
1347
在线时间
692 小时
注册时间
2011-11-5
帖子
3443
7
发表于 2012-10-18 19:59:57 | 只看该作者
国猪eu 发表于 2012-10-18 17:38
好好野,可惜是vx的,有xp的吗

学会VX吧!
小猫,感情浓郁的天然嘿啾一只,属性:水,嘿啾,无轨迹流线萌。喜欢在正午伸出小爪子卖着各种次元萌。平行穿越次元萌差。
如需要小猫,请认准啾怪时空电话。这宇宙萌源的秘密,需要找到时空边界萌源能量爆发的封印钥匙。快来和小猫一同去冒险吧!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
204 小时
注册时间
2012-10-5
帖子
258
8
发表于 2012-10-19 13:18:42 | 只看该作者
国猪eu 发表于 2012-10-18 17:38
好好野,可惜是vx的,有xp的吗

为什么呢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2012-4-5
帖子
117
9
发表于 2013-1-9 16:08:18 | 只看该作者
有没有范例啊  不会用哦.....
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1845
在线时间
367 小时
注册时间
2012-12-10
帖子
427
10
发表于 2013-1-9 19:10:04 | 只看该作者
国猪eu 发表于 2012-10-18 17:38
好好野,可惜是vx的,有xp的吗

啊?这是VX的?你不说我还不知道哩……
『我对你矢志不渝。』
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 01:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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