幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5569|回复: 11

[个人创意] 大话西游个人脚本系统分享与教学版(20100111更新)

[复制链接]

2

主题

3

帖子

109

积分

③业余

积分
109
发表于 2010-1-11 16:48:08 | 显示全部楼层 |阅读模式
游戏名称:大话西游个人脚本系统分享与教学版
游戏作者:小许,20091221日
游戏加密: 完全解密版
文件体积: 33.8M
运行环境:Win2000/WinXP及最新Windows系统
脱离RPG Maker XP运行: 内付RGSS103J.dll,可以独立运行!
作者声明:

(一)以下脚本内容(除第七, 第十二条),均为个人构思编写。不抄袭任何人作品。本人发布后,供所有喜欢制作RPG游戏的玩家参考学习,本人保留对所有属于个人脚本制作方法的最终解释
权!为方便大家都能看懂脚本内容,所有脚本语句都尽量使用默认的脚本词句!

(二)如果您发现我的制作方法有什么问题,欢迎提出建议,但请不要以此对本人发动言语攻击,毕竟我发布此贴,仅供大家学习参考,没有任何商业目的,谢谢合作!

(三)游戏中的各种数据,比如角色HP,SP,及战斗中的所有数据,仅是为了体验而随便设置的,并无其他意义!

(四)本游戏教程,采用来自6R的“真位移战斗系统”,作者不详,个人感觉良好,值得推荐!

(五)为了减小游戏体积,仅保留了地图BGM,其他音效都已去除!

(六)脚本查找,请把以下每条的标题放在脚本内搜索即可,比如:第一条,在游戏脚本页内按Shitt + Ctrl + F调出脚本搜索窗口,粘贴“万能药品系统”搜索即可!

(七)地图界面上的任务按钮,请先不要点击,因为缺少可执行的任务脚本,我手头上也没有了该脚本,有的朋友可以自己加进去!


以下为个人脚本简介:

(一)万能药品系统: 非使用公共事件,无任何外挂脚本!
更改依据: 玩过大话的玩家,都知道大话西游中的药品,没有什么使用限制(也就是RPG中所分的类型,比如:战斗,平时,菜单,己方单体,己方全体,己方单体H=0,己方全体H=0,要不要这么麻烦呢,靠)?
更改目的: 纯脚本修改方式,无任何BUG,简单,可靠!修改后,药品没有使用限制,战斗中,平时,活人,死人都可以使用!完全大话药品模式!
纯个人构思编写脚本!
该制作教程曾经在6R上发表过!

(二)地图界面按扭操作系统: 前提要求有使用到鼠标脚本的游戏!
更改初衷: 虽然6R有人发过用显示图片的方式来达到这个目的但是,不好用,而且有BUG,就是鼠标点击该图片时,角色会自动走到那边!
工作原理: 以鼠标的Y坐标来判定特定区域行走无效并根据指定的X,Y坐标呼叫各窗口的执行脚本!
更改模式: 纯鼠标脚本添加,无任何BUG,简单,可靠!
更改目的: 修改后,游戏操作基本不需要键盘(换人除外),本游戏中,仅添加的地图界面按扭,各个窗口,保持RPG默认模式,需要美化窗口的游戏,自己动手!
纯个人构思编写脚本!

(三)场所移动时45度朝向: 前提要求有使用到八向行走脚本的游戏!
工作原理: 在脚本中添加45度朝向并且可以在事件页中调用的单句脚本!
使用方法:事件页,在场所移动前放置该段脚本,场所移动中设置朝向为:就这样.
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
更改目的: 2D商业游戏素材,几乎没有正四向行走的游戏素材!添加该脚本后,可在事件中调用该脚本文件,来实现场所移动后,角色处于所需的,不同的45度站立模式!比较美观!
纯个人构思编写脚本!

(四)大话式中毒发作: RPG默认的毒发作是在战斗中,随机发作,而大话中,则是在角色输入战斗命令结束后,集体发作!比较美观习惯!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
副送内容: 在角色输入战斗命令前,自动解除以满回合的附加状态,比如封印,混论等等!效果与网游大话自动解除满回合状态一置!
纯个人构思编写脚本!

