Project1

标题: 在脚本GAME_Actors中改不了角色出场X坐标 [打印本页]

作者: jfnaruto    时间: 2008-5-25 20:56
标题: 在脚本GAME_Actors中改不了角色出场X坐标
def screen_x
    # 返回计算后的队伍 X 坐标的排列顺序
    case self.index
    when 0
      return 300
    when 1
      return 450
    when 2
      return 550
    when 3
      return 650
    else
      return 1000
    end
  end  
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Y 坐标
  #--------------------------------------------------------------------------
  def screen_y
    case self.index
    when 0
      return 330
    when 1
      return 0
    when 2
      return 0
    when 3
      return 0
    else
      return 1000
    end
  end  
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Z 坐标
  #--------------------------------------------------------------------------
  def screen_z
    # 返回计算后的队伍 Z 坐标的排列顺序
   case self.index
    when 0
      return 1
    when 1
      return 0
    when 2
      return 4
    when 3
      return 2
    else
      return 4
    end
  end  
end
中Y坐标可以改,但X坐标改成任何数值都没效果,请问这是为什么 ?在线等! [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 八云紫    时间: 2008-5-25 20:57
你改的是哪个?  数字要对应角色ID的说。
作者: havealook    时间: 2008-5-25 21:01
脚本本身没有任何问题啊{/gg}

不清楚请看这个录象:http://rpg.blue/web/htm/news131.htm
作者: jfnaruto    时间: 2008-5-25 21:05
我该的是ID为0,即那个阿尔撒斯啊 ,把X值全改为0,那么所有角色X值都改,但阿尔还是站在原位置!
作者: havealook    时间: 2008-5-25 21:09
def screen_x
   # 返回计算后的队伍 X 坐标的排列顺序
   case self.index
   when 0
     return 300    #[B改这个数值是修改阿尔西斯的X坐标的
   when 1
     return 450
   when 2
     return 550
   when 3
     return 650
   else
     return 1000
   end
end
作者: 八云紫    时间: 2008-5-25 21:11
以下引用jfnaruto于2008-5-25 13:05:09的发言:

我该的是ID为0,即那个阿尔撒斯啊 ,把X值全改为0,那么所有角色X值都改,但阿尔还是站在原位置!


是不是使用了其他的战斗脚本的说?(貌似不太可能的说)
作者: 禾西    时间: 2008-5-25 21:28
                                遮蔽

作者: 八云紫    时间: 2008-5-25 21:33
以下引用禾西于2008-5-25 13:28:24的发言:

那那那....弱弱地舉手...阿二西施的 ID 是 1..........


望着LS,“阿二西施”在队伍里的ID是0的说。

LZ呀,我修改成功了。应该是LZ使用了什么战斗画面相关的脚本吧。
作者: 禾西    时间: 2008-5-25 21:36
删掉消滅證據 XD
作者: jfnaruto    时间: 2008-5-25 21:37
我使用的是RTAB战斗系统脚本的
作者: 八云紫    时间: 2008-5-25 21:39
以下引用禾西于2008-5-25 13:36:30的发言:



不一定的...$game_party.actor 的排列會變化,一定要用$data_actor。西施的ID在這裏是 1,0是不存在的ID...


哦呵呵,那为什么修改 when 0 下的值,“西施”(?)的战斗图就会移动呢?
作者: IamI    时间: 2008-5-25 21:40
……
RTAB重写了一大批的类……
还有禾西可以继续正常回答问题了没有
作者: havealook    时间: 2008-5-25 21:41
1。把脚本发上来
2。screen_x中的分歧,分歧的是队伍数组中的第几号,不是角色ID
作者: link006007    时间: 2008-5-25 21:42
$data_actor阿二西施的 ID 是 1
在$game_party.actors.index(self)/self.index/时是  0
作者: havealook    时间: 2008-5-25 21:43
when 0指的是“队伍”数组中的第1个数组,跟角色ID无关 - -
作者: 禾西    时间: 2008-5-25 21:44
以下引用八云紫于2008-5-25 13:39:50的发言:
哦呵呵,那为什么修改 when 0 下的值,“西施”(?)的战斗图就会移动呢?

那是因爲禾西喫花生太多喫到腦殘看錯題目.... ==|||
當我沒有說過..............................................................
以下引用IamI于2008-5-25 13:40:45的发言:
……
RTAB重写了一大批的类……

RTAB有改寫到Game_Actor類嗎?==a
以下引用link006007于2008-5-25 13:42:24的发言:
以下引用havealook于2008-5-25 13:43:12的发言:

知道了,稍微錯一次一大堆人評擊我!!!T_T
作者: 八云紫    时间: 2008-5-25 21:47
以下引用禾西于2008-5-25 13:44:07的发言:

當我沒有說過..............................................................


禾西版主有说过什么么?
作者: jfnaruto    时间: 2008-5-25 21:48
我把#--------------------------------------------------------------------------
  # ● 取得战斗画面的 X 坐标
  #--------------------------------------------------------------------------
  def screen_x
    # 返回计算后的队伍 X 坐标的排列顺序
    case self.index
    when 0
      return 0
    when 1
      return 0
    when 2
      return 0
    when 3
      return 0
    else
      return 1000
    end
  end  都改0了,人物的X坐标还是没动,但改Y的,则可以改的!
作者: 八云紫    时间: 2008-5-25 21:50
以下引用jfnaruto于2008-5-25 13:48:09的发言:

我把#--------------------------------------------------------------------------
# ● 取得战斗画面的 X 坐标
#--------------------------------------------------------------------------
def screen_x
   # 返回计算后的队伍 X 坐标的排列顺序
   case self.index
   when 0
     return 0
   when 1
     return 0
   when 2
     return 0
   when 3
     return 0
   else
     return 1000
   end
end  都改0了,人物的X坐标还是没动,但改Y的,则可以改的!



多半是LZ用的脚本又把X的值改掉了。
作者: Stifling    时间: 2008-5-25 21:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: havealook    时间: 2008-5-25 21:56
反正原理的录象在3楼我已经给出了,LZ看着办把{/gg}
作者: jfnaruto    时间: 2008-5-25 21:56
这脚本X值改掉了么?我把脚本发下吧,大家帮忙看看!但是,回贴能上传附件么?
作者: 禾西    时间: 2008-5-25 21:59
RTAB重寫掉了
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● バトル画面 X 座標の取得
  #--------------------------------------------------------------------------
  def screen_x
    # パーティ内の並び順から X 座標を計算して返す
    if self.index != nil
      return self.index * 160 + (4 - $game_party.actors.size) * 80 + 80
    else
      return 0
    end
  end
end

作者: jfnaruto    时间: 2008-5-25 21:59
我发脚本上来吧!
作者: IamI    时间: 2008-5-25 22:02
以下引用jfnaruto于2008-5-25 13:59:49的发言:

我发脚本上来吧!

不用了,看来证据确凿,是邪恶的RTAB的过错,修改之{/gg}
作者: havealook    时间: 2008-5-25 22:04
我想到1个很简单的方法{/hx}
把下面脚本插入到Main之前

  1. class Game_Actor < Game_Battler
  2. def screen_x
  3.    # 返回计算后的队伍 X 坐标的排列顺序
  4.    case self.index
  5.    when 0
  6.      return 300
  7.    when 1
  8.      return 450
  9.    when 2
  10.      return 550
  11.    when 3
  12.      return 650
  13.    else
  14.      return 1000
  15.    end
  16. end  
  17. #--------------------------------------------------------------------------
  18. # ● 取得战斗画面的 Y 坐标
  19. #--------------------------------------------------------------------------
  20. def screen_y
  21.    case self.index
  22.    when 0
  23.      return 330
  24.    when 1
  25.      return 0
  26.    when 2
  27.      return 0
  28.    when 3
  29.      return 0
  30.    else
  31.      return 1000
  32.    end
  33. end  
  34. #--------------------------------------------------------------------------
  35. # ● 取得战斗画面的 Z 坐标
  36. #--------------------------------------------------------------------------
  37. def screen_z
  38.    # 返回计算后的队伍 Z 坐标的排列顺序
  39.   case self.index
  40.    when 0
  41.      return 1
  42.    when 1
  43.      return 0
  44.    when 2
  45.      return 4
  46.    when 3
  47.      return 2
  48.    else
  49.      return 4
  50.    end
  51. end  
  52. end
复制代码


然后在此脚本里面修改X。Y坐标{/hx}
这样就把邪恶的RTAB的screen_x覆盖掉了{/tp} [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: jfnaruto    时间: 2008-5-25 22:08
是把 #--------------------------------------------------------------------------
# ● バトル画面 X 座標の取得
#--------------------------------------------------------------------------
def screen_x
   # パーティ内の並び順から X 座標を計算して返す
   if self.index != nil
     return self.index * 160 + (4 - $game_party.actors.size) * 80 + 80
   else
     return 0
   end
end
end
加在Game_Actor 里么?
作者: IamI    时间: 2008-5-25 22:11
不是,把这东西重写或者改掉
作者: havealook    时间: 2008-5-25 22:12
晕,不是的
看我27楼的发言
把脚本插入到Main之前,然后在那个脚本里面进行修改就行了
作者: jfnaruto    时间: 2008-5-25 22:15
放到main前?是否是
■ Main
#------------------------------------------------------------------------------
#  各定义结束后、从这里开始实际处理。
#==============================================================================
class Game_Actor < Game_Battler
def screen_x
   # 返回计算后的队伍 X 坐标的排列顺序
   case self.index
   when 0
     return 300
   when 1
     return 450
begin
  # 准备过渡
  # 设置系统默认字体
  Font.default_name = (["黑体"])
  Graphics.freeze
  # 生成场景对像 (标题画面)
  $scene = Scene_Title.new
  # $scene 为有效的情况下调用 main 过程
  while $scene != nil
    $scene.main
  end
  # 淡入淡出
  Graphics.transition(20)
rescue Errno::ENOENT
  # 补充 Errno::ENOENT 以外错误
  # 无法打开文件的情况下、显示信息后结束
  filename = $!.message.sub("No such file or directory - ", "")
  print("找不到文件 #{filename}。 ")
end
但测试时说有错误!32行SyntaxError
作者: 八云紫    时间: 2008-5-25 22:17
是插入到Main外面的之前


作者: havealook    时间: 2008-5-25 22:18
天啊。。。。
我说是在名字为“■ Main”的脚本前,新建个脚本,把脚本复制都右边的空白部分

就是在左边一栏,找到■ Main,鼠标右键点击它,选择插入,然后把那些东西复制到右边的空白处
作者: jfnaruto    时间: 2008-5-25 22:20
解决了,辛苦各位!万分感谢!给各位添麻烦了!不好意思!已认证答案!尤其感谢havealook
的详细耐心的作答!
作者: jfnaruto    时间: 2008-5-25 22:23
对了,我直接插入到MAIN里面了,居然成功啦!{/jy}
作者: link006007    时间: 2009-6-12 08:00
RTAB 确实重写了Game_Actors 的 def screen_x, 而其他两个未重写...

  1.   #--------------------------------------------------------------------------
  2.   # ● バトル画面 X 座標の取得
  3.   #--------------------------------------------------------------------------
  4.   def screen_x
  5.     # パーティ内の並び順から X 座標を計算して返す
  6.     if self.index != nil
  7.       return self.index * 160 + (4 - $game_party.actors.size) * 80 + 80
  8.     else
  9.       return 0
  10.     end
  11.   end
复制代码

找到RTAB的重写位置, 或者吧这个函数放在RTAB后面

to n楼以上那位:
你本来说的就没有错啊, ID确实没有0... 我只是说lz问的是$game_party.actors.index(value)




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