找回密码
 初始化身份识别芯片
查看: 780|回复: 2

自己做了一个技能但是啥效果没有

[复制链接]

巡洋大副

发表于 2024-3-24 11:22:54 | 显示全部楼层 |阅读模式
本帖最后由 luoxb 于 2024-3-24 11:24 编辑

第一次写系统

想要做一个从船体生成电弧的技能,可是没有任何效果

system文件:
  1. {
  2.      "id":"antiGField",
  3.      "type":"STAT_MOD",
  4.      "aiType":"PHASE_DISPLACER",
  5.         
  6.      "statsScript":"data.shipsystems.scripts.antiGField",
  7.         
  8.      "useSound":"system_phase_skimmer",
  9.      "outOfUsesSound":"gun_out_of_ammo",
  10.         
  11.      "aiHints":{
  12.         
  13.      }
  14. }
复制代码

脚本:

  1. package data.shipsystems.scripts;

  2. //import java.util.List;

  3. import org.lwjgl.util.vector.Vector2f;
  4. import com.fs.starfarer.api.combat.EmpArcEntityAPI;
  5. //import com.fs.starfarer.api.combat.MissileAPI;
  6. import com.fs.starfarer.api.combat.CombatEngineAPI;
  7. import com.fs.starfarer.api.Global;
  8. import com.fs.starfarer.api.combat.DamageType;
  9. import com.fs.starfarer.api.combat.MutableShipStatsAPI;
  10. import com.fs.starfarer.api.combat.ShipAPI;
  11. import com.fs.starfarer.api.impl.combat.BaseShipSystemScript;
  12. //import com.fs.starfarer.api.plugins.ShipSystemStatsScript.State;

  13. public class antiGField extends BaseShipSystemScript{
  14.      public void apply(MutableShipStatsAPI stats, String id,float effectLevel) {
  15.          //get ship
  16.           ShipAPI source = null;
  17.           if (stats.getEntity() instanceof ShipAPI) {
  18.               source = (ShipAPI)stats.getEntity();}
  19.           else {return;}
  20.                
  21.           float DAMAGE = 20000;
  22.           float EMP = 600;
  23.           float RANGE = 6000;
  24.           float THICKNESS = 5;
  25.                
  26.           CombatEngineAPI engine= Global.getCombatEngine();
  27.                
  28.           Vector2f pos = source.getLocation();
  29.                
  30.           ShipAPI target = engine.getShips().get(0);
  31.                
  32.           EmpArcEntityAPI arc = engine.spawnEmpArc(source, pos, source, target, DamageType.ENERGY,
  33.           DAMAGE*effectLevel, EMP*effectLevel, RANGE*effectLevel, null, THICKNESS*effectLevel, null, null);
  34.                                
  35.      }
  36. }
复制代码



总之到了测试战役里面唯一的效果就是播放了音效




星域军阀

高级机师

发表于 2024-3-24 18:46:32 | 显示全部楼层
engine.getShips().get(0)..
场上只有一艘船的时候,你的source和target是同一个东西

点评

感谢cjy大佬  详情 回复 发表于 2024-3-29 08:08

巡洋大副

 楼主| 发表于 2024-3-29 08:08:17 | 显示全部楼层
cjy4312 发表于 2024-3-24 18:46
engine.getShips().get(0)..
场上只有一艘船的时候,你的source和target是同一个东西

感谢cjy大佬

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-11-21 20:16

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

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