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

Project1

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

[已经解决] 瞬移脚本出错了

[复制链接]

Lv1.梦旅人

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

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

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

x
本帖最后由 guoyq1988 于 2014-2-12 16:39 编辑




@芯☆淡茹水

目前是芯式战斗系统+网游装备(芯式)
貌似是和你的  停止时动画  有冲突,求解决的办法....
  1. #==============================================================================
  2. # ★【  瞬移  】★
  3. #==============================================================================
  4. #  by -> 芯☆淡如水
  5. #==============================================================================
  6. # ● 使用方法:复制该脚本,插入到 main 前。
  7. #==============================================================================
  8. #   瞬移!这个就不用多介绍了,常玩游戏的都知道其概念。
  9. #   如果实在不知道,请测试范例工程。
  10. #==============================================================================
  11. # ● 设置:
  12. #-----------------------------------------------------------------------------
  13. # 瞬移开启/关闭的开关 ID。
  14. TELEPORT_SWITCHE_ID = 4
  15. #------------------------------------------------------------------------------
  16. # 启动瞬移的按钮(A 对应键盘 Z 键)
  17. TELEPORT_INPOT = Input::A
  18. #-----------------------------------------------------------------------------
  19. # 瞬移时播放的动画 ID
  20. TELEPORT_ANIMATION_ID = 101
  21. #-----------------------------------------------------------------------------
  22. # 瞬移的距离(格,地图图块单元)
  23. TELEPORT_RANGE = 5
  24. #-----------------------------------------------------------------------------
  25. # 瞬移时地图画面的滚动速度(大地图才滚动)
  26. SCROLL_AGI = 5
  27. #-----------------------------------------------------------------------------
  28. # 瞬移消耗的 SP (消耗带头角色的 SP)
  29. TELEPORT_SP = 10
  30. #==============================================================================
  31. class Game_Character
  32.   #--------------------------------------------------------------------------
  33.   def teleport
  34.     actor = $game_party.actors[0]
  35.     if actor.sp < TELEPORT_SP
  36.       $game_system.se_play($data_system.buzzer_se)
  37.       return
  38.     end
  39.     case @direction
  40.     when 2
  41.       new_x = @x
  42.       new_y = @y + TELEPORT_RANGE
  43.       while ! passable?(new_x, new_y, 0)
  44.         break if new_y == @y
  45.         new_y -= 1
  46.       end
  47.       distance = (new_y - @y).abs
  48.     when 4
  49.       new_x = @x - TELEPORT_RANGE
  50.       new_y = @y
  51.       while ! passable?(new_x, new_y, 0)
  52.         break if new_x == @x
  53.         new_x += 1
  54.       end
  55.       distance = (new_x - @x).abs
  56.     when 6
  57.       new_x = @x + TELEPORT_RANGE
  58.       new_y = @y
  59.       while ! passable?(new_x, new_y, 0)
  60.         break if new_x == @x
  61.         new_x -= 1
  62.       end
  63.       distance = (new_x - @x).abs
  64.     when 8
  65.       new_x = @x
  66.       new_y = @y - TELEPORT_RANGE
  67.       while ! passable?(new_x, new_y, 0)
  68.         break if new_y == @y
  69.         new_y += 1
  70.       end
  71.       distance = (new_y - @y).abs
  72.     end
  73.     actor.sp -= TELEPORT_SP
  74.     $game_player.animation_id = TELEPORT_ANIMATION_ID
  75.     @real_x = new_x * 128
  76.     @real_y = new_y * 128
  77.     $game_map.start_scroll(@direction, distance, SCROLL_AGI)
  78.     @x = new_x
  79.     @y = new_y
  80.   end
  81. end
  82. #==============================================================================
  83. class Scene_Map
  84.   #--------------------------------------------------------------------------
  85.   alias add_update_xdrs update
  86.   def update
  87.     if Input.trigger?(TELEPORT_INPOT)
  88.       $game_player.teleport if $game_switches[TELEPORT_SWITCHE_ID]
  89.     end
  90.     add_update_xdrs
  91.   end
  92. end
  93. #==============================================================================
