赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
5楼
楼主 |
发表于 2008-3-3 10:18:24
|
只看该作者
脚本相关:
脚本教程:
雪流星脚本教程第一弹:Scene脚本教程一
雪流星脚本教程第二弹:Scene脚本教程二
st●腳本的使用與入門●rz
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:RMVX怎么更换默认字体?
A:1.02之前版本:
把Main里面的
- unless Font.exist?("UmePlus Gothic")
- print "UmePlus Gothic フォントが見つかりません。"
- exit
- end
复制代码
替换成:
Font.default_name = (["黑体","宋体"])
1.02与以上版本:
直接在begin前面加上
Font.default_name = (["黑体","宋体"])
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)
[/quote]
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:请见http://rpg.blue/viewthread.php?tid=79231
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]]
|
|