(五)同步刷新状态行为限制:RPG默认的脚本,应该是玩过大话的玩家所不能忍受的,RPG默认的脚本表现的“症状”是:被附加了行为限制的状态,排列方式是从大到小,最致命的是,同回合中,附加在敌人或角色上的状态发生改变后,原状态的行为限制不会因为状态的变化而变化!举例:创建一个状态,取名:封印,行为限制:不行动(也就是4)!也就是说,当角色或敌人被附加了封印状态后,在本次回合中,即使封印状态解除或被其他无行为限制行动的状态所取代,角色或敌人仍然处在不能行动中,直到本次回合结束,下回合开始行为限制才会改变!(如果还不明白,我也没办法
了,本人的语文水平就是如此!)
更改目的: 同回合中,状态发生改变时,行为限制同步刷新!
更改模式: 纯脚本修改,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(六)脚本式动画定义:顾名思意,就是通过脚本来定义不同的角色或职业使用不同的攻击,特技使用方动画!而不需要从武器或特技设置使用方的动画!从而实现同一个武器或特技,不同的使用者,自动调用不同使用方动画,实现武器或特技公共化!大大简化了数据库的设置!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(七)事件显示名字脚本加强:声明该脚本,来自6R。本人仅对其进行加强!
更改初衷: 原脚本,地图上,没有达到启动条件的事件只能用EVxxx来命名,不然的话,事件虽然没启动,但名字还是会显示在地图上!不仅如此,用EVxxx命名事件启动后,要显示名字,还要通过脚本的改名等等,诸多不便!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
更改目的: 任何事件可以实名设置,事件的名字,随事件的启动,消失,关闭,自动显示或消失!
提示:事件和角色同在一幅地图时,显示名字需要转场或调出其他窗口后,返回地图来刷新,如果不在同一幅地图,则没有任何问题!因此:要启动的事件最好不要放在同幅地图上!这是个BUG,还没解决!不过大话中的强盗,捉鬼,做天的诸多任务,领取任务和执行任务通常都不会在同一地图上,所以,该脚本还是很好用的!
脚本取自他人,个人加强!

(八)战斗结束自动返回地图:6R上曾经有人发过类似的制作方法,说实话,效果不是很好,重点是返回地图的时间不好控制,我制作的这个,可以根据个人设置的时间,精确控制返回的时间!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(九)大话限时输入命令系统:网游大话中,战斗开始时,输入战斗指令是有时间限制的,在规定的时间内,没有完成命令输入,自动设置角色为随机普通攻击!(时间可个人修改)
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(十) 逃跑失败随机普通攻击: 没什么特别意思,就是逃跑失败后,播放一个逃跑失败动画,随机展开普通攻击(需要使用特技,自己加强),默认的脚本,只会站着,傻傻的等侯挨打!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(十一) 角色升级,回复,加减HP,SP的自动播放指定动画: 这条没必要做特别解释,傻瓜都能知道!效果与大话中能看到的效果差不多!
更改模式: 纯脚本添加,无任何BUG,简单,可靠!
纯个人构思编写脚本!

(十二) 公共事件制作大话魔族震慑法术: 效果与大话中能看到的效果一置!需要注意的是,角色与敌人使用的特技公共事件,最好分开,当然也可以使用条件分歧,因为为了突显敌人无限的SP,所以角色的特技公共事件中不要附加SP伤害这条.另外在脚本的Scene_Battle 4页中,找到有关使用特技时消耗SP的脚本内容,加上一个条件分歧,只有当使用者为角色方时才消耗SP,敌人不消耗,这样,数
据库里,也就没必要去花太多的精力甚至可以不设置敌人的SP了!具体设置可参考个人游戏脚本Scene_Battle 4页第401条!
效果实现借鉴了6R“23条公共事件特效”的脚本内容!

