Project1

标题: 菜鸟教程-随机偷盗技能 [打印本页]

作者: 冰舞蝶恋    时间: 2010-7-25 10:40
标题: 菜鸟教程-随机偷盗技能
本帖最后由 冰舞蝶恋 于 2010-8-1 14:48 编辑

由于看到有些仁兄的游戏想加入偷盗技能,却做得一塌糊涂,现在发一个简单的菜鸟教程帮大家解除一下疑惑!
1.首先,你需要设置一个技能。技能名称自定。

2.新建一个公用事件,并且把技能的可用时间调为战斗,发动对象调为敌人单体,伤害为0,并且触发此公用事件。

3.公用事件内容:
变量的操作,自己独立建一个变量:随机数,1~[可以偷盗的物品的数量],例如“1~10”、“1~20”。
条件的分歧:变量[XXX]值为1,获得XXX物品;
            不符合条件时的处理:条件的分歧,变量[XXX]值为2,获得XXX物品;
            不符合条件时的处理:条件的分歧,变量[XXX]值为3,获得XXX物品;
            不符合条件时的处理:条件的分歧,变量[XXX]值为4,获得XXX物品;
            不符合条件时的处理:条件的分歧,变量[XXX]值为5,获得XXX物品;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
==========================================================================
以此类推。但是对于新手来说,可偷盗的物品不要太多,不然你会头晕眼花的哟!
发几个截图来证明一下!

使用了偷盗技能!

随机获得了物品!



