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

Project1

 找回密码
 注册会员
搜索
123
返回列表 发新帖
楼主: 木葬枫
打印 上一主题 下一主题

可能实现吗?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
21
发表于 2008-8-26 04:54:14 | 只看该作者
以下引用木葬枫于2008-8-24 16:12:27的发言:


[quote]以下引用沉影不器于2008-8-24 16:11:37的发言:


那菜单想重写,但是很累人又无趣...



一对闪着泪光的眼睛看着你·······
你要什么都给你·······


[本贴由作者于 2008-8-24 16:13:08 最后编辑]
[/quote]

LZ我们一起看沉影同志,{/fd}{/se}{/fd}{/se}
那菜单什么时候能修正【在非战斗状态下使用自我技能和全体技能出错】这个BUG 。。。。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3304
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

22
发表于 2008-8-26 05:09:59 | 只看该作者
以下引用沉影不器于2008-8-24 15:53:10的发言:

效果大致如下...为了给星星腾位置,把装备数量改到图标右下角显示
可以看到星星多了不好看,星星图可能也不要太大太显眼,自己改图吧


http://rpg.blue/upload_program/files/装备分级显示星星_100021918.rar

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

真是华丽又没用的功能…… = =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

23
 楼主| 发表于 2008-8-26 06:39:26 | 只看该作者
以下引用越前リョーマ于2008-8-25 21:09:59的发言:


以下引用沉影不器于2008-8-24 15:53:10的发言:

效果大致如下...为了给星星腾位置,把装备数量改到图标右下角显示
可以看到星星多了不好看,星星图可能也不要太大太显眼,自己改图吧


http://rpg.blue/upload_program/files/装备分级显示星星_100021918.rar

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~


真是华丽又没用的功能…… = =


不懂得用处的爬·······
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
24
发表于 2008-8-26 18:21:55 | 只看该作者
以下引用木葬枫于2008-8-24 15:55:02的发言:

能和你写过的豪华菜单兼容吗?
谢谢,其实我原来的意思是同样的武器,有星的比较高级,所以只用到三颗星星而已。
谢谢啦·······

[本贴由作者于 2008-8-24 15:58:33 最后编辑]



刚才尝试改了一下,貌似兼容了。。。。。。

冲突原因是新菜单脚本◎ Window_Menu_Command华丽地调用了draw_icon,而刚好星星脚本为了显示物品数量在图标右下方改了这个函数

其实只要加两个字母就行= =

就是把  装备分级显示星星  脚本里面第51行改成
Ndraw_icon(item, x, y, enabled, draw_num)             #N就是NEW。。。
再把64行改成
def Ndraw_icon(item, x, y, enabled = true, draw_num = true)        #N就是NEW。。。