复制代码

   
【RMXP共享】50个脚本整合的系统

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-2-12 18:56:01 | 只看该作者
尝试改下update旧名
alias add_update_xdrs update

比如 改成 alias add_update_xdrs111111111111 update
下方 add_update_xdrs 也要对应改

防止栈深度过深的错误


除此以外不太可能冲突吧
没有重定义方法
或者尝试下给方法改个名


比如

def teleport
改成 def teleport11111111111

对应下方调用那里


$game_player.teleport if $game_switches[TELEPORT_SWITCHE_ID] 对应改就好
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
3
 楼主| 发表于 2014-2-12 19:32:10 | 只看该作者
恋′挂机 发表于 2014-2-12 18:56
尝试改下update旧名
alias add_update_xdrs update

谢谢,但改了还是出错了
个人认为是和这个脚本有冲突,恋大大请看看
  1. =begin
  2. *******************************************************************************
  3. ===============================================================================
  4. ★ 停止时动画 ★         
  5. ---------------------------------------------------------------------------
  6.   by ->  芯☆淡茹水
  7. ===============================================================================
  8. ● 使用方法:复制该脚本,插入到 main 前。
  9. ===============================================================================
  10. ● 行走图的制作和命名:
  11.         
  12.          和默认行走图类似,只是多了四方向的停止动画。
  13.       从上到下依次为:停止动画(面向下,面向左,面向右,面向上);行走动画
  14.       (面向下,面向左,面向右,面向上)。做好的素材按上面顺序拼接好即可。
  15.       
  16.          行走图命名:拥有 停止动画 的行走图,在命名时,名字前加一个符号“$”
  17.       即可。
  18.       
  19.          名字前没有“$”符号的行走图文件,为默认行走图(基础版四方向)。
  20.          
  21.       详见范例的行走图制作和命名。
  22. ===============================================================================
  23. ● 冲突的可能:按键加速;队伍跟随。
  24. ===============================================================================
  25. =end
  26. #=============================================================================
  27. class Game_Character
  28.   #--------------------------------------------------------------------------
  29.   attr_reader   :standby                     
  30.   #---------------------------
  31.   alias add_initialize_xdrs initialize
  32.   def initialize
  33.     add_initialize_xdrs
  34.     @standby = 0
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   def update_move
  38.     if @standby > 0
  39.       if @direction <= @standby / 2
  40.         @direction = @direction + @standby / 2
  41.       end
  42.     end
  43.     # 移动速度转换为地图坐标系的移动距离
  44.     distance = 2 ** @move_speed
  45.     # 理论坐标在实际坐标下方的情况下
  46.     if @y * 128 > @real_y
  47.       # 向下移动
  48.       @real_y = [@real_y + distance, @y * 128].min
  49.     end
  50.     # 理论坐标在实际坐标左方的情况下
  51.     if @x * 128 < @real_x
  52.       # 向左移动
  53.       @real_x = [@real_x - distance, @x * 128].max
  54.     end
  55.     # 理论坐标在实际坐标右方的情况下
  56.     if @x * 128 > @real_x
  57.       # 向右移动
  58.       @real_x = [@real_x + distance, @x * 128].min
  59.     end
  60.     # 理论坐标在实际坐标上方的情况下
  61.     if @y * 128 < @real_y
  62.       # 向上移动
  63.       @real_y = [@real_y - distance, @y * 128].max
  64.     end
  65.     # 移动时动画为 ON 的情况下
  66.     if @walk_anime
  67.       # 动画计数增加 1.5
  68.       @anime_count += 1.5
  69.     # 移动时动画为 OFF、停止时动画为 ON 的情况下
  70.     elsif @step_anime
  71.       # 动画计数增加 1
  72.       @anime_count += 1
  73.     end
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   def update_stop
  77.     if @standby > 0
  78.       @direction = @direction - 8 if @direction > @standby / 2
  79.       @anime_count += 1
  80.       if @anime_count > (18 - @move_speed * 2)
  81.         @pattern = (@pattern + 1) % 4
  82.         @anime_count = 0
  83.       end
  84.     else
  85.     # 停止时动画为 ON 的情况下
  86.       if @step_anime
  87.         # 动画计数增加 1
  88.         @anime_count += 1
  89.       # 停止时动画为 OFF 并且、现在的图像与原来的不同的情况下
  90.       elsif @pattern != @original_pattern
  91.         # 动画计数增加 1.5
  92.         @anime_count += 1.5
  93.       end
  94.     end
  95.     # 事件执行待机中并且不是锁定状态的情况下
  96.     # ※锁定、处理成立刻停止执行中的事件
  97.     unless @starting or lock?
  98.       # 停止计数增加 1
  99.       @stop_count += 1
  100.     end
  101.   end
  102. end
  103. #=============================================================================
  104. class Game_Event < Game_Character
  105.   #--------------------------------------------------------------------------
  106.   def refresh
  107.     # 初始化本地变量 new_page
  108.     new_page = nil
  109.     # 无法暂时消失的情况下
  110.     unless @erased
  111.       # 从编号大的事件页按顺序调查
  112.       for page in @event.pages.reverse
  113.         # 可以参考事件条件 c
  114.         c = page.condition
  115.         # 确认开关条件 1
  116.         if c.switch1_valid
  117.           if $game_switches[c.switch1_id] == false
  118.             next
  119.           end
  120.         end
  121.         # 确认开关条件 2
  122.         if c.switch2_valid
  123.           if $game_switches[c.switch2_id] == false
  124.             next
  125.           end
  126.         end
  127.         # 确认变量条件
  128.         if c.variable_valid
  129.           if $game_variables[c.variable_id] < c.variable_value
  130.             next
  131.           end
  132.         end
  133.         # 确认独立开关条件
  134.         if c.self_switch_valid
  135.           key = [@map_id, @event.id, c.self_switch_ch]
  136.           if $game_self_switches[key] != true
  137.             next
  138.           end
  139.         end
  140.         # 设置本地变量 new_page
  141.         new_page = page
  142.         # 跳出循环
  143.         break
  144.       end
  145.     end
  146.     # 与上次同一事件页的情况下
  147.     if new_page == @page
  148.       # 过程结束
  149.       return
  150.     end
  151.     # @page 设置为现在的事件页
  152.     @page = new_page
  153.     # 清除启动中标志
  154.     clear_starting
  155.     # 没有满足条件的页面的时候
  156.     if @page == nil
  157.       # 设置各实例变量
  158.       @tile_id = 0
  159.       @character_name = ""
  160.       @character_hue = 0
  161.       @move_type = 0
  162.       @through = true
  163.       @trigger = nil
  164.       @list = nil
  165.       @interpreter = nil
  166.       # 过程结束
  167.       return
  168.     end
  169.     # 设置各实例变量
  170.     @tile_id = @page.graphic.tile_id
  171.     @character_name = @page.graphic.character_name
  172.     @character_hue = @page.graphic.character_hue
  173.     sign = @character_name[/^[\!\$]./]
  174.     @standby = (sign != nil and sign.include?('$')) ? 16 : 0
  175.     if @original_direction != @page.graphic.direction
  176.       @direction = @page.graphic.direction
  177.       @original_direction = @direction
  178.       @prelock_direction = 0
  179.     end
  180.     if @original_pattern != @page.graphic.pattern
  181.       @pattern = @page.graphic.pattern
  182.       @original_pattern = @pattern
  183.     end
  184.     [url=home.php?mod=space&uid=316553]@opacity[/url] = @page.graphic.opacity
  185.     @blend_type = @page.graphic.blend_type
  186.     @move_type = @page.move_type
  187.     @move_speed = @page.move_speed
  188.     @move_frequency = @page.move_frequency
  189.     @move_route = @page.move_route
  190.     @move_route_index = 0
  191.     @move_route_forcing = false
  192.     @walk_anime = @page.walk_anime
  193.     @step_anime = @page.step_anime
  194.     @direction_fix = @page.direction_fix
  195.     @through = @page.through
  196.     @always_on_top = @page.always_on_top
  197.     @trigger = @page.trigger
  198.     @list = @page.list
  199.     @interpreter = nil
  200.     # 目标是 [并行处理] 的情况下
  201.     if @trigger == 4
  202.       # 生成并行处理用解释器
  203.       @interpreter = Interpreter.new
  204.     end
  205.     # 自动事件启动判定
  206.     check_event_trigger_auto
  207.   end
  208. end
  209. #==============================================================================
  210. class Game_Player < Game_Character
  211.   #--------------------------------------------------------------------------
  212.   def refresh
  213.     # 同伴人数为 0 的情况下
  214.     if $game_party.actors.size == 0
  215.       # 清除角色的文件名及对像
  216.       @character_name = ""
  217.       @character_hue = 0
  218.       # 分支结束
  219.       return
  220.     end
  221.     # 获取带头的角色
  222.     actor = $game_party.actors[0]
  223.     # 设置角色的文件名及对像
  224.     @character_name = actor.character_name
  225.     @character_hue = actor.character_hue
  226.     sign = @character_name[/^[\!\$]./]
  227.     @standby = (sign != nil and sign.include?('$')) ? 16 : 0
  228.     # 初始化不透明度和合成方式
  229.     @opacity = 255
  230.     @blend_type = 0
  231.   end
  232. end
  233. #==============================================================================
  234. class Sprite_Character < RPG::Sprite
  235.   #--------------------------------------------------------------------------
  236.   def update
  237.     super
  238.     # 元件 ID、文件名、色相与现在的情况存在差异的情况下
  239.     if @tile_id != @character.tile_id or
  240.        @character_name != @character.character_name or
  241.        @character_hue != @character.character_hue
  242.       # 记忆元件 ID 与文件名、色相
  243.       @tile_id = @character.tile_id
  244.       @character_name = @character.character_name
  245.       @character_hue = @character.character_hue
  246.       # 元件 ID 为有效值的情况下
  247.       if @tile_id >= 384
  248.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  249.           @tile_id, @character.character_hue)
  250.         self.src_rect.set(0, 0, 32, 32)
  251.         self.ox = 16
  252.         self.oy = 32
  253.       # 元件 ID 为无效值的情况下
  254.       else
  255.         self.bitmap = RPG::Cache.character(@character.character_name,
  256.           @character.character_hue)
  257.         @cw = bitmap.width / 4
  258.         @ch = @character.standby > 0 ? bitmap.height / 8 : bitmap.height / 4
  259.         self.ox = @cw / 2
  260.         self.oy = @ch
  261.       end
  262.     end
  263.     # 设置可视状态
  264.     self.visible = (not @character.transparent)
  265.     # 图形是角色的情况下
  266.     if @tile_id == 0
  267.       # 设置传送目标的矩形
  268.       sx = @character.pattern * @cw
  269.       sy = (@character.direction - 2) / 2 * @ch
  270.       self.src_rect.set(sx, sy, @cw, @ch)
  271.     end
  272.     # 设置脚本的坐标
  273.     self.x = @character.screen_x
  274.     self.y = @character.screen_y
  275.     self.z = @character.screen_z(@ch)
  276.     # 设置不透明度、合成方式、茂密
  277.     self.opacity = @character.opacity
  278.     self.blend_type = @character.blend_type
  279.     self.bush_depth = @character.bush_depth
  280.     # 动画
  281.     if @character.animation_id != 0
  282.       animation = $data_animations[@character.animation_id]
  283.       animation(animation, true)
  284.       @character.animation_id = 0
  285.     end
  286.   end
  287. end
  288. #==============================================================================
  289. class Window_Base < Window
  290.   #--------------------------------------------------------------------------
  291.   def draw_actor_graphic(actor, x, y)
  292.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  293.     sign = actor.character_name[/^[\!\$]./]   
  294.     cw = bitmap.width / 4
  295.     n = (sign != nil and sign.include?('$')) ?  8 : 4
  296.     ch =  bitmap.height / n
  297.     src_rect = Rect.new(0, 0, cw, ch)
  298.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  299.   end
  300. end
  301. #==============================================================================
