****O**P**Q**L**O****【【步驟1】】****分**享**於**月**光**論**壇****
//clientpackets/C_itemUSe.java
將畫面用滾輪捲動到最上面
搜尋
} else if (itemId == L1ItemId.SCROLL_OF_ENCHANT_ARMOR
|| itemId == L1ItemId.SCROLL_OF_ENCHANT_WEAPON
|| itemId == L1ItemId.SCROLL_OF_ENCHANT_QUEST_WEAPON
插入下列程式碼至 【 || itemId == L1ItemId.SCROLL_OF_ENCHANT_QUEST_WEAPON 】下方
|| itemId == 99941 //附魔強化卷軸
|| itemId == 99937 //近戰附魔
|| itemId == 99938 //遠攻附魔
|| itemId == 99939 //恢復附魔
|| itemId == 99940 //防禦附魔
****O**P**Q**L**O****【【步驟2】】****分**享**於**月**光**論**壇****
搜尋 else if (itemId == L1ItemId.POTION_OF_HEAG
在上方加入:
//*附魔石道具使用相關
}else if (itemId >= 99901 && itemId <= 99936) { // 附魔石by opqlo 於
int time = 60 * 10 *1000; //600秒
int i = l1iteminstance.getItemId() - 67900; //技能狀態
int e = l1iteminstance.getItemId() - 90962; //特效
if ( pc.hasSkillEffect(32001)||pc.hasSkillEffect(32013)||pc.hasSkillEffect(32025)
||pc.hasSkillEffect(32002)||pc.hasSkillEffect(32014)||pc.hasSkillEffect(32026)
||pc.hasSkillEffect(32003)||pc.hasSkillEffect(32015)||pc.hasSkillEffect(32027)
||pc.hasSkillEffect(32004)||pc.hasSkillEffect(32016)||pc.hasSkillEffect(32028)
||pc.hasSkillEffect(32005)||pc.hasSkillEffect(32017)||pc.hasSkillEffect(32029)
||pc.hasSkillEffect(32006)||pc.hasSkillEffect(32018)||pc.hasSkillEffect(32030)
||pc.hasSkillEffect(32007)||pc.hasSkillEffect(32019)||pc.hasSkillEffect(32031)
||pc.hasSkillEffect(32008)||pc.hasSkillEffect(32020)||pc.hasSkillEffect(32032)
||pc.hasSkillEffect(32009)||pc.hasSkillEffect(32021)||pc.hasSkillEffect(32033)
||pc.hasSkillEffect(32010)||pc.hasSkillEffect(32022)||pc.hasSkillEffect(32034)
||pc.hasSkillEffect(32011)||pc.hasSkillEffect(32023)||pc.hasSkillEffect(32035)
||pc.hasSkillEffect(32012)||pc.hasSkillEffect(32024)||pc.hasSkillEffect(32036)
){
pc.sendPackets(new S_SystemMessage("魔法冷卻中。"));
return;
}
if (itemId == 99901) { //1階近戰
pc.addMaxHp(10);
} if (itemId == 99902) { //2階近戰
pc.addMaxHp(20);
} if (itemId == 99903) { //3階近戰
pc.addMaxHp(30);
} if (itemId == 99904) { //4階近戰
pc.addMaxHp(40);
} if (itemId == 99905) { //5階近戰
pc.addMaxHp(50);
pc.addHpr(1);
} if (itemId == 99906) { //6階近戰
pc.addMaxHp(60);
pc.addHpr(2);
} if (itemId == 99907) { //7階近戰
pc.addMaxHp(70);
pc.addHpr(3);
} if (itemId == 99908) { //8階近戰
pc.addMaxHp(80);
pc.addHpr(4);
pc.addHitup(1);
} if (itemId == 99909) { //9階近戰
pc.addMaxHp(100);
pc.addHpr(5);
pc.addHitup(2);
pc.addDmgup(2);
pc.addStr((byte) 1);
} if (itemId == 99910) { //1階遠攻
pc.addMaxHp(5);
pc.addMaxMp(3);
} if (itemId == 99911) { //2階遠攻
pc.addMaxHp(10);
pc.addMaxMp(6);
} if (itemId == 99912) { //3階遠攻
pc.addMaxHp(15);
pc.addMaxMp(10);
} if (itemId == 99913) { //4階遠攻
pc.addMaxHp(20);
pc.addMaxMp(15);
} if (itemId == 99914) { //5階遠攻
pc.addMaxHp(25);
pc.addMaxMp(20);
} if (itemId == 99915) { //6階遠攻
pc.addMaxHp(30);
pc.addMaxMp(20);
pc.addHpr(1);
} if (itemId == 99916) { //7階遠攻
pc.addMaxHp(35);
pc.addMaxMp(20);
pc.addHpr(1);
pc.addMpr(1);
} if (itemId == 99917) { //8階遠攻
pc.addMaxHp(40);
pc.addMaxMp(25);
pc.addHpr(2);
pc.addMpr(1);
} if (itemId == 99918) { //9階遠攻
pc.addMaxHp(50);
pc.addMaxMp(30);
pc.addHpr(2);
pc.addMpr(2);
pc.adowHitup(2);
pc.adowDmgup(2);
pc.addDex((byte)1);
} if (itemId == 99919) { //1階恢復
pc.addMaxMp(5);
} if (itemId == 99920) { //2階恢復
pc.addMaxMp(10);
} if (itemId == 99921) { //3階恢復
pc.addMaxMp(15);
} if (itemId == 99922) { //4階恢復
pc.addMaxMp(20);
} if (itemId == 99923) { //5階恢復
pc.addMaxMp(25);
pc.addMpr(1);
} if (itemId == 99924) { //6階恢復
pc.addMaxMp(30);
pc.addMpr(2);
} if (itemId == 99925) { //7階恢復
pc.addMaxMp(35);
pc.addMpr(3);
} if (itemId == 99926) { //8階恢復
pc.addMaxMp(40);
pc.addMpr(4);
} if (itemId == 99927) { //9階恢復
pc.addMaxMp(50);
pc.addMpr(5);
pc.addSp(1);
pc.addInt((byte)1);
} if (itemId == 99928) { //1階防禦
pc.addMr(2); }
if (itemId == 99929) { //2階防禦
pc.addMr(4);}
if (itemId == 99930) { //3階防禦
pc.setSkillEffect(32030, time);
pc.addMr(6); }
if (itemId == 99931) { //4階防禦
pc.addMr(8);}
if (itemId == 99932) { //5階防禦
pc.addMr(10);
pc.addAc(-1); }
if (itemId == 99933) { //6階防禦
pc.addMr(10);
pc.addAc(-2); }
if (itemId == 99934) { //7階防禦
pc.addMr(10);
pc.addAc(-3); }
if (itemId == 99935) { //8階防禦
pc.addMr(15);
pc.addAc(-4);
pc.addDamageReductionByArmor(1);}
if (itemId == 99936) { //9階防禦
pc.addMr(20);
pc.addAc(-5);
pc.addDamageReductionByArmor(3);
pc.addCon((byte)1);}
if (itemId >= 99901 && itemId <= 99936) {
pc.sendPackets(new S_SkillSound(pc.getId(), e));
pc.broadcastPacket(new S_SkillSound(pc.getId(), e));
pc.setSkillEffect(i, time);
pc.sendPackets(new S_OwnCharStatus(pc));
}
} else if (itemId >= 99937 && itemId <= 99940 ){ //附魔石轉換 by opqlo 於
int i=l1iteminstance1.getItem().getItemId();
if (i==99942){
if ((_random.nextInt(100) + 1)<=50){ //50%機率會失敗
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage(l1iteminstance1.getItem().getName()+"發出神秘的光芒爆開了。"));
pc.sendPackets(new S_SkillSound(pc.getId(), 4630));
pc.broadcastPacket(new S_SkillSound(pc.getId(), 4630));
return;
}
if (itemId == 99937) {
createNewItem(pc, 99901, 1); //階附魔石(近戰)
} if (itemId == 99938 ) {
createNewItem(pc, 99910, 1); //階附魔石(遠攻)
} if (itemId == 99939) {
createNewItem(pc, 99919, 1); //階附魔石(恢復)
} if (itemId == 99940 ) {
createNewItem(pc, 99928, 1); //階附魔石(防禦)
}
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
} else {
pc.sendPackets(new S_Message(79));
}
} else if (itemId == 99941){ //附魔石強化 by opqlo 於
int k=99904;
int chance =_random.nextInt(100) + 1;
int i=l1iteminstance1.getItem().getItemId();
if (i>=99901 && i<=99936){
if(i==k+5 ||i==k+14 ||i==k+23 ||i==k+32){ //9階附魔石
pc.sendPackets(new S_SystemMessage(l1iteminstance1.getItem().getName()+"無法強化。"));
return;
}
if((i>=k-3 && i<=k-1) ||(i>=k+6 && i<=k+8) || (i>=k+15 && i<=k+17) ||(i>=k+24 && i<=k+26)){ //1~3階附魔石
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
createNewItem(pc, i+1, 1);
return;
}
if (chance <=50&& (i==k ||i==k+1 ||i==k+9 ||i==k+10 ||i==k+18 ||i==k+19 ||i==k+27 ||i==k+28 )){ //4~5階附魔石 50%
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
createNewItem(pc, i+1, 1);
return;
}if (chance <=30&&(i==k+2 ||i==k+3 ||i==k+11 ||i==k+12 ||i==k+20 ||i==k+21 ||i==k+29 ||i==k+30 )){//6~7階附魔石30%
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
createNewItem(pc, i+1, 1);
return;
}if (chance <=10&&(i==k+4 ||i==k+13 ||i==k+22 ||i==k+31)){//8階附魔石 10%
pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
createNewItem(pc, i+1, 1);
return;
} pc.getInventory().removeItem(l1iteminstance1, 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage(l1iteminstance1.getItem().getName()+"發出神秘的光芒爆開了。"));
pc.sendPackets(new S_SkillSound(pc.getId(), 4630));
pc.broadcastPacket(new S_SkillSound(pc.getId(), 4630));
}else {
pc.sendPackets(new S_Message(79));
}
////*附魔石道具使用相關 by opqlo 於 end
}
****O**P**Q**L**O****【【步驟3】】****分**享**於**月**光**論**壇****
//model/skill/L1SkillId.java
拉到最下面 在 } 上面加入:
/*
* 附魔石效果
*/
public static final int STONE_A_1 = 32001; //1階近戰
public static final int STONE_A_2 = 32002; //2階近戰
public static final int STONE_A_3 = 32003; //3階近戰
public static final int STONE_A_4 = 32004; //4階近戰
public static final int STONE_A_5 = 32005; //5階近戰
public static final int STONE_A_6 = 32006; //6階近戰
public static final int STONE_A_7 = 32007; //7階近戰
public static final int STONE_A_8 = 32008; //8階近戰
public static final int STONE_A_9 = 32009; //9階近戰
public static final int STONE_B_1 = 32010; //1階遠攻
public static final int STONE_B_2 = 32011; //2階遠攻
public static final int STONE_B_3 = 32012; //3階遠攻
public static final int STONE_B_4 = 32013; //4階遠攻
public static final int STONE_B_5 = 32014; //5階遠攻
public static final int STONE_B_6 = 32015; //6階遠攻
public static final int STONE_B_7 = 32016; //7階遠攻
public static final int STONE_B_8 = 32017; //8階遠攻
public static final int STONE_B_9 = 32018; //9階遠攻
public static final int STONE_C_1 = 32019; //1階恢復
public static final int STONE_C_2 = 32020; //2階恢復
public static final int STONE_C_3 = 32021; //3階恢復
public static final int STONE_C_4 = 32022; //4階恢復
public static final int STONE_C_5 = 32023; //5階恢復
public static final int STONE_C_6 = 32024; //6階恢復
public static final int STONE_C_7 = 32025; //7階恢復
public static final int STONE_C_8 = 32026; //8階恢復
public static final int STONE_C_9 = 32027; //9階恢復
public static final int STONE_D_1 = 32028; //1階防禦
public static final int STONE_D_2 = 32029; //2階防禦
public static final int STONE_D_3 = 32030; //3階防禦
public static final int STONE_D_4 = 32031; //4階防禦
public static final int STONE_D_5 = 32032; //5階防禦
public static final int STONE_D_6 = 32033; //6階防禦
public static final int STONE_D_7 = 32034; //7階防禦
public static final int STONE_D_8 = 32035; //8階防禦
public static final int STONE_D_9 = 32036; //9階防禦
****O**P**Q**L**O****【【步驟4】】****分**享**於**月**光**論**壇****
//model/skill/L1SkillTimer.java
搜尋 } else if (skillId == ELEMENTAL_FALL_DOWN) {
在上面加入:
//附魔石系統
else if (skillId >=32001 && skillId <= 32036 && cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
if (skillId == STONE_A_1) { //1階近戰
pc.addMaxHp(-10);
}if (skillId == STONE_A_2) { //2階近戰
pc.addMaxHp(-20);
}if (skillId == STONE_A_3) { //3階近戰
pc.addMaxHp(-30);
}if (skillId == STONE_A_4) { //4階近戰
pc.addMaxHp(-40);
}if (skillId == STONE_A_5) { //5階近戰
pc.addMaxHp(-50);
pc.addHpr(-1);
}if (skillId == STONE_A_6) { //6階近戰
pc.addMaxHp(-60);
pc.addHpr(-2);
}if (skillId == STONE_A_7) { //7階近戰
pc.addMaxHp(-70);
pc.addHpr(-3);
}if (skillId == STONE_A_8) { //8階近戰
pc.addMaxHp(-80);
pc.addHpr(-4);
pc.addHitup(-1);
}if (skillId == STONE_A_9) { //9階近戰
pc.addMaxHp(-100);
pc.addHpr(-5);
pc.addHitup(-2);
pc.addDmgup(-2);
pc.addStr((byte) -1);
pc.sendPackets(new S_Strup(pc, 1, 0));
}if (skillId == STONE_B_1) { //1階遠攻
pc.addMaxHp(-5);
pc.addMaxMp(-3);
}if (skillId == STONE_B_2) { //2階遠攻
pc.addMaxHp(-10);
pc.addMaxMp(-6);
}if (skillId == STONE_B_3) { //3階遠攻
pc.addMaxHp(-15);
pc.addMaxMp(-10);
}if (skillId == STONE_B_4) { //4階遠攻
pc.addMaxHp(-20);
pc.addMaxMp(-15);
}if (skillId == STONE_B_5) { //5階遠攻
pc.addMaxHp(-25);
pc.addMaxMp(-20);
}if (skillId == STONE_B_6) { //6階遠攻
pc.addMaxHp(-30);
pc.addMaxMp(-20);
pc.addHpr(-1);
}if (skillId == STONE_B_7) { //7階遠攻
pc.addMaxHp(-35);
pc.addMaxMp(-20);
pc.addHpr(-1);
pc.addMpr(-1);
}if (skillId == STONE_B_8) { //8階遠攻
pc.addMaxHp(-40);
pc.addMaxMp(-25);
pc.addHpr(-2);
pc.addMpr(-1);
}if (skillId == STONE_B_9) { //9階遠攻
pc.addMaxHp(-50);
pc.addMaxMp(-30);
pc.addHpr(-2);
pc.addMpr(-2);
pc.adowDmgup(-2);
pc.adowHitup(-2);
pc.addDex((byte) -1);
pc.sendPackets(new S_Dexup(pc, 1, 0));
}if (skillId == STONE_C_1) { //1階恢復
pc.addMaxMp(-5);
}if (skillId == STONE_C_2) { //2階恢復
pc.addMaxMp(-10);
}if (skillId == STONE_C_3) { //3階恢復
pc.addMaxMp(-15);
}if (skillId == STONE_C_4) { //4階恢復
pc.addMaxMp(-20);
}if (skillId == STONE_C_5) { //5階恢復
pc.addMaxMp(-25);
pc.addMpr(-1);
}if (skillId == STONE_C_6) { //6階恢復
pc.addMaxMp(-30);
pc.addMpr(-2);
}if (skillId == STONE_C_7) { //7階恢復
pc.addMaxMp(-35);
pc.addMpr(-3);
}if (skillId == STONE_C_8) { //8階恢復
pc.addMaxMp(-40);
pc.addMpr(-4);
}if (skillId == STONE_C_9) { //9階恢復
pc.addMaxMp(-50);
pc.addMpr(-5);
pc.addInt((byte)-1);
pc.addSp(-1);
pc.sendPackets(new S_OwnCharStatus(pc));
}if (skillId == STONE_D_1) { //1階防禦
pc.addMr(-2);
}if (skillId == STONE_D_2) { //2階防禦
pc.addMr(-4);
}if (skillId == STONE_D_3) { //3階防禦
pc.addMr(-6);
}if (skillId == STONE_D_4) { //4階防禦
pc.addMr(-8);
}if (skillId == STONE_D_5) { //5階防禦
pc.addMr(-10);
pc.addAc(1);
}if (skillId == STONE_D_6) { //6階防禦
pc.addMr(-10);
pc.addAc(2);
}if (skillId == STONE_D_7) { //7階防禦
pc.addMr(-10);
pc.addAc(3);
}if (skillId == STONE_D_8) { //8階防禦
pc.addMr(-15);
pc.addAc(4);
pc.addDamageReductionByArmor(-1);
}if (skillId == STONE_D_9) { //9階防禦
pc.addMr(-20);
pc.addAc(5);
pc.addCon((byte) -1);
pc.addDamageReductionByArmor(-3); //更新魔防
}if (skillId>= 32027 && skillId <= 32036){
pc.sendPackets(new S_SPMR(pc));
} //附魔石系統
****O**P**Q**L**O****【【步驟5】】****分**享**於**月**光**論**壇****
最後打開庫 etcitem
拉到最下面新增以下:(小弟的是沒有掉寶公告的,請自行比對一下)
etcitem參考設定
https://docs.google.com/file/d/0B4eGRNVV-6tZMzRBZy1jRTRkek0/edit
沒有留言:
張貼留言