📄 c_itemuse.java
字号:
}
if (pc.getCurrentHp() > 0) {
int delay_id = 0;
if (l1iteminstance.getItem().getType2() == 0) { // 種別:その他のアイテム
delay_id = ((L1EtcItem) l1iteminstance.getItem()).get_delayid();
}
if (delay_id != 0) { // ディレイ設定あり
if (pc.hasItemDelay(delay_id) == true) {
return;
}
}
// 再使用チェック
boolean isDelayEffect = false;
if (l1iteminstance.getItem().getType2() == 0) {
int delayEffect = ((L1EtcItem) l1iteminstance.getItem())
.get_delayEffect();
if (delayEffect > 0) {
isDelayEffect = true;
Timestamp lastUsed = l1iteminstance.getLastUsed();
if (lastUsed != null) {
Calendar cal = Calendar.getInstance();
if ((cal.getTimeInMillis() - lastUsed.getTime()) / 1000 <= delayEffect) {
// \f1何も起きませんでした。
pc.sendPackets(new S_ServerMessage(79));
return;
}
}
}
}
L1ItemInstance l1iteminstance1 = pc.getInventory().getItem(l);
_log.finest("request item use (obj) = " + itemObjid + " action = "
+ l + " value = " + s);
if (itemId == 40077 || itemId == L1ItemId.SCROLL_OF_ENCHANT_WEAPON
|| itemId == L1ItemId.SCROLL_OF_ENCHANT_QUEST_WEAPON
|| itemId == 40130 || itemId == 140130
|| itemId == L1ItemId.B_SCROLL_OF_ENCHANT_WEAPON
|| itemId == L1ItemId.C_SCROLL_OF_ENCHANT_WEAPON
|| itemId == 40128) { // 武器強化スクロール
if (l1iteminstance1 == null
|| l1iteminstance1.getItem().getType2() != 1) {
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
int safe_enchant = l1iteminstance1.getItem().get_safeenchant();
if (safe_enchant < 0) { // 強化不可
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
int quest_weapon = l1iteminstance1.getItem().getItemId();
if (quest_weapon >= 246 && quest_weapon <= 249) { // 強化不可
if (itemId == L1ItemId.SCROLL_OF_ENCHANT_QUEST_WEAPON) { // 試練のスクロール
} else {
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
}
if (itemId == L1ItemId.SCROLL_OF_ENCHANT_QUEST_WEAPON) { // 試練のスクロール
if (quest_weapon >= 246 && quest_weapon <= 249) { // 強化不可
} else {
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
}
int weaponId = l1iteminstance1.getItem().getItemId();
if (weaponId == 36 || weaponId == 183 || weaponId >= 250
&& weaponId <= 255) { // イリュージョン武器
if (itemId == 40128) { // イリュージョン武器強化スクロール
} else {
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
}
if (itemId == 40128) { // イリュージョン武器強化スクロール
if (weaponId == 36 || weaponId == 183 || weaponId >= 250
&& weaponId <= 255) { // イリュージョン武器
} else {
pc.sendPackets(new S_ServerMessage(79)); // \f1何も起きませんでした。
return;
}
}
int enchant_level = l1iteminstance1.getEnchantLevel();
if (itemId == L1ItemId.C_SCROLL_OF_ENCHANT_WEAPON) { // c-dai
pc.getInventory().removeItem(l1iteminstance, 1);
if (enchant_level < -6) {
// -7以上はできない。
FailureEnchant(pc, l1iteminstance1, client);
} else {
SuccessEnchant(pc, l1iteminstance1, client, -1);
}
} else if (enchant_level < safe_enchant) {
pc.getInventory().removeItem(l1iteminstance, 1);
SuccessEnchant(pc, l1iteminstance1, client, RandomELevel(
l1iteminstance1, itemId));
} else {
pc.getInventory().removeItem(l1iteminstance, 1);
int rnd = _random.nextInt(100) + 1;
int enchant_chance_wepon;
if (enchant_level >= 9) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 6;
} else {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 3;
}
if (rnd < enchant_chance_wepon) {
int randomEnchantLevel = RandomELevel(l1iteminstance1,
itemId);
SuccessEnchant(pc, l1iteminstance1, client,
randomEnchantLevel);
} else if (enchant_level >= 9
&& rnd < (enchant_chance_wepon * 2)) {
// \f1%0が%2と強烈に%1光りましたが、幸い無事にすみました。
pc.sendPackets(new S_ServerMessage(160, l1iteminstance1
.getLogName(), "$245", "$248"));
} else {
FailureEnchant(pc, l1iteminstance1, client);
}
}
//add 經驗加倍藥水
} else if (itemId == 62006) { // 經驗加倍藥水(150%)
if (pc.hasSkillEffect(7000) == false
&& pc.hasSkillEffect(7001) == false
&& pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
int time = 3600 * 1000; // 設置時間為1小時
pc.setSkillEffect(7000, time); // 增加魔法狀態7000
pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
pc.sendPackets(new S_SystemMessage(
"受到經驗之神的祝福,狩獵後經驗提升1.5倍!"));
}else{
int time = pc.getSkillEffectTimeSec(7000)+
pc.getSkillEffectTimeSec(7001)+
pc.getSkillEffectTimeSec(7002);
pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
}
} else if (itemId == 62007) { // 經驗加倍藥水(200%)
if (pc.hasSkillEffect(7000) == false
&& pc.hasSkillEffect(7001) == false
&& pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
int time = 3600 * 1000; // 設置時間為1小時
pc.setSkillEffect(7001, time); // 增加魔法狀態7001
pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
pc.sendPackets(new S_SystemMessage(
"受到經驗之神的祝福,狩獵後經驗提升2.0倍!"));
}else{
int time = pc.getSkillEffectTimeSec(7000)+
pc.getSkillEffectTimeSec(7001)+
pc.getSkillEffectTimeSec(7002);
pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
}
} else if (itemId == 62008) { // 經驗加倍藥水(250%)
if (pc.hasSkillEffect(7000) == false
&& pc.hasSkillEffect(7001) == false
&& pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
int time = 3600 * 1000; // 設置時間為1小時
pc.setSkillEffect(7002, time); // 增加魔法狀態7002
pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
pc.sendPackets(new S_SystemMessage(
"受到經驗之神的祝福,狩獵後經驗提升2.5倍!"));
}else{
int time = pc.getSkillEffectTimeSec(7000)+
pc.getSkillEffectTimeSec(7001)+
pc.getSkillEffectTimeSec(7002);
pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
}
//end
//屬性強化捲軸
} else if (itemId >= 49144 && itemId <= 49147) {
useAttrEnchantScroll(pc, l1iteminstance, l1iteminstance1);
//~屬性強化捲軸
}
//HP貨幣和MP貨幣 by ccxiaonan
else if (itemId == 999989) { // HP+10
pc.addBaseMaxHp((byte) 10); // hp+10
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("你的HP值永久+10"));
try {
// DBにキャラクター情報を書き込む
pc.save();
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
pc.sendPackets(new S_OwnCharStatus(pc));
}
else if (itemId == 999987) { // HP+75
pc.addBaseMaxHp((byte) 75); // hp+75
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("你的HP值永久+75"));
try {
// DBにキャラクター情報を書き込む
pc.save();
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
pc.sendPackets(new S_OwnCharStatus(pc));
}
else if (itemId == 999988) { // MP+10
pc.addBaseMaxMp((byte) 10); // Mp+10
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("你的MP值永久+10"));
try {
// DBにキャラクター情報を書き込む
pc.save();
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
pc.sendPackets(new S_OwnCharStatus(pc));
}
else if (itemId == 999986) { // MP+75
pc.addBaseMaxMp((byte) 75); // Mp+75
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("你的MP值永久+75"));
try {
// DBにキャラクター情報を書き込む
pc.save();
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
pc.sendPackets(new S_OwnCharStatus(pc));
}
//EDN by ccxiaonan
//飾品強化卷軸
else if (itemId == 999991) {
if (l1iteminstance1.getItem().getType2() != 2){
pc.sendPackets(new S_ServerMessage(79));
return;
} else if (l1iteminstance1 != null
&&l1iteminstance1.getItem().getType() == 8
||l1iteminstance1.getItem().getType() == 9
||l1iteminstance1.getItem().getType() == 10
||l1iteminstance1.getItem().getType() == 12){
int chance = _random.nextInt(100) + 1;
switch(l1iteminstance1.getEnchantLevel()) {
case 0: case 1:case 2:case 3:case 4:case 6:case 7:case 8:case 9:
if (chance < 25){
l1iteminstance1.setaddHp(l1iteminstance1.getaddHp() + 2 );
if(l1iteminstance1.isEquipped()){
pc.addMaxHp(2);
pc.addAc(1);
}
} else if (chance > 25 && chance < 50){
l1iteminstance1.setaddMp(l1iteminstance1.getaddMp() + 1 );
if(l1iteminstance1.isEquipped()){
pc.addMaxMp(1);
pc.addAc(1);
}
} else if ( chance > 50 && chance < 75){
l1iteminstance1.setFireMr(l1iteminstance1.getFireMr() + 1 );
l1iteminstance1.setWaterMr(l1iteminstance1.getWaterMr() + 1 );
l1iteminstance1.setEarthMr(l1iteminstance1.getEarthMr() + 1 );
l1iteminstance1.setWindMr(l1iteminstance1.getWindMr() + 1 );
if(l1iteminstance1.isEquipped()){
pc.addFire(1);
pc.addWater(1);
pc.addEarth(1);
pc.addWind(1);
pc.addAc(1);
}
} else {
FailureEnchant(pc, l1iteminstance1, client);
pc.getInventory().removeItem(l1iteminstance, 1);
return;
}
break;
case 5:
if (chance < 25){
l1iteminstance1.setaddHp(l1iteminstance1.getaddHp() + 2 );
l1iteminstance1.setMpr(l1iteminstance1.getItem().get_addmpr() + 1 );
if(l1iteminstance1.isEquipped()){
pc.addMaxHp(2);
pc.addAc(1);
}
} else if (chance > 25 && chance < 50){
l1iteminstance1.setaddMp(l1iteminstance1.getaddMp() + 1 );
l1iteminstance1.setaddSp(l1iteminstance1.getItem().get_addsp( )+ 1 );
if(l1iteminstance1.isEquipped()){
pc.addMaxMp(1);
pc.addAc(1);
}
} else if ( chance > 50 && chance < 75){
l1iteminstance1.setFireMr(l1iteminstance1.getFireMr() + 1 );
l1iteminstance1.setWaterMr(l1iteminstance1.getWaterMr() + 1 );
l1iteminstance1.setEarthMr(l1iteminstance1.getEarthMr() + 1 );
l1iteminstance1.setWindMr(l1iteminstance1.getWindMr() + 1 );
l1iteminstance1.setMpr(l1iteminstance1.getMpr() + 1 );
l1iteminstance1.setHpr(l1iteminstance1.getHpr() + 1 );
if(l1iteminstance1.isEquipped()){
pc.addFire(1);
pc.addWater(1);
pc.addEarth(1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -