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

Project1

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

RGSS语法表

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
59
在线时间
31 小时
注册时间
2009-1-30
帖子
207
跳转到指定楼层
1
发表于 2009-2-19 09:23:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
{/se}{/se}
上网的时候无意发现的=。=
虽然F1中很详细  但是不集中 新手复制过去放到小本本里随时翻翻

最后还有各种事例
{/hx}正在将游戏从事件劲可能都写成脚本形式中


  1.   变量类型:
  2.   全局变量 $var
  3.   实变量 @var
  4.   局部变量 var
  5.   常量 VAR
  6.   数据类型(注:RGSS中变量类型为弱变量,无需定义,只要初始化即可。):
  7.   数值型 0~9
  8.   浮点型 0~9,小数点
  9.   字符串型 加了""的在ASCII码表上的任意字符。
  10.   布尔型 true/false
  11.   空型 nil
  12.   RGSS是Ruby的游戏脚本系统,所以关键字与Ruby原版大同小异,但也有少数修改,如:
  13.   RGSS1.02J(或更高版本)中,puts()函数功能被简化为p,添加了print函数,
  14.   RGSS1.03J中添加了块注释方法,即以“=begin”开头,以“=end”结束。
  15.   RGSS遇到换行符就自动结束当前的这一行,这一点是与VB相似的,当然,RGSS也可以象C语言那样以西文分号结束,这点看习惯。
  16.   RGSS主程序开始与结束
  17.   begin
  18.   程序段
  19.   end
  20.   RGSS库的开始与结束
  21.   modle 库名
  22.   程序段
  23.   end
  24.   RGSS类的开始与结束
  25.   class 类名 < [父类]
  26.   程序段
  27.   end
  28.   RGSS自定义函数的开始与结束
  29.   def 函数名[(参数)]
  30.   程序段
  31.   end
  32.   RGSS库的调用
  33.   include 库名
  34.   RGSS类的调用
  35.   类名.new[(类中initialize函数的参数)]
  36.   RGSS自定义函数的调用
  37.   函数名[(参数)]
  38.   RGSS中的条件分歧
  39.   1.if语句
  40.   示例:
  41.   if $a == "66rpg"
  42.   print("欢迎来到#{$a}")
  43.   end
  44.   2.if...else语句
  45.   示例:
  46.   if $username == "admin" and $password == "abc"
  47.   print("你好,Admin")
  48.   else
  49.   print("您无权察看!!")
  50.   exit
  51.   end
  52.   3,if...elsif...else语句
  53.   示例:
  54.   if $name == "Tony" and $lastname == "Fox"
  55.   print("Welcome, Tony Fox!")
  56.   elseif $name == "Iceandsnow" and $lastname == "Fox"
  57.   print("Welcome, Iceandsnow Fox!")
  58.   else
  59.   print("Unable Name")
  60.   end
  61.   4.case语句
  62.   case 变量
  63.   when 值
  64.   语句块
  65.   when 值
  66.   语句块
  67.   else
  68.   语句块
  69.   end
  70.   RGSS中的循环
  71.   while ~ end在满足特定条件期间进行循环的情况下使用 while 语句。
  72.   a = 0 # 为变量 a 赋值代入 0。
  73.   i = 1 # 为变量 i 赋值代入 1。
  74.   while i <= 5 # 当变量 i 为 5 以下时循环开始(重复以下处理),
  75.   a += i # 变量 a 加上 i 的值。
  76.   i += 1 # 变量 i 的值增加 1。
  77.   end # 循环结束。
  78.   p a # 显示计算结果。
  79.   这个示例是求从 1 到 5 这五个数字总和的程序。在这里,变量 i 是用来产生从 1 到 5 这五个数字用的。当然变量名也可以不用 i,一般情况下循环处理用的变量会使用 i、j、k 为名称。
  80.   那么,这个程序最重要的是 i += 1 这行。如果没有这行 i 的值永远为 1,而 i <= 5 的条件也会一直满足,就会成为无限循环。因此,这里每次都向 i 加上 1 使得 i 的值依次变为 2、3、4、5、6 从而使得循环结束。
  81.   变量 a 和 i 的数值变化,如下表所示。
  82.   循环 a 的值 i 的值
  83.   初始状态 0 1
  84.   1 次后 1 2
  85.   2 次后 3 3
  86.   3 次后 6 4
  87.   4 次后 10 5
  88.   5 次后 15 6
  89.   循环 5 次后,在 a 的数值里面实际上进行了 1+2+3+4+5 的计算,i 的值也超过了 5 而执行 end 使得循环结束。
  90.   然后以 p 命令显示最终 a 的值,就会显示出答案 15。
  91.   变化范围
  92.   数值的范围,例如类似于「从 1 到 5」这样的概念就称为变化范围。
  93.   1..5
  94.   上述示例表示「从 1 到 5」的意思。使用 .. 运算符,就能作成一个变化范围。
  95.   而且,使用 ... 运算符也可以。
  96.   1...5
  97.   和 .. 不同的是「不含最后一个数」。所以,这种情况实际上表示的是「从 1 到 4」的意思。
  98.   for ~ in ~ end
  99.   想在变化范围表示的范围内循环的情况下使用 for 语句。
  100.   a = 0 # 为变量 a 赋值代入 0。
  101.   for i in 1..5 # 变量 i 的值按从 1 到 5 的范围变化,
  102.   a += i # 变量 a 加上 i 的值。
  103.   end # 循环结束。
  104.   p a # 显示计算结果。
  105.   这个示例和使用 while 语句的示例完全相同,也是求从 1 到 5 这五个数字总和的程序,但比使用 while 的情况更加简洁。在 while 中变量 i 加上 1 表示的是从 1 到 5 的范围,然而在 for 中是用变量 i 按「从 1 到 5 的范围」的顺序代入来表示。表面看起来不同,但实际上进行的是意思完全相同的处理。
  106.   Ruby 中有许多语法,循环中也存在各种各样不同的方法。在不同语法使用中,请按照这个示例提示的「让编写更简便」的方式来思考。实际上,如果理解了条件分歧和循环的话,就能进行大部分逻辑运算了。
  107.   loop do ~ end
  108.   未指定循环次数和条件的情况下,也就是想进行无限循环时使用 loop 语句。这个与 while 和 for 语句的性质稍微有所不同,一般情况下没有必要注意。
  109.   i = 0 # 为变量 i 赋值代入 0。
  110.   loop do # 循环开始。
  111.   i += 1 # 变量 i 的值增加 1。
  112.   p i # 显示变量 i 的值。
  113.   end # 循环结束。
  114.   这个示例是「一边把 i 的值加上 1,一边显示 i 的值」的程序,没有结束条件。一旦运行的话就会连续显示 1、2、3……。如果这种对话框不断显示的话,就算要结束程序也是不可能的,只能按着 F12 键不放强行关闭对话框,并点击右上方的结束按钮关闭程序。
  115.   break
  116.   想中途中断循环就要使用 break 命令。
  117.   i = 0 # 为变量 i 赋值代入 0。
  118.   loop do # 循环开始。
  119.   i += 1 # 变量 i 的值增加 1。
  120.   if i == 5 # 如果变量 i 的值为 5 的话,
  121.   break # 中断循环。
  122.   end # 条件分歧结束。
  123.   p i # 显示变量 i 的值。
  124.   end # 循环结束。
  125.   上述示例在程序中加上了「i 等于 5 的就中断循环」的条件。运行该程序,显示 1、2、3、4 就结束了。
  126.   break 即使在 while 和 for 等其它方法作成的循环中也能使用。
  127.   next
  128.   在不中断循环的情况下,跳过本次循环而进入下一次循环时使用 next 命令。
  129.   for i in 1..5 # 变量 i 的值按从 1 到 5 的范围变化,
  130.   if i == 3 # 如果变量 i 的值为 3 的话,
  131.   next # 进入下一次循环。
  132.   end # 条件分歧结束。
  133.   p i # 显示变量 i 的值。
  134.   end # 循环结束。
  135.   运行这个示例,会显示 1、2、4、5。
  136. [编辑本段]程序示例
  137.   1,helloworld程序
  138.   begin
  139.   print("HelloWorld!!")
  140.   end
  141.   2,数值运算
  142.   begin
  143.   x = 10
  144.   y = 20
  145.   p x+y
  146.   end
  147.   3,条件判断
  148.   begin
  149.   a = 10
  150.   if a>=5
  151.   print("a的值大于等于5")
  152.   else
  153.   print("a的值小于等于5")
  154.   end
  155.   end
  156.   4,循环
  157.   begin
  158.   for i in 1..3
  159.   print("这是第#次显示")
  160.   end
  161.   end
  162.   begin
  163.   do
  164.   print("这是第#次显示")
  165.   while i <= 4
  166.   end
  167.   begin
  168.   loop do
  169.   i++
  170.   print("这是第#次显示")
  171.   if i = 4
  172.   break
  173.   end
  174.   end
  175.   end
  176.   5,函数调用
  177.   class My_Class
  178.   def mian # 主处理
  179.   x = 6
  180.   y = 5
  181.   addnum(x, y)
  182.   end
  183.   def addnum(num1, num2)
  184.   sum = num1 + num2
  185.   p sum
  186.   end
  187.   end
  188.   6,类的调用
  189.   begin
  190.   if $scene != nil
  191.   $scene.main
  192.   else
  193.   exit
  194.   end
  195.   $scene = Scene_MyClass.new
  196.   end
  197.   7,库的生成及调用
  198.   module MYMODULE
  199.   def division(num1, num2)
  200.   sum = num1/num2
  201.   return sum
  202.   end
  203.   end
  204.   class My_Class
  205.   include MYMODULE
  206.   def main
  207.   x = 25
  208.   y = 16
  209.   z = division(x, y)
  210.   p z
  211.   end