(十三)战斗中,不同的动画,可根据动画文件名或数据库中的动画ID来识别,根据游戏需求进行不同高度Z值处理,比如有的高些,有的比角色低些,等等!比较美观,而不是一股脑的使用默认的Z=2000!具体脚本见“伤害值美化”!
游戏中还使用了很多来自6R上的脚本,比如角色选择,八向寻路等等,这里就不再一一嗷诉,也有一些实用的小效果,比如,场所移动动画的Z值调整,不同规格不同帧数的动画素材使用方法,都有详细的注释,看大家需要了!

付语: 以上内容,欢迎大家选用,如果有任何问题,可以跟贴留言!但请不要问我有关素材制作方面的事宜,本人仅会对您说: 您应该多学习一些PS使用方法!

部分截图:















迅雷高速下载(一):大话西游个人脚本系统分享与教学版
下载示意图(鼠标手势):



迅雷高速下载(二):大话西游个人脚本系统分享与教学版
下载示意图(鼠标手势):



问题交流:个人主页
个人电邮:xufangcun@163.com
无法下载或发现问题,请跟贴回应,也可点此单独给我QQ留言!
回复

使用道具 举报

0

主题

2

帖子

16

积分

②入门

积分
16
发表于 2010-1-13 16:40:31 | 显示全部楼层
学习了   
回复 支持 反对

使用道具 举报

1

主题

11

帖子

89

积分

②入门

积分
89
发表于 2010-1-14 06:41:28 | 显示全部楼层
太太太太太太太太高档了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

16

积分

②入门

积分
16
发表于 2010-4-12 00:50:43 | 显示全部楼层
帅的掉渣了,你是新人的福音,哦~NO~!!不不不,这么说,感觉你有点像上D~!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-4-12 14:56:43 | 显示全部楼层
礼顶LZ。。。做的很用心啊,帖子也发的用心
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

4

主题

9

帖子

171

积分

③业余

积分
171
发表于 2010-4-15 05:22:43 | 显示全部楼层
很好很强大,马上下载去
回复 支持 反对

使用道具 举报

4

主题

9

帖子

171

积分

③业余

积分
171
发表于 2010-4-15 08:18:02 | 显示全部楼层
那个LZ能帮我整合下脚本吗? 就是把人物跟随 整合到你的 鼠标整合?


另外我在测试你的游戏中发现,人数>=3人 触发战斗会脚本出错。

以下是人物跟随脚本
  1. #============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #============================================================================
  4. # by fukuyama
  5. # 分开一段距离跟随
  6. # by 叶子
  7. # Train_Actor
  8. $A = 18              #这里也用到A号开关,同45度行走开关一样,方便同时开关。
  9. module Train_Actor                     #请保留,否则脚本出错
  10. TRANSPARENT_SWITCH = false             # false / true
  11. TRANSPARENT_SWITCHES_INDEX = 96        #开关编号
  12. #举例:第一个为true,第二个为开关编号,#打开该号开关,跟随的人物变透明
  13. #跟随人数,最小数目最大数目:0 - 4
  14. TRAIN_ACTOR_SIZE_MAX = 4
  15. #跟随距离,例如:0为紧贴,1为分开一个身位
  16. TRAIN_ACTOR_DISTANCE = 0
  17. #定数
  18. #Input::DOWN = 2
  19. #Input::LEFT = 4
  20. #Input::RIGHT = 6
  21. #Input::UP = 6
  22. DOWN_LEFT = 1
  23. DOWN_RIGHT = 3
  24. UP_LEFT = 7
  25. UP_RIGHT = 9
  26. JUMP = 5
  27. # 叶子到此一游
  28. # 插入空角色,造成分开一段距离跟随的假象
  29. TRAIN_ACTOR_SIZE_MAX = TRAIN_ACTOR_SIZE_MAX * (TRAIN_ACTOR_DISTANCE+1) + 1
  30. class Game_Party_Actor < Game_Character
  31. def initialize
  32. super()
  33. @through = true
  34. end
  35. def setup(actor)
  36. # キャラクターのファイル名と色相を設定
  37. if actor != nil
  38. @character_name = actor.character_name
  39. @character_hue = actor.character_hue
  40. else
  41. @character_name = ""
  42. @character_hue = 0
  43. end
  44. # 不透明度と合成方法を初期化
  45. @opacity = 255
  46. @blend_type = 0
  47. end
  48. def screen_z(height = 0)
  49. if $game_player.x == @x and $game_player.y == @y
  50. return $game_player.screen_z(height) - 1
  51. end
  52. super(height)
  53. end
  54. #--------------------------------------------------------------------------
  55. # ● 下に移動
  56. # turn_enabled : その場での向き変更を許可するフラグ
  57. #--------------------------------------------------------------------------
  58. def move_down(turn_enabled = true)
  59. if turn_enabled
  60. turn_down
  61. end
  62. # 向下通行可能場合
  63. if passable?(@x, @y, Input::DOWN)
  64. turn_down
  65. # 座標更新
  66. @y += 1
  67. end
  68. end
  69. #--------------------------------------------------------------------------
  70. # ● 左に移動
  71. # turn_enabled : その場での向き変更を許可するフラグ
  72. #--------------------------------------------------------------------------
  73. def move_left(turn_enabled = true)
  74. if turn_enabled
  75. turn_left
  76. end
  77. # 通行可能場合
  78. if passable?(@x, @y, Input::LEFT)
  79. turn_left
  80. # 座標更新
  81. @x -= 1
  82. end
  83. end
  84. #--------------------------------------------------------------------------
  85. # ● 右に移動
  86. # turn_enabled : その場での向き変更を許可するフラグ
  87. #--------------------------------------------------------------------------
  88. def move_right(turn_enabled = true)
  89. if turn_enabled
  90. turn_right
  91. end
  92. # 通行可能場合
  93. if passable?(@x, @y, Input::RIGHT)
  94. turn_right
  95. # 座標更新
  96. @x += 1
  97. end
  98. end
  99. #--------------------------------------------------------------------------
  100. # ● 上に移動
  101. # turn_enabled : その場での向き変更を許可するフラグ
  102. #--------------------------------------------------------------------------
  103. def move_up(turn_enabled = true)
  104. if turn_enabled
  105. turn_up
  106. end
  107. # 通行可能場合
  108. if passable?(@x, @y, Input::UP)
  109. turn_up
  110. # 座標更新
  111. @y -= 1
  112. end
  113. end
  114. #--------------------------------------------------------------------------
  115. # ● 左下に移動
  116. #--------------------------------------------------------------------------
  117. def move_lower_left
  118. # 向き固定でない場合
  119. unless @direction_fix
  120. # 右向きだった場合は左を、上向きだった場合は下を向く
  121. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction ==
  122. Input::UP ? Input::DOWN : @direction)
  123. end
  124. # 下→左、左→下 のどちらかのコースが通行可能な場合
  125. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  126. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  127. turn_down
  128. # 座標を更新
  129. @x -= 1
  130. @y += 1
  131. end
  132. end
  133. #--------------------------------------------------------------------------
  134. # ● 左上に移動
  135. #--------------------------------------------------------------------------
  136. def move_upper_left
  137. # 向き固定でない場合
  138. unless @direction_fix
  139. # 右向きだった場合は左を、下向きだった場合は上を向く
  140. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction ==
  141. Input::DOWN ? Input::UP : @direction)
  142. end
  143. # 上→左、左→上 のどちらかのコースが通行可能な場合
  144. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  145. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  146. turn_left
  147. # 座標を更新
  148. @x -= 1
  149. @y -= 1
  150. end
  151. end
  152. #--------------------------------------------------------------------------
  153. # ● 右下に移動
  154. #--------------------------------------------------------------------------
  155. def move_lower_right
  156. # 向き固定でない場合
  157. unless @direction_fix
  158. # 左向きだった場合は右を、上向きだった場合は下を向く
  159. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction ==
  160. Input::UP ? Input::DOWN : @direction)
  161. end
  162. # 下→右、右→下 のどちらかのコースが通行可能な場合
  163. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT))
  164. or
  165. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  166. turn_right
  167. # 座標を更新
  168. @x += 1
  169. @y += 1
  170. end
  171. end
  172. #--------------------------------------------------------------------------
  173. # ● 右上に移動
  174. #--------------------------------------------------------------------------
  175. def move_upper_right
  176. # 向き固定でない場合
  177. unless @direction_fix
  178. # 左向きだった場合は右を、下向きだった場合は上を向く
  179. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction ==
  180. Input::DOWN ? Input::UP : @direction)
  181. end
  182. # 上→右、右→上 のどちらかのコースが通行可能な場合
  183. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  184. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  185. turn_up
  186. # 座標を更新
  187. @x += 1
  188. @y -= 1
  189. end
  190. end
  191. attr_writer :move_speed
  192. attr_writer :step_anime
  193. end
  194. module Spriteset_Map_Module
  195. def setup_actor_character_sprites?
  196. return @setup_actor_character_sprites_flag != nil
  197. end
  198. def setup_actor_character_sprites(characters)
  199. if !setup_actor_character_sprites?
  200. index_game_player = 0
  201. @character_sprites.each_index do |i|
  202. if @character_sprites[i].character.instance_of?(Game_Player)
  203. index_game_player = i
  204. break
  205. end
  206. end
  207. for character in characters.reverse
  208. @character_sprites.unshift(
  209. Sprite_Character.new(@viewport1, character)
  210. )
  211. end
  212. @setup_actor_character_sprites_flag = true
  213. end
  214. end
  215. end
  216. module Scene_Map_Module
  217. def setup_actor_character_sprites(characters)
  218. @spriteset.setup_actor_character_sprites(characters)
  219. end
  220. end
  221. module Game_Party_Module
  222. def set_transparent_actors(transparent)
  223. @transparent = transparent
  224. end
  225. def setup_actor_character_sprites
  226. if @characters == nil
  227. # 叶子到此一游
  228. @characters = []
  229. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  230. @characters.push(Game_Party_Actor.new)
  231. end
  232. end
  233. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  234. # 叶子到此一游
  235. if i % (TRAIN_ACTOR_DISTANCE+1) == 0
  236. @characters[i-1].setup(actors[i/(TRAIN_ACTOR_DISTANCE+1)])
  237. end
  238. end
  239. if $scene.class.method_defined?('setup_actor_character_sprites')
  240. $scene.setup_actor_character_sprites(@characters)
  241. end
  242. end
  243. def update_party_actors
  244. setup_actor_character_sprites
  245. transparent = $game_player.transparent
  246. if transparent == false
  247. if TRANSPARENT_SWITCH
  248. transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
  249. end
  250. end
  251. for character in @characters
  252. character.transparent = transparent
  253. character.move_speed = $game_player.move_speed
  254. character.step_anime = $game_player.step_anime
  255. character.update
  256. end
  257. end
  258. def moveto_party_actors( x, y )
  259. setup_actor_character_sprites
  260. for character in @characters
  261. character.moveto( x, y )
  262. end
  263. if @move_list == nil
  264. @move_list = []
  265. end
  266. move_list_setup
  267. end
  268. def move_party_actors
  269. if @move_list == nil
  270. @move_list = []
  271. move_list_setup
  272. end
  273. @move_list.each_index do |i|
  274.   
  275. if @characters[i] != nil
  276. case @move_list[i].type
  277. when Input::DOWN
  278. @characters[i].move_down(@move_list[i].args[0])
  279. when Input::LEFT
  280. @characters[i].move_left(@move_list[i].args[0])
  281. when Input::RIGHT
  282. @characters[i].move_right(@move_list[i].args[0])
  283. when Input::UP
  284. @characters[i].move_up(@move_list[i].args[0])
  285. when DOWN_LEFT
  286. @characters[i].move_lower_left
  287. when DOWN_RIGHT
  288. @characters[i].move_lower_right
  289. when UP_LEFT
  290. @characters[i].move_upper_left
  291. when UP_RIGHT
  292. @characters[i].move_upper_right
  293. when JUMP
  294. @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  295. end
  296. end
  297. end
  298. end
  299. class Move_List_Element
  300. def initialize(type,args)
  301. @type = type
  302. @args = args
  303. end
  304. def type() return @type end
  305. def args() return @args end
  306. end
  307. def move_list_setup
  308. for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  309. @move_list[i] = nil
  310. end
  311. end
  312. def add_move_list(type,*args)
  313. @move_list.unshift(Move_List_Element.new(type,args)).pop
  314. end
  315. #---------------------------------------------------------------------------
  316. def move_down_party_actors(turn_enabled = true)
  317. if $game_switches[$A]
  318.   move_party_actors
  319.   add_move_list(DOWN_LEFT)
  320. else
  321. move_party_actors
  322. add_move_list(Input::DOWN,turn_enabled)
  323. end
  324. end
  325. #-----------------------------------------------
  326. def move_left_party_actors(turn_enabled = true)
  327. if $game_switches[$A]
  328.   move_party_actors
  329.   add_move_list(UP_LEFT)
  330. else
  331. move_party_actors
  332. add_move_list(Input::LEFT,turn_enabled)
  333. end
  334. end
  335. #-----------------------------------------------
  336. def move_right_party_actors(turn_enabled = true)
  337. if $game_switches[$A]
  338.   move_party_actors
  339.   add_move_list(DOWN_RIGHT)
  340. else
  341. move_party_actors
  342. add_move_list(Input::RIGHT,turn_enabled)
  343. end
  344. end
  345. #-----------------------------------------------
  346. def move_up_party_actors(turn_enabled = true)
  347. if $game_switches[$A]
  348.   move_party_actors
  349.   add_move_list(UP_RIGHT)
  350. else
  351. move_party_actors
  352. add_move_list(Input::UP,turn_enabled)
  353. end
  354. end
  355. #--------------------------------------------------------------------------
  356. def move_lower_left_party_actors
  357. if $game_switches[$A]
  358.   move_party_actors
  359.   add_move_list(DOWN_LEFT)
  360. else
  361. move_party_actors
  362. add_move_list(Input::DOWN,turn_enabled)
  363. end
  364. end
  365. #-----------------------------------------------
  366. def move_upper_left_party_actors
  367. if $game_switches[$A]
  368.   move_party_actors
  369.   add_move_list(UP_LEFT)
  370. else
  371. move_party_actors
  372. add_move_list(Input::LEFT,turn_enabled)
  373. end
  374. end
  375. #-----------------------------------------------
  376. def move_lower_right_party_actors
  377. if $game_switches[$A]
  378.   move_party_actors
  379.   add_move_list(DOWN_RIGHT)
  380. else
  381. move_party_actors
  382. add_move_list(Input::RIGHT,turn_enabled)
  383. end
  384. end
  385. #-----------------------------------------------
  386. def move_upper_right_party_actors
  387. if $game_switches[$A]
  388.   move_party_actors
  389.   add_move_list(UP_RIGHT)
  390. else
  391. move_party_actors
  392. add_move_list(Input::UP,turn_enabled)
  393. end
  394. end
  395. #----------------------------------------------------------------------------
  396. def jump_party_actors(x_plus, y_plus)
  397. move_party_actors
  398. add_move_list(JUMP,x_plus, y_plus)
  399. end
  400. end
  401. module Game_Player_Module
  402. def update
  403. $game_party.update_party_actors
  404. super
  405. end
  406. def moveto( x, y )
  407. $game_party.moveto_party_actors( x, y )
  408. super( x, y )
  409. end
  410. #--------------------------------------按键 ↓ -----------------------------
  411. def move_down(turn_enabled = true)
  412. if $game_switches[$A]
  413.   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT))
  414. or
  415.      (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  416.   $game_party.move_lower_left_party_actors
  417.   end
  418.   super
  419. else
  420. if passable?(@x, @y, Input::DOWN)
  421. $game_party.move_down_party_actors(turn_enabled)
  422. end
  423. super(turn_enabled)
  424. end
  425. end
  426. #--------------------------------------按键 ←
  427. def move_left(turn_enabled = true)
  428. if $game_switches[$A]
  429.   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  430.    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  431.   $game_party.move_upper_left_party_actors
  432.   end
  433.   super
  434. else
  435. if passable?(@x, @y, Input::LEFT)
  436. $game_party.move_left_party_actors(turn_enabled)
  437. end
  438. super(turn_enabled)
  439. end
  440. end
  441. #-------------------------------------按键 →
  442. def move_right(turn_enabled = true)
  443. if $game_switches[$A]
  444.   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT))
  445. or
  446.     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  447.   $game_party.move_lower_right_party_actors
  448.   end
  449.   super
  450. else
  451. if passable?(@x, @y, Input::RIGHT)
  452. $game_party.move_right_party_actors(turn_enabled)
  453. end
  454. super(turn_enabled)
  455. end
  456. end
  457. #-------------------------------------按键 ↑
  458. def move_up(turn_enabled = true)
  459. if $game_switches[$A]
  460.   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT))
  461. or
  462.   (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  463.   $game_party.move_upper_right_party_actors
  464.   end
  465.   super
  466. else
  467. if passable?(@x, @y, Input::UP)
  468. $game_party.move_up_party_actors(turn_enabled)
  469. end
  470. super(turn_enabled)
  471. end
  472. end
  473. #---------------------------------------------------------------------------
  474. def move_lower_left
  475. # 左下 のどちらかのコースが通行可能な場合
  476. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  477. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  478. $game_party.move_lower_left_party_actors
  479. end
  480. super
  481. end
  482. def move_upper_left
  483. # 左上 のどちらかのコースが通行可能な場合
  484. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  485. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  486. $game_party.move_upper_left_party_actors
  487. end
  488. super
  489. end
  490. def move_lower_right
  491. # 右下 のどちらかのコースが通行可能な場合
  492. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT))
  493. or
  494. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  495. $game_party.move_lower_right_party_actors
  496. end
  497. super
  498. end
  499. def move_upper_right
  500. # 右上 のどちらかのコースが通行可能な場合
  501. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  502. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  503. $game_party.move_upper_right_party_actors
  504. end
  505. super
  506. end
  507. def jump(x_plus, y_plus)
  508. # 新しい座標を計算
  509. new_x = @x + x_plus
  510. new_y = @y + y_plus
  511. # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  512. if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  513. $game_party.jump_party_actors(x_plus, y_plus)
  514. end
  515. super(x_plus, y_plus)
  516. end
  517. attr_reader :move_speed
  518. attr_reader :step_anime
  519. end
  520. end # module Train_Actor
  521. class Game_Party
  522. include Train_Actor::Game_Party_Module
  523. end
  524. class Game_Player
  525. include Train_Actor::Game_Player_Module
  526. end
  527. class Spriteset_Map
  528. include Train_Actor::Spriteset_Map_Module
  529. end
  530. class Scene_Map
  531. include Train_Actor::Scene_Map_Module
  532. end
  533. #============================================================================
  534. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  535. #============================================================================
复制代码
回复 支持 反对

使用道具 举报

0

主题

2

帖子

16

积分

②入门

积分
16
发表于 2010-4-25 11:11:04 | 显示全部楼层
orz.......
回复 支持 反对

使用道具 举报

0

主题

1

帖子

8

积分

①新人

积分
8
发表于 2010-6-11 18:28:49 | 显示全部楼层
真的受益匪浅,好想快快学会。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

16

积分

②入门

积分
16
发表于 2010-11-6 14:56:52 | 显示全部楼层
最喜欢的大话西游终于有榜样了,,学习··
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 23:38 , Processed in 0.027081 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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