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

[基础教材] 迴旋攻击技能AI时不会打后排的问题修正

[复制链接]

1万

主题

491

回帖

3万

积分

管理员

积分
35668
石币
24817
发表于 2021-10-14 12:20:34 | 显示全部楼层 |阅读模式
状况:迴旋攻击(PETSKILL_Gyrate)使用AI挂网时,当前排被高敏人(宠)击杀后,会变成发呆
主因:在“int BATTLE_Battling”函式中,没有对于后排攻击的判定
修正:
battle.c中搜寻“case BATTLE_COM_S_GYRATE:”(约9150行左右)
先宣告j=0;

  1. if( COM == BATTLE_COM_S_GYRATE )判定内

  2.      // 取出战场上存活的人

  3.         for( i=f_num; i<f_num+5; i++ ){                        

  4.           if(BATTLE_TargetCheck(battleindex, i) != FALSE){

  5.                 temp[j++] = i;

  6.           }

  7.         }
复制代码

后方加入以下源码
  1. #ifdef _GYRATE_AI_FIX        //LUN FIX 排技宠AI不会打后排的问题修正

  2.   if(j==0)



  3.         {

  4.         if (f_num == 10){

  5.         

  6. // 第二次取出前排战场上存活的人

  7.              for( i=f_num+5; i<f_num+10; i++ ){                        

  8.                      if(BATTLE_TargetCheck(battleindex, i) != FALSE){

  9.                              temp[j++] = i;

  10.                         }

  11.                 }

  12.         }else{

  13.         // 第二次取出后排战场上存活的人

  14.                 for( i=f_num-5; i<f_num; i++ ){                        

  15.                         if(BATTLE_TargetCheck(battleindex, i) != FALSE){

  16.                                 temp[j++] = i;

  17.                         }

  18.                 }

  19.         }

  20. }

  21. #endif
复制代码


说明:
此技能在AI期间,预设都是第一排的第一个对象,但第一排所有对像被高敏人(宠)击杀后,反而没有办法自己去打后排
因为AI已经没有对象可以选择,所以从server端这裡给予寻找后排的程式,使迴旋攻击在没有前排可以选择的情况下
不会变成发呆,而是往后排攻击

感谢台湾石器的玩家协助测试出这个结果,让我能够针对华义时期就存在的问题去做修正。
分享给爱石器的每一个人

回复

使用道具 举报

1万

主题

491

回帖

3万

积分

管理员

积分
35668
石币
24817
 楼主| 发表于 2021-10-14 12:21:50 | 显示全部楼层
本文作者:小鐵
回复

使用道具 举报

5

主题

439

回帖

812

积分

高级会员

积分
812
石币
368
发表于 2021-10-21 13:14:30 | 显示全部楼层
厲害,以前從來沒發現過
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|石器时代LA官方

GMT+8, 2024-11-1 09:25 , Processed in 0.148176 second(s), 22 queries .

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