整个脚本变这样:(不包括 读取备注栏指定字段)

  1. #==============================================================================
  2. # 装备分级显示星星 by 沉影不器
  3. # -----------------------------------------------------------------------------
  4. # 在各装备对应备注栏里书写: level = 数字(数字大了星星太多影响美观)
  5. #==============================================================================
  6. # ■ RPG
  7. #==============================================================================
  8. module RPG
  9.   class Weapon < BaseItem
  10.     def level
  11.       self.read_note('level').to_i
  12.     end
  13.   end
  14.   class Armor < BaseItem
  15.     def level
  16.       self.read_note('level').to_i
  17.     end
  18.   end
  19. end

  20. #==============================================================================
  21. # ■ Window_Base
  22. #==============================================================================
  23. class Window_Base < Window
  24.   #--------------------------------------------------------------------------
  25.   # ○ 描绘等级图标
  26.   #     rect       : 描绘目标区域
  27.   #     level      : 装备等级
  28.   #     enabled    : 有效标志。false 为半透明显示
  29.   #--------------------------------------------------------------------------
  30.   def draw_level_icon(rect, level, enabled = true)
  31.     # 无等级时返回
  32.     return if level == 0
  33.     bitmap = Cache.system("Star")
  34.     bit_rect = Rect.new(0, 0, 24, 24)
  35.     for i in 0...level
  36.       x = rect.x + rect.width - 16 * i
  37.       y = rect.y
  38.       self.contents.blt(x - 16, y, bitmap, bit_rect, enabled ? 255 : 128)
  39.     end
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 描绘物品名
  43.   #     item    : 物品 (可以是特技、武器、防具)
  44.   #     x       : 描绘目标 X 坐标
  45.   #     y       : 描绘目标 Y 坐标
  46.   #     enabled : 有效标志。false 为描绘为半透明
  47.   #--------------------------------------------------------------------------
  48.   def draw_item_name(item, x, y, enabled = true, draw_num = true)
  49.     if item != nil
  50.       Ndraw_icon(item, x, y, enabled, draw_num)         #N就是NEW。。。
  51.       self.contents.font.color = normal_color
  52.       self.contents.font.color.alpha = enabled ? 255 : 128
  53.       self.contents.draw_text(x + 32, y, 172, WLH, item.name)
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 描绘图标
  58.   #     item    : 物品 (可以是特技、武器、防具)
  59.   #     x          : 描绘目标 X 坐标
  60.   #     y          : 描绘目标 Y 坐标
  61.   #     enabled    : 有效标志。false 为半透明显示
  62.   #--------------------------------------------------------------------------
  63.   def Ndraw_icon(item, x, y, enabled = true, draw_num = true)     #N就是NEW。。。
  64.     icon_index = item.icon_index
  65.     bitmap = Cache.system("Iconset")
  66.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  67.     self.contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  68.     return unless draw_num
  69.     # 开始描绘物品数量
  70.     number = $game_party.item_number(item)
  71.     rect = Rect.new(x, y+13, 24, 24-13)
  72.     self.contents.font.size = 13
  73.     self.contents.font.color = normal_color
  74.     self.contents.font.color.alpha = enabled ? 255 : 128
  75.     self.contents.draw_text(rect, sprintf("%2d", number), 2)
  76.     self.contents.font.size = Font.default_size
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Window_Item
  81. #==============================================================================
  82. class Window_Item < Window_Selectable
  83.   #--------------------------------------------------------------------------
  84.   # ● 描绘项目
  85.   #     index : 项目编号
  86.   #--------------------------------------------------------------------------
  87.   def draw_item(index)
  88.     rect = item_rect(index)
  89.     self.contents.clear_rect(rect)
  90.     item = @data[index]
  91.     if item != nil
  92.       enabled = enable?(item)
  93.       rect.width -= 4
  94.       draw_item_name(item, rect.x, rect.y, enabled)
  95.       return unless item.is_a?(RPG::Weapon)|item.is_a?(RPG::Armor)
  96.       draw_level_icon(rect, item.level, enabled)
  97.     end
  98.   end
  99. end

  100. #==============================================================================
  101. # ■ Window_Equip
  102. #==============================================================================
  103. class Window_Equip < Window_Selectable
  104.   #--------------------------------------------------------------------------
  105.   # ● 刷新
  106.   #--------------------------------------------------------------------------
  107.   def refresh
  108.     self.contents.clear
  109.     @data = []
  110.     for item in @actor.equips do @data.push(item) end
  111.     @item_max = @data.size
  112.     self.contents.font.color = system_color
  113.     if @actor.two_swords_style
  114.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
  115.       self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
  116.     else
  117.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
  118.       self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::armor1)
  119.     end
  120.     self.contents.draw_text(4, WLH * 2, 92, WLH, Vocab::armor2)
  121.     self.contents.draw_text(4, WLH * 3, 92, WLH, Vocab::armor3)
  122.     self.contents.draw_text(4, WLH * 4, 92, WLH, Vocab::armor4)
  123.    
  124.     draw_item_name(@data[0], 92, WLH * 0, true, false)
  125.     rect = Rect.new(58, 0, 240-32, WLH)            #58原为92
  126.     draw_level_icon(rect, @data[0].level, true) unless @data[0] == nil
  127.    
  128.     draw_item_name(@data[1], 92, WLH * 1, true, false)
  129.     rect.y += WLH
  130.     draw_level_icon(rect, @data[1].level, true) unless @data[1] == nil
  131.    
  132.     draw_item_name(@data[2], 92, WLH * 2, true, false)
  133.     rect.y += WLH
  134.     draw_level_icon(rect, @data[2].level, true) unless @data[2] == nil
  135.    
  136.     draw_item_name(@data[3], 92, WLH * 3, true, false)
  137.     rect.y += WLH
  138.     draw_level_icon(rect, @data[3].level, true) unless @data[3] == nil
  139.    
  140.     draw_item_name(@data[4], 92, WLH * 4, true, false)
  141.     rect.y += WLH
  142.     draw_level_icon(rect, @data[4].level, true) unless @data[4] == nil
  143.     draw_actor_face(@actor, 278, 16, size = 96)
  144.   end
  145. end
  146. #==============================================================================
  147. # ■ Window_Skill
  148. #==============================================================================
  149. class Window_Skill < Window_Selectable
  150.   #--------------------------------------------------------------------------
  151.   # ● 描绘项目
  152.   #     index : 项目编号
  153.   #--------------------------------------------------------------------------
  154.   def draw_item(index)
  155.     rect = item_rect(index)
  156.     self.contents.clear_rect(rect)
  157.     skill = @data[index]
  158.     if skill != nil
  159.       rect.width -= 4
  160.       enabled = @actor.skill_can_use?(skill)
  161.       draw_item_name(skill, rect.x, rect.y, enabled, false)
  162.       self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
  163.     end
  164.   end
  165. end

复制代码


