Project1

标题: 【VA】【新人看这里】一起动手改脚本·第一锅 [打印本页]

作者: 迷糊的安安    时间: 2012-5-25 10:38
标题: 【VA】【新人看这里】一起动手改脚本·第一锅
本帖最后由 Sion 于 2013-12-17 15:59 编辑

嘛~ 作为刚接触VA三个月的新手…… 目前算是有了一点简单的心得……于是拿出来和大家共同学习下呗……这里不说繁杂的基础知识,一切以实用为诉求。

嗯嗯……正体开始
【No. 0】
呼出脚本编辑器:F11
在指定脚本里查找:Ctrl+F
在所有脚本里查找:Ctrl+Shift+F

【No.1】在菜单界面显示人物行走图
在【Window_MenuStatus】中,找到如下地方添加语句。

  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制项目
  3.   #--------------------------------------------------------------------------
  4.   def draw_item(index)
  5.     actor = $game_party.members[index]
  6.     enabled = $game_party.battle_members.include?(actor)
  7.     rect = item_rect(index)
  8.     draw_item_background(index)
  9.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  10.     draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
  11.     draw_actor_graphic(actor, rect.x + 190, rect.y + 90) #本句为绘制人物行走图
  12.   end
复制代码
效果如图:


【No.2】在菜单人物状态中显示TP
在【Window_Base】中,找到这里。

  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制简单的状态
  3.   #--------------------------------------------------------------------------
  4.   def draw_actor_simple_status(actor, x, y)
  5.     draw_actor_name(actor, x, y)
  6.     draw_actor_level(actor, x, y + line_height * 1)
  7.     draw_actor_icons(actor, x, y + line_height * 2)
  8.     draw_actor_class(actor, x + 120, y)
  9.     draw_actor_hp(actor, x + 120, y + line_height * 1)
  10.     draw_actor_mp(actor, x + 120, y + line_height * 2)
  11.   end
复制代码
改为

  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制简单的状态
  3.   #--------------------------------------------------------------------------
  4.   def draw_actor_simple_status(actor, x, y)
  5.     draw_actor_name(actor, x, y)
  6.     draw_actor_level(actor, x, y + line_height * 1)
  7.     draw_actor_icons(actor, x, y + line_height * 2)
  8.     draw_actor_class(actor, x + 120, y - line_height * 0.5)
  9.     draw_actor_hp(actor, x + 120, y + line_height * 0.5) #绘制HP,在原有位置上略调整
  10.     draw_actor_mp(actor, x + 120, y + line_height * 1.5) #绘制MP,在原有位置上略调整
  11.     draw_actor_tp(actor, x + 120, y + line_height * 2.5)  #绘制TP
  12.   end
复制代码
效果如图:


【No.3】用开关控制切换地图场景时是否自动切换BGM
在【Game_Map】中,找到这里。

  1.   #--------------------------------------------------------------------------
  2.   # ● 自动切换 BGM / BGS
  3.   #--------------------------------------------------------------------------
  4.   def autoplay
  5.     @map.bgm.play if @map.autoplay_bgm
  6.     @map.bgs.play if @map.autoplay_bgs
  7.   end
  8. [code]
  9. 改为
  10. [code]
  11.   #--------------------------------------------------------------------------
  12.   # ● 自动切换 BGM / BGS
  13.   #--------------------------------------------------------------------------
  14.   def autoplay
  15.     if $game_switches[80]==false #只有当80号开关关闭的时候才切换BGM(就是80号开关打开就不切换BGM了)
  16.     @map.bgm.play if @map.autoplay_bgm
  17.     end
  18.     @map.bgs.play if @map.autoplay_bgs
  19.   end
复制代码

效果就是:当80号开关打开时,过地图BGM不会自动切换。

【No.4】利用备注,双行显示地图名
还是【Game_Map】里,在最后加入

  1.   #--------------------------------------------------------------------------
  2.   # ● 定义备注使用(于是这样就可以在其他地方使用$game_map.note)来调用了
  3.   #--------------------------------------------------------------------------
  4.   def note
  5.     @map.note
  6.   end
复制代码
然后在【Window_Mapname】里,找到这里修改

  1.   #--------------------------------------------------------------------------
  2.   # ● 初始化对象
  3.   #--------------------------------------------------------------------------
  4.   def initialize
  5.     super(0, 0, window_width, fitting_height(2)) #原来的1表示这里高度是1行,咱们改成2行高度
  6.     self.opacity = 0
  7.     self.contents_opacity = 0
  8.     @show_count = 0
  9.     refresh
  10.   end
复制代码
再在下面找到这里

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     contents.clear
  6.     unless $game_map.display_name.empty?
  7.       draw_background(contents.rect)
  8.       draw_text(contents.rect, $game_map.display_name, 1)
  9.     end
  10.   end
复制代码
修改为

  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4. def refresh
  5.     contents.clear
  6.     unless $game_map.display_name.empty?
  7.       draw_background(contents.rect)
  8.       rect = Rect.new(0,0,contents.width,line_height) #定义第一行的位置
  9.       draw_text(rect, $game_map.display_name, 1) #在第一行画出地图的显示名称
  10.       rect = Rect.new(0,line_height,contents.width,line_height) #定义第二行的位置,为第一行往下一行
  11.       draw_text(rect, $game_map.note, 1) #在第二行画出地图的备注名称
  12.     end
  13.   end
复制代码
效果如图



【No.5】在显示金钱的位置显示图标?
在【Window_Base】里找到这里并修改

  1.   #--------------------------------------------------------------------------
  2.   # ● 绘制货币数值(持有金钱之类的)
  3.   #--------------------------------------------------------------------------
  4.   def draw_currency_value(value, unit, x, y, width)
  5.     cx = text_size(unit).width
  6.     change_color(normal_color)
  7.     draw_text(x, y, width - cx - 2, line_height, value, 2)
  8.     change_color(system_color)
  9.     draw_text(x, y, width, line_height, unit, 2)
  10.     draw_icon(360, x, y, true) #本句为绘制图标,默认图标里的360号是三块金砖
  11.   end
复制代码
效果如图,在菜单和商店等多处地方都有效哟~



【No.6】整体加快/减慢游戏速度
【No.7】调节游戏的窗口分辨率
找到脚本最下面的Main

  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Main
  4. #------------------------------------------------------------------------------
  5. #  各种定义结束后,从这里开始实际运行。
  6. #==============================================================================

  7. rgss_main { Graphics.frame_rate *= 1.2 #加上这句以后,就能定义游戏的整体速度了,比如这里把游戏整体速度加快到原来的1.2倍……
  8.             Graphics.resize_screen(640,480) #加上这句以后,就能定义游戏的窗口分辨率了,最大是640×480
  9.             SceneManager.run }
复制代码
定义窗口分辨率的时候请注意……长宽都要是32的倍数,因为地图图块是32×32的。

0 0 第一锅暂时就提供这七个修改吧…… 对糕手来说是简单得不能再简单,但是对新手来说,应该是足够实用的最简单的修改了吧? 嗯?
(举好锅盖等砖)
作者: 黑化の鼠标    时间: 2012-5-25 11:59
安安开始向触手转变了?= =
脚本我一直耽搁着没学啊......
作者: 天使喝可乐    时间: 2012-5-25 12:44
原来你无论是炸弹还是脚本 用的都是一个范例工程……
作者: Raiku    时间: 2012-5-25 13:05
安安是触手什么的……太萌了~
虽然这些我都会
于是我这伪·触乖乖往坑里跳好了
作者: 任F    时间: 2012-5-25 13:20
本帖最后由 任F 于 2012-5-25 13:31 编辑

啦啦啦~本来想单独提问的既然安酱开了这帖那就直接问吧= =
关于提帧和分辨率调整我有个疑问,就是当我使用默认分辨率时,加入提帧脚本,可以看到效果;但是,一旦我将分辨率提升到640*480时,实际运行时帧数并无任何提升,完全和6*4时无插入提帧语句时帧数相同。
以下为实际图片:
脚本定义:


以下为未更改分辨率时提帧,可以看到效果:


以下为更改分辨率并提帧后的标题界面,同样有用= =:


但是到实际运行时就不一样了,以下为更改分辨率后提帧及不提帧的2种状况:






话说安安言传身教教新手呢,甚好!甚好!(捏~~


[line]1[/line]



更改到85帧,实际运行木用~TAT
作者: s05s0039    时间: 2012-5-25 15:45
不頂不行!希望有更新~
本想從金條圖標推敲如何修改菜單標 結果失敗

作者: shalicheng2    时间: 2012-5-25 15:55
举手问,如果要在菜单栏金钱栏这里额外加一行变量显示要怎么做,另问,安老师为毛只有2级
作者: iisnow    时间: 2012-5-25 20:31
安酱终于要暴露她脚本触的本质了,看来要多多关注一起动手改脚本系列啊,
说好了哦,不许坑啊=。=
作者: 时光机    时间: 2012-5-25 20:35
触新手的神秘帖
作者: machinemxy    时间: 2012-5-26 00:06
这个要支持。


‘‘──machinemxy于2012-5-26 00:06补充以下内容

这个要支持。
’’
作者: bbh    时间: 2012-5-26 15:38
下一锅写一下关于菜单什么的怎么改如何?
作者: 浮云桑    时间: 2012-6-19 09:49
我是新人,所以看过来了。
作者: 春日泽    时间: 2012-6-23 23:35
才学三个月么- -?2月8号就发布的游戏,看了一下,目测是用了Square Battle的系统,界面和美工改得不错。那敢情是学了两天就开始做了的啊
作者: 约修亚_RK    时间: 2012-6-27 08:26
话说,我要在菜单界面整一个“关于”信息改哪里撒?

因为不懂Ruby所以无力。。

我试着增一条语句,仿造"开始游戏"的,可是不知道为什么提示没有变量?

把变量改成文本串也不行?

不是:"关于"还是"关于"???
作者: chd114    时间: 2012-6-27 10:23
控制BGM是否自动转MS没必要吧···
作者: 猪头三~    时间: 2012-7-2 13:38
试着把游戏速度改成了0.0001,结果……
作者: 食人族幽灵    时间: 2012-7-8 10:05
我只是来拿脚本的……
作者: m_m    时间: 2012-7-21 05:58
长见识啦...新手菜鸟求指导...
作者: 漫步烟雨    时间: 2012-7-21 18:37
对于新人来说 这个太有用啦!很详细,能看明白。顶一个,希望LZ再出更多的这种新手教程啊~~

作者: Xnan    时间: 2012-7-24 10:30
va的窗口皮肤怎么改,谁有
作者: 杰总    时间: 2012-7-24 10:45
很不错的说!
作者: Munchen1921    时间: 2012-7-24 11:37
新手学学~ ,感想LZ,
作者: 白灵卿    时间: 2012-8-9 12:01
#--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
def refresh
    contents.clear
    unless $game_map.display_name.empty?
      draw_background(contents.rect)
      rect = Rect.new(0,0,contents.width,line_height)
      draw_text(rect, $game_map.display_name, 1)
      rect = Rect.new(0,line_height,contents.width,line_height)
      draw_text(rect, $game_map.note, 1)
    end
  end

第11行说有错怎么回事【你
作者: 迷糊的安安    时间: 2012-8-9 12:25
白灵卿 发表于 2012-8-9 12:01
#--------------------------------------------------------------------------
  # ● 刷新
  #--------- ...

出什么错请上图
作者: 白灵卿    时间: 2012-8-9 12:45
迷糊的安安 发表于 2012-8-9 12:25
出什么错请上图



↑是这样插入图片的吗……不知道啊不知道【泥垢
作者: 白灵卿    时间: 2012-8-9 13:53
……==好吧

未命名.jpg (11.72 KB, 下载次数: 19)

未命名.jpg

作者: 迷糊的安安    时间: 2012-8-9 18:30
白灵卿 发表于 2012-8-9 13:53
……==好吧

出现这种错误是脚本冲突引起的
解决的方法是这样

  1. #--------------------------------------------------------------------------
  2. # ● 定义备注使用(于是这样就可以在其他地方使用$game_map.note)来调用了
  3. #--------------------------------------------------------------------------
  4.   def note
  5.     @map.note
  6.   end
复制代码
这一段不要再加在Game_Map里面

而是在所有脚本的最后,Main的前面 添加一个脚本
内容如下

  1. class Game_Map
  2. #--------------------------------------------------------------------------
  3. # ● 定义备注使用(于是这样就可以在其他地方使用$game_map.note)来调用了
  4. #--------------------------------------------------------------------------
  5.   def note
  6.     @map.note
  7.   end
  8. end
复制代码
这样就可以了
作者: 等级君    时间: 2012-10-14 15:19
挖坟。。。算坟吗。。

加入第二货币脚本以后,两个货币的图标都是一样的。。

如何把第二货币的图标改成其他的。。ORZ
作者: martins99    时间: 2012-10-15 13:30
我也来学习 争取入门
作者: okpanthy    时间: 2012-12-15 01:35
受教了,感谢分享
刚刚研究这个
作者: 熊喵酱    时间: 2013-1-27 12:15
好愛阿!!!!!!
這種帖子應該要多一点阿阿阿阿
謝謝樓主!
作者: isanamida    时间: 2013-1-27 14:19
腳本實在苦手的人先馬一個0A0!
總之慢慢學吧QWQ
作者: a000b1745    时间: 2013-3-19 03:58
安安、妳好~
我看了你第一個教程蠻有感覺的,
可是我想繪製角色拿的武器的ICON圖片...但我怎麼寫都錯...
draw_icon(weapon.icon_index, rect.x + 190, rect.y + 90)
正確寫法應該是怎樣呢>"<??
作者: eric4514    时间: 2013-3-20 19:14
在【Window_Base】中,找到这里。
找不到?
作者: 約脩亞    时间: 2013-3-21 14:50
【No.4】利用备注,双行显示地图名 --------------#这个没试出效果
【No.6】整体加快/减慢游戏速度--------------#这个最高2倍,也就是120FPS(正常是60)
【No.7】调节游戏的窗口分辨率---------------#这个改过2个,一个是1024*768;还有个是1600*900效果一样..改小可以,但好像没太大用..
其他的都很受用,非常感谢!
作者: 捣蛋猪2003    时间: 2014-4-18 17:57
好牛逼的脚本,收了,大赞!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1