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

Project1

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

[已经过期] 【求】人物跟随脚本+更换队员脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
跳转到指定楼层
1
发表于 2013-9-19 12:24:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我希望是换了菜单里领队人物,画面上的领队人物也跟着改变。

菜单里的更换队员是像“物品”“装备”一样新打开一个界面。

内容最好是有:队伍人物及血量、剩余人物及血量

Lv4.逐梦者 (版主)

梦石
0
星屑
9547
在线时间
5075 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2013-9-19 12:43:06 | 只看该作者
我在论坛中曾经发过一个类似的脚本哦,楼主可以拿去用用。
http://bbs.cgyouxi.com/thread-332273-1-1.html

点评

.。。。应该和楼下的脚本整合一下  发表于 2013-9-28 15:52

评分

参与人数 1星屑 +75 收起 理由
myownroc + 75 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
3
 楼主| 发表于 2013-9-23 13:22:02 | 只看该作者
RyanBern 发表于 2013-9-19 12:43
我在论坛中曾经发过一个类似的脚本哦,楼主可以拿去用用。
http://bbs.cgyouxi.com/thread-332273-1-1.html ...

能做出有三个人物在领队后面跟着的样子吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
640
在线时间
2169 小时
注册时间
2012-12-5
帖子
4464
4
发表于 2013-9-23 18:28:17 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. # ————————————————————————————————————

  5. # ▼▲▼ XRXS13. パーティ列車移動 ver.1.02 ▼▲▼
  6. # by fukuyama

  7. #
  8. # Train_Actor
  9. #
  10. # [email protected]
  11. # http://www4.big.or.jp/~fukuyama/rgss/Train_Actor.txt
  12. #

  13. module Train_Actor




  14. #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX
  15. #开关打开,跟随的人物就消失了(其实只是变成透明而已)
  16. TRANSPARENT_SWITCH = true
  17. TRANSPARENT_SWITCHES_INDEX = 26
  18. #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。





  19. #跟随人数的最大数目,可以更改为2、3什么的。
  20. TRAIN_ACTOR_SIZE_MAX = 5





  21. # 定数
  22. #Input::DOWN = 2
  23. #Input::LEFT = 4
  24. #Input::RIGHT = 6
  25. #Input::UP = 6
  26. DOWN_LEFT = 1
  27. DOWN_RIGHT = 3
  28. UP_LEFT = 7
  29. UP_RIGHT = 9
  30. JUMP = 5

  31. class Game_Party_Actor < Game_Character
  32. def initialize
  33. super()
  34. @through = true
  35. end
  36. def setup(actor)
  37. # キャラクターのファイル名と色相を設定
  38. if actor != nil
  39. @character_name = actor.character_name
  40. @character_hue = actor.character_hue
  41. else
  42. @character_name = ""
  43. @character_hue = 0
  44. end
  45. # 不透明度と合成方法を初期化
  46. [url=home.php?mod=space&uid=316553]@opacity[/url] = 255
  47. @blend_type = 0
  48. end
  49. def screen_z(height = 0)
  50. if $game_player.x == @x and $game_player.y == @y
  51. return $game_player.screen_z(height) - 1
  52. end
  53. super(height)
  54. end
  55. #--------------------------------------------------------------------------
  56. # ● 下に移動
  57. # turn_enabled : その場での向き変更を許可するフラグ
  58. #--------------------------------------------------------------------------
  59. def move_down(turn_enabled = true)
  60. # 下を向く
  61. if turn_enabled
  62. turn_down
  63. end
  64. # 通行可能な場合
  65. if passable?(@x, @y, Input::DOWN)
  66. # 下を向く
  67. turn_down
  68. # 座標を更新
  69. @y += 1
  70. end
  71. end
  72. #--------------------------------------------------------------------------
  73. # ● 左に移動
  74. # turn_enabled : その場での向き変更を許可するフラグ
  75. #--------------------------------------------------------------------------
  76. def move_left(turn_enabled = true)
  77. # 左を向く
  78. if turn_enabled
  79. turn_left
  80. end
  81. # 通行可能な場合
  82. if passable?(@x, @y, Input::LEFT)
  83. # 左を向く
  84. turn_left
  85. # 座標を更新
  86. @x -= 1
  87. end
  88. end
  89. #--------------------------------------------------------------------------
  90. # ● 右に移動
  91. # turn_enabled : その場での向き変更を許可するフラグ
  92. #--------------------------------------------------------------------------
  93. def move_right(turn_enabled = true)
  94. # 右を向く
  95. if turn_enabled
  96. turn_right
  97. end
  98. # 通行可能な場合
  99. if passable?(@x, @y, Input::RIGHT)
  100. # 右を向く
  101. turn_right
  102. # 座標を更新
  103. @x += 1
  104. end
  105. end
  106. #--------------------------------------------------------------------------
  107. # ● 上に移動
  108. # turn_enabled : その場での向き変更を許可するフラグ
  109. #--------------------------------------------------------------------------
  110. def move_up(turn_enabled = true)
  111. # 上を向く
  112. if turn_enabled
  113. turn_up
  114. end
  115. # 通行可能な場合
  116. if passable?(@x, @y, Input::UP)
  117. # 上を向く
  118. turn_up
  119. # 座標を更新
  120. @y -= 1
  121. end
  122. end
  123. #--------------------------------------------------------------------------
  124. # ● 左下に移動
  125. #--------------------------------------------------------------------------
  126. def move_lower_left
  127. # 向き固定でない場合
  128. unless @direction_fix
  129. # 右向きだった場合は左を、上向きだった場合は下を向く
  130. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
  131. end
  132. # 下→左、左→下 のどちらかのコースが通行可能な場合
  133. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  134. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  135. # 座標を更新
  136. @x -= 1
  137. @y += 1
  138. end
  139. end
  140. #--------------------------------------------------------------------------
  141. # ● 右下に移動
  142. #--------------------------------------------------------------------------
  143. def move_lower_right
  144. # 向き固定でない場合
  145. unless @direction_fix
  146. # 左向きだった場合は右を、上向きだった場合は下を向く
  147. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
  148. end
  149. # 下→右、右→下 のどちらかのコースが通行可能な場合
  150. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  151. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  152. # 座標を更新
  153. @x += 1
  154. @y += 1
  155. end
  156. end
  157. #--------------------------------------------------------------------------
  158. # ● 左上に移動
  159. #--------------------------------------------------------------------------
  160. def move_upper_left
  161. # 向き固定でない場合
  162. unless @direction_fix
  163. # 右向きだった場合は左を、下向きだった場合は上を向く
  164. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
  165. end
  166. # 上→左、左→上 のどちらかのコースが通行可能な場合
  167. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  168. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  169. # 座標を更新
  170. @x -= 1
  171. @y -= 1
  172. end
  173. end
  174. #--------------------------------------------------------------------------
  175. # ● 右上に移動
  176. #--------------------------------------------------------------------------
  177. def move_upper_right
  178. # 向き固定でない場合
  179. unless @direction_fix
  180. # 左向きだった場合は右を、下向きだった場合は上を向く
  181. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
  182. end
  183. # 上→右、右→上 のどちらかのコースが通行可能な場合
  184. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  185. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::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. # S.P
  210. Sprite_Character.new($viewport1, character)
  211. #Sprite_Character.new($viewport1, character)
  212. )
  213. end
  214. @setup_actor_character_sprites_flag = true
  215. end
  216. end
  217. end
  218. module Scene_Map_Module
  219. def setup_actor_character_sprites(characters)
  220. @spriteset.setup_actor_character_sprites(characters)
  221. end
  222. end
  223. module Game_Party_Module
  224. def set_transparent_actors(transparent)
  225. @transparent = transparent
  226. end
  227. def setup_actor_character_sprites
  228. if @characters == nil
  229. @characters = []
  230. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  231. @characters.push(Game_Party_Actor.new)
  232. end
  233. end
  234. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  235. @characters[i - 1].setup(actors[i])
  236. end
  237. if $scene.class.method_defined?('setup_actor_character_sprites')
  238. $scene.setup_actor_character_sprites(@characters)
  239. end
  240. end
  241. def update_party_actors
  242. setup_actor_character_sprites
  243. transparent = $game_player.transparent
  244. if transparent == false
  245. if TRANSPARENT_SWITCH
  246. transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
  247. end
  248. end
  249. for character in @characters
  250. character.transparent = transparent
  251. character.move_speed = $game_player.move_speed
  252. character.step_anime = $game_player.step_anime
  253. character.update
  254. end
  255. end
  256. def moveto_party_actors( x, y )
  257. setup_actor_character_sprites
  258. for character in @characters
  259. character.moveto( x, y )
  260. end
  261. if @move_list == nil
  262. @move_list = []
  263. end
  264. move_list_setup
  265. end
  266. def move_party_actors
  267. if @move_list == nil
  268. @move_list = []
  269. move_list_setup
  270. end
  271. @move_list.each_index do |i|
  272. if @characters[i] != nil
  273. case @move_list[i].type
  274. when Input::DOWN
  275. @characters[i].move_down(@move_list[i].args[0])
  276. when Input::LEFT
  277. @characters[i].move_left(@move_list[i].args[0])
  278. when Input::RIGHT
  279. @characters[i].move_right(@move_list[i].args[0])
  280. when Input::UP
  281. @characters[i].move_up(@move_list[i].args[0])
  282. when DOWN_LEFT
  283. @characters[i].move_lower_left
  284. when DOWN_RIGHT
  285. @characters[i].move_lower_right
  286. when UP_LEFT
  287. @characters[i].move_upper_left
  288. when UP_RIGHT
  289. @characters[i].move_upper_right
  290. when JUMP
  291. @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  292. end
  293. end
  294. end
  295. end
  296. class Move_List_Element
  297. def initialize(type,args)
  298. @type = type
  299. @args = args
  300. end
  301. def type() return @type end
  302. def args() return @args end
  303. end
  304. def move_list_setup
  305. for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  306. @move_list[i] = nil
  307. end
  308. end
  309. def add_move_list(type,*args)
  310. @move_list.unshift(Move_List_Element.new(type,args)).pop
  311. end
  312. def move_down_party_actors(turn_enabled = true)
  313. move_party_actors
  314. add_move_list(Input::DOWN,turn_enabled)
  315. end
  316. def move_left_party_actors(turn_enabled = true)
  317. move_party_actors
  318. add_move_list(Input::LEFT,turn_enabled)
  319. end
  320. def move_right_party_actors(turn_enabled = true)
  321. move_party_actors
  322. add_move_list(Input::RIGHT,turn_enabled)
  323. end
  324. def move_up_party_actors(turn_enabled = true)
  325. move_party_actors
  326. add_move_list(Input::UP,turn_enabled)
  327. end
  328. def move_lower_left_party_actors
  329. move_party_actors
  330. add_move_list(DOWN_LEFT)
  331. end
  332. def move_lower_right_party_actors
  333. move_party_actors
  334. add_move_list(DOWN_RIGHT)
  335. end
  336. def move_upper_left_party_actors
  337. move_party_actors
  338. add_move_list(UP_LEFT)
  339. end
  340. def move_upper_right_party_actors
  341. move_party_actors
  342. add_move_list(UP_RIGHT)
  343. end
  344. def jump_party_actors(x_plus, y_plus)
  345. move_party_actors
  346. add_move_list(JUMP,x_plus, y_plus)
  347. end
  348. end
  349. module Game_Player_Module
  350. def update
  351. $game_party.update_party_actors
  352. super
  353. end
  354. def moveto( x, y )
  355. $game_party.moveto_party_actors( x, y )
  356. super( x, y )
  357. end
  358. def move_down(turn_enabled = true)
  359. if passable?(@x, @y, Input::DOWN)
  360. $game_party.move_down_party_actors(turn_enabled)
  361. end
  362. super(turn_enabled)
  363. end
  364. def move_left(turn_enabled = true)
  365. if passable?(@x, @y, Input::LEFT)
  366. $game_party.move_left_party_actors(turn_enabled)
  367. end
  368. super(turn_enabled)
  369. end
  370. def move_right(turn_enabled = true)
  371. if passable?(@x, @y, Input::RIGHT)
  372. $game_party.move_right_party_actors(turn_enabled)
  373. end
  374. super(turn_enabled)
  375. end
  376. def move_up(turn_enabled = true)
  377. if passable?(@x, @y, Input::UP)
  378. $game_party.move_up_party_actors(turn_enabled)
  379. end
  380. super(turn_enabled)
  381. end
  382. def move_lower_left
  383. # 下→左、左→下 のどちらかのコースが通行可能な場合
  384. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  385. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  386. $game_party.move_lower_left_party_actors
  387. end
  388. super
  389. end
  390. def move_lower_right
  391. # 下→右、右→下 のどちらかのコースが通行可能な場合
  392. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  393. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  394. $game_party.move_lower_right_party_actors
  395. end
  396. super
  397. end
  398. def move_upper_left
  399. # 上→左、左→上 のどちらかのコースが通行可能な場合
  400. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  401. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  402. $game_party.move_upper_left_party_actors
  403. end
  404. super
  405. end
  406. def move_upper_right
  407. # 上→右、右→上 のどちらかのコースが通行可能な場合
  408. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  409. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  410. $game_party.move_upper_right_party_actors
  411. end
  412. super
  413. end
  414. def jump(x_plus, y_plus)
  415. # 新しい座標を計算
  416. new_x = @x + x_plus
  417. new_y = @y + y_plus
  418. # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  419. if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  420. $game_party.jump_party_actors(x_plus, y_plus)
  421. end
  422. super(x_plus, y_plus)
  423. end
  424. attr_reader :move_speed
  425. attr_reader :step_anime
  426. end
  427. end # module Train_Actor
  428. class Game_Party
  429. include Train_Actor::Game_Party_Module
  430. end
  431. class Game_Player
  432. include Train_Actor::Game_Player_Module
  433. end
  434. class Spriteset_Map
  435. include Train_Actor::Spriteset_Map_Module
  436. end
  437. class Scene_Map
  438. include Train_Actor::Scene_Map_Module
  439. end

  440. #==============================================================================
  441. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  442. #==============================================================================
