查看: 830|回復: 18

[分享] 队伍、宠物自动补血功能终极版

[複製鏈接]

15

主題

151

帖子

3760

金錢

暗殺軍王.史雷佛

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
45
積分
3911
在線時間
34 小時
相冊
0
日誌
0
好友
3
QQ
發表於 2024-5-2 01:42 | 顯示全部樓層 |閱讀模式

闲着无聊,我又来了。

某些自以为是的小白就不用看了,省得又看不懂还怪别人发的东西没有手把手,自己又自私到不愿po上代码来让人分析一下问题所在。
能用你就用,自己无法完成就po代码上来分析,只会逼逼叫的就滚远一点,我是个对智障没啥顾虑的人,别上来找骂!


本次带来的是养宠or队伍专用补血功能,可以根据自己的需求变更其中参数,或拓展到血盟补血、阵营补血等等。

方法如下:

  1. L1Character中新增
複製代碼



  1.     /**
  2.      * 血量低于80%启动(调用时外部设定)<br>
  3.      * 依据执行者所学治愈技能优先度<br>
  4.      *
  5.      * @param user 治疗术执行者
  6.      * @param perHp 施术目标当前血量 %
  7.      * @author <font color="00ffff">圣子默默</font>
  8.      * @date <font color="00ffff">2024/05/01 01:32</font>
  9.      * @Description 描述: 自动施加治疗术5.0版本<br>
  10.      * @return true = 治疗术施展成功<br> false = 施术失败或施术条件不足
  11.      */
  12.     public boolean onTakeCareHealSkill(final L1PcInstance user, final int perHp) {
  13.         if (getCurrentHp() >= getMaxHp()) {
  14.             return false;
  15.         }

  16.         final boolean isPlayer = this instanceof L1PcInstance; // 队伍补血 无需再次判断队伍

  17.         // 生祝 仅目标为玩家时生效
  18.         boolean IS_NATURES_BLESSING = user.isSkillMastery(NATURES_BLESSING) && user.getCurrentMp() >= 30;
  19.         // 全治
  20.         boolean IS_FULL_HEAL = user.isSkillMastery(FULL_HEAL) && user.getCurrentMp() >= 48;
  21.         // 高治
  22.         boolean IS_GREATER_HEAL = user.isSkillMastery(GREATER_HEAL) && user.getCurrentMp() >= 20;
  23.         // 中治
  24.         boolean IS_EXTRA_HEAL = user.isSkillMastery(EXTRA_HEAL) && user.getCurrentMp() >= 12;
  25.         // 初治
  26.         boolean IS_HEAL = user.isSkillMastery(HEAL) && user.getCurrentMp() >= 4;

  27.         if (perHp < 40) {
  28.             if (isPlayer && IS_NATURES_BLESSING) { // 仅目标为玩家时生效
  29.                 useSkill(user, this, NATURES_BLESSING, 30);
  30.                 return true;
  31.             }
  32.             if (IS_FULL_HEAL) {
  33.                 useSkill(user, this, FULL_HEAL, 48);
  34.                 return true;
  35.             }
  36.             if (IS_GREATER_HEAL) {
  37.                 useSkill(user, this, GREATER_HEAL, 20);
  38.                 return true;
  39.             }
  40.             if (IS_EXTRA_HEAL) {
  41.                 useSkill(user, this, EXTRA_HEAL, 12);
  42.                 return true;
  43.             }
  44.             if (IS_HEAL) {
  45.                 useSkill(user, this, HEAL, 4);
  46.                 return true;
  47.             }
  48.         }

  49.         if (perHp < 55) {
  50.             if (IS_GREATER_HEAL) {
  51.                 useSkill(user, this, GREATER_HEAL, 20);
  52.                 return true;
  53.             }
  54.             if (IS_EXTRA_HEAL) {
  55.                 useSkill(user, this, EXTRA_HEAL, 12);
  56.                 return true;
  57.             }
  58.             if (IS_HEAL) {
  59.                 useSkill(user, this, HEAL, 4);
  60.                 return true;
  61.             }
  62.         }

  63.         if (perHp < 65) {
  64.             if (IS_EXTRA_HEAL) {
  65.                 useSkill(user, this, EXTRA_HEAL, 12);
  66.                 return true;
  67.             }
  68.             if (IS_HEAL) {
  69.                 useSkill(user, this, HEAL, 4);
  70.                 return true;
  71.             }
  72.         }

  73.         if (perHp < 80) {
  74.             useSkill(user, this, HEAL, 4);
  75.             return true;
  76.         }

  77.         return false;
  78.     }
