傷害顯示類別問題請教
小弟最近自己開單機版想弄傷害顯示,請問有一種類別顯示如下:EX:(23)455 ~數字我隨便打的
想請問有大神願意分享嗎?感激不盡
你說的應該是登入器的功能 yasioukon 發表於 2024-4-27 23:09
你說的應該是登入器的功能
感謝回復
改核心,网上很多地方有教程。结束。
/**
* 输入伤害显示数值<br>
* 动画显示或纯数字<br>
* 开关未在此设定
*
* @param attack 显示(发起攻击的)对象
* @param damage 伤害值
*/
public void sendDamageEffect(final L1PcInstance attack, final int damage) {
int a;
int b;
int c;
int d;
int e;
if (attack.isVip()) { // 暂时这样
a = 17800;
b = 17810;
c = 17820;
d = 17830;
e = 17840;
} else {
a = 17860;
b = 17870;
c = 17880;
d = 17830;
e = 17890;
}
int i = (int) ((damage / Math.pow(10, 0)) % 10) + a;//个位0-9
int k = (int) ((damage / Math.pow(10, 1)) % 10) + b;//十位0-9
int h = (int) ((damage / Math.pow(10, 2)) % 10) + c;//百位0-9
int s = (int) ((damage / Math.pow(10, 3)) % 10) + d;//千位0-9
int m = (int) ((damage / Math.pow(10, 4)) % 10) + e;//万位0-9
String color = " \\f3(\\f2"; // 数字移到一边去
switch (Config.OTHER_ATKMSG_MOD) { // 显示模式
case 1: // 使用动画效果
final List<Integer> effectList = new ArrayList<>();
if (damage <= 0) {
attack.sendPackets(new S_EffectLocation(getLocation(), 13418));//Miss特效 17910
} else if (damage < 10) {
effectList.add(i);
} else if (damage < 100) {
effectList.add(i);
effectList.add(k);
} else if (damage < 1000) {
effectList.add(i);
effectList.add(k);
effectList.add(h);
} else if (damage < 10000) {
effectList.add(i);
effectList.add(k);
effectList.add(h);
effectList.add(s);
} else if (damage < 100000) {
effectList.add(i);
effectList.add(k);
effectList.add(h);
effectList.add(s);
effectList.add(m);
} else { // 超出10万 不使用特效
attack.sendPackets(new S_ColorMessage(color + damage + "\\f3)"));
}
if (!effectList.isEmpty()) {
try {
for (Integer gfx : effectList) {
attack.sendPackets(new S_EffectLocation(getLocation(), gfx));
}
} finally {
effectList.clear();
}
}
break;
case 2: // 使用纯数字显示
attack.sendPackets(new S_ColorMessage(color + damage + "\\f3)"));
break;
}
}
spr编号改成你的动画对应编号
然后在怪物受伤那里写上 mob.sendDamageEffect(attackPc, damage); 就可以了 其實我覺得你可以自己寫,我可以說個理論架構,如果本身client版本沒有支援。你可以做成特效檔測試會出現後再來你就必須寫出計算方式可以比對出現特效檔的數值跟座標~這個工程其實算有一定的程度。我自玩都很懶得用~ 17986649 發表於 2024-5-2 09:35
其實我覺得你可以自己寫,我可以說個理論架構,如果本身client版本沒有支援。你可以做成特效檔測試會出現後 ...
感謝回復 :)
Lin-JN 發表於 2024-5-2 03:44
spr编号改成你的动画对应编号
然后在怪物受伤那里写上 mob.sendDamageEffect(attackPc, damage); 就可以 ...
謝謝回覆,我去試試看
感謝分享 感謝分享 謝謝分享謝謝分享 謝分享謝謝分享 Lin-JN 發表於 2024-5-2 03:44
spr编号改成你的动画对应编号
然后在怪物受伤那里写上 mob.sendDamageEffect(attackPc, damage); 就可以 ...
感謝大大分享教學~又學了一個新玩意兒
感謝分享 感謝分享 傷害顯示很有趣,自己摸索出來有成就感 66666666666666666666666666666 我要賺金幣 金幣
我寫想要分享, 找看看 感謝無私分享,很棒棒
頁:
[1]