|

 | |  |  | 本帖最後由 Lin-JN 於 2024-4-6 04:33 編輯
偶然想起当初玩魔兽世界,9.0版本的法师套装,有个特效是从天上召唤一大堆冰霜流星连续疯狂砸向敌人,便想着也写一个类似的东西,但写完总感觉不那么完美,只砸一个位置怎么行呢?
于是就有了这版的内容。
如果你喜欢同一个位置砸的话,只定一个坐标就可以了,特效设定成762流星或者究极之类看起来比较酷的,从天而降的特效视觉效果最佳。
首先,定义触发该特效条件。
比如触发一个武器特效,或者单独设定一个魔法技能,又或者是一个套装特效,你喜欢怎么定都可以。
- if (xxxx) { // 定义触发的条件
- // 一定要用线程池调用 否则后果很严重!
- SkillEffect effect = new SkillEffect(pc, target);
- ThreadPool.get().execute(effect); // 通过线程池调用 Runnalbe
- }
複製代碼
- // 魔法特效连击 by 圣子默默
- private class SkillEffect implements Runnable {
- private final L1PcInstance _pc;
- private final L1Character _target;
- private final int _gixid;
- private final int _count;
- private SkillEffect(L1PcInstance pc, L1Character target, int gfxid, int count) {
- _pc = pc;
- _target = target;
- _gfxid = gfxid;
- _count = count;
- }
- public void run() {
- try {
- final int x = _target.getX();
- final int y = _target.getY();
- final short mapId = _target.getMapId();
- // 因为天堂的坐标显示位置,十字方向和X方向视觉差异1格磁贴,所以上下左右的数值最好比X向范围-1
- int[] locX = {x, x - 3, x, x + 3, x + 2, x - 2, x - 2, x + 2};
- int[] locY = {y + 3, y, y - 3, y, y + 2, y + 2, y - 2, y - 2};
- int dir = Math.min(8, _count); // 最多8个 如果更多 要么增加坐标点 要么增加变量来控制循环
- for (int i = 0; i < dir; i++) { // 0-7 一共8个点
- L1Location location = new L1Location(locX[i], locY[i], mapId);
- S_EffectLocation effect = new S_EffectLocation(location, _gfxid);
- _pc.sendPacketsWeaponSkillYN(effect);
- samePointDamage(_pc, _target, location); // 对该坐标位置或x格范围内的目标造成的伤害计算 这个请自己写,很容易的,所有版本的武器魔法中都有对应源码
- TimeUnit.MILLISECONDS.sleep(300); // 每砸一次间隔时间 sleep(X) 就是必须用线程池调用的原因 否则在扔完特效之前你的角色会无法做其他动作
- }
- } catch (Exception e) {
- _log.error(e.getLocalizedMessage(), e);
- }
- }
- }
複製代碼
以上,你可以通过想像力,让特效砸向任何一个地方,又或者将砸的次数、位置设定为随机增加趣味性,又或者获取角色特定范围内所有目标的坐标点疯砸,一次扔10个流星和分10次砸10颗流星的感觉完全不同!
以上这段代码,如果你不知道是什么样的,就把 _gfxid = 762,然后它的效果就跟旧火龙扔流星一样,区别在于火龙扔的是5颗,这里是8颗,你也可以找到巴拉卡斯5流星的坐标差值,for 循环中设定5个坐标,就跟巴拉卡斯的5流星一模一样了。
如果将坐标定为一个点,所有特效全部砸在同一位置,那么就跟上面说到的,魔兽世界9.0法师套装特效一样了,但是同坐标的话,for循环的语法要稍稍小改一下,坐标直接定为 _target.getLocation()。
注意,请尽量不要使用S_SkillSound封包,不好,不好,真的不好!
转载、svn团队请注明作者,感谢!
另外,诅咒所有拿别人分享的东西出去卖钱的渣渣们生孩子没屁眼,出门被车撞死。
| |  | |  |
|
上一篇︰ 天堂1工具大全下一篇︰ 請問有大大可以分享3.81的右下角介面嗎?
|