טוב אז ככה, כמו שכולכם יודעים, הפקודה מוחקת רק את המשתמש מ-הטבלה playernpcs אבל כל החפצים של השחקן נשארים ב-playernpcs_equip
התיקון שלי גורם לזה שכל הנתונים ימחקו ולא ישאר סתם "פסולת"
אז לעבודה?
מצאו איפה הפקודה שלכם ממוקמת (!playernpc) ואז חפשו את השורות הבאות:
מתחת תוסיפו:קוד:ps = con.prepareStatement("INSERT INTO playernpcs_equip (NpcId, equipid, equippos) VALUES (?, ?, ?)"); ps.setInt(1, npcId); for (IItem equip : victim.getInventory(MapleInventoryType.EQUIPPED)) { ps.setInt(2, equip.getItemId()); ps.setInt(3, equip.getPosition()); ps.executeUpdate(); } ps.close(); rs.close();
עכשיו לכו אל הפקודה !removeplayernpcs ומצאו את השורות:קוד:ps = con.prepareStatement("UPDATE playernpcs_equip SET mapid = ? WHERE NpcId = ?"); ps.setInt(1, player.getMapId()); ps.setInt(2, npcId); ps.executeUpdate(); ps.close();
מתחת תוסיפו:קוד:Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("DELETE FROM playernpcs WHERE map = ?"); ps.setInt(1, player.getMapId()); ps.executeUpdate(); ps.close();
עכשיו גשו אל מסד הנתונים של הסרבר שלכם (לרוב odinms) והריצו את השאילתה הבאה:קוד:ps = con.prepareStatement("DELETE FROM playernpcs_equip WHERE mapid = ?"); ps.setInt(1, player.getMapId()); ps.executeUpdate(); ps.close();
זהו סיימנוקוד:ALTER TABLE `odinms`.`playernpcs_equip` ADD COLUMN `mapid` INT(11) NOT NULL DEFAULT 0 AFTER `type`;![]()




ציטוט ההודעה


