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

Project1

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

[已发主站] 【VA】【新人看这里】一起动手改脚本·第一锅

  [复制链接]

Lv4.逐梦者 (管理员)

砂上描绘的愿想

梦石
15
星屑
4145
在线时间
5076 小时
注册时间
2012-1-15
帖子
4618

开拓者贵宾短篇七成年组亚军剧作品鉴家

跳转到指定楼层
1
发表于 2012-5-25 10:38:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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 第一锅暂时就提供这七个修改吧…… 对糕手来说是简单得不能再简单,但是对新手来说,应该是足够实用的最简单的修改了吧? 嗯?
(举好锅盖等砖)

点评

欧耶~帧率问题解决~使用远景铺设地图时提帧完美有效,使用rtp的图块则没有效果,原因不明= =谢谢分享经验,期待下一锅~= =  发表于 2012-6-1 20:31
我觉得对新手非常好!  发表于 2012-5-29 15:21
说实话吧,这对新手一点意义都没有  发表于 2012-5-25 20:09
> < 忘记还有柳啊世界坐过站这事情了……  发表于 2012-5-25 12:46
我可是有各种配套行走图、脸图的啊,喂!  发表于 2012-5-25 12:19

评分

参与人数 7星屑 +2460 +6 收起 理由
月华风 + 10 漂亮
Shy07 + 6 主站收录
荷包PIG蛋 + 2 安安酱有空出第二弹吧~~
不会脚本 + 24 精品文章
月下耶鲁夫 + 24 精品文章
退屈£无聊 + 1200
Kimu + 1200

查看全部评分

若后退就皆成谎言。

Lv1.梦旅人

梦石
0
星屑
54
在线时间
1049 小时
注册时间
2012-1-27
帖子
1446
2
发表于 2012-5-25 11:59:13 | 只看该作者
安安开始向触手转变了?= =
脚本我一直耽搁着没学啊......

点评

看错....上一句无视掉好了....  发表于 2012-5-25 12:02
下决心做脚本触会没时间填坑+1........话说加TP其实好像只用一句话.....  发表于 2012-5-25 12:02
才不是……明明这都是最简单的,一两句话多画个文字啊图标啊条条啊啥的……要真下决心成为脚本触的话作品肯定会坑掉的……  发表于 2012-5-25 12:00
惨了,没装全局变量,这下只能玩读档进EXTRA的把戏了∑(゚ω゚ノ)ノ
我感觉我快成兜售Q键幻灯片狂魔了
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

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

开拓者短篇七成年组季军

3
发表于 2012-5-25 12:44:14 | 只看该作者
原来你无论是炸弹还是脚本 用的都是一个范例工程……

点评

被、被发现了……(捂头)  发表于 2012-5-25 12:45
回复 支持 反对

使用道具 举报

Lv1.梦旅人

失忆的幽灵

梦石
0
星屑
50
在线时间
504 小时
注册时间
2009-12-14
帖子
501

贵宾

4
发表于 2012-5-25 13:05:08 | 只看该作者
安安是触手什么的……太萌了~
虽然这些我都会
于是我这伪·触乖乖往坑里跳好了
如果我能遗忘掉一件事物,我希望遗忘掉我自己
最初你觉得这是一个梦想,最终这只是个妄想
即使你认为你自己是黑暗,即使你认为你自己站在黑暗,但看的见你的人只有我!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
39
在线时间
529 小时
注册时间
2012-3-15
帖子
469
5
发表于 2012-5-25 13:20:17 | 只看该作者
本帖最后由 任F 于 2012-5-25 13:31 编辑

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


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


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


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






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







更改到85帧,实际运行木用~TAT

点评

不是哟~运行您的默砂是可以有效提帧的  发表于 2012-5-25 18:10
难道是因为电脑太挫 0 0?  发表于 2012-5-25 16:45
已设定到85帧,同样没效果。TAT  发表于 2012-5-25 13:32
提多点试试? 把1.2改为2看看…… 话说我同时用效果挺好的啊。  发表于 2012-5-25 13:25

于是咱也把项目放在签名里督促自己吧。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
54
在线时间
434 小时
注册时间
2011-7-9
帖子
161
6
发表于 2012-5-25 15:45:14 | 只看该作者
不頂不行!希望有更新~
本想從金條圖標推敲如何修改菜單標 結果失敗
D
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
629 小时
注册时间
2009-9-24
帖子
570
7
发表于 2012-5-25 15:55:38 | 只看该作者
举手问,如果要在菜单栏金钱栏这里额外加一行变量显示要怎么做,另问,安老师为毛只有2级
十三工坊式作型人形兵器驾驶员
“和基巴君是不同的!和基巴君!”
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
508
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

8
发表于 2012-5-25 20:31:36 | 只看该作者
安酱终于要暴露她脚本触的本质了,看来要多多关注一起动手改脚本系列啊,
说好了哦,不许坑啊=。=

点评

我是脚本新手啊,大家都知道↓  发表于 2012-5-25 21:20
=__=其实皑皑雪才是幕后黑手我会到处说……?  发表于 2012-5-25 21:02
尼玛头像亮啊  发表于 2012-5-25 20:35
我帖子中要有是不HX的空白,请Ctrl + A
回复 支持 反对

使用道具 举报

Lv1.梦旅人

被遗忘の机器

梦石
0
星屑
73
在线时间
402 小时
注册时间
2010-7-24
帖子
1492
9
发表于 2012-5-25 20:35:14 | 只看该作者
触新手的神秘帖
【镇楼】少年吃我大屌
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
80 小时
注册时间
2008-2-3
帖子
175
10
发表于 2012-5-26 00:06:33 | 只看该作者
这个要支持。


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

这个要支持。
’’
⊙﹏⊙
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 04:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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