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

Project1

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

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

  [复制链接]

Lv4.逐梦者 (管理员)

砂上描绘的愿想

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

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

跳转到指定楼层
发表于 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 第一锅暂时就提供这七个修改吧…… 对糕手来说是简单得不能再简单,但是对新手来说,应该是足够实用的最简单的修改了吧? 嗯?
(举好锅盖等砖)

评分

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

查看全部评分

若后退就皆成谎言。

Lv1.梦旅人

梦石
0
星屑
1150
在线时间
4 小时
注册时间
2014-1-15
帖子
1
35
发表于 2014-4-18 17:57:14 | 只看该作者
好牛逼的脚本,收了,大赞!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
177 小时
注册时间
2010-8-20
帖子
332
34
发表于 2013-3-21 14:50:32 | 只看该作者
【No.4】利用备注,双行显示地图名 --------------#这个没试出效果
【No.6】整体加快/减慢游戏速度--------------#这个最高2倍,也就是120FPS(正常是60)
【No.7】调节游戏的窗口分辨率---------------#这个改过2个,一个是1024*768;还有个是1600*900效果一样..改小可以,但好像没太大用..
其他的都很受用,非常感谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2013-3-19
帖子
44
33
发表于 2013-3-20 19:14:26 | 只看该作者
在【Window_Base】中,找到这里。
找不到?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
32
发表于 2013-3-19 03:58:13 | 只看该作者
安安、妳好~
我看了你第一個教程蠻有感覺的,
可是我想繪製角色拿的武器的ICON圖片...但我怎麼寫都錯...
draw_icon(weapon.icon_index, rect.x + 190, rect.y + 90)
正確寫法應該是怎樣呢>"<??
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
86 小时
注册时间
2010-9-22
帖子
118
31
发表于 2013-1-27 14:19:29 | 只看该作者
腳本實在苦手的人先馬一個0A0!
總之慢慢學吧QWQ
无论过了多久还是菜鸟一枚……
对脚本无爱 只对事件比较感兴趣并研究中……【还是菜鸟入门的那种……】
若有冒犯大人们 请轻PIA QAQ
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
337
在线时间
1291 小时
注册时间
2013-1-12
帖子
3590

贵宾

30
发表于 2013-1-27 12:15:08 | 只看该作者
好愛阿!!!!!!
這種帖子應該要多一点阿阿阿阿
謝謝樓主!

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2012-12-14
帖子
6
29
发表于 2012-12-15 01:35:38 | 只看该作者
受教了,感谢分享
刚刚研究这个
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
1 小时
注册时间
2012-10-2
帖子
4
28
发表于 2012-10-15 13:30:19 | 只看该作者
我也来学习 争取入门
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
62 小时
注册时间
2012-9-26
帖子
216
27
发表于 2012-10-14 15:19:50 | 只看该作者
挖坟。。。算坟吗。。

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

如何把第二货币的图标改成其他的。。ORZ
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (管理员)

砂上描绘的愿想

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

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

26
 楼主| 发表于 2012-8-9 18:30:10 | 只看该作者
白灵卿 发表于 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-8-9 19:21
若后退就皆成谎言。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-17 16:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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