复制代码



还有个很好的东西 VX 自定义的一些命令
  1. [quote][b]以下引用[u]superufo于2008-1-24 9:39:35[/u]的发言:[/b]


  2. 本帖得到版主鼓励,积分增加150
  3. 本贴悬赏额度如下:VIP:0   积分:31   
  4. 先声明:这个不是教学,你可以把它当作查询手册。如果有你需要的脚本而这里没有收录,请回帖提出,谢谢!

  5. 使用方法:你需要哪个就自己找一下,或者用ctrl+f搜索一下,自己在事件里面打1、2遍,以后这个知识就是你自己的了。如果每次都ctrl+v ctrl+v,什么时候才能学会呢?

  6. 显示文章:
  7. $game_message.texts.push("****")
  8. 显示引号中的文章。一般要配合初始化显示文章使用。

  9. 更改文章选项:
  10. $game_message.position = 0,1,2
  11. 表示上、中、下,三个位置

  12. 更改文章背景:
  13. $game_message.background = 0 ,1,2
  14. 表示普通窗口、背景变暗、透明,三种效果

  15. 初始化显示文章:
  16. set_message_waiting
  17. 注:这个用了以后下一次显示文章时的文章选项、背景恢复正常,如果不用这个的话所有显示的文章将并在一个框里,有兴趣的去试一下。

  18. 中断事件处理:
  19. command_end

  20. 把某一个事件暂时消除
  21. $game_map.events[X].erase
  22. 其中X表示把X号事件暂时消除,如果是消除本事件X = @event_id

  23. 执行公共事件:
  24. $game_temp.common_event_id = 编号
  25. 执行编号的公共事件。

  26. 开关操作:
  27. $game_switches[编号] = true / false
  28. true是打开,false是关闭

  29. 变量操作:
  30. $game_variables[编号] = 数值
  31. 这里有一些常用的内容:
  32. rand(100):返回0-99的随机数
  33. rand(100)+10000:返回10000-10099的随机数
  34. $game_party.item_number($data_items[X]):编号物品的个数

  35. 角色相关:以下为某编号的角色的相关属性
  36. $game_actors[编号]
  37. 生命:~.hp
  38. 魔法:~.mp
  39. 生命上限:~.maxhp
  40. 魔法上限:~.maxmp
  41. ID:~.id
  42. 名字:~.name
  43. 职业ID:~.class_id
  44. 初期等级:~.initial_level
  45. 是否二刀流:~.two_swords_style
  46. 是否装备固定:~.fix_equipment
  47. 是否自动战斗:~.auto_battle
  48. 是否强力防御:~.super_guard
  49. 是否药理知识:~.pharmacology
  50. 是否会心频发:~.critical_bonus
  51. 是否学会特技:~.skill_learn?(编号)
  52. 学会特技:~.learn_skill(编号)
  53. 攻击力:~.atk
  54. 防御力:~.def
  55. 精神力:~.spi
  56. 敏捷性:~.agi

  57. 地图ID:$game_map.map_id
  58. 同伴总人数:$game_party.members.size
  59. 步数:$game_party.steps
  60. 金钱:$game_party.gold
  61. 游戏总时间(秒数):Graphics.frame_count / Graphics.frame_rate
  62. 游戏总帧数:Graphics.frame_count
  63. 游戏帧速率(可直接=n调整):Graphics.frame_rate
  64. 计时器剩余秒数:$game_system.timer / Graphics.frame_rate
  65. 存档次数:$game_system.save_count

  66. 独立开关操作:
  67. $game_self_switches[[地图编号,事件编号,"A"]] = true/false
  68. 把地图编号的地图上的事件编号的事件的A开关打开。其实不光ABCD,还可以建立更多独立开关,不过调用也得用同样脚本。

  69. 计时器打开:
  70. $game_system.timer = 需要的秒数;$game_system.timer_working = true

  71. 计时器关闭:
  72. $game_system.timer_working = false

  73. 增减金钱:
  74. $game_party.gain_gold(金钱量)

  75. 增减物品、武器、防具:
  76. $game_party.gain_item(物品,数量)
  77. 举例:
  78. $game_party.gain_item($data_items[1],1):获得1号物品
  79. $game_party.gain_item($data_weapons[1],1):获得1号武器
  80. 角色替换:
  81. 加入角色:$game_party.add_actor(编号)
  82. 删除角色:$game_party.remove_actor(编号)

  83. 更改窗口外观:
  84. 窗口:self.windowskin = Cache.system("文件名")

  85. 更改禁止存档
  86. $game_system.save_disabled = true/false

  87. 更改禁止菜单:
  88. $game_system.menu_disabled = true/false

  89. 更改禁止遇敌:
  90. $game_system.encounter_disabled = true/false

  91. 地图卷动:
  92. $game_map.start_scroll(方向,距离,速度)

  93. 地图某角色显示动画:
  94. $game_map.events[id].animation_id = 动画编号

  95. 角色透明:
  96. $game_player.transparent = true/false

  97. 开始更改色调:
  98. 平时:$game_map.screen.start_tone_change(Tone.new(R,G,B,A),帧数)
  99. 战斗:$game_troop.screen.start_tone_change(Tone.new(R,G,B,A),帧数)

  100. 画面闪烁:
  101. 平时:$game_map.screen.start_flash(Color.new(R,G,B,A),帧数)
  102. 战斗:$game_troop.screen.start_flash(Color.new(R,G,B,A),帧数)

  103. 画面振动:
  104. 平时:$game_map.screen.start_shake(力度,速度,帧数)
  105. 战斗:$game_troop.screen.start_shake(力度,速度,帧数)

  106. 显示图片:
  107. $game_map.screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  108. 移动图片:
  109. $game_map.screen.pictures[number].move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type)
  110. 其中:
  111. #     name         : 文件名
  112. #     origin       : 原点
  113. #     x            : X 坐标
  114. #     y            : Y 坐标
  115. #     zoom_x       : X 方向放大率
  116. #     zoom_y       : Y 方向放大率
  117. #     opacity      : 不透明度
  118. #     blend_type   : 合成方式
  119. #     duration     : 时间

  120. 旋转图片:
  121. $game_map.screen.pictures[number].rotate(速度)

  122. 删除图片:
  123. $game_map.screen.pictures[number].erase

  124. 显示动画(战斗中)
  125. battler.animation_id = 动画编号
  126. battler可以是敌人或者自己人,请先定义。

  127. 战斗中断:
  128. $game_temp.battle_abort = true

  129. 调用菜单:
  130. $scene = Scene_Menu.new

  131. 调用存档画面:
  132. $scene = Scene_File.new(true,false,true)

  133. 调用读档画面:
  134. $scene = Scene_File.new(false,false,true)

  135. 游戏结束:
  136. $scene = Scene_Gameover.new

  137. 返回标题画面:
  138. $scene = Scene_Title.new

  139. 强行启动事件:
  140. $game_map.events[编号].start

  141. 通行判定:
  142. $game_player.passable?(x,y,方向)
  143. 用来判断地图某处是否在某个方向可通行

  144. 正在移动判定:
  145. $game_player.moving?
  146. $game_map.events[编号].moving?

  147. 播放SE:
  148. Sound.play_*****
  149. 例:Sound.play_decision

  150. 系统用语:
  151. Vocab::****
  152. 例:Vocab::hp

  153. 判断某角色在队伍中:$game_party.members.include?($game_actors[编号])

  154. 按下某键的时候:Input.press?(键),Input.trigger?(键)
  155. 这两个请参考脚本中的其他定义推理



  156. [本贴由作者于 2008-2-8 9:12:08 最后编辑]
  157. [/quote]
