赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 55044 |
最后登录 | 2022-1-4 |
在线时间 | 49 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 95
- 在线时间
- 49 小时
- 注册时间
- 2006-5-7
- 帖子
- 526
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
方便人偷懒的脚本,自动生成技能的详细信息......
这个脚本是很早以前做的了,因为上学的原因也好长时间没有研究RM了.....{/ll}
今天偶尔从电脑里面把这个东西翻了出来,发现当初的作品实在有很多不完善的地方,于是动手修改了一下
基本核心还是原来的,只是加入了新的功能,所以下载原来的范例稍微动一下就可以,不是我懒得再发布哦,我是为6R节省资源......{/cy}
原范例下载地址http://rpg.blue/web/ftppic/web3/200610/Project_CFTX_Fix2.rar
修改版脚本,直接取代原范例中的技能信息显示部分!
- #==============================================================================
- # ■
- #------------------------------------------------------------------------------
- # 技能的详细信息自动显示 新强化版
- #==============================================================================
- S_INF=[]
- #============自定义颜色,可以自己定义。不会用正则......
- C1=Color.new(255, 0, 0, 255)
- C2=Color.new(0, 255, 0, 255)
- C3=Color.new(0, 0, 255, 255)
- C4=Color.new(0, 0, 0, 255)
- C5=Color.new(122, 122, 122, 255)
- #============下面是技能的加长描述S_INF[36]就是36号技能的额外增加的描述
- #============="|"可以手动换行,"^"使用系统色文字
- #============"@" "#" "$" "{" "}"分别使用1~5号自定义颜色,这些代码在默认技能描述里同样有效
- #============颜色控制字符再次使用会恢复默认色(即使上面是不同的控制字符也一样)
- S_INF[36]="从这里开始是加长的描述内容!测试!|这是手动换行|^系统色文字^|@1号颜色@#2号颜色#|$3号颜色${4号颜色{}5号颜色}|颜色控制字符再次使用会恢复默认色(即使上一个控制字符是不同的控制字符也一样).{这里开始使用了4号颜色控制字符,@这里开始使用了1号颜色控制字符,为了防止混乱建议严格配对使用!"
- class Window_SkillHelp < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- super(320-50, 0, 320+50,416)
- self.contents = Bitmap.new(width - 32, height - 32)
- if $game_temp.in_battle
- self.height = 256+64
- self.back_opacity = 160
- end
- end
- #--------------------------------------------------------------------------
- # ● 设置文本
- # text : 窗口显示的字符串
- # align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
- #--------------------------------------------------------------------------
- def set_text(skill)
- if skill !=nil and skill!=@skill
- scolor=false
- fontsize=18
- infx=120
- self.contents.clear
- self.contents.font.color = normal_color
- self.contents.font.size = fontsize
- xx=0
- yy=0
- s=[]
- des=skill.description
- if S_INF[skill.id]!=nil
- des=des+S_INF[skill.id]
- end
- s=des.scan(/./)
- space = self.contents.text_size(" ").width
- #一行显示21个字
- for i in s
- sss = self.contents.text_size(i)
- if i=="|"
- yy+=fontsize
- xx=0
- else
- if (xx+sss.width)>(width - 32)#超过屏幕就换行
- yy+=fontsize
- xx=4
- end
- if i=="^" or i=="@" or i=="#" or i=="$" or i=="{" or i== "}"
- if scolor==false
- scolor=true
- case i
- when "^"
- self.contents.font.color=system_color
- when "@"
- self.contents.font.color=C1
- when "#"
- self.contents.font.color=C2
- when "$"
- self.contents.font.color=C3
- when "{"
- self.contents.font.color=C4
- when "}"
- self.contents.font.color=C5
- end
- else
- scolor=false
- self.contents.font.color=normal_color
- end
- else
- self.contents.draw_text(xx, yy, sss.width, sss.height, i)
- xx+=sss.width
- end
- end
- end
- self.contents.font.size = fontsize
- xx=0
- yy+=fontsize
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "效果范围")
- xx=infx
- self.contents.font.color=normal_color
- case skill.scope
- when 0
- i="无"
- when 1
- i="敌方单体"
- when 2
- i="敌方全体"
- when 3
- i="我方单体"
- when 4
- i="我方全体"
- when 5
- i="我方濒死单体"
- when 6
- i="我方濒死全体"
- when 7
- i="自身"
- end
- self.contents.draw_text(xx, yy, infx, sss.height, i)
- xx=0
- yy+=fontsize
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "基础命中/回避修正")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, skill.hit.to_s+"/"+skill.eva_f.to_s)
- xx=0
- yy+=fontsize
- if skill.power !=0
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "基础威力")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, skill.power.to_s)
- xx=0
- yy+=fontsize
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "攻击比率")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, "攻击 "+skill.atk_f.to_s+" 魔力 "+skill.int_f.to_s)
- xx=0
- yy+=fontsize
- if skill.str_f!=0 or skill.dex_f!=0 or skill.agi_f!=0
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "自身能力影响")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, "力量 "+skill.str_f.to_s+" 灵巧 "+skill.dex_f.to_s+" 速度 "+skill.agi_f.to_s)
- xx=0
- yy+=fontsize
- end
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "对象防御影响比率")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, "物理 "+skill.pdef_f.to_s+" 魔法 "+skill.mdef_f.to_s)
- xx=0
- yy+=fontsize
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "威力波动度")
- xx=infx
- self.contents.font.color=normal_color
- self.contents.draw_text(xx, yy, infx*2, sss.height, skill.variance.to_s)
- xx=0
- yy+=fontsize
- element=""
- race=""
- for i in skill.element_set
- if i <=8
- element =element+" "+$data_system.elements[i]
- elsif i>8 and i<=18
- race=race+" "+$data_system.elements[i]
- end
- if i>18
- break
- end
- end
- if race !=""
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "特效对象种族")
- xx=infx-space
- self.contents.font.color=normal_color
- s=[]
- s=race.scan(/./)
- #一行显示21个字
- for i in s
- sss = self.contents.text_size(i)
- if (xx+sss.width)>(width - 32)#超过屏幕就换行
- yy+=fontsize
- xx=infx
- end
- self.contents.draw_text(xx, yy, sss.width, sss.height, i)
- xx+=sss.width
- end
- yy+=fontsize
- xx=0
- end
- if element!=""
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "攻击属性")
- xx=infx-space
- self.contents.font.color=normal_color
- s=[]
- s=element.scan(/./)
- #一行显示21个字
- for i in s
- sss = self.contents.text_size(i)
- if (xx+sss.width)>(width - 32)#超过屏幕就换行
- yy+=fontsize
- xx=infx
- end
- self.contents.draw_text(xx, yy, sss.width, sss.height, i)
- xx+=sss.width
- end
- xx=0
- yy+=fontsize
- end
- end
- if skill.plus_state_set !=[]
- race=""
- for i in skill.plus_state_set
- race=race+"["+$data_states[i].name+"]"
- end
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "附加状态")
- xx=infx
- self.contents.font.color=normal_color
- s=[]
- s=race.scan(/./)
- #一行显示21个字
- for i in s
- sss = self.contents.text_size(i)
- if (xx+sss.width)>(width - 32)#超过屏幕就换行
- yy+=fontsize
- xx=infx
- end
- self.contents.draw_text(xx, yy, sss.width, sss.height, i)
- xx+=sss.width
- end
- xx=0
- yy+=fontsize
- end
- if skill.minus_state_set !=[]
- race=""
- for i in skill.minus_state_set
- race=race+"["+$data_states[i].name+"]"
- end
- self.contents.font.color=system_color
- self.contents.draw_text(xx, yy, infx, sss.height, "解除状态")
- xx=infx
- self.contents.font.color=normal_color
- s=[]
- s=race.scan(/./)
- #一行显示21个字
- for i in s
- sss = self.contents.text_size(i)
- if (xx+sss.width)>(width - 32)#超过屏幕就换行
- yy+=fontsize
- xx=infx
- end
- self.contents.draw_text(xx, yy, sss.width, sss.height, i)
- xx+=sss.width
- end
- end
- @actor = nil
- self.visible = true
- @skill=skill
- end
-
- end
- end
复制代码
新的功能:原先的自动技能信息显示太过繁琐,看着很累而且经常会有显示不完全的情况,这个新版本在信息显示时加入了判断,比如,没有威力的技能其相关的一大堆威力波动、属性有效度自然都没有用,对于没有特效种族的技能特效种族一项信息也是没用的,新版本里这种情况会自动不显示这些信息,这样就节省了大量的空间。
这个脚本早先就有了自动换行的功能来对付比较长的技能描述,但是默认的技能描述上限是100字,想写多就没有办法了,新版本用偏门的办法解决了这个问题,在脚本里直接写增长的描述,这次可以写超长的技能描述了................
搭配上个功能,加入了手动换行和颜色控制功能,不过颜色控制那里偶不会用正则表达式,只能用笨办法了55555谁教教我啊...............
效果图
![]()
![]()
![]()
|
|