瘋天堂私服發佈網站廣告欄位!
瘋天堂私服發佈網站您最佳的選擇!
免費曝光天堂私服的方式!
害怕天堂私服倒閉嗎?快使用天堂分析師!
天堂私服抽獎扭蛋物品及機率測試器
天堂私服稱號顏色製造器
瘋天堂私服發佈網站教您註冊推文收藏私服!
天堂私服血量魔力計算器
瘋天堂私服發布網站廣告贊助及爆料私服客服
教您如何不用註冊也可以推文天堂私服!
天堂私服270怪物查詢掉落資料庫
天堂私服盟徽製造器
test0428
2006-02-21 18:24

天堂設定能力值上限(萬能藥)的java寫法!

一共改六支檔案

1.位置 CONFIG.JAVA

/** CharSettings control */


// 設定能力值上限 by srwh
public static int BONUS_MT_MAX;
public static int MAX_ABILITY;
public static int MAX_ABILITY2;
public static int MAX_ABILITY3;

●●●●●●●●●●●●●●●分隔線●●●●●●●●●●●●●●●●●●●


// 可設定能力值上限 by srwh
BONUS_MT_MAX = Integer.parseInt(charSettings.getProperty(
"BONUS_MT_MAX", "25"));
MAX_ABILITY = Integer.parseInt(charSettings.getProperty("MaxAbility",
"25"));
MAX_ABILITY2 = Integer.parseInt(charSettings.getProperty("MaxAbility2",
"5"));
MAX_ABILITY3 = Integer.parseInt(charSettings.getProperty("MaxAbility3",
"25"));


