楼主: hgc57096

Maplestory Kms 379 【降臨】服務端

   

该用户从未签到

新人上路

枫币
102
威望
0
贡献
0
在线时间
13 小时
注册时间
2023-1-10
发表于 2025-9-15 18:52:50 | 显示全部楼层
大佬,请问可以分享一下项目文件和客户端文件吗

该用户从未签到

新人上路

枫币
102
威望
0
贡献
0
在线时间
13 小时
注册时间
2023-1-10
发表于 2025-9-17 13:29:34 | 显示全部楼层
大佬能分享下saveItems 方法的修复代码吗

该用户从未签到

新人上路

枫币
40
威望
0
贡献
0
在线时间
6 小时
注册时间
2025-9-10
发表于 2025-9-23 11:58:14 | 显示全部楼层
Debug is true storeKey false useTicketCache true useKeyTab false doNotPrompt true ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false

Acquire TGT from Cache

Principal is null

null credentials from Ticket Cache

[Krb5LoginModule] authentication failed

Unable to obtain Principal Name for authentication

데이터베이스를 연결하는 과정에서 오류가 발생하였습니다.2

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: GSS-API authentication exception


我用的mariadb11.5, Eclipse jdk12.
SQL 在正常运行,但是在运行start.java的时候出现了这个bug。你知道是咋回事嘛
  • TA的每日心情
    开心
    2025-7-26 16:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    114
    威望
    0
    贡献
    0
    在线时间
    15 小时
    注册时间
    2025-6-26
    发表于 2025-9-26 22:40:31 | 显示全部楼层
    liang255 发表于 2025-9-23 11:58
    Debug is true storeKey false useTicketCache true useKeyTab false doNotPrompt true ticketCache is nul ...

    JDK版本太小了 最起码用JDK24的
  • TA的每日心情
    开心
    2025-7-26 16:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    114
    威望
    0
    贡献
    0
    在线时间
    15 小时
    注册时间
    2025-6-26
    发表于 2025-9-26 22:42:23 | 显示全部楼层
    niuchris 发表于 2025-9-17 13:29
    大佬能分享下saveItems 方法的修复代码吗

    你这问等于白问,他就是来炫耀的,就是那种在QQ群里没事贴张高版本的图,然后炫耀出来,还不分享的人

    该用户从未签到

    新人上路

    枫币
    40
    威望
    0
    贡献
    0
    在线时间
    6 小时
    注册时间
    2025-9-10
    发表于 2025-9-27 10:01:26 | 显示全部楼层
    你的任务系统能用吗。我每次点击任务或者有灯泡的NPC都会闪退

    该用户从未签到

    新人上路

    枫币
    40
    威望
    0
    贡献
    0
    在线时间
    6 小时
    注册时间
    2025-9-10
    发表于 2025-9-27 10:03:25 | 显示全部楼层
    dai188988 发表于 2025-9-26 22:40
    JDK版本太小了 最起码用JDK24的

    我用JDK24 可以运行了。源代码没啥大问题,但是有很多文件路径需要改正
  • TA的每日心情
    开心
    2025-7-26 16:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    114
    威望
    0
    贡献
    0
    在线时间
    15 小时
    注册时间
    2025-6-26
    发表于 2025-9-27 11:01:12 | 显示全部楼层
    liang255 发表于 2025-9-27 10:03
    我用JDK24 可以运行了。源代码没啥大问题,但是有很多文件路径需要改正

    问题很大啊,上线下线 装备属性丢失
  • TA的每日心情
    开心
    2025-7-26 16:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人上路

    枫币
    114
    威望
    0
    贡献
    0
    在线时间
    15 小时
    注册时间
    2025-6-26
    发表于 2025-9-27 11:02:23 | 显示全部楼层
    liang255 发表于 2025-9-27 10:01
    你的任务系统能用吗。我每次点击任务或者有灯泡的NPC都会闪退

    楼主不是都说了 灯泡有问题 闪退吗 你看看他把那个节点删了

    该用户从未签到

    新人上路

    枫币
    40
    威望
    0
    贡献
    0
    在线时间
    6 小时
    注册时间
    2025-9-10
    发表于 2025-9-27 11:15:41 | 显示全部楼层
    Here is the code to solve the saveItems method issue. Copy this to src/database/loader/Itemloader.java. Replace the 3rd saveItems claim with the code below:

    public void saveItems(List<Pair<Item, MapleInventoryType>> items, Connection con, int id, List<AuctionItemPackage> aitems) throws SQLException {

    StringBuilder query = new StringBuilder();

    query.append("DELETE FROM `").append(this.table).append("` WHERE `type` = ?");

    if (this.getValue() != 7) {

    query.append(" AND `").append(this.arg).append("` = ?");

    }



    PreparedStatement ps = con.prepareStatement(query.toString());

    ps.setInt(1, this.value);

    if (this.getValue() != 7) {

    ps.setInt(2, id);

    }

    ps.executeUpdate();

    ps.close();



    if (items != null && !items.isEmpty()) {

    List<String> psList = new ArrayList<>();

    for (int i = 0; i < items.size(); i++) {

    Pair<Item, MapleInventoryType> pair = items.get(i);

    Item item = pair.getLeft();

    MapleInventoryType mit = pair.getRight();

    AuctionItemPackage aItem = (this.getValue() == 7 && aitems != null) ? aitems.get(i) : null;



    StringBuilder insert = new StringBuilder();

    insert.append("INSERT INTO `").append(this.table).append("` (");

    if (this.getValue() == 7) {

    insert.append("historyID, accountid, ");

    }

    insert.append(this.arg)

    .append(", itemid, inventorytype, position, quantity, owner, GM_Log, uniqueid, expiredate, flag, `type`, sender, once_trade");

    if (this.getValue() == 7) {

    insert.append(", bid, meso, expired, bargain, ownername, buyer, buytime, starttime, `status`, inventoryitemid");

    }

    insert.append(") VALUES (");

    if (this.getValue() == 7) {

    insert.append("?, ?, ");

    }

    insert.append("?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?");

    if (this.getValue() == 7) {

    insert.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?");

    }

    insert.append(")");



    PreparedStatement psItem = con.prepareStatement(insert.toString(), PreparedStatement.RETURN_GENERATED_KEYS);

    int idx = 1;

    if (this.getValue() == 7) {

    psItem.setInt(idx++, aItem.getHistoryID());

    psItem.setInt(idx++, aItem.getAccountID());

    }

    psItem.setInt(idx++, (id == -1 && aItem != null) ? aItem.getOwnerId() : id);

    psItem.setInt(idx++, item.getItemId());

    psItem.setInt(idx++, mit.getType());

    psItem.setInt(idx++, item.getPosition());

    psItem.setInt(idx++, item.getQuantity());

    psItem.setString(idx++, item.getOwner());

    psItem.setString(idx++, item.getGMLog());

    psItem.setInt(idx++, (item.getPet() != null ? (int)Math.max(item.getUniqueId(), item.getPet().getUniqueId()) : (int)item.getUniqueId()));

    psItem.setInt(idx++, (int)item.getExpiration());

    psItem.setInt(idx++, item.getFlag());

    psItem.setInt(idx++, this.value);

    psItem.setString(idx++, item.getGiftFrom());

    psItem.setInt(idx++, item.getOnceTrade());

    if (this.getValue() == 7) {

    psItem.setInt(idx++, (int) aItem.getBid());

    psItem.setInt(idx++, (int)aItem.getMesos());

    psItem.setInt(idx++, (int)aItem.getExpiredTime());

    psItem.setBoolean(idx++, aItem.isBargain());

    psItem.setString(idx++, aItem.getOwnerName());

    psItem.setInt(idx++, aItem.getBuyer());

    psItem.setInt(idx++, (int)aItem.getBuyTime());

    psItem.setInt(idx++, (int)aItem.getStartTime());

    psItem.setInt(idx++, aItem.getType(false, true));

    psItem.setInt(idx++, (int)item.getInventoryId());

    }

    psItem.executeUpdate();

    ResultSet rs = psItem.getGeneratedKeys();

    if (rs.next()) {

    long iid = rs.getLong(1);

    item.setInventoryId(iid);

    }

    rs.close();

    psItem.close();



    // Save equipment if needed

    if (mit == MapleInventoryType.EQUIP || mit == MapleInventoryType.EQUIPPED || mit == MapleInventoryType.CASH_EQUIP) {

    Equip equip = (Equip)item;

    StringBuilder equipInsert = new StringBuilder();

    equipInsert.append("INSERT INTO `").append(this.table_equip).append("` VALUES (DEFAULT, ");

    equipInsert.append((int)equip.getInventoryId()).append(", ");

    equipInsert.append(this.arg.equals("characterid") ? id : 0).append(", ");

    equipInsert.append(this.arg.equals("characterid") ? 0 : id).append(", ");

    equipInsert.append(equip.getItemId()).append(", ");

    equipInsert.append(Math.max(0, equip.getUpgradeSlots())).append(", ");

    equipInsert.append(equip.getLevel()).append(", ");

    equipInsert.append(equip.getStr()).append(", ");

    equipInsert.append(equip.getDex()).append(", ");

    equipInsert.append(equip.getInt()).append(", ");

    equipInsert.append(equip.getLuk()).append(", ");

    equipInsert.append(equip.getArc()).append(", ");

    equipInsert.append(equip.getArcEXP()).append(", ");

    equipInsert.append(equip.getArcLevel()).append(", ");

    equipInsert.append(equip.getHp()).append(", ");

    equipInsert.append(equip.getMp()).append(", ");

    equipInsert.append(equip.getHpR()).append(", ");

    equipInsert.append(equip.getMpR()).append(", ");

    equipInsert.append(equip.getWatk()).append(", ");

    equipInsert.append(equip.getMatk()).append(", ");

    equipInsert.append(equip.getWdef()).append(", ");

    equipInsert.append(equip.getMdef()).append(", ");

    equipInsert.append(equip.getAcc()).append(", ");

    equipInsert.append(equip.getAvoid()).append(", ");

    equipInsert.append(equip.getHands()).append(", ");

    equipInsert.append(equip.getSpeed()).append(", ");

    equipInsert.append(equip.getJump()).append(", ");

    equipInsert.append(equip.getViciousHammer()).append(", ");

    equipInsert.append(equip.getItemEXP()).append(", ");

    equipInsert.append(equip.getDurability()).append(", ");

    equipInsert.append(equip.getEnhance()).append(", ");

    equipInsert.append(equip.getState()).append(", ");

    equipInsert.append(equip.getLines()).append(", ");

    equipInsert.append(equip.getPotential1()).append(", ");

    equipInsert.append(equip.getPotential2()).append(", ");

    equipInsert.append(equip.getPotential3()).append(", ");

    equipInsert.append(equip.getPotential4()).append(", ");

    equipInsert.append(equip.getPotential5()).append(", ");

    equipInsert.append(equip.getPotential6()).append(", ");

    equipInsert.append(equip.getFusionAnvil()).append(", ");

    equipInsert.append(equip.getIncSkill()).append(", ");

    equipInsert.append(equip.getCharmEXP()).append(", ");

    equipInsert.append(equip.getPVPDamage()).append(", ");

    equipInsert.append(equip.getSpecialAttribute()).append(", ");

    equipInsert.append(equip.getReqLevel()).append(", ");

    equipInsert.append(equip.getGrowthEnchant()).append(", ");

    if (!GameConstants.isTheSeedRing(equip.getItemId())) {

    equipInsert.append(equip.getFinalStrike() ? 1 : 0).append(", ");

    } else {

    equipInsert.append(equip.getTheSeedRingLevel()).append(", ");

    }

    equipInsert.append(equip.getBossDamage()).append(", ");

    equipInsert.append(equip.getIgnorePDR()).append(", ");

    equipInsert.append(equip.getTotalDamage()).append(", ");

    equipInsert.append(equip.getAllStat()).append(", ");

    equipInsert.append(equip.getKarmaCount()).append(", ");

    equipInsert.append(equip.getSoulName()).append(", ");

    equipInsert.append(equip.getSoulEnchanter()).append(", ");

    equipInsert.append(equip.getSoulPotential()).append(", ");

    equipInsert.append(equip.getSoulSkill()).append(", ");

    equipInsert.append(equip.getFire()).append(", ");

    equipInsert.append(equip.getStarForce()).append(", ");

    equipInsert.append("0, ");

    equipInsert.append(equip.getDownLevel()).append(", ");

    equipInsert.append(equip.getSpecialPotential()).append(", ");

    equipInsert.append(equip.getSPGrade()).append(", ");

    equipInsert.append(equip.getSPAttack()).append(", ");

    equipInsert.append(equip.getSPAllStat()).append(", ");

    equipInsert.append(equip.getItemState()).append(", ");

    equipInsert.append(equip.getCsGrade()).append(", ");

    equipInsert.append(equip.getCsOption1()).append(", ");

    equipInsert.append(equip.getCsOption2()).append(", ");

    equipInsert.append(equip.getCsOption3()).append(", ");

    equipInsert.append(equip.getCsOptionExpireDate()).append(", ");

    equipInsert.append(equip.getExGradeOption()).append(", ");

    equipInsert.append(equip.getCHUC()).append(", ");

    equipInsert.append(equip.getClearCheck()).append(", ");

    equipInsert.append(equip.isSpecialRoyal() ? 1 : 0).append(", ");

    equipInsert.append(equip.getSerialNumberEquip()).append(", ");

    equipInsert.append(equip.getCashEnchantCount());

    equipInsert.append(")");

    PreparedStatement psEquip = con.prepareStatement(equipInsert.toString());

    psEquip.executeUpdate();

    psEquip.close();



    if (equip.getExceptionalSlot() > 0 && !this.table_equip_exceptional.isEmpty()) {

    String exInfo = "INSERT INTO `"

    + this.table_equip_exceptional

    + "` (`inventoryitemid`, `slot`, `str`, `dex`, `int`, `luk`, `hp`, `mp`, `watk`, `matk`, `wdef`, `mdef`, `acc`, `avoid`) VALUES ("

    + (int)equip.getInventoryId()

    + ", "

    + equip.getExceptionalSlot()

    + ", "

    + equip.getExceptSTR()

    + ", "

    + equip.getExceptDEX()

    + ", "

    + equip.getExceptINT()

    + ", "

    + equip.getExceptLUK()

    + ", "

    + equip.getExceptHP()

    + ", "

    + equip.getExceptMP()

    + ", "

    + equip.getExceptWATK()

    + ", "

    + equip.getExceptMATK()

    + ", "

    + equip.getExceptWDEF()

    + ", "

    + equip.getExceptMDEF()

    + ", "

    + equip.getExceptAVOID()

    + ", "

    + equip.getExceptJUMP()

    + ")";

    psList.add(exInfo);

    }



    if (equip.getUniqueId() > 0L && equip.getItemId() / 10000 == 166) {

    Android android = equip.getAndroid();

    if (android != null) {

    android.saveToDb();

    }

    }

    }



    // Save pet if needed

    if (item.getPet() != null) {

    item.getPet().saveToDb();

    }

    }



    if (!psList.isEmpty()) {

    for (String exInfo : psList) {

    try (PreparedStatement psEx = con.prepareStatement(exInfo)) {

    psEx.executeUpdate();

    } catch (Exception var32) {

    System.out.println("[ERROR] 익셉셔널 정보 저장 오류");

    var32.printStackTrace();

    }

    }

    }

    }

    }
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    枫叶物语即使倒闭也绝对不会变质
    Copyright © 2001-2013 Discuz Team. Powered by Discuz! X3.5 |网站地图 | 本站已运行: