一共改六支檔案
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"));
●●●●●●●●●●●●●●●分隔線●●●●●●●●●●●●●●●●●●●
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)); // 友好度
上面加入
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;
}
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));
}
}
大大您分享出來的貢獻良多,我也是從你分享出來的原始碼開始改
回覆刪除想請問您一個寵物的問題
遇到寵物會抱走的情況無法解決,領出來停留後人物走遠在點攻擊狀態
寵物速度會異常加速,攻擊速度/走路速度 都超快
感謝分享 不知道 能否請教些 早期天堂版本的問題 我有1.63 球狀血量 版本的檔案 已中文化開成功
回覆刪除謝謝大大分享這麼多寶貴的知識,想懇求如何設定可以讓朋友連線來我架好的私服玩呢?
回覆刪除找了很多資料但都沒有成功,還是只能單機玩~懇求指點明燈~謝謝