备注栏读取字段脚本不变:

  1. #==============================================================================
  2. # 读取rmvx备注栏指定字段 by 沉影不器
  3. # -----------------------------------------------------------------------------
  4. # 使用方法:
  5. #           在vx数据库比如1号物品的备注栏里书写: 耐久度 = 10
  6. #           读取时使用: p $data_items[1].read_note('耐久度')
  7. # 几点注意:
  8. #           ① 忽略空格
  9. #           ② 返回值为文本格式
  10. #==============================================================================
  11. module RPG
  12.   #=============================================================================
  13.   # ■ BaseItem
  14.   #=============================================================================
  15.   class BaseItem
  16.     #-------------------------------------------------------------------------
  17.     # ○ 读取rmvx备注栏指定字段
  18.     #     section : 字段名
  19.     #     ignore_caps : 忽略大小写(仅字段名)
  20.     #-------------------------------------------------------------------------
  21.     def read_note(section, ignore_caps = false)
  22.       result = ''
  23.       # 忽略大小写时,全部转大写
  24.       section.upcase! if ignore_caps
  25.       # 转symbol方便比较
  26.       s = section.to_sym
  27.       self.note.each_line{|line|
  28.         temp = line.split(/=/)
  29.         # 去掉干扰字符
  30.         temp.each {|i| i.strip!}
  31.         temp[0].upcase! if ignore_caps
  32.         if temp[0].to_sym == s
  33.           unless temp[1] == nil
  34.             result = temp[1]
  35.           end
  36.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  37.           break
  38.         end
  39.       }
  40.       return result
  41.     end
  42.   end
  43.   #=============================================================================
  44.   # ■ Enemy
  45.   #=============================================================================
  46.   class Enemy
  47.     #-------------------------------------------------------------------------
  48.     # ○ 读取rmvx备注栏指定字段
  49.     #     section : 字段名
  50.     #     ignore_caps : 忽略大小写(仅字段名)
  51.     #-------------------------------------------------------------------------
  52.     def read_note(section, ignore_caps = false)
  53.       result = ''
  54.       # 忽略大小写时,全部转大写
  55.       section.upcase! if ignore_caps
  56.       # 转symbol方便比较
  57.       s = section.to_sym
  58.       self.note.each_line{|line|
  59.         temp = line.split(/=/)
  60.         # 去掉干扰字符
  61.         temp.each {|i| i.strip!}
  62.         temp[0].upcase! if ignore_caps
  63.         if temp[0].to_sym == s
  64.           unless temp[1] == nil
  65.             result = temp[1]
  66.           end
  67.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  68.           break
  69.         end
  70.       }
  71.       return result
  72.     end
  73.   end
  74.   #=============================================================================
  75.   # ■ State
  76.   #=============================================================================
  77.   class State
  78.     #-------------------------------------------------------------------------
  79.     # ○ 读取rmvx备注栏指定字段
  80.     #     section : 字段名
  81.     #     ignore_caps : 忽略大小写(仅字段名)
  82.     #-------------------------------------------------------------------------
  83.     def read_note(section, ignore_caps = false)
  84.       result = ''
  85.       # 忽略大小写时,全部转大写
  86.       section.upcase! if ignore_caps
  87.       # 转symbol方便比较
  88.       s = section.to_sym
  89.       self.note.each_line{|line|
  90.         temp = line.split(/=/)
  91.         # 去掉干扰字符
  92.         temp.each {|i| i.strip!}
  93.         temp[0].upcase! if ignore_caps
  94.         if temp[0].to_sym == s
  95.           unless temp[1] == nil
  96.             result = temp[1]
  97.           end
  98.           # 如果希望同名字段值覆盖前面的字段,去掉下一行
  99.           break
  100.         end
  101.       }
  102.       return result
  103.     end
  104.   end
  105. end
复制代码


(个人觉得新菜单样式脚本的兼容性还是很强的)


这样星星就可以显示在新菜单中了!不过由于新菜单空间关系,星星显示的数量要更少了。。。

还有个余留问题,就是在装备菜单中,点击人物后进行装备的时候,原来右边显示的人物头像貌似被星星覆盖了。。。。而且星星位置偏出了光标覆盖范围,影响美观。。。


----------------------------------------------------------------
刚又改了下,128行改成
    rect = Rect.new(58, 0, 240-32, WLH)            #58原为92
并在145行后面一行写
    draw_actor_face(@actor, 278, 16, size = 96)
(上面脚本也已改)
星星不会超出光标了,人物头像也有了


回复 支持 反对

使用道具 举报

Lv1.梦旅人

kissye的宠物<

梦石
0
星屑
61
在线时间
1563 小时
注册时间
2008-8-11
帖子
6174

贵宾

25
 楼主| 发表于 2008-8-26 18:35:45 | 只看该作者
不行····出现这种情况
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

26
发表于 2008-8-26 18:52:15 | 只看该作者
以下引用沉影不器于2008-8-24 16:03:35的发言:
因为写这个脚本还发现了英文帮助的错误来着...查看日本帮助没问题


哪里哪里
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
19 小时
注册时间
2008-8-25
帖子
68
27
发表于 2008-8-26 18:54:04 | 只看该作者
沉影不器SAMA
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
28
发表于 2008-8-26 18:57:07 | 只看该作者
以下引用木葬枫于2008-8-26 10:35:45的发言:

不行····出现这种情况


是不是没有保留备注栏读取字段脚本。。。。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-6
帖子
58
29
发表于 2008-8-26 19:42:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 19:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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