复制代码

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
4
发表于 2014-2-12 19:58:42 | 只看该作者
本帖最后由 恋′挂机 于 2014-2-12 22:37 编辑

不可能冲突吧?
75行报错!new_x == nil    这不太可能吧。。

发现此脚本的一个小BUG 如果没有角色 会因为 actor 是nil 不具有 sp 而报错
但如果是因为没有角色,那么报错不应该在75行而应该在34行

也就是有角色
但 new_x 没有赋值 无法理解!


还有另一种可能

就是自己修改过
比如把之前的new_x 改成 x_new 那么 赋值 的是 x_new 而不是 new_x 所以报错!
但我觉得这种可能性几乎不存在!

总之 我依然认为脚本应该是没有问题的,也不是因为冲突
能上传个工程么?

另外 我不是高手
认真说的话其实我也算新手。。。毕竟13年9月才开始尝试改窗口的。。。




被你工程吓到了。。。

调了好长好长时间坐标 总不对
最后终于发现!!!!!!!!!!!!!!!!!我也太。。。
你的i大了1

都是 for i in 0...$game_party.actors.size
你是 for i in 1..$game_party.actors.size

坐标大概调好了。。。 表示抱歉!
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================
  6. #有问题,找蚂蚁 redant修改

  7. class Window_BattleStatus < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     super(0, 0, 640, 480)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     @level_up_flags = [false, false, false, false]
  15.     #........................................................................
  16.     self.opacity = 0
  17.     @sta_back = []
  18.     @sta_output = []
  19.    # @cp_output = []
  20.   #  @hp_bitmap = RPG::Cache.picture("../system/battle/hmcp/hp_bar.png")
  21.     #@mp_bitmap = RPG::Cache.picture("../system/battle/hmcp/mp_bar.png")
  22.    # @bitmap3 = RPG::Cache.picture("../system/battle/hmcp/底.png")
  23.     # @cp_bitmap = RPG::Cache.picture("../system/battle/hmcp/cp_bar.png")
  24.    # @cp_output = []
  25.    # @cp_back_bar = Sprite.new
  26.     #@cp_back_bar.bitmap = Bitmap.new("Graphics/system/battle/hmcp/cp_back_bar")
  27.    ## @cp_back_bar.x = 450
  28.    # @cp_back_bar.y = 25
  29.     #@cp_back_bar.z = self.z + 1
  30.    # @actor_cp_sprite = []
  31.    # @actor_cp_sprite_back = []
  32. #  @xy_window.visible = true  
  33.    @xy_window = Window_xy.new
  34.    @xy_window.x = -16
  35.    @xy_window.y = -16
  36.    @xy_window.opacity = 0

  37.     for actor_index in 0...$game_party.actors.size
  38. #      @cp_output[actor_index] = Sprite.new
  39.      # @cp_output[actor_index].bitmap = Bitmap.new(133, 78)
  40.     #  @cp_output[actor_index].x = 100 + (actor_index - 1) * 133
  41.     #  @cp_output[actor_index].y = 480 - 78 - 10
  42.     #  @cp_output[actor_index].z = self.z + 2
  43. #      @cp_output[actor_index].bitmap.clear

  44.       
  45.       ###########角色底图
  46.       @sta_back[actor_index] = Sprite.new
  47.       @sta_back[actor_index].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗.png")
  48.       @sta_back[actor_index].x = 4 + actor_index % 2 * 382
  49.       @sta_back[actor_index].y = (actor_index / 2) * 100 + 260
  50.       @sta_back[actor_index].z = self.z + 1
  51.       
  52.       
  53.       ##############
  54.      @sta_output[actor_index] = Sprite.new
  55.       @sta_output[actor_index].bitmap = Bitmap.new(133, 78)
  56.      @sta_output[actor_index].x = 4 + actor_index % 2 * 382 + 80
  57.       @sta_output[actor_index].y = (actor_index / 2) * 100 + 280
  58.       @sta_output[actor_index].z = self.z + 2
  59.       @sta_output[actor_index].bitmap.clear
  60.       @sta_output[actor_index].bitmap.font.size = 11
  61.       @sta_output[actor_index].bitmap.font.name = "黑体"
  62.       
  63. #      hp_width = $game_party.actors[actor_index - 1].hp * @hp_bitmap.width/$game_party.actors[actor_index - 1].maxhp
  64. #     hp_rect = Rect.new(0, 0, hp_width, 5)
  65.      # mp_width = $game_party.actors[actor_index - 1].sp * @mp_bitmap.width/$game_party.actors[actor_index - 1].maxsp
  66.     #  mp_rect = Rect.new(0, 0, mp_width, 5)
  67.       
  68.      # @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
  69.      # self.contents.blt(10,220, @bitmap3, @src_rect3)
  70.       
  71. #      @sta_output[actor_index].bitmap.blt(66, 44, @hp_bitmap, hp_rect)
  72. #     @sta_output[actor_index].bitmap.blt(66, 64, @mp_bitmap, mp_rect)
  73. #      @sta_output[actor_index].bitmap.blt(66, 54, @bitmap3, @src_rect3)
  74.       
  75.       @sta_output[actor_index].bitmap.font.color.set(255, 0, 0)
  76.       @sta_output[actor_index].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[actor_index - 1].hp.to_s + "/" + $game_party.actors[actor_index - 1].maxhp.to_s)
  77.       @sta_output[actor_index].bitmap.font.color.set(0, 0, 255)
  78.      @sta_output[actor_index].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[actor_index - 1].sp.to_s + "/" + $game_party.actors[actor_index - 1].maxsp.to_s)
  79.     end
  80.     #........................................................................
  81.     refresh
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 释放
  85.   #--------------------------------------------------------------------------
  86.   def dispose
  87.     super
  88.      @xy_window.dispose
  89.    # @hp_bitmap.bitmap.dispose
  90.    #@hp_bitmap.dispose
  91.   #  @mp_bitmap.bitmap.dispose
  92.    # @mp_bitmap.dispose
  93.     #@cp_bitmap.bitmap.dispose
  94.    # @cp_bitmap.dispose
  95.     for actor_index in 1..$game_party.actors.size
  96.       @sta_back[actor_index].bitmap.dispose
  97.       @sta_back[actor_index].dispose
  98.       @sta_output[actor_index].bitmap.dispose
  99.       @sta_output[actor_index].dispose
  100.      # @cp_output[actor_index].bitmap.dispose
  101.      # @cp_output[actor_index].dispose
  102.     end
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 设置升级标志
  106.   #     actor_index : 角色索引
  107.   #--------------------------------------------------------------------------
  108.   def level_up(actor_index)
  109.     @level_up_flags[actor_index] = true
  110.   end
  111.   #......................................................................
  112.   #--------------------------------------------------------------------------
  113.   # ● 设置正在攻击标志
  114.   #     actor_index : 角色索引
  115.   #--------------------------------------------------------------------------
  116.   def in_atk(actor_index)
  117.    @sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗1.png")
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 设置不在攻击标志
  121.   #     actor_index : 角色索引
  122.   #--------------------------------------------------------------------------
  123.   def out_atk(actor_index)
  124.     @sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗.png")
  125.   end
  126.   #......................................................................
  127.   #--------------------------------------------------------------------------
  128.   # ● 刷新
  129.   #--------------------------------------------------------------------------
  130.   def refresh
  131.     self.contents.clear
  132.     @item_max = $game_party.actors.size
  133.     for i in 0...$game_party.actors.size
  134.       actor = $game_party.actors[i]
  135.       #......................................................................
  136.        actor_x = i * 160 + 145
  137.        actor_y = i * 80 + 220
  138.       @sta_output[i].bitmap.clear
  139.     # hp_width = $game_party.actors[i].hp * @hp_bitmap.width/$game_party.actors[i].maxhp
  140.      # hp_rect = Rect.new(0, 0, hp_width, 5)
  141.     #  mp_width = $game_party.actors[i].sp * @mp_bitmap.width/$game_party.actors[i].maxsp
  142.     #  mp_rect = Rect.new(0, 0, mp_width, 5)
  143. #      @sta_output[i + 1].bitmap.blt(66, 44, @hp_bitmap, hp_rect)
  144. #     @sta_output[i + 1].bitmap.blt(66, 64, @mp_bitmap, mp_rect)
  145.       @sta_output[i].bitmap.font.color.set(255, 0, 0)
  146.       @sta_output[i].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[i].hp.to_s + "/" + $game_party.actors[i].maxhp.to_s)
  147.       @sta_output[i].bitmap.font.color.set(0, 0, 255)
  148.       @sta_output[i].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[i].sp.to_s + "/" + $game_party.actors[i].maxsp.to_s)
  149.       #......................................................................
  150.       if @level_up_flags[i]
  151.         self.contents.font.color = Color.new(255,5,5)
  152.          self.contents.font.size = 16
  153.         self.contents.draw_text(100, actor_y - 220, 640 , 480, "等级提升!")
  154.         $data_system_level_up_me = "Audio/ME/dengji"
  155.           Audio.me_play($data_system_level_up_me)
  156.       else
  157.         draw_actor_state(actor, 120, actor_y)
  158.       end
  159.     end
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● 刷新画面
  163.   #--------------------------------------------------------------------------
  164.   def update
  165.     super
  166. #     主界面的不透明度下降
  167.     if $game_temp.battle_main_phase
  168.       self.contents_opacity = 255 #if self.contents_opacity > 1
  169.     else
  170.       self.contents_opacity = 255 #if self.contents_opacity < 255
  171.     end
  172.   end
  173. end
  174. #图片血槽显示Ver 1.0(清爽版)
  175. #              by逐月

  176. #描画HP槽
  177. def HP (actor,x,y)         
  178. @bitmap3 = Bitmap.new("Graphics/Pictures/底")
  179. @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
  180. self.contents.blt(x,y, @bitmap3, @src_rect3)
  181. #HP显示
  182. @bitmap3 = Bitmap.new("Graphics/Pictures/hp")
  183. w3 = @bitmap3.width * actor.hp/actor.maxhp
  184. @src_rect3 = Rect.new(0,0,w3, @bitmap3.height)
  185. self.contents.blt(x+4,y+2, @bitmap3, @src_rect3)
  186. end
  187. #描画SP槽
  188. def SP (actor,x,y)
  189. @bitmap1 = Bitmap.new("Graphics/Pictures/底")
  190. @src_rect1 = Rect.new(0,0,@bitmap1.width, @bitmap1.height)
  191. self.contents.blt(x,y, @bitmap1, @src_rect1)
  192. #SP显示           
  193. @bitmap1 = Bitmap.new("Graphics/Pictures/sp")
  194. w1 = @bitmap1.width * actor.sp/actor.maxsp
  195. @src_rect1 = Rect.new(0,0,w1, @bitmap1.height)
  196. self.contents.blt(x+4,y+2, @bitmap1, @src_rect1)
  197. end
  198. #==============================================================================
  199. # ■ Window_BattleStatus
  200. #==============================================================================
  201. class Window_BattleStatus < Window_Base
  202. #--------------------------------------------------------------------------
  203. # ● 初始化
  204. #--------------------------------------------------------------------------
  205. alias xrxs_bp3_refresh refresh
  206. def refresh
  207.    xrxs_bp3_refresh
  208.    @item_max = $game_party.actors.size
  209.     for i in 0...$game_party.actors.size
  210.      actor = $game_party.actors[i]
  211.         bitmap = Bitmap.new("Graphics/system/menu/back/" + actor.name + "_name.png")
  212.       src_rect = Rect.new(0, 0, 120, 66)
  213.       x = 4 + i % 2 * 382 + 140
  214.       y = (i / 2) * 100 + 300
  215.      case i
  216.        when 0
  217.         
  218.           #draw_actor_name(actor, 400 - 40,420-5)
  219.       
  220.       self.contents.blt(345, 405 , bitmap, src_rect)
  221.       
  222.       when 1
  223.         #x = 150
  224.         #y = 489
  225.          # draw_actor_name(actor, 470 - 40,350-15 )
  226.            self.contents.blt(420, 330 , bitmap, src_rect)
  227.        when 2
  228.        # x = 345
  229.        # y = 339
  230.          # draw_actor_name(actor, 540 - 30,280-20)
  231.            self.contents.blt(500, 255 , bitmap, src_rect)
  232.        when 3
  233.       #  x = 345
  234.       #  y = 419
  235.           #draw_actor_name(actor, 610 - 40 ,210 )
  236.             self.contents.blt(560, 190 , bitmap, src_rect)
  237.           end
  238.       ###########################一切自改##############################
  239.      HP(actor, x-10, y)
  240.      SP(actor, x-10, y + 18)
  241.      # draw_actor_name(actor, x ,y )
  242.   
  243.      #######################################一切自改###############
  244.    end
  245. end

  246. end
