📄 l1skilltimer.java
字号:
pc.sendPackets(new S_SkillIconAura(165, 0));
}
} else if (skillId == BERSERKERS) { // バーサーカー
cha.addAc(-10);
cha.addDmgup(-5);
cha.addHitup(-2);
} else if (skillId == SHAPE_CHANGE) { // シェイプ チェンジ
L1PolyMorph.undoPoly(cha);
} else if (skillId == ADVANCE_SPIRIT) { // アドバンスド スピリッツ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addMaxHp(-pc.getAdvenHp());
pc.addMaxMp(-pc.getAdvenMp());
pc.setAdvenHp(0);
pc.setAdvenMp(0);
pc
.sendPackets(new S_HPUpdate(pc.getCurrentHp(), pc
.getMaxHp()));
if (pc.isInParty()) { // パーティー中
pc.getParty().updateMiniHP(pc);
}
pc
.sendPackets(new S_MPUpdate(pc.getCurrentMp(), pc
.getMaxMp()));
}
} else if (skillId == HASTE || skillId == GREATER_HASTE) { // ヘイスト、グレーターヘイスト
cha.setMoveSpeed(0);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillHaste(pc.getId(), 0, 0));
pc.broadcastPacket(new S_SkillHaste(pc.getId(), 0, 0));
}
} else if (skillId == HOLY_WALK || skillId == MOVING_ACCELERATION
|| skillId == WIND_WALK) {
// ホーリー ウォーク、ムービング アクセレーション、ウィンド ウォーク
cha.setBraveSpeed(0);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillBrave(pc.getId(), 0, 0));
pc.broadcastPacket(new S_SkillBrave(pc.getId(), 0, 0));
}
} else if (skillId == ILLUSION_OGRE) { // イリュージョン:オーガ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addDmgup(-4);
pc.addHitup(-4);
}
} else if (skillId == ILLUSION_LICH) { // イリュージョン:リッチ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addSp(-2);
pc.sendPackets(new S_SPMR(pc));
}
} else if (skillId == ILLUSION_DIA_GOLEM) { // イリュージョン:ダイアモンドゴーレム
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addAc(20);
}
} else if (skillId == ILLUSION_AVATAR) { // イリュージョン:アバター
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addDmgup(-10);
}
} else if (skillId == INSIGHT) { // インサイト
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addStr((byte) -1);
pc.addCon((byte) -1);
pc.addDex((byte) -1);
pc.addWis((byte) -1);
pc.addInt((byte) -1);
}
}
// ****** 状態変化が解けた場合
else if (skillId == CURSE_BLIND || skillId == DARKNESS) {
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_CurseBlind(0));
}
} else if (skillId == CURSE_PARALYZE) { // カーズ パラライズ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Poison(pc.getId(), 0));
pc.broadcastPacket(new S_Poison(pc.getId(), 0));
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_PARALYSIS,
false));
}
} else if (skillId == WEAKNESS) { // ウィークネス
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addDmgup(5);
pc.addHitup(1);
}
} else if (skillId == DISEASE) { // ディジーズ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addDmgup(6);
pc.addAc(-12);
}
} else if (skillId == ICE_LANCE || skillId == FREEZING_BLIZZARD) { // アイスランス、フリージングブリザード
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Poison(pc.getId(), 0));
pc.broadcastPacket(new S_Poison(pc.getId(), 0));
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_FREEZE, false));
} else if (cha instanceof L1MonsterInstance
|| cha instanceof L1SummonInstance
|| cha instanceof L1PetInstance) {
L1NpcInstance npc = (L1NpcInstance) cha;
npc.broadcastPacket(new S_Poison(npc.getId(), 0));
npc.setParalyzed(false);
}
} else if (skillId == EARTH_BIND) { // アースバインド
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Poison(pc.getId(), 0));
pc.broadcastPacket(new S_Poison(pc.getId(), 0));
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_FREEZE, false));
} else if (cha instanceof L1MonsterInstance
|| cha instanceof L1SummonInstance
|| cha instanceof L1PetInstance) {
L1NpcInstance npc = (L1NpcInstance) cha;
npc.broadcastPacket(new S_Poison(npc.getId(), 0));
npc.setParalyzed(false);
}
} else if (skillId == SHOCK_STUN) { // ショック スタン
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_STUN, false));
} else if (cha instanceof L1MonsterInstance
|| cha instanceof L1SummonInstance
|| cha instanceof L1PetInstance) {
L1NpcInstance npc = (L1NpcInstance) cha;
npc.setParalyzed(false);
}
} else if (skillId == FOG_OF_SLEEPING) { // フォグ オブ スリーピング
cha.setSleeped(false);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_SLEEP, false));
pc.sendPackets(new S_OwnCharStatus(pc));
}
} else if (skillId == ABSOLUTE_BARRIER) { // アブソルート バリア
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.startHpRegeneration();
pc.startMpRegeneration();
pc.startMpRegenerationByDoll();
}
} else if (skillId == WIND_SHACKLE) { // ウィンド シャックル
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconWindShackle(pc.getId(), 0));
}
} else if (skillId == SLOW || skillId == ENTANGLE
|| skillId == MASS_SLOW) { // スロー、エンタングル、マススロー
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillHaste(pc.getId(), 0, 0));
pc.broadcastPacket(new S_SkillHaste(pc.getId(), 0, 0));
}
cha.setMoveSpeed(0);
} else if (skillId == STATUS_FREEZE) { // Freeze
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_BIND, false));
} else if (cha instanceof L1MonsterInstance
|| cha instanceof L1SummonInstance
|| cha instanceof L1PetInstance) {
L1NpcInstance npc = (L1NpcInstance) cha;
npc.setParalyzed(false);
}
} else if (skillId == STATUS_CUBE_IGNITION_TO_ALLY) { // キューブ[イグニション]:味方
cha.addFire(-30);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_OwnCharAttrDef(pc));
}
} else if (skillId == STATUS_CUBE_QUAKE_TO_ALLY) { // キューブ[クエイク]:味方
cha.addEarth(-30);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_OwnCharAttrDef(pc));
}
} else if (skillId == STATUS_CUBE_SHOCK_TO_ALLY) { // キューブ[ショック]:味方
cha.addWind(-30);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_OwnCharAttrDef(pc));
}
} else if (skillId == STATUS_CUBE_IGNITION_TO_ENEMY) { // キューブ[イグニション]:敵
} else if (skillId == STATUS_CUBE_QUAKE_TO_ENEMY) { // キューブ[クエイク]:敵
} else if (skillId == STATUS_CUBE_SHOCK_TO_ENEMY) { // キューブ[ショック]:敵
} else if (skillId == STATUS_MR_REDUCTION_BY_CUBE_SHOCK) { // キューブ[ショック]によるMR減少
} else if (skillId == 1920){ //TODO 在線一段時間給物品 by 阿傑
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
L1ItemInstance item = ItemTable.getInstance().createItem(Config.GI);
item.setCount(Config.GIC);
if (item != null) {
if (pc.getInventory().checkAddItem(item, 1) == L1Inventory.OK) {
pc.getInventory().storeItem(item);
} else { // 持てない場合は地面に落とす 處理のキャンセルはしない(不正防止)
L1World.getInstance().getInventory(pc.getX(), pc.getY(),
pc.getMapId()).storeItem(item);
}
pc.sendPackets(new S_ServerMessage(403, item.getLogName())); // %0を手に入
}
}
cha.setSkillEffect(1920,Config.GIT*60000);//3分鐘
//end
} else if (skillId == STATUS_CUBE_BALANCE) { // キューブ[バランス]
}
// ****** アイテム関係
else if (skillId == STATUS_BRAVE || skillId == STATUS_ELFBRAVE) { // ブレイブポーション等
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillBrave(pc.getId(), 0, 0));
pc.broadcastPacket(new S_SkillBrave(pc.getId(), 0, 0));
}
cha.setBraveSpeed(0);
} else if (skillId == STATUS_RIBRAVE) { // ユグドラの実
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
// XXX ユグドラの実のアイコンを消す方法が不明
}
cha.setBraveSpeed(0);
} else if (skillId == STATUS_HASTE) { // グリーン ポーション
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillHaste(pc.getId(), 0, 0));
pc.broadcastPacket(new S_SkillHaste(pc.getId(), 0, 0));
}
cha.setMoveSpeed(0);
} else if (skillId == STATUS_BLUE_POTION) { // ブルー ポーション
} else if (skillId == STATUS_UNDERWATER_BREATH) { // エヴァの祝福&マーメイドの鱗
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconBlessOfEva(pc.getId(), 0));
}
} else if (skillId == STATUS_WISDOM_POTION) { // ウィズダム ポーション
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
cha.addSp(-2);
pc.sendPackets(new S_SkillIconWisdomPotion(0));
}
} else if (skillId == STATUS_CHAT_PROHIBITED) { // チャット禁止
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_ServerMessage(288)); // チャットができるようになりました。
}
}
// ****** 毒関係
else if (skillId == STATUS_POISON) { // ダメージ毒
cha.curePoison();
//經驗加倍藥水
} else if (skillId == EXP_UP_A || skillId == EXP_UP_B || skillId == EXP_UP_C) { // 經驗加倍狀態
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SystemMessage("經驗之神的祝福消失了!")); // チャットができるようになりました。
}
//end
}
// ****** 料理関係
else if (skillId == COOKING_1_0_N || skillId == COOKING_1_0_S) { // フローティングアイステーキ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addWind(-10);
pc.addWater(-10);
pc.addFire(-10);
pc.addEarth(-10);
pc.sendPackets(new S_OwnCharAttrDef(pc));
pc.sendPackets(new S_PacketBox(53, 0, 0));
pc.setCookingId(0);
}
} else if (skillId == COOKING_1_1_N || skillId == COOKING_1_1_S) { // ベアーステーキ
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.addMaxHp(-30);
pc.sendPackets(new S_HPUpdate(pc.getCurrentHp(),
pc.getMaxHp()));
if (pc.isInParty()) { // パーティー中
pc.getParty().updateMiniHP(pc);
}
pc.sendPackets(new S_PacketBox(53, 1, 0));
pc.setCookingId(0);
}
} else if (skillId == COOKING_1_2_N || skillId == COOKING_1_2_S) { // ナッツ餅
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_PacketBox(53, 2, 0));
pc.setCookingId(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -