修改L1Attack.java
收尋
dmg = calcBuffDamage(dmg);
上面新增
// 新手保護系統
// 玩家等級低於幾級 其他玩家無法攻擊
if (_targetPc.getLevel() <= Config.New_Player) {
dmg = 0;
_pc.sendPackets(new S_SystemMessage("不能攻擊等級低於【 " + (Config.New_Player + 1) + " 】級的玩家。"));
_targetPc.sendPackets(new S_SystemMessage("等級未滿【 " + (Config.New_Player + 1) + " 】級,其他玩家無法攻擊您。"));
}
// 玩家等級低於幾級 不能攻擊其他玩家
if (_pc.getLevel() <= Config.New_Player && _targetPc.getLevel() >= 1) {
dmg = 0;
_pc.sendPackets(new S_SystemMessage("等級未滿【 " + (Config.New_Player + 1) + " 】級,無法攻擊其他玩家。"));
_targetPc.sendPackets(new S_SystemMessage("對方等級未滿【 " + (Config.New_Player + 1) + " 】級,所以無法攻擊您。"));
}
// 新手保護系統 end
修改L1Magic.java
搜尋
damage = calcMrDefense(damage);
下面新增
// 新手保護系統
if (_calcType == PC_PC) {
// 玩家等級低於幾級 其他玩家無法攻擊
if (_targetPc.getLevel() <= Config.New_Player) {
damage = 0;
_pc.sendPackets(new S_ServerMessage(166, "不能攻擊等級低於【 " + (Config.New_Player + 1) + " 】級的玩家"));
_targetPc.sendPackets(new S_ServerMessage(166, "等級未滿【 " + (Config.New_Player + 1) + " 】級,其他玩家無法攻擊您"));
}
// 玩家等級低於幾級 不能攻擊其他玩家
if (_pc.getLevel() <= Config.New_Player && _targetPc.getLevel() >= 1) {
damage = 0;
_pc.sendPackets(new S_ServerMessage(166, "等級未滿【 " + (Config.New_Player + 1) + " 】級,無法攻擊其他玩家"));
_targetPc.sendPackets(new S_ServerMessage(166, "對方等級未滿【 " + (Config.New_Player + 1) + " 】級,所以無法攻擊您"));
}
}
// 新手保護系統 end
修改Config.java
搜尋
public static int DEFAULT_CHARACTER_SLOT;
下面新增
// 新手保護系統
public static int New_Player;
// 新手保護系統 end
搜尋
DEFAULT_CHARACTER_SLOT = Integer.parseInt(altSettings.getProperty(
"DefaultCharacterSlot", "6"));
下面新增
// 新手保護系統
New_Player = Integer.parseInt(altSettings.getProperty(
"NewPlayer", "10"));
// 新手保護系統 end
搜尋
} else if (pName.equalsIgnoreCase("DefaultCharacterSlot")) {
DEFAULT_CHARACTER_SLOT = Integer.valueOf(pValue);
下面新增
// 新手保護系統
} else if (pName.equalsIgnoreCase("NewPlayer")) {
New_Player = Integer.parseInt(pValue);
// 新手保護系統 end
修改altsettings.properties
最下面新增
#-------------------------------------------------------------
#玩家等級等於或低於幾級時 受保護狀態
NewPlayer = 10
#-------------------------------------------------------------
2013年6月8日 星期六
【Java教學】【★★★★★】GM指令調整玩家等級
新增一組程式碼檔案
新增l1j\server\server\command\executor\L1Levelid.java
新增以下程式碼
更動commands資料庫
新增以下指令
新增l1j\server\server\command\executor\L1Levelid.java
新增以下程式碼
QUOTE:
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package l1j.server.server.command.executor;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import l1j.server.server.datatables.ExpTable;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_ServerMessage;
import l1j.server.server.serverpackets.S_SystemMessage;
import l1j.server.server.utils.IntRange;
public class L1Levelid implements L1CommandExecutor {
private static Logger _log = Logger.getLogger(L1Levelid.class.getName());
private L1Levelid() {
}
public static L1CommandExecutor getInstance() {
return new L1Levelid();
}
public void execute(L1PcInstance pc, String cmdName, String arg) {
try {
StringTokenizer tok = new StringTokenizer(arg);
String char_name = tok.nextToken();
int level = Integer.parseInt(tok.nextToken());
L1PcInstance target = L1World.getInstance().getPlayer(char_name);
if (target == null) {
pc.sendPackets(new S_ServerMessage(73, char_name));
}
else {
if (level == target.getLevel()) {
return;
}
if (!IntRange.includes(level, 1, 99)) {
pc.sendPackets(new S_SystemMessage("請在1-99範圍內指定"));
return;
}
target.setExp(ExpTable.getExpByLevel(level));
}
}
catch (Exception e) {
pc.sendPackets(new S_SystemMessage(cmdName + " 玩家名稱 請輸入。"));
}
}
}
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package l1j.server.server.command.executor;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import l1j.server.server.datatables.ExpTable;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_ServerMessage;
import l1j.server.server.serverpackets.S_SystemMessage;
import l1j.server.server.utils.IntRange;
public class L1Levelid implements L1CommandExecutor {
private static Logger _log = Logger.getLogger(L1Levelid.class.getName());
private L1Levelid() {
}
public static L1CommandExecutor getInstance() {
return new L1Levelid();
}
public void execute(L1PcInstance pc, String cmdName, String arg) {
try {
StringTokenizer tok = new StringTokenizer(arg);
String char_name = tok.nextToken();
int level = Integer.parseInt(tok.nextToken());
L1PcInstance target = L1World.getInstance().getPlayer(char_name);
if (target == null) {
pc.sendPackets(new S_ServerMessage(73, char_name));
}
else {
if (level == target.getLevel()) {
return;
}
if (!IntRange.includes(level, 1, 99)) {
pc.sendPackets(new S_SystemMessage("請在1-99範圍內指定"));
return;
}
target.setExp(ExpTable.getExpByLevel(level));
}
}
catch (Exception e) {
pc.sendPackets(new S_SystemMessage(cmdName + " 玩家名稱 請輸入。"));
}
}
}
更動commands資料庫
新增以下指令
QUOTE:
玩家等級100L1Levelid
訂閱:
文章 (Atom)