複製代碼


以上不使用 else if 的原因比较复杂,不信邪的朋友可以尝试一下使用 else if 来作判断……
写代码嘛,当然各种各样的方式都要来一遍,才能累积到一定经验。



  1.     /**
  2.      * 自动治愈术使用<br>
  3.      * 使用魔法卷轴施法方式<br>
  4.      * 不检测施法要求(mp、施法材料)<br>
  5.      * 有施法动作 有技能特效 会产生冷却
  6.      *
  7.      * @param pc      执行对象
  8.      * @param target  施术目标
  9.      * @param skillId 技能编号
  10.      * @param mp      MP消耗
  11.      */
  12.     private void useSkill(L1PcInstance pc, L1Character target, int skillId, int mp) {
  13.         final L1SkillUse skill = new L1SkillUse();
  14.         skill.handleCommands(pc, skillId, target.getId(), target.getX(), target.getY(), 0, L1SkillUse.TYPE_SPELLSC);
  15.         pc.setCurrentMp(pc.getCurrentMp() - mp);
  16.     }
複製代碼


调用方法如下:



  1.                         final int perHp = cha.getCurrentHp() * 100 / cha.getMaxHp(); // 当前血量 %

  2.                         if (perHp >= 80) { // 当前血量高于80%不作任何动作
  3.                             retrun; // 循环中使用用 continue;
  4.                         }

  5.                         if (cha.onTakeCareHealSkill(_pc, perHp)) {
  6.                             doSth(); // 建议是添加延迟使用方法
  7.                         }
複製代碼




上一篇︰jack19880317發的381大叔
下一篇︰搖搖搖搖
http://starway.freebbs.tw/index.php

21

主題

381

帖子

1403

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1794
在線時間
85 小時
相冊
0
日誌
0
好友
0

最佳新人

發表於 2024-5-2 08:29 | 顯示全部樓層
學習了 謝分享

回復 支持 反對

使用道具 舉報

5

主題

143

帖子

1340

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1483
在線時間
59 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-2 11:40 | 顯示全部樓層

回復

使用道具 舉報

1

主題

341

帖子

4776

金錢

鑽石VIP

Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
90
積分
5117
在線時間
158 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-2 11:44 | 顯示全部樓層
學習了 謝謝大大分享

回復 支持 反對

使用道具 舉報

13

主題

406

帖子

1萬

金錢

巨蟻女皇

Rank: 9Rank: 9Rank: 9

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
55
積分
10389
在線時間
109 小時
相冊
0
日誌
0
好友
1
發表於 2024-5-2 11:59 | 顯示全部樓層
ˊˊˊˊˊˊˊˊ666666666666666

回復 支持 反對

使用道具 舉報

289

主題

813

帖子

5萬

金錢

法利昂

Rank: 12Rank: 12Rank: 12

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
70
積分
54055
在線時間
239 小時
相冊
0
日誌
0
好友
2
發表於 2024-5-2 13:25 | 顯示全部樓層
謝謝樓主無私分享教學~

回復 支持 反對

使用道具 舉報

2

主題

48

帖子

7

金錢

史萊姆

Rank: 2

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
20
積分
55
在線時間
15 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-2 13:34 | 顯示全部樓層
謝謝樓主無私分享教學~

回復 支持 反對

使用道具 舉報

2

主題

195

帖子

1555

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1750
在線時間
20 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-3 01:48 | 顯示全部樓層
謝謝樓主無私分享

回復 支持 反對

使用道具 舉報

0

主題

229

帖子

6107

金錢

火焰之影

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
50
積分
6336
在線時間
88 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-3 02:19 | 顯示全部樓層
謝謝大佬分享

回復 支持 反對

使用道具 舉報

12

主題

437

帖子

9000

金錢

巨蟻女皇

Rank: 9Rank: 9Rank: 9

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
55
積分
9437
在線時間
127 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-3 04:36 | 顯示全部樓層
thanks for your share

回復 支持 反對

使用道具 舉報

24

主題

270

帖子

6885

金錢

巨蟻女皇

Rank: 9Rank: 9Rank: 9

威望
6
精華
0
貢獻
0
鑽石
0
閱讀權限
55
積分
7167
在線時間
118 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-6 14:31 | 顯示全部樓層
6666666

回復

使用道具 舉報

13

主題

889

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
6
精華
0
貢獻
5
鑽石
0
閱讀權限
60
積分
22615
在線時間
1138 小時
相冊
0
日誌
0
好友
9

鑽石VIP

發表於 2024-5-6 14:56 | 顯示全部樓層
給你支持~~

回復

使用道具 舉報

1

主題

341

帖子

4776

金錢

鑽石VIP

Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127Rank: 127

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
90
積分
5117
在線時間
158 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-6 19:31 | 顯示全部樓層
謝謝樓主無私分享

回復 支持 反對

使用道具 舉報

30

主題

815

帖子

4701

金錢

火焰之影

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
50
積分
5516
在線時間
171 小時
相冊
0
日誌
0
好友
1
發表於 2024-5-6 20:12 | 顯示全部樓層
學習了 謝謝大大分享

回復 支持 反對

使用道具 舉報

1

主題

285

帖子

813

金錢

妖魔

Rank: 4

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
35
積分
921
在線時間
55 小時
相冊
0
日誌
0
好友
1
發表於 2024-5-6 23:32 | 顯示全部樓層
3qqqqqqqqqqqqqqqq

回復 支持 反對

使用道具 舉報

2

主題

195

帖子

1555

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1750
在線時間
20 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-11 00:33 | 顯示全部樓層
感謝分享!!!

回復

使用道具 舉報

30

主題

308

帖子

1512

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1820
在線時間
107 小時
相冊
1
日誌
0
好友
5
發表於 2024-5-14 21:37 | 顯示全部樓層
前輩你好,小弟新手,請問新增在核心L1Character中,上面三個都新增進去就可以了嗎? 找空白接續新增嗎?

回復 支持 反對

使用道具 舉報

15

主題

151

帖子

3760

金錢

暗殺軍王.史雷佛

Rank: 8Rank: 8

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
45
積分
3911
在線時間
34 小時
相冊
0
日誌
0
好友
3
QQ
 樓主| 發表於 2024-5-15 20:07 | 顯示全部樓層
新手上路 發表於 2024-5-14 21:37
前輩你好,小弟新手,請問新增在核心L1Character中,上面三個都新增進去就可以了嗎? 找空白接續新增嗎? ...

前两个是调用的方法


第三个是你要如何去使用,在你需要使用的位置去调用。

http://starway.freebbs.tw/index.php
回復 支持 反對

使用道具 舉報

0

主題

2263

帖子

12萬

金錢

巴拉卡斯

Rank: 13Rank: 13Rank: 13Rank: 13

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
75
積分
131492
在線時間
501 小時
相冊
0
日誌
0
好友
0
發表於 2024-5-15 20:50 | 顯示全部樓層
感謝分享

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊會員

本版積分規則

天堂私服列表

45客服

Archiver| 45天堂私服論壇   分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!

45天堂私服發佈站 ©    天堂私服架設教學  提供最新天堂私服最新資訊

流量最高、品質最好、服務最優、玩家首選、最新天堂私服資訊,都在45天堂私服發佈站.    免責聲明

Sitetag
line客服聯繫
掃一掃二碼
Line客服聯繫
24H專人回覆
返回頂部 返回列表