复制代码
是转火星机械的某个帖子的{/cy}我都是看这那个写的
蚊香

Lv1.梦旅人

梦石
0
星屑
59
在线时间
31 小时
注册时间
2009-1-30
帖子
207
2
 楼主| 发表于 2009-2-20 03:34:39 | 只看该作者
{/ll}{/ll}没人要看
{/fd}难道只存在2种人吗?
{/qiang}Ruby高手  {/ruo}伸手党
就没有下决心自己学习脚本的吗
蚊香
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
发表于 2009-2-20 03:36:35 | 只看该作者
这个,看起来比 F1 的还累~~~
版主对此帖的认可:『积分恢复』,积分『+9999』。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-8
帖子
44
4
发表于 2009-2-20 03:40:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
31 小时
注册时间
2009-1-30
帖子
207
5
 楼主| 发表于 2009-2-20 03:57:24 | 只看该作者
{/fd}{/fd}F1是很有条例啊
这个是看了F1后自己写的时候看的
你总不会忘记点按F1慢慢找下来把   F1是 英语课本(逐个解释+实例)的话
这个就是英语 课本后面的单词表(著名各自的意思)

要是你课本没看直接给你看英语句子当然看不懂  应为你语序都不知道
这个也是一样 你基本理解RGSS的语法后   突然忘记哪个是什么意思或者怎么写的时候 看下就知道了
蚊香
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-8
帖子
44
6
发表于 2009-2-20 04:09:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
299
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

7
发表于 2009-2-20 04:11:33 | 只看该作者
F1 至少是分类的。

找起来很比较方便。

而且 还有 搜索功能~~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
31 小时
注册时间
2009-1-30
帖子
207
8
 楼主| 发表于 2009-2-20 04:35:52 | 只看该作者
{/hx}{/hx}单词表不存在分类  放本子里搜索自己查看都可以  英搜汉 汉搜英   这不是教程  
{/fd}同样是F1为啥我的就没搜索  就一索引
{/hx}{/hx}高手是理解不聊我这样 连一点点的 判断语句都记不清楚的小菜菜的痛苦的
{/hx}学习VX 2~3星期了 现在还是一个个翻的写小脚本的
{/gg}{/gg}我都是先写好事件版然后自己对这写小脚本 强迫自己尽量别事件
蚊香
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-2-6
帖子
46
9
发表于 2009-2-20 05:33:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-8
帖子
44
10
发表于 2009-2-20 05:58:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-27 20:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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