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

Project1

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

还是人物跟随脚本的问题 问题真多 我都怕了

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
81
在线时间
54 小时
注册时间
2008-12-24
帖子
345
跳转到指定楼层
1
发表于 2009-5-5 04:36:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
问题真多 我都怕了~~连个注释也没有
我还是个小白~~汗~~   
用的 半透明的窗口  角色跟随脚本~~在地图上按下b键 嘿 人没了~~汗~~ 飞了??
    希望把我解决~
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. #==============================================================================
  5. # ■ Window_Base
  6. #==============================================================================
  7. class Window_Base < Window
  8.   alias xrxs_mp7_initialize initialize
  9.   def initialize(x, y, width, height)
  10.     xrxs_mp7_initialize(x, y, width, height)
  11.     if $scene.is_a?(Scene_Menu) or
  12.        $scene.is_a?(Scene_Item) or
  13.        $scene.is_a?(Scene_Skill) or
  14.        $scene.is_a?(Scene_Equip) or
  15.        $scene.is_a?(Scene_Status) or
  16.        $scene.is_a?(Scene_Save) or
  17.        $scene.is_a?(Scene_End)
  18.       self.back_opacity = 200  #————这个数值可调,为透明程度
  19.     end
  20.   end
  21. end
  22. module XRXS_MP7_Module
  23.   def create_spriteset
  24.     @spriteset = Spriteset_Map.new
  25.   end
  26.   def dispose_spriteset
  27.     @spriteset.dispose
  28.   end
  29. end
  30. class Scene_Menu
  31.   include XRXS_MP7_Module
  32.   alias xrxs_mp7_main main
  33.   def main
  34.     create_spriteset
  35.     xrxs_mp7_main
  36.     dispose_spriteset
  37.   end
  38. end
  39. class Scene_Item
  40.   include XRXS_MP7_Module
  41.   alias xrxs_mp7_main main
  42.   def main
  43.     create_spriteset
  44.     xrxs_mp7_main
  45.     dispose_spriteset
  46.   end
  47. end
  48. class Scene_Skill
  49.   include XRXS_MP7_Module
  50.   alias xrxs_mp7_main main
  51.   def main
  52.     create_spriteset
  53.     xrxs_mp7_main
  54.     dispose_spriteset
  55.   end
  56. end
  57. class Scene_Equip
  58.   include XRXS_MP7_Module
  59.   alias xrxs_mp7_main main
  60.   def main
  61.     create_spriteset
  62.     xrxs_mp7_main
  63.     dispose_spriteset
  64.   end
  65. end
  66. class Scene_Status
  67.   include XRXS_MP7_Module
  68.   alias xrxs_mp7_main main
  69.   def main
  70.     create_spriteset
  71.     xrxs_mp7_main
  72.     dispose_spriteset
  73.   end
  74. end
  75. class Scene_Save
  76.   include XRXS_MP7_Module
  77.   alias xrxs_mp7_main main
  78.   def main
  79.     create_spriteset
  80.     xrxs_mp7_main
  81.     dispose_spriteset
  82.   end
  83. end
  84. class Scene_End
  85.   include XRXS_MP7_Module
  86.   alias xrxs_mp7_main main
  87.   def main
  88.     create_spriteset
  89.     xrxs_mp7_main
  90.     dispose_spriteset
  91.   end
  92. end

  93. #==============================================================================
  94. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  95. #==============================================================================
  96. [/quote]
  97. 窗口透明的↑
  98. [LINE]1,#dddddd[/LINE]
  99. 角色跟随↓
  100. [quote]module Train_Actor
  101. #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX
  102. #开关打开,跟随的人物就消失了(其实只是变成透明而已)
  103. TRANSPARENT_SWITCH = false
  104. TRANSPARENT_SWITCHES_INDEX = 20
  105. #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。
  106. #跟随人数的最大数目,可以更改为2、3什么的。
  107. TRAIN_ACTOR_SIZE_MAX = 3
  108. #Input::DOWN = 2
  109. #Input::LEFT = 4
  110. #Input::RIGHT = 6
  111. #Input::UP = 6
  112. DOWN_LEFT = 1
  113. DOWN_RIGHT = 3
  114. UP_LEFT = 7
  115. UP_RIGHT = 9
  116. JUMP = 5
  117. class Game_Party_Actor < Game_Character
  118. def initialize
  119. super()
  120. @through = true
  121. end
  122. def setup(actor)
  123. # キャラクターのファイル名と色相を設定
  124. if actor != nil
  125. @character_name = actor.character_name
  126. @character_hue = actor.character_hue
  127. else
  128. @character_name = ""
  129. @character_hue = 0
  130. end
  131. # 不透明度と合成方法を初期化
  132. @opacity = 255
  133. @blend_type = 0
  134. end
  135. def screen_z(height = 0)
  136. if $game_player.x == @x and $game_player.y == @y
  137. return $game_player.screen_z(height) - 1
  138. end
  139. super(height)
  140. end
  141. #--------------------------------------------------------------------------
  142. # ● 下に移動
  143. # turn_enabled : その場での向き変更を許可するフラグ
  144. #--------------------------------------------------------------------------
  145. def move_down(turn_enabled = true)
  146. # 下を向く
  147. if turn_enabled
  148. turn_down
  149. end
  150. # 通行可能な場合
  151. if passable?(@x, @y, Input::DOWN)
  152. # 下を向く
  153. turn_down
  154. # 座標を更新
  155. @y += 1
  156. end
  157. end
  158. #--------------------------------------------------------------------------
  159. # ● 左に移動
  160. # turn_enabled : その場での向き変更を許可するフラグ
  161. #--------------------------------------------------------------------------
  162. def move_left(turn_enabled = true)
  163. # 左を向く
  164. if turn_enabled
  165. turn_left
  166. end
  167. # 通行可能な場合
  168. if passable?(@x, @y, Input::LEFT)
  169. # 左を向く
  170. turn_left
  171. # 座標を更新
  172. @x -= 1
  173. end
  174. end
  175. #--------------------------------------------------------------------------
  176. # ● 右に移動
  177. # turn_enabled : その場での向き変更を許可するフラグ
  178. #--------------------------------------------------------------------------
  179. def move_right(turn_enabled = true)
  180. # 右を向く
  181. if turn_enabled
  182. turn_right
  183. end
  184. # 通行可能な場合
  185. if passable?(@x, @y, Input::RIGHT)
  186. # 右を向く
  187. turn_right
  188. # 座標を更新
  189. @x += 1
  190. end
  191. end
  192. #--------------------------------------------------------------------------
  193. # ● 上に移動
  194. # turn_enabled : その場での向き変更を許可するフラグ
  195. #--------------------------------------------------------------------------
  196. def move_up(turn_enabled = true)
  197. # 上を向く
  198. if turn_enabled
  199. turn_up
  200. end
  201. # 通行可能な場合
  202. if passable?(@x, @y, Input::UP)
  203. # 上を向く
  204. turn_up
  205. # 座標を更新
  206. @y -= 1
  207. end
  208. end
  209. #--------------------------------------------------------------------------
  210. # ● 左下に移動
  211. #--------------------------------------------------------------------------
  212. def move_lower_left
  213. # 向き固定でない場合
  214. unless @direction_fix
  215. # 右向きだった場合は左を、上向きだった場合は下を向く
  216. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
  217. end
  218. # 下→左、左→下 のどちらかのコースが通行可能な場合
  219. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  220. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  221. # 座標を更新
  222. @x -= 1
  223. @y += 1
  224. end
  225. end
  226. #--------------------------------------------------------------------------
  227. # ● 右下に移動
  228. #--------------------------------------------------------------------------
  229. def move_lower_right
  230. # 向き固定でない場合
  231. unless @direction_fix
  232. # 左向きだった場合は右を、上向きだった場合は下を向く
  233. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
  234. end
  235. # 下→右、右→下 のどちらかのコースが通行可能な場合
  236. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  237. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  238. # 座標を更新
  239. @x += 1
  240. @y += 1
  241. end
  242. end
  243. #--------------------------------------------------------------------------
  244. # ● 左上に移動
  245. #--------------------------------------------------------------------------
  246. def move_upper_left
  247. # 向き固定でない場合
  248. unless @direction_fix
  249. # 右向きだった場合は左を、下向きだった場合は上を向く
  250. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
  251. end
  252. # 上→左、左→上 のどちらかのコースが通行可能な場合
  253. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  254. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  255. # 座標を更新
  256. @x -= 1
  257. @y -= 1
  258. end
  259. end
  260. #--------------------------------------------------------------------------
  261. # ● 右上に移動
  262. #--------------------------------------------------------------------------
  263. def move_upper_right
  264. # 向き固定でない場合
  265. unless @direction_fix
  266. # 左向きだった場合は右を、下向きだった場合は上を向く
  267. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
  268. end
  269. # 上→右、右→上 のどちらかのコースが通行可能な場合
  270. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  271. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  272. # 座標を更新
  273. @x += 1
  274. @y -= 1
  275. end
  276. end
  277. attr_writer :move_speed
  278. attr_writer :step_anime
  279. end
  280. module Spriteset_Map_Module
  281. def setup_actor_character_sprites?
  282. return @setup_actor_character_sprites_flag != nil
  283. end
  284. def setup_actor_character_sprites(characters)
  285. if !setup_actor_character_sprites?
  286. index_game_player = 0
  287. @character_sprites.each_index do |i|
  288. if @character_sprites[i].character.instance_of?(Game_Player)
  289. index_game_player = i
  290. break
  291. end
  292. end
  293. for character in characters.reverse
  294. @character_sprites.unshift(
  295. Sprite_Character.new(@viewport1, character)
  296. )
  297. end
  298. @setup_actor_character_sprites_flag = true
  299. end
  300. end
  301. end
  302. module Scene_Map_Module
  303. def setup_actor_character_sprites(characters)
  304. @spriteset.setup_actor_character_sprites(characters)
  305. end
  306. end
  307. module Game_Party_Module
  308. def set_transparent_actors(transparent)
  309. @transparent = transparent
  310. end
  311. def setup_actor_character_sprites
  312. if @characters == nil
  313. @characters = []
  314. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  315. @characters.push(Game_Party_Actor.new)
  316. end
  317. end
  318. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  319. @characters[i - 1].setup(actors[i])
  320. end
  321. if $scene.class.method_defined?('setup_actor_character_sprites')
  322. $scene.setup_actor_character_sprites(@characters)
  323. end
  324. end
  325. def update_party_actors
  326. setup_actor_character_sprites
  327. transparent = $game_player.transparent
  328. if transparent == false
  329. if TRANSPARENT_SWITCH
  330. transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
  331. end
  332. end
  333. for character in @characters
  334. character.transparent = transparent
  335. character.move_speed = $game_player.move_speed
  336. character.step_anime = $game_player.step_anime
  337. character.update
  338. end
  339. end
  340. def moveto_party_actors( x, y )
  341. setup_actor_character_sprites
  342. for character in @characters
  343. character.moveto( x, y )
  344. end
  345. if @move_list == nil
  346. @move_list = []
  347. end
  348. move_list_setup
  349. end
  350. def move_party_actors
  351. if @move_list == nil
  352. @move_list = []
  353. move_list_setup
  354. end
  355. @move_list.each_index do |i|
  356. if @characters[i] != nil
  357.    case @move_list[i].type
  358.    when Input::DOWN
  359.      @characters[i].move_down(@move_list[i].args[0])
  360.    when Input::LEFT
  361.      @characters[i].move_left(@move_list[i].args[0])
  362.    when Input::RIGHT
  363.      @characters[i].move_right(@move_list[i].args[0])
  364.    when Input::UP
  365.      @characters[i].move_up(@move_list[i].args[0])
  366.    when DOWN_LEFT
  367.      @characters[i].move_lower_left
  368.    when DOWN_RIGHT
  369.      @characters[i].move_lower_right
  370.    when UP_LEFT
  371.      @characters[i].move_upper_left
  372.    when UP_RIGHT
  373.      @characters[i].move_upper_right
  374.    when JUMP
  375.      @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  376.    end
  377. if i == 0
  378.    $第二人x坐标 = @characters[i].x
  379.    $第二人y坐标 = @characters[i].y
  380.    $第二人朝向 = @characters[i].direction
  381.    # 变量10-12 第二人数据
  382.    $game_variables[10] = $第二人x坐标
  383.    $game_variables[11] = $第二人y坐标
  384.    $game_variables[12] = $第二人朝向
  385. elsif i == 1
  386.    $第三人x坐标 = @characters[i].x
  387.    $第三人y坐标 = @characters[i].y  
  388.    $第三人朝向 = @characters[i].direction
  389.    # 变量13-15 第三人数据
  390.    $game_variables[13] = $第三人x坐标
  391.    $game_variables[14] = $第三人y坐标
  392.    $game_variables[15] = $第三人朝向
  393. end
  394. end

  395.   end
  396. end
  397. class Move_List_Element
  398. def initialize(type,args)
  399. @type = type
  400. @args = args
  401. end
  402. def type() return @type end
  403. def args() return @args end
  404. end
  405. def move_list_setup
  406. for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  407. @move_list[i] = nil
  408. end
  409. end
  410. def add_move_list(type,*args)
  411. @move_list.unshift(Move_List_Element.new(type,args)).pop
  412. end
  413. def move_down_party_actors(turn_enabled = true)
  414. move_party_actors
  415. add_move_list(Input::DOWN,turn_enabled)
  416. end
  417. def move_left_party_actors(turn_enabled = true)
  418. move_party_actors
  419. add_move_list(Input::LEFT,turn_enabled)
  420. end
  421. def move_right_party_actors(turn_enabled = true)
  422. move_party_actors
  423. add_move_list(Input::RIGHT,turn_enabled)
  424. end
  425. def move_up_party_actors(turn_enabled = true)
  426. move_party_actors
  427. add_move_list(Input::UP,turn_enabled)
  428. end
  429. def move_lower_left_party_actors
  430. move_party_actors
  431. add_move_list(DOWN_LEFT)
  432. end
  433. def move_lower_right_party_actors
  434. move_party_actors
  435. add_move_list(DOWN_RIGHT)
  436. end
  437. def move_upper_left_party_actors
  438. move_party_actors
  439. add_move_list(UP_LEFT)
  440. end
  441. def move_upper_right_party_actors
  442. move_party_actors
  443. add_move_list(UP_RIGHT)
  444. end
  445. def jump_party_actors(x_plus, y_plus)
  446. move_party_actors
  447. add_move_list(JUMP,x_plus, y_plus)
  448. end
  449. end
  450. module Game_Player_Module
  451. def update
  452. $game_party.update_party_actors
  453. super
  454. end
  455. def moveto( x, y )
  456. $game_party.moveto_party_actors( x, y )
  457. super( x, y )
  458. end
  459. def move_down(turn_enabled = true)
  460. if passable?(@x, @y, Input::DOWN)
  461. $game_party.move_down_party_actors(turn_enabled)
  462. end
  463. super(turn_enabled)
  464. end
  465. def move_left(turn_enabled = true)
  466. if passable?(@x, @y, Input::LEFT)
  467. $game_party.move_left_party_actors(turn_enabled)
  468. end
  469. super(turn_enabled)
  470. end
  471. def move_right(turn_enabled = true)
  472. if passable?(@x, @y, Input::RIGHT)
  473. $game_party.move_right_party_actors(turn_enabled)
  474. end
  475. super(turn_enabled)
  476. end
  477. def move_up(turn_enabled = true)
  478. if passable?(@x, @y, Input::UP)
  479. $game_party.move_up_party_actors(turn_enabled)
  480. end
  481. super(turn_enabled)
  482. end
  483. def move_lower_left
  484. # 下→左、左→下 のどちらかのコースが通行可能な場合
  485. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  486. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  487. $game_party.move_lower_left_party_actors
  488. end
  489. super
  490. end
  491. def move_lower_right
  492. # 下→右、右→下 のどちらかのコースが通行可能な場合
  493. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) 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_left
  500. # 上→左、左→上 のどちらかのコースが通行可能な場合
  501. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  502. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  503. $game_party.move_upper_left_party_actors
  504. end
  505. super
  506. end
  507. def move_upper_right
  508. # 上→右、右→上 のどちらかのコースが通行可能な場合
  509. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  510. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  511. $game_party.move_upper_right_party_actors
  512. end
  513. super
  514. end
  515. def jump(x_plus, y_plus)
  516. # 新しい座標を計算
  517. new_x = @x + x_plus
  518. new_y = @y + y_plus
  519. # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  520. if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  521. $game_party.jump_party_actors(x_plus, y_plus)
  522. end
  523. super(x_plus, y_plus)
  524. end
  525. attr_reader :move_speed
  526. attr_reader :step_anime
  527. end
  528. end # module Train_Actor
  529. class Game_Party
  530. include Train_Actor::Game_Party_Module
  531. end
  532. class Game_Player
  533. include Train_Actor::Game_Player_Module
  534. end
  535. class Spriteset_Map
  536. include Train_Actor::Spriteset_Map_Module
  537. end
  538. class Scene_Map
  539. include Train_Actor::Scene_Map_Module
  540. end

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