目前就懒得截更多的图了,大家掌握了方法就自己去做吧。当然,这个获得物品提示是用了脚本的,本来分歧就很繁琐了,要是再去一个个写获得物品那就写死人了 = =
在这里我把脚本发给大家!
  1. # ————————————————————————————————————
  2. # 本脚本来自[url]www.66rpg.com[/url],转载请保留此信息
  3. # ————————————————————————————————————

  4. # 注意!!!在对话后得到物品,请在对话后先用事件等待3帧,否则对话框来不及消失。

  5. # 新增获得经验值提示,喝水后回复提示和增减等级提示.

  6. # 开关定义:

  7. $不显示金钱窗口 = 2

  8. $不显示物品窗口 = 2

  9. $不显示武器窗口 = 2

  10. $不显示防具窗口 = 2

  11. # 以上开关,当打开的时候,获得物品将不会提示,比如默认打开41号开关,获得金钱不再提示

  12. # ————————————————————————————————————

  13. class Interpreter
  14. #--------------------------------------------------------------------------
  15. # ● 增减金钱
  16. #--------------------------------------------------------------------------
  17. def command_125
  18. value = operate_value(@parameters[0], @parameters[1], @parameters[2])
  19. $game_party.gain_gold(value)
  20. if $game_switches[$不显示金钱窗口]==false
  21. carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)
  22. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  23. if value >= 0
  24. carol3_66RPG.contents.draw_text(0,0,240,32,"获得金钱:")
  25. #——声效,可以自己改
  26. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  27. else
  28. carol3_66RPG.contents.draw_text(0,0,240,32,"失去金钱:")
  29. #——声效,可以自己改
  30. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  31. end
  32. carol3_66RPG.contents.draw_text(0,32,240,32,value.abs.to_s)
  33. carol3_66RPG.contents.draw_text(0,32,140,32, $data_system.words.gold,2)
  34. carol3_66RPG.opacity = 160
  35. for i in 0..30
  36. Graphics.update
  37. end
  38. for i in 0..10
  39. carol3_66RPG.opacity -= 30
  40. carol3_66RPG.contents_opacity -= 30
  41. Graphics.update
  42. end
  43. carol3_66RPG.dispose
  44. end
  45. return true
  46. end
  47. #--------------------------------------------------------------------------
  48. # ● 增减物品
  49. #--------------------------------------------------------------------------
  50. def command_126
  51. value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  52. $game_party.gain_item(@parameters[0], value)
  53. if $game_switches[$不显示物品窗口]==false
  54. carol3_66RPG_item = $data_items[@parameters[0]]
  55. carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  56. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  57. if value >= 0
  58. carol3_66RPG.contents.draw_text(0,0,240,32,"获得物品:")
  59. #——声效,可以自己改
  60. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  61. else
  62. carol3_66RPG.contents.draw_text(0,0,240,32,"失去物品:")
  63. #——声效,可以自己改
  64. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  65. end
  66. carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  67. carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  68. carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  69. carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  70. carol3_66RPG.opacity = 160
  71. for i in 0..30
  72. Graphics.update
  73. end
  74. for i in 0..10
  75. carol3_66RPG.opacity -= 30
  76. carol3_66RPG.contents_opacity -= 30
  77. Graphics.update
  78. end
  79. carol3_66RPG.dispose
  80. end
  81. return true
  82. end
  83. #--------------------------------------------------------------------------
  84. # ● 增减武器
  85. #--------------------------------------------------------------------------
  86. def command_127
  87. value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  88. $game_party.gain_weapon(@parameters[0], value)
  89. if $game_switches[$不显示武器窗口]==false
  90. carol3_66RPG_item = $data_weapons[@parameters[0]]
  91. carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  92. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  93. if value >= 0
  94. carol3_66RPG.contents.draw_text(0,0,240,32,"获得武器:")
  95. #——声效,可以自己改
  96. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  97. else
  98. carol3_66RPG.contents.draw_text(0,0,240,32,"失去武器:")
  99. #——声效,可以自己改
  100. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  101. end
  102. carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  103. carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  104. carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  105. carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  106. carol3_66RPG.opacity = 160
  107. for i in 0..30
  108. Graphics.update
  109. end
  110. for i in 0..10
  111. carol3_66RPG.opacity -= 30
  112. carol3_66RPG.contents_opacity -= 30
  113. Graphics.update
  114. end
  115. carol3_66RPG.dispose
  116. end
  117. return true
  118. end
  119. #--------------------------------------------------------------------------
  120. # ● 增减防具
  121. #--------------------------------------------------------------------------
  122. def command_128
  123. value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  124. $game_party.gain_armor(@parameters[0], value)
  125. if $game_switches[$不显示防具窗口]==false
  126. carol3_66RPG_item = $data_armors[@parameters[0]]
  127. carol3_66RPG = Window_Base.new((640-300)/2,128,300,100)
  128. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  129. if value >= 0
  130. carol3_66RPG.contents.draw_text(0,0,240,32,"获得防具:")
  131. #——声效,可以自己改
  132. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  133. else
  134. carol3_66RPG.contents.draw_text(0,0,240,32,"失去防具:")
  135. #——声效,可以自己改
  136. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  137. end
  138. carol3_66RPG_bitmap = RPG::Cache.icon(carol3_66RPG_item.icon_name)
  139. carol3_66RPG.contents.blt(0, 32, carol3_66RPG_bitmap, Rect.new(0, 0, 24, 24), 255)
  140. carol3_66RPG.contents.draw_text(0 + 28, 32, 212, 32, carol3_66RPG_item.name, 0)
  141. carol3_66RPG.contents.draw_text(0, 32, 268, 32, "×"+value.abs.to_s, 2)
  142. carol3_66RPG.opacity = 160
  143. for i in 0..30
  144. Graphics.update
  145. end
  146. for i in 0..10
  147. carol3_66RPG.opacity -= 30
  148. carol3_66RPG.contents_opacity -= 30
  149. Graphics.update
  150. end
  151. carol3_66RPG.dispose
  152. end
  153. return true
  154. end
  155. def command_315
  156. # 获取操作值
  157. value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  158. # 处理重复
  159. iterate_actor(@parameters[0]) do |actor|
  160. # 更改角色 EXP
  161. actor.exp += value
  162. end
  163. carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)
  164. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  165. if value >= 0
  166. carol3_66RPG.contents.draw_text(0,0,240,32,"获得经验:")
  167. #——声效,可以自己改
  168. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  169. else
  170. carol3_66RPG.contents.draw_text(0,0,240,32,"失去经验:")
  171. #——声效,可以自己改
  172. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  173. end
  174. carol3_66RPG.contents.draw_text(0,32,240,32,value.abs.to_s)
  175. carol3_66RPG.contents.draw_text(0,32,140,32, "exp",2)
  176. carol3_66RPG.opacity = 160
  177. for i in 0..30
  178. Graphics.update
  179. end
  180. for i in 0..10
  181. carol3_66RPG.opacity -= 30
  182. carol3_66RPG.contents_opacity -= 30
  183. Graphics.update
  184. end
  185. carol3_66RPG.dispose
  186. return true
  187. end
  188. def command_314
  189. # 处理重复
  190. iterate_actor(@parameters[0]) do |actor|
  191. # 角色全回复
  192. actor.recover_all
  193. end
  194. carol3_66RPG = Window_Base.new((640-160)/2,128,120,60)
  195. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  196. carol3_66RPG.contents.draw_text(0,0,240,32,"完全恢复")
  197. #——声效,可以自己改
  198. Audio.se_play("Audio/SE/"+"105-Heal01",80,100)
  199. carol3_66RPG.opacity = 160
  200. for i in 0..30
  201. Graphics.update
  202. end
  203. for i in 0..10
  204. carol3_66RPG.opacity -= 30
  205. carol3_66RPG.contents_opacity -= 30
  206. Graphics.update
  207. end
  208. carol3_66RPG.dispose
  209. # 继续
  210. return true
  211. end
  212. def command_316
  213. # 获取操作值
  214. value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  215. # 处理重复
  216. iterate_actor(@parameters[0]) do |actor|
  217. # 更改角色的等级
  218. actor.level += value
  219. end
  220. carol3_66RPG = Window_Base.new((640-160)/2,128,180,100)
  221. carol3_66RPG.contents = Bitmap.new(carol3_66RPG.width - 32, carol3_66RPG.height - 32)
  222. if value >= 0
  223. carol3_66RPG.contents.draw_text(0,0,240,32,"等级提升:")
  224. #——声效,可以自己改
  225. Audio.se_play("Audio/SE/"+"006-System06",80,100)
  226. else
  227. carol3_66RPG.contents.draw_text(0,0,240,32,"等级下降:")
  228. #——声效,可以自己改
  229. Audio.se_play("Audio/SE/"+"005-System05",80,100)
  230. end
  231. carol3_66RPG.contents.draw_text(0,32,240,32,value.abs.to_s)
  232. carol3_66RPG.contents.draw_text(0,32,140,32, "级",2)
  233. carol3_66RPG.opacity = 160
  234. for i in 0..30
  235. Graphics.update
  236. end
  237. for i in 0..10
  238. carol3_66RPG.opacity -= 30
  239. carol3_66RPG.contents_opacity -= 30
  240. Graphics.update
  241. end
  242. carol3_66RPG.dispose
  243. # 继续
  244. return true
  245. end
  246. end
复制代码
呵呵,就这么简单啦~脚本一类的东东我想就不用了吧 - -|||
作者: kenchenrong    时间: 2010-7-25 14:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangqixin    时间: 2010-7-25 15:09
写了   我也是来   拿脚本的
作者: 冰舞蝶恋    时间: 2010-7-25 16:32
竟然没人顶!?为了写这个教程偶花了一小时啊…… (┬_┬)
作者: 逸豫    时间: 2010-7-26 12:57
你不觉得获得物品窗口的z值需要修改一下么?
作者: 冰舞蝶恋    时间: 2010-7-26 18:08
我还是认为。。。。。我的战斗图z需要调一下 = =
作者: 冰舞蝶恋    时间: 2010-7-29 15:08
本帖最后由 冰舞蝶恋 于 2010-8-1 14:49 编辑

更新一下!发个范例,方便某些懒人= =
毕竟自己做那么长串分歧很麻烦嘛,范例包里还添加了偷盗失败的情况- -
自己认为事件的偷盗技能会比脚本要好 会简单许多
各位制作者自己判定吧


范例下载地址:
http://gd.qiannao.com/servlet/Fi ... -7f29-6587-4ef6.rar
作者: 菜鸟飞呀飞    时间: 2010-7-29 23:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 悠悠猫儿    时间: 2010-7-30 17:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: qq295268654    时间: 2010-7-31 13:39
谢谢啊,我刚好有用,太谢谢你了
作者: o88800o    时间: 2010-8-2 14:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: qwe941203    时间: 2010-8-14 20:50
好棒喔!谢谢
作者: 程琪程    时间: 2010-8-16 05:57
顶楼主,来看看有什么好玩的.




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1