复制代码
瞬移那个 和 停止时动画确实有点问题
稍后重新写个给你好了

点评

请问恋大,状态显示怎么修改位置?  发表于 2014-2-13 22:05
已发工程,请费心帮忙修改下,谢谢  发表于 2014-2-12 20:27
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
5
 楼主| 发表于 2014-2-13 13:55:48 | 只看该作者
恋′挂机 发表于 2014-2-12 19:58
不可能冲突吧?
75行报错!new_x == nil    这不太可能吧。。

非常感谢!辛苦恋大了!真是麻烦你了!

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
6
发表于 2014-2-13 22:51:25 | 只看该作者
状态显示哪里的?

另外那个停止时动画可以这样

@step_anime=true
@character_name=xxxx

让角色开启“停止时动画”开关
更改角色行走图 实现待机效果
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
7
 楼主| 发表于 2014-2-13 23:47:24 | 只看该作者
恋′挂机 发表于 2014-2-13 22:51
状态显示哪里的?

另外那个停止时动画可以这样



状态显示没和人物对齐

另外,说的停止动画那个修改是不是在该脚本最上面加?

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
8
发表于 2014-2-14 10:29:34 | 只看该作者
本帖最后由 恋′挂机 于 2014-2-14 10:31 编辑

血条第一段脚本的refresh替换为
  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新
  3.   #--------------------------------------------------------------------------
  4.   def refresh
  5.     self.contents.clear
  6.     @item_max = $game_party.actors.size
  7.     for i in 0...$game_party.actors.size
  8.       actor = $game_party.actors[i]

  9.       ax = 4 + i % 2 * 382# + 110-50
  10.       ay = (i / 2) * 100 + 295
  11.       @sta_output[i].bitmap.clear
  12.       @sta_output[i].bitmap.font.color.set(255, 0, 0)
  13.       @sta_output[i].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[i].hp.to_s + "/" + $game_party.actors[i].maxhp.to_s)
  14.       @sta_output[i].bitmap.font.color.set(0, 0, 255)
  15.       @sta_output[i].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[i].sp.to_s + "/" + $game_party.actors[i].maxsp.to_s)
  16.       
  17.       if @level_up_flags[i]
  18.         self.contents.font.color = Color.new(255,5,5)
  19.          self.contents.font.size = 16
  20.         self.contents.draw_text(100, ay - 220, 640 , 480, "等级提升!")
  21.         $data_system_level_up_me = "Audio/ME/dengji"
  22.           Audio.me_play($data_system_level_up_me)
  23.         else
  24.         draw_actor_state(actor, ax,ay)
  25.       end
  26.     end
  27.   end
复制代码
改成了头像左下角显示图标



停止时动画那个

找到八方向走
在 case Input.dir8 之前 加入
  1. # ----------------------------------------------------
  2.       @step_anime=true
  3.       @character_name=$game_party.actors[0].character_name+"_f"
  4.       # ----------------------------------------------------
复制代码
行走图改为 队伍中第一个角色的行走图名+上个"_f"

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
帖子
710
9
 楼主| 发表于 2014-2-14 19:35:01 | 只看该作者
恋′挂机 发表于 2014-2-14 10:29
血条第一段脚本的refresh替换为改成了头像左下角显示图标

状态显示修正完毕
谢谢恋大的耐心指点
经过斟酌,我决定放弃瞬移
感觉作用不大,毕竟我的战斗方式是回合制的,不是ARPG....
为了这脚本兼容让你这么大费心神,多不好意思
在次感谢恋大,谢谢你为我解决了好多问题

@myownroc   结贴

   
【RMXP共享】50个脚本整合的系统
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 07:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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