●●●●●●●●●●●●●●●分隔線●●●●●●●●●●●●●●●●●●●

} else if (pName.equalsIgnoreCase("MaxAbility")){// 設定能力值上限 by srwh
MAX_ABILITY = Integer.parseInt(pValue);
} else if (pName.equalsIgnoreCase("MaxAbility2")){
MAX_ABILITY2 = Integer.parseInt(pValue);
} else if (pName.equalsIgnoreCase("MaxAbility3")){
MAX_ABILITY3 = Integer.parseInt(pValue);
} else if (pName.equalsIgnoreCase("BONUS_MT_MAX")){
BONUS_MT_MAX = Integer.parseInt(pValue);

●●●●●●●●●●●●●●●分隔線●●●●●●●●●●●●●●●●●●●

2.位置SRC/L1J/SERVER/SERVER/CLIENTPACKETS/C_ITEMUSE.JAVA
}
else if (itemId == 40033) { // 萬能藥:力量 ,可設定能力值上限 by srwh
if (pc.getBaseStr() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseStr((byte) 1);
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseStr() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("力量能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}
}
else if (itemId == 40034) { // 萬能藥:體力
if (pc.getBaseCon() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseCon((byte) 1);
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseCon() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("體力能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}
}
else if (itemId == 40035) { // 萬能藥:敏捷
if (pc.getBaseDex() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseDex((byte) 1);
pc.resetBaseAc();
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseDex() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("敏捷能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}
}
else if (itemId == 40036) { // 萬能藥:智力
if (pc.getBaseInt() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseInt((byte) 1);
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseInt() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("智力能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}
}
else if (itemId == 40037) { // 萬能藥:精神
if (pc.getBaseWis() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseWis((byte) 1);
pc.resetBaseMr();
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseWis() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("精神能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}
}
else if (itemId == 40038) { // 萬能藥:魅力
if (pc.getBaseCha() < Config.MAX_ABILITY3 && pc.getElixirStats() < Config.MAX_ABILITY2) {
pc.addBaseCha((byte) 1);
pc.setElixirStats(pc.getElixirStats() + 1);
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.save();
} else {
if(pc.getBaseCha() >= Config.MAX_ABILITY3)
pc.sendPackets(new S_SystemMessage("魅力能力值"+Config.MAX_ABILITY3+"以後不能喝萬能藥! "));
if(pc.getElixirStats() >= Config.MAX_ABILITY2)
pc.sendPackets(new S_SystemMessage("萬能藥只能喝"+Config.MAX_ABILITY2+"瓶"));
}


●●●●●●●●●●●●●●●分隔線●●●●●●●●●●●●●●●●●●●
3.位置SRC/L1J/SERVER/SERVER/CLIENTPACKETS/C_ATTR.JAVA

case 479

整段(包含其他數值)改成

case 479: // 提昇能力值?(str、dex、int、con、wis、cha)設定能力值上限
if (readC() == 1) {
String s = readS();
if (!(pc.getLevel() - 50 > pc.getBonusStats())) {
return;
}
if (s.toLowerCase().equals("str".toLowerCase())) {
if (pc.getBaseStr() < Config.BONUS_MT_MAX) { // 調整能力值上限
pc.addBaseStr((byte) 1); //素STR值+1
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
} else if (s.toLowerCase().equals("dex".toLowerCase())) {
if (pc.getBaseDex() < Config.BONUS_MT_MAX) { // 調整能力值上限
pc.addBaseDex((byte) 1); //素DEX值+1
pc.resetBaseAc();
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
} else if (s.toLowerCase().equals("con".toLowerCase())) {
if (pc.getBaseCon() < Config.BONUS_MT_MAX) { // 調整能力值上限
pc.addBaseCon((byte) 1); //素CON值+1
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
} else if (s.toLowerCase().equals("int".toLowerCase())) {
if (pc.getBaseInt() < Config.BONUS_MT_MAX) { // 調整能力值上限
pc.addBaseInt((byte) 1); //素INT值+1
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
} else if (s.toLowerCase().equals("wis".toLowerCase())) {
if (pc.getBaseWis() < Config.BONUS_MT_MAX) { // 調整能力值上限
pc.addBaseWis((byte) 1); //素WIS值+1
pc.resetBaseMr();
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
} else if (s.toLowerCase().equals("cha".toLowerCase())) {
if (pc.getBaseCha() < Config.BONUS_MT_MAX) {// 調整能力值上限
pc.addBaseCha((byte) 1); //素CHA值+1
pc.setBonusStats(pc.getBonusStats() + 1);
pc.sendPackets(new S_OwnCharStatus2(pc));
pc.sendPackets(new S_CharVisualUpdate(pc));
pc.save(); // DB情報書迂
} else {
pc.sendPackets(new S_SystemMessage("您此項能力值已達到上限,請選擇其他能力。"));
}
}
}
break;


4.位置SRC/L1J/SERVER/SERVER/CLIENTPACKETS/C_LOGINTOSERVER.JAVA

pc.sendPackets(new S_Karma(pc)); // 友好度

上面加入


//XXX 設定能力值上限
if ((pc.getLevel() >= 51) && ((pc.getLevel() - 50) > pc.getBonusStats())) {
if ((pc.getBaseStr() + pc.getBaseDex() + pc.getBaseCon()
+ pc.getBaseInt() + pc.getBaseWis() + pc.getBaseCha()) < (Config.BONUS_MT_MAX * 6)) {
pc.sendPackets(new S_bonusstats(pc.getId(), 1));
}
}

5.位置SRC/L1J/SERVER/SERVER/MODEL/INSTANCE/L1PCINSTANCE.JAVA

// ボーナスステータス

整段改成

// ボーナスステータス,設定能力值上限
if (getLevel() >= 51 && getLevel() - 50 > getBonusStats()) {
if ((getBaseStr() + getBaseDex() + getBaseCon() + getBaseInt()
+ getBaseWis() + getBaseCha()) < (Config.BONUS_MT_MAX * 6)) {
sendPackets(new S_bonusstats(getId(), 1));
}
}

6.位置SRC/L1J/SERVER/SERVER/MODEL/HPREGENERATION.JAVA

// 空腹と重量のチェック
if (_pc.get_food() < 3 || isOverWeight(_pc)
|| _pc.hasSkillEffect(BERSERKERS)) {
bonus = 0;
// 装備によるHPR増加は満腹度、重量によってなくなるが、 減少である場合は満腹度、重量に関係なく効果が残る
if (equipHpr > 0) {
equipHpr = 0;
}
}

下面加入


//設定能力值上限
// 免重登能點完能力值 ,BONUS_MT_MAX*6 = 210 , BONUS_MT_MAX 為手點上限
if (_pc.getLevel() >= 51 && _pc.getLevel() - 50 > _pc.getBonusStats()) {
if ((_pc.getBaseStr() + _pc.getBaseDex() + _pc.getBaseCon() + _pc.getBaseInt()
+ _pc.getBaseWis() + _pc.getBaseCha()) < (Config.BONUS_MT_MAX * 6)) {
_pc.sendPackets(new S_Bonusstats(_pc.getId(), 1));
}
}



上一篇文章:天堂血魔突破32767的java寫法!
下一篇文章:天堂透過SQL直接執行放怪指令的教學!

分享文章:分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!