幻想森林

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

[已解决] 怎样把四个主角的战斗位置调成一直线

[复制链接]

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
发表于 2010-1-23 19:32:59 | 显示全部楼层 |阅读模式
  1.   #--------------------------------------------------------------------------
  2.   # ● 战斗画面的位置
  3.   #--------------------------------------------------------------------------
  4.   PARTY_X = 440    # 队伍 X 位置
  5.   PARTY_Y = 230    # 队伍 Y 位置
  6.   FORMATION_X = 40  # 各个角色之间的间隔 X
  7.   FORMATION_Y = 0 # 各个角色之间的间隔 Y
复制代码
问下在脚本怎么设置可以把四个主角调成一条直线!
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2010-1-23 20:26:31 | 显示全部楼层
这个不是默认的脚本么??

  FORMATION_X = 0  # 各个角色之间的间隔 X
  FORMATION_Y = 40 # 各个角色之间的间隔 Y

这样吧
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-23 20:34:20 | 显示全部楼层
是一条比直的直线,我上面的是一条直线但是两个人重合在一起了!就这种直线:—————
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-24 13:44:26 | 显示全部楼层
本人用的是菜鸟横版战头,问下怎么修改修改成四人一直线,我用了前卫,中卫,后卫三个方向后还有一人被重叠了,如图其实有四个人但有一个被重叠了!

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-24 13:56:14 | 显示全部楼层
晕,好像太大了,不能作为附件上传
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2010-1-24 14:00:21 | 显示全部楼层
脚本看不到啊。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-1-24 14:40:55 | 显示全部楼层
这个估计要修改RM默认的职业位置,在前卫,中卫,后卫三项之外再添加一个才可以。具体修改哪里,怎么修理,就要高手解答了。
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-24 16:02:33 | 显示全部楼层
  1. #==============================================================================
  2. # ■ Game_Party
  3. #------------------------------------------------------------------------------
  4. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  5. # 请参考 $game_party。
  6. #==============================================================================
  7. class Game_Party
  8.   #--------------------------------------------------------------------------
  9.   # ● 定义实例变量
  10.   #--------------------------------------------------------------------------
  11.   attr_reader   :actors                   # 角色
  12.   attr_reader   :gold                     # 金钱
  13.   attr_reader   :steps                    # 步数
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化对像
  16.   #--------------------------------------------------------------------------
  17.   def initialize
  18.     # 建立角色序列
  19.     @actors = []
  20.     # 初始化金钱与步数
  21.     @gold = 0
  22.     @steps = 0
  23.     # 生成物品、武器、防具的所持数 hash
  24.     @items = {}
  25.     @weapons = {}
  26.     @armors = {}
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 设置初期同伴
  30.   #--------------------------------------------------------------------------
  31.   def setup_starting_members
  32.     @actors = []
  33.     for i in $data_system.party_members
  34.       @actors.push($game_actors[i])
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 设置战斗测试用同伴
  39.   #--------------------------------------------------------------------------
  40.   def setup_battle_test_members
  41.     @actors = []
  42.     for battler in $data_system.test_battlers
  43.       actor = $game_actors[battler.actor_id]
  44.       actor.level = battler.level
  45.       gain_weapon(battler.weapon_id, 1)
  46.       gain_armor(battler.armor1_id, 1)
  47.       gain_armor(battler.armor2_id, 1)
  48.       gain_armor(battler.armor3_id, 1)
  49.       gain_armor(battler.armor4_id, 1)
  50.       actor.equip(0, battler.weapon_id)
  51.       actor.equip(1, battler.armor1_id)
  52.       actor.equip(2, battler.armor2_id)
  53.       actor.equip(3, battler.armor3_id)
  54.       actor.equip(4, battler.armor4_id)
  55.       actor.recover_all
  56.       @actors.push(actor)
  57.     end
  58.     @items = {}
  59.     for i in 1...$data_items.size
  60.       if $data_items[i].name != ""
  61.         occasion = $data_items[i].occasion
  62.         if occasion == 0 or occasion == 1
  63.           @items[i] = 99
  64.         end
  65.       end
  66.     end
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 同伴成员的还原
  70.   #--------------------------------------------------------------------------
  71.   def refresh
  72.     # 游戏数据载入后角色对像直接从 $game_actors
  73.     # 分离。
  74.     # 回避由于载入造成的角色再设置的问题。
  75.     new_actors = []
  76.     for i in 0...@actors.size
  77.       if $data_actors[@actors[i].id] != nil
  78.         new_actors.push($game_actors[@actors[i].id])
  79.       end
  80.     end
  81.     @actors = new_actors
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 获取最大等级
  85.   #--------------------------------------------------------------------------
  86.   def max_level
  87.     # 同伴人数为 0 的情况下
  88.     if @actors.size == 0
  89.       return 0
  90.     end
  91.     # 初始化本地变量 level
  92.     level = 0
  93.     # 求得同伴的最大等级
  94.     for actor in @actors
  95.       if level < actor.level
  96.         level = actor.level
  97.       end
  98.     end
  99.     return level
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 加入同伴
  103.   #     actor_id : 角色 ID
  104.   #--------------------------------------------------------------------------
  105.   def add_actor(actor_id)
  106.     # 获取角色
  107.     actor = $game_actors[actor_id]
  108.     # 同伴人数未满 4 人、本角色不在队伍中的情况下
  109.     if @actors.size < 4 and not @actors.include?(actor)
  110.       # 添加角色
  111.       @actors.push(actor)
  112.       # 还原主角
  113.       $game_player.refresh
  114.     end
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 角色离开
  118.   #     actor_id : 角色 ID
  119.   #--------------------------------------------------------------------------
  120.   def remove_actor(actor_id)
  121.     # 删除觉得
  122.     @actors.delete($game_actors[actor_id])
  123.     # 还原主角
  124.     $game_player.refresh
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 增加金钱 (减少)
  128.   #     n : 金额
  129.   #--------------------------------------------------------------------------
  130.   def gain_gold(n)
  131.     @gold = [[@gold + n, 0].max, 9999999].min
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 减少金钱
  135.   #     n : 金额
  136.   #--------------------------------------------------------------------------
  137.   def lose_gold(n)
  138.     # 调用数值逆转 gain_gold
  139.     gain_gold(-n)
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 增加步数
  143.   #--------------------------------------------------------------------------
  144.   def increase_steps
  145.     @steps = [@steps + 1, 9999999].min
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 获取物品的所持数
  149.   #     item_id : 物品 ID
  150.   #--------------------------------------------------------------------------
  151.   def item_number(item_id)
  152.     # 如果 hash 个数数值不存在就返回 0
  153.     return @items.include?(item_id) ? @items[item_id] : 0
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 获取武器所持数
  157.   #     weapon_id : 武器 ID
  158.   #--------------------------------------------------------------------------
  159.   def weapon_number(weapon_id)
  160.     # 如果 hash 个数数值不存在就返回 0
  161.     return @weapons.include?(weapon_id) ? @weapons[weapon_id] : 0
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 获取防具所持数
  165.   #     armor_id : 防具 ID
  166.   #--------------------------------------------------------------------------
  167.   def armor_number(armor_id)
  168.     # 如果 hash 个数数值不存在就返回 0
  169.     return @armors.include?(armor_id) ? @armors[armor_id] : 0
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● 增加物品 (减少)
  173.   #     item_id : 物品 ID
  174.   #     n       : 个数
  175.   #--------------------------------------------------------------------------
  176.   def gain_item(item_id, n)
  177.     # 更新 hash 的个数数据
  178.     if item_id > 0
  179.       @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  180.     end
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 增加武器 (减少)
  184.   #     weapon_id : 武器 ID
  185.   #     n         : 个数
  186.   #--------------------------------------------------------------------------
  187.   def gain_weapon(weapon_id, n)
  188.     # 更新 hash 的个数数据
  189.     if weapon_id > 0
  190.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  191.     end
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● 增加防具 (减少)
  195.   #     armor_id : 防具 ID
  196.   #     n        : 个数
  197.   #--------------------------------------------------------------------------
  198.   def gain_armor(armor_id, n)
  199.     # 更新 hash 的个数数据
  200.     if armor_id > 0
  201.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  202.     end
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 减少物品
  206.   #     item_id : 物品 ID
  207.   #     n       : 个数
  208.   #--------------------------------------------------------------------------
  209.   def lose_item(item_id, n)
  210.     # 调用 gain_item 的数值逆转
  211.     gain_item(item_id, -n)
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 减少武器
  215.   #     weapon_id : 武器 ID
  216.   #     n         : 个数
  217.   #--------------------------------------------------------------------------
  218.   def lose_weapon(weapon_id, n)
  219.     # 调用 gain_weapon 的数值逆转
  220.     gain_weapon(weapon_id, -n)
  221.   end
  222.   #--------------------------------------------------------------------------
  223.   # ● 减少防具
  224.   #     armor_id : 防具 ID
  225.   #     n        : 个数
  226.   #--------------------------------------------------------------------------
  227.   def lose_armor(armor_id, n)
  228.     # 调用 gain_armor 的数值逆转
  229.     gain_armor(armor_id, -n)
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 判断物品可以使用
  233.   #     item_id : 物品 ID
  234.   #--------------------------------------------------------------------------
  235.   def item_can_use?(item_id)
  236.     # 物品个数为 0 的情况
  237.     if item_number(item_id) == 0
  238.       # 不能使用
  239.       return false
  240.     end
  241.     # 获取可以使用的时候
  242.     occasion = $data_items[item_id].occasion
  243.     # 战斗的情况
  244.     if $game_temp.in_battle
  245.       # 可以使用时为 0 (平时) 或者是 1 (战斗时) 可以使用
  246.       return (occasion == 0 or occasion == 1)
  247.     end
  248.     # 可以使用时为 0 (平时) 或者是 2 (菜单时) 可以使用
  249.     return (occasion == 0 or occasion == 2)
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 清除全体的行动
  253.   #--------------------------------------------------------------------------
  254.   def clear_actions
  255.     # 清除全体同伴的行为
  256.     for actor in @actors
  257.       actor.current_action.clear
  258.     end
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● 可以输入命令的判定
  262.   #--------------------------------------------------------------------------
  263.   def inputable?
  264.     # 如果一可以输入命令就返回 true
  265.     for actor in @actors
  266.       if actor.inputable?
  267.         return true
  268.       end
  269.     end
  270.     return false
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● 全灭判定
  274.   #--------------------------------------------------------------------------
  275.   def all_dead?
  276.     # 同伴人数为 0 的情况下
  277.     if $game_party.actors.size == 0
  278.       return false
  279.     end
  280.     # 同伴中无人 HP 在 0 以上
  281.     for actor in @actors
  282.       if actor.hp > 0
  283.         return false
  284.       end
  285.     end
  286.     # 全灭
  287.     return true
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● 检查连续伤害 (地图用)
  291.   #--------------------------------------------------------------------------
  292.   def check_map_slip_damage
  293.     for actor in @actors
  294.       if actor.hp > 0 and actor.slip_damage?
  295.         actor.hp -= [actor.maxhp / 100, 1].max
  296.         if actor.hp == 0
  297.           $game_system.se_play($data_system.actor_collapse_se)
  298.         end
  299.         $game_screen.start_flash(Color.new(255,0,0,128), 4)
  300.         $game_temp.gameover = $game_party.all_dead?
  301.       end
  302.     end
  303.   end
  304.   #--------------------------------------------------------------------------
  305.   # ● 对像角色的随机确定
  306.   #     hp0 : 限制为 HP 0 的角色
  307.   #--------------------------------------------------------------------------
  308.   def random_target_actor(hp0 = false)
  309.     # 初始化轮流
  310.     roulette = []
  311.     # 循环
  312.     for actor in @actors
  313.       # 符合条件的场合
  314.       if (not hp0 and actor.exist?) or (hp0 and actor.hp0?)
  315.         # 获取角色职业的位置 [位置]
  316.         position = $data_classes[actor.class_id].position
  317.         # 前卫的话 n = 4、中卫的话 n = 3、后卫的话 n = 2
  318.         n = 4 - position
  319.         # 添加角色的轮流 n 回
  320.         n.times do
  321.           roulette.push(actor)
  322.         end
  323.       end
  324.     end
  325.     # 轮流大小为 0 的情况
  326.     if roulette.size == 0
  327.       return nil
  328.     end
  329.     # 转轮盘赌,决定角色
  330.     return roulette[rand(roulette.size)]
  331.   end
  332.   #--------------------------------------------------------------------------
  333.   # ● 对像角色的随机确定 (HP 0)
  334.   #--------------------------------------------------------------------------
  335.   def random_target_actor_hp0
  336.     return random_target_actor(true)
  337.   end
  338.   #--------------------------------------------------------------------------
  339.   # ● 对像角色的顺序确定
  340.   #     actor_index : 角色索引
  341.   #--------------------------------------------------------------------------
  342.   def smooth_target_actor(actor_index)
  343.     # 取得对像
  344.     actor = @actors[actor_index]
  345.     # 对像存在的情况下
  346.     if actor != nil and actor.exist?
  347.       return actor
  348.     end
  349.     # 循环
  350.     for actor in @actors
  351.       # 对像存在的情况下
  352.       if actor.exist?
  353.         return actor
  354.       end
  355.     end
  356.   end
  357. end
复制代码
回复 支持 反对

使用道具 举报

38

主题

129

帖子

1151

积分

⑥精研

无既空,空既色

积分
1151
 楼主| 发表于 2010-1-24 16:03:28 | 显示全部楼层
有没方法直接指定四个角色的位置呀!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2010-1-24 16:41:11 | 显示全部楼层
只有这个???
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 10:35 , Processed in 0.039087 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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