版务信息:版主帮忙结贴~
丧尸语录-终の千年
类型:恐怖
      爱情
      悬疑
      休闲
の名:千年の制裁の
系统--- 50%
画面---  0%
美工---  0%
地图---  0%
数据库-  0%
剧情---  50%

Lv1.梦旅人

剑圣

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-8-31
帖子
778
2
发表于 2009-5-5 05:00:07 | 只看该作者
因为菜单弹出来了嘛= =
Scene不一样了

在任务跟随脚本后面加上这些
class Scene_Menu
include Train_Actor::Scene_Map_Module
end
class Scene_Item
include Train_Actor::Scene_Map_Module
end
class Scene_Skill
include Train_Actor::Scene_Map_Module
end
class Scene_State
include Train_Actor::Scene_Map_Module
end
class Scene_Save
include Train_Actor::Scene_Map_Module
end
class Scene_End
include Train_Actor::Scene_Map_Module
end

PC/IOS/Android共享的RM RPG:未名大学
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
81
在线时间
54 小时
注册时间
2008-12-24
帖子
345
3
 楼主| 发表于 2009-5-5 05:07:31 | 只看该作者
不对
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2009-5-5 08:08:15 | 只看该作者
先添加 tab 那段,然后找到下面这段,添加红色的部分:
module XRXS_MP7_Module
  def create_spriteset
    @spriteset = Spriteset_Map.new
    $game_party.update_party_actors
  end
  def dispose_spriteset
    @spriteset.dispose
  end
end

系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
81
在线时间
54 小时
注册时间
2008-12-24
帖子
345
5
 楼主| 发表于 2009-5-5 16:20:27 | 只看该作者
我知道 因为在地图上  有个主循环 因为调用了Scene停止刷新了~~但不知道怎么改谢谢紫苏
丧尸语录-终の千年
类型:恐怖
      爱情
      悬疑
      休闲
の名:千年の制裁の
系统--- 50%
画面---  0%
美工---  0%
地图---  0%
数据库-  0%
剧情---  50%
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-22 17:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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