赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 615
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
楼主 |
发表于 2009-7-7 03:50:45
|
显示全部楼层
本帖最后由 雪流星 于 2009-7-21 15:44 编辑
脚本相关:
脚本教程:
雪流星脚本教程第一弹:Scene脚本教程一
雪流星脚本教程第二弹:Scene脚本教程二
st●腳本的使用與入門●rz
Q:RMVX 发布区有些脚本发布帖出现换行错误,复制进入工程後会出现错误,怎麽办?
A:这是论坛改版後出现的部分换行错误。发现有此错误的脚本请在该帖里面回复提醒版主或 PM 在线版主。版主只要将该帖「编辑」再「确认」之後就会恢复正常了。
Q:RM脚本大多数还可以用把?
A:大多数都会冲突,只要少部分能完全相容。
Q:XP和VX的脚本(也就是RGSS和RGSS2)有什麽差别?为何不能相容?能不能举例?
A:很多脚本新手以为RGSS和RGSS2的差别在於语法,其实不然。
因为他们都是ruby语言,语法完全一样,差别是:类定义和方法定义不同,而不能相容的原因也在於此。
举例来说
XP获取物品、武器、防具数量的脚本分别是:
$game_party.item_number(物品ID)
$game_party.weapon_number(武器ID)
$game_party.armor_number(防具ID)
VX的item_number这个方法同时整合了物品、武器、防具
所以要写成:
$game_party.item_number($data_items[物品ID])
$game_party.item_number($data_weapons[武器ID])
$game_party.item_number($data_armors[防具ID])
Q:我想学脚本,该怎麽开始?
A:学脚本四部曲
1. 看F1, 或下载本帖最上面的说明档来看
2. 学习用事件,练习你的逻辑思维。
3. 下载别人的脚本,试着自己改动看看,了解别人是怎麽写的
4. 自己写一些简单的脚本。
Q:怎么样在脚本编辑器里面全局搜索?
A:按快捷键 Ctrl + Shift + F
如果不能用可能是输入法惹的祸
http://rpg.blue/viewthread.php?tid=96917
Q:RMVX怎么更换默认字体?
A:修改 main 脚本
1.02之前版本:
把Main里面的- unless Font.exist?("UmePlus Gothic")
- print "UmePlus Gothic フォントが見つかりません。"
- exit
- end
复制代码 替换成:
Font.default_name = (["黑体","宋体"])
1.02与以上版本:
直接在 main 里面的 begin 前面加上- Font.default_name = (["黑体","宋体"])
复制代码 里面的字体名称可以依照自己喜好顺序填写,这里只是示范。
VX使用时会优先取用第一个字体,计算机内没有安装该字体的话,就使用下一个。
如果是自己制作或下载的特殊字体,将字体文件放在游戏文件夹下的 Fonts 文件夹(没有的话自己创建)然後将上面的字体名称取代/加上相对应的字体名称。
Q:如何改变战斗讯息文字的颜色?
A:Window_BattleMessage倒数最後两句- self.contents.font.color = normal_color
- self.contents.draw_text(rect, @lines[index])
复制代码 替换成- self.contents.font.color = normal_color
- text = @lines[index].clone
- while ((c = text.slice!(/./m)) != nil)
- # \C[n] 的情況下
- if c == "\001"
- # 更改文字色
- text.sub!(/\[([0-9]+)\]/, "")
- color = $1.to_i
- if color >= 0 and color <= 31
- self.contents.font.color = text_color(color)
- else
- self.contents.font.color = text_color(0)
- end
- # 下面的文字
- next
- end
- c_width = contents.text_size(c).width
- rect.x+= c_width
- self.contents.draw_text(rect.x, rect.y, 348, 24, c)
- end
复制代码 Q:如何通过脚本修改系统当前音乐/音效的音量?
A:使用此脚本:- $volume = 1.00
- module RPG
- class BGM < AudioFile
- @@last = BGM.new
- def play
- if @name.empty?
- Audio.bgm_stop
- @@last = BGM.new
- else
- Audio.bgm_play("Audio/BGM/" + @name, @volume * $volume , @pitch)
- p $game_variables[1]
- @@last = self
- end
- end
- end
- class SE < AudioFile
- def play
- unless @name.empty?
- Audio.se_play("Audio/SE/" + @name, @volume * $volume, @pitch)
- end
- end
- end
- end
复制代码 Q:如何设置文件在读取一个存档的时候自动跳到x=变量5,y=变量6的位置?
A:如果是每次读取的话 在 Scene_File 中
$game_player = Marshal.load(file) 下添加
[quote]
$game_player.x = $game_variables[5]
$game_player.y = $game_variables[6]
$game_player.real_x = $game_variables[5] * 256
$game_player.real_y = $game_variables[5] * 256
然后把Game_Character 中 以下4个
reader 改为 accessor 像这样
attr_accessor :x # 地图 X 坐标 (理论坐标)
attr_accessor :y # 地图 Y 坐标 (理论坐标)
attr_accessor :real_x # 地图 X 坐标 (实际坐标 * 256)
attr_accessor :real_y # 地图 Y 坐标 (实际坐标 * 256)
Q:请问VX中怎么在地图左上增加步数窗口(不是菜单中)
A:创建一个Window类显示$game_party.steps
然后再Scene_Map调用(可以用alias)就行了
Q:如何让一幅地图在被按下ESC的时候事件都在起始位置,主角在以8,9号变量为XY的位置?
A:首先 在Game_Map中添加一个方法
- def reset_events
- for i in @map.events.keys
- @events[i].x = @map.events[i].x
- @events[i].y = @map.events[i].y
- @events[i].real_x = @events[i].x * 256
- @events[i].real_y = @events[i].y * 256
- end
- end
复制代码 然后在公共事件中调用 $game_map.reset_events 就可以让所有事件回到原位
至于角色回到变量的代码,可参考上一题中的回答添加进此方法里。
Q:如何设置本地图每个事件的图片都为相同一个
A:修改 Game_Character 中
- attr_accessor :character_name # 步行图像文件名
- attr_accessor :character_index # 步行图像索引
复制代码 和前面一样 reader 改 accessor
然后- def reset_events_pic
- for i in @map.events.keys
- @events[i].character_name = 'people1'
- @events[i].character_index = 0
- end
- end
复制代码 调用 $game_map.reset_events_pic
前一个是图片名,后一个是角色在图片的位置。
Q:如何实现镜头(即画面)转移,就是像xp那种:
1. 关键人物出现,镜头随即转向他
2. 关键人物行走时镜头跟随!?
A:请见此帖
Q:为什麽场所移动时会出现错误??
A:注意这是某些汉化版本 VX 的错误
原因来自修改地图BGM的BUG时只修改了一半
请看此帖
http://rpg.blue/viewthread.php?tid=80572
解决方法:
在 Game_Map 里面添加Q:为什麽系统变量赋值时会出现错误??
A:这是部分版本的BUG,将此行山去即可(在Game_Interpreter第749行左右)
actor = $game_actors[@parameters[1]] |
|