复制代码

点评

呃。。。更换队员呢?  发表于 2013-9-28 15:51

评分

参与人数 1星屑 +75 收起 理由
myownroc + 75 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
5
 楼主| 发表于 2013-9-28 15:45:39 | 只看该作者
你最珍贵 发表于 2013-9-23 18:28

不行,65行发生错误

点评

改为 @opacity = 255  发表于 2013-9-28 15:46
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
6
 楼主| 发表于 2013-9-28 16:02:30 | 只看该作者
……现在的问题是领队更换了,但是队伍里有两个同样的人……

能不能让楼上的两个脚本结合在一起啊?
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
640
在线时间
2169 小时
注册时间
2012-12-5
帖子
4464
7
发表于 2013-9-28 19:31:39 | 只看该作者
更换队员 人物跟随.zip (217.38 KB, 下载次数: 156)

更换队员+人物跟随整合

评分

参与人数 1星屑 +112 收起 理由
弗雷德 + 112 还差点

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
8
发表于 2013-9-30 18:36:50 | 只看该作者
更换队员脚本,其实非常的简单哦,交换赋值。
请看:
a = "66RPG"
b = 66
c = a #现在 c = "66RPG"
a = b#现在 a = 66
b = c#现在 b = "6RPPG"
交换了a与b的值。

那我现在告诉你,更换队员脚本就是这个原理。

先记录第一次你选中的角色
再去交换赋值

示例:

记录
@old_actor = $game_party.actors[@status_window.index]
@old_index = @status_window.index

交换赋值
$game_party.actors[@status_window.index] = $game_party.actors[@status_window.index]
$game_party.actors[@status_window.index] = $game_party.actors[@old_index]

嗯,这样更换队员就完成了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
9
 楼主| 发表于 2013-10-12 18:04:00 | 只看该作者
能不能既能调整队伍(队伍里有四人以上),又能更换领队人物(跟随人物有三人,换领队后画面上没有同样的人物)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
171 小时
注册时间
2013-3-25
帖子
25
10
 楼主| 发表于 2013-10-16 13:09:45 | 只看该作者
能不能在菜单选项里建立一个选项“队伍”点开后跳转这个界面

状态是指“出战”或“休息”

搜狗截图13年10月16日1307_1.png (65.96 KB, 下载次数: 13)

搜狗截图13年10月16日1307_1.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-7 23:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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