1 游戏: 给【怪物血量】和【服务端计算伤害】突破long的限制(9223372036854775807)目前最高922京,可以用测试伤害那个脚本测试,脚本里面改怪物血量
(万 、亿 、兆、 京 、垓、秭、穰、沟、涧、正、载、极、恒河沙、阿僧祗、那由他、不可思议、无量、大数、古戈尔、频菠萝、矜羯罗、不可说不可说转、超限数、绝对无限、绝对无量、绝对小数、绝对大数、绝对超限数) 总共28个单位,每个单位是前一个单位的1万倍
同时人物头顶的信息显示也要显示,每达到一万的倍数就显示下级,比如9999万、9999亿、9999兆、1京以此类推
怪物血量显示也改成: 怪物血量剩余:9999万(00.00%)、9999亿(00.00%)、1兆(00.00%) 以此类推
//1200
2. 游戏: 点击游戏商城旁边的【解卡】按钮,让解卡功能可以生效,屏蔽掉弹出的聊天室
然后解卡的头顶信息显示加上人物的 伤害加成:、段伤次数:、切割伤害:、鞭尸几率:
切割伤害: 以万为进制单位 9999万 1亿 9999亿 1兆 和上面的血量一个概念的显示
//显示能做 150
3. 游戏: 游戏中攻击状态或者受伤状态人物会弯腰,这导致不能换装备不能丢道具进商城等一系列的限制,而且还弹窗恶心人
直接把这些限制禁止去掉,战斗状态或受伤的情况下可以进行所有操作
//服务端无法解决
4. 控制台:游戏设置-宠吸功能,在 功能开关 这里的 特殊全宠物吸物开关下面 增加一个开关 【boss支持吸金吸物开关】
就是说打死boss宠物也可以吸金吸物,目前boss是不吸的,同时哪怕打开了这个功能,如果地图代码是在不支持吸金吸物的表中,那肯定也不能吸
//功能150 开关你来
5. 控制台:定制功能里增加:1.多倍金币爆率表 2.多倍物品爆率表 3.金币+爆物双支持表,能支持写时间段和不限制时间段触发、不同道具是否支持叠加效果,可以用0/1区分,不需要道具数量叠加效果
源码搜索:5360018 看一下,原来的是写死在源码里的,如果同时拥有多个不同倍率的,增加个开关【不同倍率是否叠加】,不叠加就取最大值生效
//功能400
6. 控制台:定制功能里增加:鞭尸功能。。 就是传奇的鞭尸功能,玩家背包拥有某道具,道具数量越多几率越高,击杀怪物后,能让他再爆一遍,支持生效多倍爆率
这个功能在订制栏里面,增加个功能开关,增加个小一点的表,填道具 数量 几率 几率就按 1/10000 算吧 10000等于100%
触发鞭尸后,聊天框全服能看到的喇叭消息提示:恭喜[玩家名]在地图名字击杀怪物后触发鞭尸,怪物二次大爆!
这个功能需要能让js调用到函数,我可以显示在NPC上面,比如: 鞭尸几率:0.01%
//功能400
7. 服务端: 启动工具的cmd不要呼出来 ,关闭服务端不需要重新打开,直接可以点击启动服务端
//你来研究下看看 我之前没弄出来
8. 服务端:服务端控制台-玩家控制台-后台工具-爆物管理
这里搞得人性化一点 归类到我自己的栏目里 之前的删掉或者屏蔽掉
可以点击上方的序号 怪物 名字 id 爆率 进行升降排序
显示出怪物ID对应的是什么怪物名字、能模糊搜怪物名、道具名,全部显示出来直接进行操作
可以直接在表上选取进行操作,能全部选取或者ctrl针对选取进行批量操作
添加爆率能直接搞个编辑框,按格式导入;同时能按导入格式导出
//ui 你来把
9. 游戏: 战力后面带 转生等级 显示 目前只显示战力 需要做成: 战力:123456 [转生次数0次]
这个 转生次数*次 自己可以在后台定义 比如给他改成 筑基*层 多少次转生显示什么在后台设置
比如转生100次= 金丹0层 那101次肯定不需要设置了对吧 直接显示 金丹1层 200次= 元婴0层 后面没增加新的话 就元婴1层 2层以此类推了
功能有开关,关闭的状态下只显示战力!打开的情况下显示在战力后面,我有其他端的截图,需要的时候给你看图
★同时给战力修一下 玩家在脱穿装备的时候就即时更新战力,目前是需要切换频道的时候才能更新战力
//不知道转生功能是否已经有了 有了的话200 切换频道不知道麻不麻烦 不麻烦的话100
11. 游戏里有个偷学NPC,学了技能要切换频道才能显示,能不能改成学了技能就能显示
//估计是没办法的
This commit is contained in:
parent
8eae6db2ca
commit
2d02b4d124
|
|
@ -11796,6 +11796,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se
|
|||
this.吸怪状态 = xx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public enum FameStatus {
|
||||
OK,
|
||||
NOT_TODAY,
|
||||
|
|
@ -11907,7 +11909,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se
|
|||
boolean b = this.haveItem(Integer.parseInt(string));
|
||||
if (b) {
|
||||
int itemNum = getItemNum(Integer.parseInt(string));
|
||||
BigInteger qgbbValue = new BigInteger(qgbb.getInteger(string).toString());
|
||||
BigInteger qgbbValue = new BigInteger(qgbb.getString(string));
|
||||
BigInteger itemNumBigInt = new BigInteger(Integer.toString(itemNum));
|
||||
re = re.add(qgbbValue.multiply(itemNumBigInt));
|
||||
}
|
||||
|
|
@ -11919,7 +11921,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se
|
|||
for (String string : strings) {
|
||||
boolean b = this.hasEquipped(Integer.parseInt(string));
|
||||
if (b) {
|
||||
BigInteger qgzbValue = new BigInteger(qgzb.getInteger(string).toString());
|
||||
BigInteger qgzbValue = new BigInteger(qgzb.getString(string));
|
||||
re = re.add(qgzbValue);
|
||||
}
|
||||
}
|
||||
|
|
@ -11927,10 +11929,23 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject implements Se
|
|||
|
||||
List<Equip> equList = this.getEquList();
|
||||
for (Equip equip : equList) {
|
||||
BigInteger equipQG = new BigInteger(Integer.toString(equip.getqg()));
|
||||
re = re.add(equipQG);
|
||||
BigInteger equipQG = new BigInteger(equip.getqg());
|
||||
re = re.add(equipQG);
|
||||
}
|
||||
|
||||
return re;
|
||||
}
|
||||
|
||||
public int getBSJL() {
|
||||
int re = 0;
|
||||
if (Start.bskg == 0) {
|
||||
return 0;
|
||||
}
|
||||
boolean b = this.haveItem(Start.bsConfig.getItem_id());
|
||||
if (b) {
|
||||
re = getItemNum(Start.bsConfig.getItem_id()) * Start.bsConfig.getRate();
|
||||
}
|
||||
if (re >10000)re = 10000;
|
||||
return re;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import server.Randomizer;
|
|||
import constants.GameConstants;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigInteger;
|
||||
|
||||
public class Equip extends Item implements IEquip, Serializable {
|
||||
private byte upgradeSlots;
|
||||
|
|
@ -37,7 +38,7 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
private int incSkill;
|
||||
private int dd;
|
||||
private int db;
|
||||
private int qg;
|
||||
private String qg;
|
||||
|
||||
public Equip(final int id, final short position, final byte flag) {
|
||||
super(id, position, (short) 1, flag);
|
||||
|
|
@ -72,7 +73,7 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
this.incSkill = -1;
|
||||
this.dd = 0;
|
||||
this.db = 0;
|
||||
this.qg = 0;
|
||||
this.qg = "0";
|
||||
}
|
||||
|
||||
public Equip(final int id, final short position) {
|
||||
|
|
@ -108,7 +109,7 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
this.incSkill = -1;
|
||||
this.dd = 0;
|
||||
this.db = 0;
|
||||
this.qg = 0;
|
||||
this.qg = "0";
|
||||
}
|
||||
|
||||
public Equip(final int id, final short position, final int uniqueid, final byte flag) {
|
||||
|
|
@ -144,7 +145,7 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
this.incSkill = -1;
|
||||
this.dd = 0;
|
||||
this.db = 0;
|
||||
this.qg = 0;
|
||||
this.qg = "0";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -397,9 +398,10 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
this.db = db;
|
||||
}
|
||||
|
||||
public void setqg(int qg) {
|
||||
if (qg < 0) {
|
||||
qg = 0;
|
||||
public void setqg(String qg) {
|
||||
BigInteger bigInteger = new BigInteger(qg);
|
||||
if (bigInteger.compareTo(BigInteger.ZERO) < 0) {
|
||||
qg = "0";
|
||||
}
|
||||
this.qg = qg;
|
||||
}
|
||||
|
|
@ -613,7 +615,7 @@ public class Equip extends Item implements IEquip, Serializable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getqg() {
|
||||
public String getqg() {
|
||||
return this.qg;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public interface IEquip extends IItem {
|
|||
|
||||
int getdb();
|
||||
|
||||
int getqg();
|
||||
String getqg();
|
||||
|
||||
public enum ScrollResult {
|
||||
SUCCESS,
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ public enum ItemLoader {
|
|||
equip.setMpR(rs.getShort("mpR"));
|
||||
equip.setdd(rs.getInt("dd"));
|
||||
equip.setdb(rs.getInt("db"));
|
||||
equip.setqg(rs.getInt("qg"));
|
||||
equip.setqg(rs.getString("qg"));
|
||||
equip.setGiftFrom(rs.getString("sender"));
|
||||
if (equip.getUniqueId() > -1 && GameConstants.isEffectRing(rs.getInt("itemid"))) {
|
||||
final MapleRing ring = MapleRing.loadFromDb(equip.getUniqueId(), mit.equals(MapleInventoryType.EQUIPPED));
|
||||
|
|
@ -268,7 +268,7 @@ public enum ItemLoader {
|
|||
pse.setInt(27, (int) equip.getMpR());
|
||||
pse.setInt(28, (int) equip.getdd());
|
||||
pse.setInt(29, (int) equip.getdb());
|
||||
pse.setInt(30, (int) equip.getqg());
|
||||
pse.setString(30, equip.getqg());
|
||||
pse.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import cn.hutool.core.io.file.FileReader;
|
|||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import gui.tw.BlConfig;
|
||||
import gui.tw.BsConfig;
|
||||
import gui.tw.ZLConfig;
|
||||
import server.MapleInventoryManipulator;
|
||||
import client.inventory.Equip;
|
||||
import handling.world.World.Broadcast;
|
||||
|
|
@ -97,10 +99,17 @@ public class Start {
|
|||
public static JSONObject ConfigValuesJson;
|
||||
public static Map<String, List<Integer>> ConfigItemJson = new HashMap<>();
|
||||
|
||||
public static int bossxw = 1;
|
||||
public static List<BlConfig> BLlist = new ArrayList<>();
|
||||
public static int blkg = 0;
|
||||
public static int bldj = 0;
|
||||
|
||||
public static int bskg = 0;
|
||||
public static int bsdj = 0;
|
||||
public static BsConfig bsConfig = null;
|
||||
|
||||
public static List<ZLConfig> zlConfigs = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
package gui.tw;
|
||||
|
||||
public class BsConfig {
|
||||
|
||||
int item_id;
|
||||
|
||||
int rate;
|
||||
|
||||
public int getItem_id() {
|
||||
return item_id;
|
||||
}
|
||||
|
||||
public void setItem_id(int item_id) {
|
||||
this.item_id = item_id;
|
||||
}
|
||||
|
||||
public int getRate() {
|
||||
return rate;
|
||||
}
|
||||
|
||||
public void setRate(int rate) {
|
||||
this.rate = rate;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package gui.tw;
|
||||
|
||||
public class ZLConfig {
|
||||
|
||||
int num;
|
||||
String name;
|
||||
|
||||
String name2;
|
||||
|
||||
public int getNum() {
|
||||
return num;
|
||||
}
|
||||
|
||||
public String getName2() {
|
||||
return name2;
|
||||
}
|
||||
|
||||
public void setName2(String name2) {
|
||||
this.name2 = name2;
|
||||
}
|
||||
|
||||
public void setNum(int num) {
|
||||
this.num = num;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -30,6 +30,8 @@ import java.awt.event.ActionEvent;
|
|||
import java.awt.event.ActionListener;
|
||||
|
||||
import gui.tw.BlConfig;
|
||||
import gui.tw.BsConfig;
|
||||
import gui.tw.ZLConfig;
|
||||
import org.netbeans.lib.awtextra.AbsoluteConstraints;
|
||||
|
||||
import java.awt.Component;
|
||||
|
|
@ -69,7 +71,9 @@ import javax.swing.JPanel;
|
|||
import javax.swing.JLabel;
|
||||
import java.lang.management.MemoryMXBean;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import client.inventory.IItem;
|
||||
|
||||
|
|
@ -1032,6 +1036,19 @@ public class 特殊控制台 extends JFrame {
|
|||
Start.bldj = jsonObject1.getInteger("stackable");
|
||||
Start.BLlist = jsonObject1.getJSONArray("gold_and_item_drop_rates").toJavaList(BlConfig.class);
|
||||
|
||||
Start.bskg = jsonObject1.getInteger("bskg");
|
||||
Start.bsConfig = jsonObject1.getObject("bsitem",BsConfig.class);
|
||||
try {
|
||||
|
||||
|
||||
fileReader = new FileReader(property + "\\配置文件\\战力显示.ini");
|
||||
String result4 = fileReader.readString();
|
||||
JSONObject jsonObject2 = JSONObject.parseObject(result4);
|
||||
Start.zlConfigs = jsonObject2 .getJSONArray("zl").toJavaList(ZLConfig.class).stream().sorted(Comparator.comparing(ZLConfig::getNum)).collect(Collectors.toList());
|
||||
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package handling.channel.handler;
|
||||
|
||||
import tools.packet.FamilyPacket;
|
||||
import tools.packet.PlayerShopPacket;
|
||||
import server.shops.IMaplePlayerShop;
|
||||
|
||||
|
|
@ -102,13 +103,21 @@ public class InventoryHandler {
|
|||
final short quantity = slea.readShort();
|
||||
if (src < 0 && dst > 0) {
|
||||
MapleInventoryManipulator.unequip(c, src, dst);//脱装备时
|
||||
c.getSession().write(MaplePacketCreator.fuckGuildInfo(c.getPlayer()));//自定义的显示名字
|
||||
c.sendPacket(FamilyPacket.getFamilyInfo(c.getPlayer()));
|
||||
} else if (dst < 0) {
|
||||
MapleInventoryManipulator.equip(c, src, dst);//穿装备时
|
||||
c.getSession().write(MaplePacketCreator.fuckGuildInfo(c.getPlayer()));//自定义的显示名字
|
||||
c.sendPacket(FamilyPacket.getFamilyInfo(c.getPlayer()));
|
||||
} else if (dst == 0) {
|
||||
MapleInventoryManipulator.drop(c, type, src, quantity);
|
||||
} else {
|
||||
MapleInventoryManipulator.move(c, type, src, dst);
|
||||
}
|
||||
|
||||
|
||||
System.out.println(1);
|
||||
|
||||
}
|
||||
|
||||
public static final void ItemSort(final LittleEndianAccessor slea, final MapleClient c) {
|
||||
|
|
|
|||
|
|
@ -138,11 +138,13 @@ public class PlayersHandler {
|
|||
NPCScriptManager.getInstance().dispose(c);
|
||||
c.getSession().write(MaplePacketCreator.enableActions());
|
||||
String string = "#d解卡完毕\r\n\r\n";
|
||||
MapleCharacter player = c.getPlayer();
|
||||
//string += "时间 "+ FileoutputUtil.CurrentReadable_Time() + "\r\n";
|
||||
string += "#d贪玩冒险岛\r\n";
|
||||
string += "经验 " + Math.round((float) 人物经验) * MapleParty.活动经验倍率 + "倍,物品 " + Math.round((float) 人物物品爆率) + "倍, 金币 " + Math.round((float) 人物金币爆率) + "倍,\r\n\r\n";
|
||||
string += "#b个人倍率\r\n";
|
||||
string += "经验 " + (long) (Math.round((float) c.getPlayer().getEXPMod()) * 100) * Math.round(c.getPlayer().getStat().expBuff / 100.0) + "%, 爆率 " + (long) (Math.round((float) c.getPlayer().getDropMod()) * 100) * Math.round(c.getPlayer().getStat().dropBuff / 100.0) + "%, 金币 " +(long) (Math.round((float) c.getPlayer().getCashMod()) * 100) * Math.round(c.getPlayer().getStat().mesoBuff / 100.0) * 100L + "%\r\n\r\n";
|
||||
string += "经验 " + (long) (Math.round((float) c.getPlayer().getEXPMod()) * 100) * Math.round(c.getPlayer().getStat().expBuff / 100.0) + "%, 爆率 " + (long) (Math.round((float) c.getPlayer().getDropMod()) * 100) * Math.round(c.getPlayer().getStat().dropBuff / 100.0) + "%, 金币 " +(long) (Math.round((float) c.getPlayer().getCashMod()) * 100) * Math.round(c.getPlayer().getStat().mesoBuff / 100.0) + "%\r\n";
|
||||
string += "伤害加成"+player.getDB()+"% 多段次数 " +player.getDD() + "次 切割伤害"+DamageParse.process(player.getQG().toString())+" 鞭尸几率" + player.getBSJL()/100+"%\r\n\r\n";
|
||||
string += "#r个人资产\r\n";
|
||||
string += "拥有:" + c.getPlayer().getCSPoints(1) + " 点劵\r\n\r\n";
|
||||
string += "延迟 " + c.getPlayer().getClient().getLatency() + " 毫秒\r\n";
|
||||
|
|
|
|||
|
|
@ -1035,6 +1035,16 @@ public final class MapleMap {
|
|||
}
|
||||
}
|
||||
this.dropFromMonster(drop, monster);
|
||||
|
||||
//贪玩鞭尸
|
||||
int bsjl = chr.getBSJL();
|
||||
int bsjl2 = Randomizer.rand(0, 10000);
|
||||
if (bsjl2 < bsjl) {
|
||||
String mapName1 = chr.getMap().getMapName();
|
||||
Broadcast.broadcastMessage(MaplePacketCreator.serverNotice(5, "恭喜[" + chr.getName() + "]在"+mapName1+"击杀怪物后触发鞭尸,怪物二次大爆!"));
|
||||
this.dropFromMonster(drop, monster);
|
||||
}
|
||||
|
||||
int bs = chr.getBs();
|
||||
|
||||
|
||||
|
|
@ -2344,7 +2354,7 @@ public final class MapleMap {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (吸物状态 && mob.getStats().isBoss() && Start.ConfigValuesMap.get("boss吸物品开关") !=1){
|
||||
if (吸物状态 && mob.getStats().isBoss() && Start.bossxw != 1){
|
||||
吸物状态 = false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package tools;
|
||||
|
||||
import gui.tw.ZLConfig;
|
||||
import server.ServerProperties;
|
||||
import client.inventory.Equip;
|
||||
import gui.Start;
|
||||
|
|
@ -2871,7 +2872,15 @@ public class MaplePacketCreator {
|
|||
xl = "[☆超级王者☆]";
|
||||
else if (c.getCombat() > 1100000)
|
||||
xl = "[☆宇宙王者☆]";
|
||||
mplew.writeMapleAsciiString("战力:" + c.getCombat());
|
||||
int 转生次数 = c.getAccountidLog("飞升");
|
||||
int cs = 转生次数;
|
||||
String name = "转生次数" + cs +"层";
|
||||
for (ZLConfig zlConfig : Start.zlConfigs) {
|
||||
if (zlConfig.getNum() <转生次数){
|
||||
name = zlConfig.getName() +(转生次数 -zlConfig.getNum())+ zlConfig.getName2();
|
||||
}
|
||||
}
|
||||
mplew.writeMapleAsciiString("战力:" + c.getCombat()+" "+name);
|
||||
mplew.write(0);
|
||||
mplew.writeInt(0);
|
||||
mplew.writeInt(0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue