查看: 2354|回复: 12

[已经过期] 有没有战斗时分前后站位的脚本?

[复制链接]
梦石
0
星屑
50
在线时间
633 小时
注册时间
2012-11-13
回帖
129
发表于 2016-10-10 20:52:26 | 显示全部楼层 |阅读模式

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

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

×
理想的是不同站位有不同优劣势、并限制一些动作的系统,另外得兼容全动画战斗,不知道有没有类似的?大概有也不会十全十美吧,如果有愿意写的我可以付现金。
梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2016-10-11 18:33:33 | 显示全部楼层
本帖最后由 jiushiainilip19 于 2016-10-11 18:34 编辑

写我不会 但是做一些提示可以
战斗画面是有坐标的
[pre lang="ruby"]
screen_y screen_x screen_z
[/pre]
这三种
在游戏中每一个角色都有一个固定的待机坐标,这些坐标在全动画战斗脚本中是这样写的
[pre lang="ruby"]
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 X 坐标
  #--------------------------------------------------------------------------
  def screen_x
    # 返回计算后的队伍 X 坐标的排列顺序
    if self.index != nil
      #......................................................................
      return self.index * 90 + 500
      #......................................................................
      else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Y 坐标
  #--------------------------------------------------------------------------
  def screen_y
    #........................................................................
    return 464 - self.index * 110 ;  
    #........................................................................
  end
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Z 坐标
  #--------------------------------------------------------------------------
  def screen_z
    # 返回计算后的队伍 Z 坐标的排列顺序
    if self.index != nil
      return 4 - self.index
    else
      return 0
    end
  end
end
[/pre]

看不懂没关系,但是可以从另一个方式去看他,我们把视线转移到Game_Battler 3中!

然后在Game_Battler 3中P出来 例如:
[pre lang="ruby"]   
if hit_result == true
      # 计算威力
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
        power -= self.pdef * skill.pdef_f / 200
        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0].max
      end
      p user.screen_y  #P 出行动这角色的原点Y坐标  可以看下图!

      if user.is_a?(Game_Actor)  && user.screen_y==354
        power*=100000
      p "站位好就是牛"
      end
  #我方角色在Y==354的时候威力增益100000 请看实际图片如下

[/pre]
结果出来了,这个在行动中的角色Y值在464

好了,那我们就有办法治理他了   请看上面的代码

好了 ,我会的只有这些了,高深的没辙了,当然想写出什么效果你可以说出来
我试一试能够告诉你怎么达到(前提是我要会 - -!)
QQ截图20161011182814.png
QQ截图20161011183126.png
QQ截图20161011183134.png
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
50
在线时间
633 小时
注册时间
2012-11-13
回帖
129
 楼主| 发表于 2016-10-13 16:20:38 | 显示全部楼层
jiushiainilip19 发表于 2016-10-11 18:33
写我不会 但是做一些提示可以
战斗画面是有坐标的

谢谢回答,没弹消息我没发现有响应了。。不知道你玩过跨过我的尸体没有?我希望的效果差不多就类似。一个是希望能在战斗中移动站位(仅前后移动),可以灵活的应对不同的情况,增加战斗的策略性,另一个是希望拉大不同武器的多样性,例如长武器可能会伤害前排所有人,射击武器前后贯穿,单手武器在后排无法攻击之类的效能差距。我想的模式看起来基本是这样: ; QQ截图20161013161813.png

点评

没弹出是因为我上面描述的是技能中 你 可能是攻击那里去P了  发表于 2016-10-14 08:28
回复

使用道具 举报

梦石
0
星屑
50
在线时间
14 小时
注册时间
2016-9-29
回帖
15
发表于 2016-10-13 17:20:01 | 显示全部楼层
等高手指导,我也想知道,楼主的设想怎么去实现。
回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2016-10-14 08:27:40 | 显示全部楼层
备用镧桐翎 发表于 2016-10-13 16:20
谢谢回答,没弹消息我没发现有响应了。。不知道你玩过跨过我的尸体没有?我希望的效果差不多就类似。一个 ...

单手武器装备无法攻击的效果直接可以用一个if来直接判断就好了
[pre lang="ruby"]      
if @active_battler.is_a?(Game_Actor) && @active_battler.weapon_id == xx
         p "我不  准你这么做 "
       else
         
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 设置行动
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        # 开始选择敌人
        start_enemy_select
end
[/pre]

长武器会有几率伤害其前排这个效果 我游戏也用过 我自己的思路是 先 要把 敌人的站位定好然后取出敌人站位坐标

然后在例如敌人是五人   1      2     3
                                          4      5
角色 A佩戴S武器对敌人进行技能攻击. 假如 P出4 5敌人的坐标是  248 384
[pre lang="ruby"]  
if user.is_a?(Game_Actor) && user.weapon_id == 1 #需要几率就添加rand(100)<多少自己设置了
   for enemy in $game_troop.enemies
     if enemy.exist? && enemy!=self
    case enemy.screen_x
     when 248
       enemy.hp-=self.damage and enemy.damage=-self.damage and  enemy.damage_pop = true
    when 384
       enemy.hp-=self.damage and enemy.damage=-self.damage and  enemy.damage_pop = true
     end
   end
end
end
#这是我的一个方法,好的做法是对技能行动结果去搞,我也不怎么会。我也不需要 因为我要做许多特效! 贯穿也是 一个道理
[/pre]

点评

不知道找谁啊,其实这贴原本就是想找人的,没想起来有接单区了。过段时间我发去那边好了。还是谢谢了。  发表于 2016-11-10 00:43
你直接@人,然后谈价钱,肯定会有人帮你写的  发表于 2016-11-8 21:39
不好意思,我写不出来,- - !你可以找找版本或者去接单区发帖,或者直接@会的人帮你写呢  发表于 2016-11-8 21:38
朋友愿意写嘛,主贴说了可以出钱,如果需要美术素材以工换工也行。  发表于 2016-11-8 20:52
- - !收到 咋啦?  发表于 2016-11-8 13:38
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
50
在线时间
633 小时
注册时间
2012-11-13
回帖
129
 楼主| 发表于 2016-10-28 19:53:34 | 显示全部楼层
jiushiainilip19 发表于 2016-10-14 08:27
单手武器装备无法攻击的效果直接可以用一个if来直接判断就好了
      
if @active_battler.is_a?(Game_A ...

感谢,抱歉没有及时回复,断断续续的看了几遍你的脚本,想多少明白一些再回复,但是结果还是只能看懂一点,实际操作估计完全不行=A=。如果可能还是希望能直接有一个完整的脚本。
ps:而且我的设计也比较怪,其实我的想法是围绕boss战设计战斗的,所以敌人有无站位其实不太重要,主要是不同特点的boss让玩家被迫改变战术,所以其实被贯穿、横扫的主要是玩家队伍。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部