• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

v144.3 Character Creation Problem

Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
I am currently using AstralMS's source for v144.3 since I can't get it to work on v144.2 I changed the server to v144.3. I am unable to create a characters for explorers, zero, and luminous. If it is, do you think you can help me find the OPCode for character creation for v144.3? Thank you in advance.



NOTE: I am able to create every other character besides any job that is created as Explorer.

"CreateChar" in CharLoginHandler.java
Code:
    public static void CreateChar(final LittleEndianAccessor slea, final MapleClient c) {        String name;
        byte gender, skin, unk;
        short subcategory;
        int face, hair, hairColor = -1, hat = -1, top, bottom = -1, shoes, weapon, cape = -1, faceMark = -1, shield = -1;
        JobType job;
        name = slea.readMapleAsciiString();
        if (!MapleCharacterUtil.canCreateChar(name, false)) {
            System.out.println("char name hack: " + name);
            return;
        }
        slea.readInt(); //-1
        int job_type = slea.readInt();
        job = JobType.getByType(job_type);
        if (job == null) {
            System.out.println("New job type found: " + job_type);
            return;
        }
        for (JobConstants.LoginJob j : JobConstants.LoginJob.values()) {
            if (j.getJobType() == job_type) {
                if (j.getFlag() != JobConstants.LoginJob.JobFlag.ENABLED.getFlag()) {
                    System.out.println("job was tried to be created while not enabled");
                    return;
                }
            }
        }
        subcategory = slea.readShort();
        gender = slea.readByte();
        skin = slea.readByte();
        unk = slea.readByte(); //6/7/8
        face = slea.readInt();
        hair = slea.readInt();
        if (job.hairColor) {
            hairColor = slea.readInt();
        }
        if (job.skinColor) {
            slea.readInt();
        }
        if (job.faceMark) {
            faceMark = slea.readInt();
        }
        if (job.hat) {
            hat = slea.readInt();
        }
        top = slea.readInt();
        if (job.bottom) {
            bottom = slea.readInt();
        }
        if (job.cape) {
            cape = slea.readInt();
        }
        shoes = slea.readInt();
        weapon = slea.readInt();
        if (slea.available() >= 4) {
            shield = slea.readInt();
        }
        int index = 0;
        boolean noSkin = job == JobType.Demon || job == JobType.Mercedes || job == JobType.Jett;
        int[] items = new int[]{face, hair, hairColor, noSkin ? -1 : skin, faceMark, hat, top, bottom, cape, shoes, weapon, shield};
        for (int i : items) {
            if (i > -1) {
                if (!LoginInformationProvider.getInstance().isEligibleItem(gender, index, job.type, i)) {
                    System.out.println(gender + " | " + index + " | " + job.type + " | " + i);
                    return;
                }
                index++;
            }
        }
        MapleCharacter newchar = MapleCharacter.getDefault(c, job);
        newchar.setWorld((byte) c.getWorld());
        newchar.setFace(face);
        newchar.setSecondFace(face);
        if (hairColor < 0) {
            hairColor = 0;
        }
        if (job != JobType.Mihile) {
            hair += hairColor;
        }
        newchar.setHair(hair);
        newchar.setSecondHair(hair);
        if (job == JobType.AngelicBuster) {
            newchar.setSecondFace(21173);
            newchar.setSecondHair(37141);
        } else if (job == JobType.Zero) {
            newchar.setSecondFace(21290);
            newchar.setSecondHair(37623);
        }
        newchar.setGender(gender);
        newchar.setName(name);
        newchar.setSkinColor(skin);
        if (faceMark < 0) {
            faceMark = 0;
        }
        newchar.setFaceMarking(faceMark);
        final MapleItemInformationProvider li = MapleItemInformationProvider.getInstance();
        final MapleInventory equip = newchar.getInventory(MapleInventoryType.EQUIPPED);
        Item item;
        //-1 Hat | -2 Face | -3 Eye acc | -4 Ear acc | -5 Topwear 
        //-6 Bottom | -7 Shoes | -9 Cape | -10 Shield | -11 Weapon
        //todo check zero's beta weapon slot
        int[][] equips = new int[][]{{hat, -1}, {top, -5}, {bottom, -6}, {cape, -9}, {shoes, -7}, {weapon, -11}, {shield, -10}};
        for (int[] i : equips) {
            if (i[0] > 0) {
                item = li.getEquipById(i[0]);
                item.setPosition((byte) i[1]);
                item.setGMLog("Character Creation");
                equip.addFromDB(item);
            }
        }
        // Additional skills for all first job classes. Some skills are not added by default,
        // so adding the skill ID here between the {}, will give the skills you entered to the desired job.
        int[][] skills = new int[][]{
            {80001152},//Resistance
            {80001152, 1281},//Explorer
            {10001244, 10000252, 80001152},//Cygnus
            {20000194},//Aran
            {20010022, 20010194},//Evan
            {20020109, 20021110, 20020111, 20020112}, //Mercedes
            {},//Demon
            {},//Phantom
            {},//Dualblade
            {50001214},//Mihile
            {20040216, 20040217, 20040218, 20040219, 20040220, 20040221, 20041222},//Luminous
            {},//Kaiser
            {60011216, 60010217, 60011218, 60011219, 60011220, 60011221, 60011222},//AngelicBuster
            {},//Cannoneer
            {30020232, 30020233, 30020234, 30020240, 30021238},//Xenon
            {100000279, 100000282, 100001262, 100001263, 100001264, 100001265, 100001266, 100001268},//Zero
            {228, 80001151},//Jett
            {},//Hayato
            {40020000, 40020001, 40020002, 40021023, 40020109}//Kanna
        };
        if (skills[job.type].length > 0) {
            final Map<Skill, SkillEntry> ss = new HashMap<>();
            Skill s;
            for (int i : skills[job.type]) {
                s = SkillFactory.getSkill(i);
                int maxLevel = s.getMaxLevel();
                if (maxLevel < 1) {
                    maxLevel = s.getMasterLevel();
                }
                ss.put(s, new SkillEntry((byte) 1, (byte) maxLevel, -1));
            }
            if (job == JobType.Zero) {
                ss.put(SkillFactory.getSkill(101000103), new SkillEntry((byte) 8, (byte) 10, -1));
                ss.put(SkillFactory.getSkill(101000203), new SkillEntry((byte) 8, (byte) 10, -1));
            }
            newchar.changeSkillLevel_Skip(ss, false);
        }
        int[][] guidebooks = new int[][]{{4161001, 0}, {4161047, 1}, {4161048, 2000}, {4161052, 2001}, {4161054, 3}, {4161079, 2002}};
        int guidebook = 0;
        for (int[] i : guidebooks) {
            if (newchar.getJob() == i[1]) {
                guidebook = i[0];
            } else if (newchar.getJob() / 1000 == i[1]) {
                guidebook = i[0];
            }
        }
        if (guidebook > 0) {
            newchar.getInventory(MapleInventoryType.ETC).addItem(new Item(guidebook, (byte) 0, (short) 1, (byte) 0));
        }
        
        if (job == JobType.Zero) {
            newchar.setLevel((short) 100);
            newchar.getStat().str = 518;
            newchar.getStat().maxhp = 6910;
            newchar.getStat().hp = 6910;
            newchar.getStat().maxmp = 100;
            newchar.getStat().mp = 100;
            newchar.setRemainingSp(3, 0); //alpha
            newchar.setRemainingSp(3, 1); //beta
        }


        if (MapleCharacterUtil.canCreateChar(name, c.isGm()) && (!LoginInformationProvider.getInstance().isForbiddenName(name) || c.isGm()) && (c.isGm() || c.canMakeCharacter(c.getWorld()))) {
            MapleCharacter.saveNewCharToDB(newchar, job, subcategory);
            c.getSession().write(LoginPacket.addNewCharEntry(newchar, true));
            c.createdChar(newchar.getId());
            //newchar.newCharRewards();
        } else {
            c.getSession().write(LoginPacket.addNewCharEntry(newchar, false));
        }
    }

RecvPacketOpcode.JAVA
Code:
package handling;

public enum RecvPacketOpcode implements WritableIntValueHolder {


    /*
     * General Oopcodes.
     * Used for general purposes.
     */
    RSA_KEY(false),
    STRANGE_DATA,
    LOGIN_REDIRECTOR(false, (short) 0x01),
    CRASH_INFO(false, (short) 0x2E),
    PONG(false, (short) 0x2F),
    /*
     * Login Opcodes.
     * Used for login packets.
     */
    GUEST_LOGIN(true, (short) 0x16),
    SERVERSTATUS_REQUEST(false, (short) 0x1D),
    TOS(true, (short) 0x1D),
    VIEW_SERVERLIST(false, (short) 0x21),
    SERVERLIST_REQUEST(false, (short) 0x22),
    REDISPLAY_SERVERLIST(true, (short) 0x23),
    CHAR_SELECT_NO_PIC(false, (short) 0x25),
    PLAYER_LOGGEDIN(false, (short) 0x27),
    CHECK_CHAR_NAME(true, (short) 0x28),
    DELETE_CHAR(true, (short) 0x2C),
    AUTH_REQUEST(false, (short) 0x30),
    CHAR_SELECT(true, (short) 0x31),
    VIEW_REGISTER_PIC(true, (short) 0x32),
    VIEW_SELECT_PIC(true, (short) 0x35),
    CLIENT_START(false, (short) 0x38),
    CLIENT_FAILED(false, (short) 0x39),
    PART_TIME_JOB(true, (short) 0x3B),
    CHARACTER_CARD(true, (short) 0x3C),
    ENABLE_LV50_CHAR(true, (short) 0x3D),
    CREATE_LV50_CHAR(true, (short) 0x3E),
    ENABLE_SPECIAL_CREATION(true, (short) 0x3E),
    CLIENT_HELLO(false, (short) 0x3F),
    LOGIN_PASSWORD(false, (short) 0x40),
    CREATE_SPECIAL_CHAR(true, (short) 0x41),
    CHARLIST_REQUEST(false, (short) 0x43),
    CREATE_CHAR(false, (short) 0x45),
    CREATE_ULTIMATE(false, (short) 0x999),//46
    AUTH_SECOND_PASSWORD(true, (short) 0x47),
    CLIENT_ERROR(false, (short) 0x4A),
    /*
     * Channel Opcodes.
     * Used for in-game packets.
     */
    CHANGE_MAP(true, (short) 0x51),
    CHANGE_CHANNEL(true, (short) 0x52),
    ENTER_CASH_SHOP(true, (short) 0x54),
    ENTER_FARM(true, (short) 0x57),
    ENTER_AZWAN(true, (short) 0x4D),
    ENTER_AZWAN_EVENT(true, (short) 0x4A),
    LEAVE_AZWAN(true, (short) 0x4B),
    ENTER_PVP(true, (short) 0x50),
    ENTER_PVP_PARTY(true, (short) 0x50),
    LEAVE_PVP(true, (short) 0x999),
    MOVE_PLAYER(true, (short) 0x5E),
    CANCEL_CHAIR(true, (short) 0x60),
    USE_CHAIR(true, (short) 0x61),
    CLOSE_RANGE_ATTACK(true, (short) 0x62),
    RANGED_ATTACK(true, (short) 0x63),
    MAGIC_ATTACK(true, (short) 0x64),
    PASSIVE_ENERGY(true, (short) 0x65),
    TAKE_DAMAGE(true, (short) 0x68),
    PVP_ATTACK(true, (short) 0x69),
    GENERAL_CHAT(true, (short) 0x6A),
    CLOSE_CHALKBOARD(true, (short) 0x6B),
    FACE_EXPRESSION(true, (short) 0x6C),
    FACE_ANDROID(true, (short) 0x6D),
    USE_ITEMEFFECT(true, (short) 0x6E),
    WHEEL_OF_FORTUNE(true, (short) 0x6F),
    USE_TITLE(true, (short) 0x71),//70
    ANGELIC_CHANGE(true, (short) 0x72),//71
    CHANGE_CODEX_SET(true, (short) 0x7A),//79
    CODEX_UNK(true, (short) 0x7B),
    MONSTER_BOOK_DROPS(true, (short) 0x7D),//7C
    NPC_TALK(true, (short) 0x7F),//7E
    NPC_TALK_MORE(true, (short) 0x81),//80
    NPC_SHOP(true, (short) 0x82),//81
    STORAGE(true, (short) 0x84),//83
    USE_HIRED_MERCHANT(true, (short) 0x85),//84
    MERCH_ITEM_STORE(true, (short) 0x86),//85
    PACKAGE_OPERATION(true, (short) 0x7F),//87
    MECH_CANCEL(true, (short) 0x88),//87
    OWL(true, (short) 0x8C),//8A
    OWL_WARP(true, (short) 0x8D),//8A
    ITEM_SORT(true, (short) 0x92),//90
    ITEM_GATHER(true, (short) 0x93),//91
    ITEM_MOVE(true, (short) 0x94),//92
    MOVE_BAG(true, (short) 0x95),//93
    SWITCH_BAG(true, (short) 0x96),//94
    USE_ITEM(true, (short) 0x98),//96
    CANCEL_ITEM_EFFECT(true, (short) 0x99),//97
    USE_SUMMON_BAG(true, (short) 0x9B),//99
    PET_FOOD(true, (short) 0x9C),//9A
    USE_MOUNT_FOOD(true, (short) 0x9D),//9B
    USE_SCRIPTED_NPC_ITEM(true, (short) 0x9E),//9C
    USE_RECIPE(true, (short) 0x9F),//9D
    USE_NEBULITE(true, (short) 0xA0),//9E
    USE_ALIEN_SOCKET(true, (short) 0xA1),//9F
    USE_ALIEN_SOCKET_RESPONSE(true, (short) 0xA2),//A0
    USE_NEBULITE_FUSION(true, (short) 0xA3),//A1
    USE_CASH_ITEM(true, (short) 0xA4),//A2
    USE_CATCH_ITEM(true, (short) 0xA6),//A4
    USE_SKILL_BOOK(true, (short) 0xAB),//A9
    USE_EXP_POTION(true, (short) 0xAC),//A8
    TOT_GUIDE(true, (short) 0xB5),
    USE_OWL_MINERVA(true, (short) 0xBC),//BA
    USE_TELE_ROCK(true, (short) 0xBD),//BB
    USE_RETURN_SCROLL(true, (short) 0xBE),//BC
    USE_UPGRADE_SCROLL(true, (short) 0xBF),//BD
    USE_FLAG_SCROLL(true, (short) 0xC0),//BE
    USE_EQUIP_SCROLL(true, (short) 0xC1),//BF
    USE_POTENTIAL_SCROLL(true, (short) 0xC6),//C3
    USE_ABYSS_SCROLL(true, (short) 0xC7),//C4
    USE_CARVED_SEAL(true, (short) 0xC8),//C5
    USE_BAG(true, (short) 0xC9),
    USE_CRAFTED_CUBE(true, (short) 0xCA),
    USE_MAGNIFY_GLASS(true, (short) 0xCD),//CA
    DISTRIBUTE_AP(true, (short) 0xD0),//CD
    AUTO_ASSIGN_AP(true, (short) 0xD1),//CE
    HEAL_OVER_TIME(true, (short) 0xD2),//CF
    DISTRIBUTE_SP(true, (short) 0xD5),//D2
    SPECIAL_MOVE(true, (short) 0xD6),//D3
    CANCEL_BUFF(true, (short) 0xD7),//D4
    SKILL_EFFECT(true, (short) 0xD8),//D5
    MESO_DROP(true, (short) 0xD9),//D6
    GIVE_FAME(true, (short) 0xDA),//D7
    CHAR_INFO_REQUEST(true, (short) 0xDC),//D9
    SPAWN_PET(true, (short) 0xDD),//DA
    GET_BOOK_INFO(true, (short) 0xDF),//DC
    USE_FAMILIAR(true, (short) 0xE0),//DD
    SPAWN_FAMILIAR(true, (short) 0xE1),//DE
    RENAME_FAMILIAR(true, (short) 0xE2),//DF
    PET_BUFF(true, (short) 0xE3),//E0
    CANCEL_DEBUFF(true, (short) 0xE4),//E1
    CHANGE_MAP_SPECIAL(true, (short) 0xE5),//e2
    USE_INNER_PORTAL(true, (short) 0xE6),//E3
    TROCK_ADD_MAP(true, (short) 0xE7),//e4
    LIE_DETECTOR(true, (short) 0xE8),//E5
    LIE_DETECTOR_SKILL(true, (short) 0xE9),//E6
    LIE_DETECTOR_RESPONSE(true, (short) 0xEA),//E7
    REPORT(true, (short) 0xEC),//E9
    QUEST_ACTION(true, (short) 0xED),//EA
    REISSUE_MEDAL(true, (short) 0xEE),//EB
//    BUFF_RESPONSE(true, (short) 0xEF),//EC
    SKILL_MACRO(true, (short) 0xF3),//F0
    REWARD_ITEM(true, (short) 0xF5),//F2
    ITEM_MAKER(true, (short) 0x999),
    REPAIR_ALL(true, (short) 0xFE),//C7
    REPAIR(true, (short) 0xFF),//C8
    SOLOMON(true, (short) 0xC9),
    GACH_EXP(true, (short) 0xCA),
    FOLLOW_REQUEST(true, (short) 0xFD),
    PQ_REWARD(true, (short) 0xFE),
    FOLLOW_REPLY(true, (short) 0x101),
    AUTO_FOLLOW_REPLY(true, (short) 0x999),
    USE_TREASURE_CHEST(true, (short) 0x999),
    PROFESSION_INFO(true, (short) 0x102),
    USE_POT(true, (short) 0x999),//D6
    CLEAR_POT(true, (short) 0xD7),
    FEED_POT(true, (short) 0xD8),
    CURE_POT(true, (short) 0xD9),
    REWARD_POT(true, (short) 0xDA),
    AZWAN_REVIVE(true, (short) 0xDB),
    USE_COSMETIC(true, (short) 0x999),
    INNER_CIRCULATOR(true, (short) 0xDF),
    PVP_RESPAWN(true, (short) 0xE0),
    GAIN_FORCE(true, (short) 0xE1),
    ADMIN_CHAT(true, (short) 0x126),//119
    PARTYCHAT(true, (short) 0x127),//120
    COMMAND(true, (short) 0x129),//121
    SPOUSE_CHAT(true, (short) 0x12A),//122
    MESSENGER(true, (short) 0x12B),//123
    PLAYER_INTERACTION(true, (short) 0x12C),//124
    PARTY_OPERATION(true, (short) 0x12D),//125
    DENY_PARTY_REQUEST(true, (short) 0x12E),//126
    ALLOW_PARTY_INVITE(true, (short) 0x12F),//127
    EXPEDITION_OPERATION(true, (short) 0x130),//128
    EXPEDITION_LISTING(true, (short) 0x131),//129
    GUILD_OPERATION(true, (short) 0x132),//12A
    DENY_GUILD_REQUEST(true, (short) 0x133),//12B
    ADMIN_COMMAND(true, (short) 0x134),//12C
    ADMIN_LOG(true, (short) 0x135),//12D
    BUDDYLIST_MODIFY(true, (short) 0x137), //12E
    NOTE_ACTION(true, (short) 0x999),//127
    USE_DOOR(true, (short) 0x13A),//131
    USE_MECH_DOOR(true, (short) 0x13B),//132
    CHANGE_KEYMAP(true, (short) 0x13D), //134
    RPS_GAME(true, (short) 0x135),
    RING_ACTION(true, (short) 0x136),
    WEDDING_ACTION(true, (short) 0x137),
    ALLIANCE_OPERATION(true, (short) 0x13B),
    DENY_ALLIANCE_REQUEST(true, (short) 0x13C),
    REQUEST_FAMILY(true, (short) 0x999),//13D
    OPEN_FAMILY(true, (short) 0x13E),//13E
    FAMILY_OPERATION(true, (short) 0x13F),
    DELETE_JUNIOR(true, (short) 0x140),
    DELETE_SENIOR(true, (short) 0x141),
    ACCEPT_FAMILY(true, (short) 0x142),
    USE_FAMILY(true, (short) 0x143),
    FAMILY_PRECEPT(true, (short) 0x144),
    FAMILY_SUMMON(true, (short) 0x145),
    BBS_OPERATION(true, (short) 0x150),//10B
    SOLOMON_EXP(true, (short) 0x151),//10C
    NEW_YEAR_CARD(true, (short) 0x11E),
    XMAS_SURPRISE(true, (short) 0x111),
    TWIN_DRAGON_EGG(true, (short) 0x112),
    ARAN_COMBO(true, (short) 0x15E),//0x152
    TRANSFORM_PLAYER(true, (short) 0x999),
    CYGNUS_SUMMON(true, (short) 0x999),
    CRAFT_DONE(true, (short) 0x162),//157
    CRAFT_EFFECT(true, (short) 0x163),//158
    CRAFT_MAKE(true, (short) 0x164),//159
    CHANGE_ROOM_CHANNEL(true, (short) 0x169),//15D
    EVENT_CARD(true, (short) 0x15E),
    CHOOSE_SKILL(true, (short) 0x15F),
    SKILL_SWIPE(true, (short) 0x160),
    VIEW_SKILLS(true, (short) 0x999),//161
    CANCEL_OUT_SWIPE(true, (short) 0x162),
    YOUR_INFORMATION(true, (short) 0x163),
    FIND_FRIEND(true, (short) 0x164),
    PINKBEAN_CHOCO_OPEN(true, (short) 0x165),
    PINKBEAN_CHOCO_SUMMON(true, (short) 0x166),
    BUY_SILENT_CRUSADE(true, (short) 0x127),
    BUDDY_ADD(true, (short) 0x1A2),
    MOVE_PET(true, (short) 0x1B8),//1A8
    PET_CHAT(true, (short) 0x1B9),//1A9
    PET_COMMAND(true, (short) 0x1BA),//1AA
    PET_LOOT(true, (short) 0x1BB),//1AB
    PET_AUTO_POT(true, (short) 0x1BC),//1AC
    PET_IGNORE(true, (short) 0x1BD),//1AD
    MOVE_HAKU(true, (short) 0x1C1),//1B1
    CHANGE_HAKU(true, (short) 0x1C2),//1B2
    //HAKU_1D8(true, (short) 0x1D8),//test
    //HAKU_1D9(true, (short) 0x1D9),//test
    MOVE_SUMMON(true, (short) 0x1C8),//1b8
    SUMMON_ATTACK(true, (short) 0x1C9),//1B9
    DAMAGE_SUMMON(true, (short) 0x1CA),//1BA
    SUB_SUMMON(true, (short) 0x1CB),//1BB
    REMOVE_SUMMON(true, (short) 0x1CC),//1BC
    PVP_SUMMON(true, (short) 0x1CE),//1BE
    MOVE_DRAGON(true, (short) 0x1CF),//1C0
    USE_ITEM_QUEST(true, (short) 0x1D2),//1C4
    MOVE_ANDROID(true, (short) 0x1D3),//1C5
    UPDATE_QUEST(true, (short) 0x1D5),//1C7//+16
    QUEST_ITEM(true, (short) 0x1D6),//1C8
    MOVE_FAMILIAR(true, (short) 0x1DC),//1CC
    TOUCH_FAMILIAR(true, (short) 0x1DD),//1CD
    ATTACK_FAMILIAR(true, (short) 0x1DE),//1CE
    REVEAL_FAMILIAR(true, (short) 0x1DF),//1CF
    QUICK_SLOT(true, (short) 0x1D0),
    PAM_SONG(true, (short) 0x1D8),
    MOVE_LIFE(true, (short) 0x208),//1EC
    AUTO_AGGRO(true, (short) 0x1EE),
    FRIENDLY_DAMAGE(true, (short) 0x999),//1ef
    MONSTER_BOMB(true, (short) 0x1F0),
    HYPNOTIZE_DMG(true, (short) 0x1F1),
    MOB_BOMB(true, (short) 0x1F5),
    MOB_NODE(true, (short) 0x1F6),
    DISPLAY_NODE(true, (short) 0x1F7),
    MONSTER_CARNIVAL(true, (short) 0x1F8),
    NPC_ACTION(true, (short) 0x222),//203
    ITEM_PICKUP(true, (short) 0x227),//208
    DAMAGE_REACTOR(true, (short) 0x22A),//20B
    TOUCH_REACTOR(true, (short) 0x22B),//20C
    CLICK_REACTOR(true, (short) 0x22C),//20D
    MAKE_EXTRACTOR(true, (short) 0x22F),//210
    UPDATE_ENV(true, (short) 0x17E),
    SNOWBALL(true, (short) 0x182),
    LEFT_KNOCK_BACK(true, (short) 0x183),
    CANDY_RANKING(true, (short) 0x185),//
    COCONUT(true, (short) 0x186),
    SHIP_OBJECT(true, (short) 0x999),
    PARTY_SEARCH_START(true, (short) 0x197),
    PARTY_SEARCH_STOP(true, (short) 0x198),
    START_HARVEST(true, (short) 0x24E),//22F
    STOP_HARVEST(true, (short) 0x24F),//230
    QUICK_MOVE(true, (short) 0x19E),
    CS_UPDATE(true, (short) 0x28A),//257
    BUY_CS_ITEM(true, (short) 0x28B),//258
    COUPON_CODE(true, (short) 0x28C),//259
    CASH_CATEGORY(true, (short) 0x291),//25D
    PLACE_FARM_OBJECT(false, (short) 0x278),
    FARM_SHOP_BUY(false, (short) 0x27D),
    FARM_COMPLETE_QUEST(false, (short) 0x281),
    FARM_NAME(false, (short) 0x282),
    HARVEST_FARM_BUILDING(false, (short) 0x283),
    USE_FARM_ITEM(false, (short) 0x284),
    RENAME_MONSTER(false, (short) 0x294),
    NURTURE_MONSTER(false, (short) 0x295),
    EXIT_FARM(false, (short) 0x299),
    FARM_QUEST_CHECK(false, (short) 0x29D),
    FARM_FIRST_ENTRY(false, (short) 0x2A8),
    GOLDEN_HAMMER(true, (short) 0x2A4),//1BB
    VICIOUS_HAMMER(true, (short) 0x1BD),
    PYRAMID_BUY_ITEM(true, (short) 0x999),
    CLASS_COMPETITION(true, (short) 0x999),
    MAGIC_WHEEL(true, (short) 0x2EB),
    REWARD(true, (short) 0x2EC),
    BLACK_FRIDAY(true, (short) 0x2BE),
    UPDATE_RED_LEAF(true, (short) 0x29C),
    //Not Placed:
    SPECIAL_STAT(false, (short) 0x10C),//107
    UPDATE_HYPER(true, (short) 0x171),//
    RESET_HYPER(true, (short) 0x172),//
    DRESSUP_TIME(true, (short) 0x17F),
    DF_COMBO(true, (short) 0x10F),
    BUTTON_PRESSED(true, (short) 0x1E3),//1D3
    OS_INFORMATION(true, (short) 0x1E6),//1D6
    LUCKY_LOGOUT(true, (short) 0x2B6),
    MESSENGER_RANKING(true, (short) 0x1DD);
    private short code = -2;


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public void setValue(short code) {
        this.code = code;
    }


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public final short getValue() {
        return code;
    }
    private final boolean CheckState;


    private RecvPacketOpcode() {
        this.CheckState = true;
    }


    private RecvPacketOpcode(final boolean CheckState) {
        this.CheckState = CheckState;
    }


    private RecvPacketOpcode(final boolean CheckState, short code) {
        this.CheckState = CheckState;
        this.code = code;
    }


    public final boolean NeedsChecking() {
        return CheckState;
    }


    public static String nameOf(short value) {
        for (RecvPacketOpcode header : RecvPacketOpcode.values()) {
            if (header.getValue() == value) {
                return header.name();
            }
        }
        return "UNKNOWN";
    }
}

Comparison between Jett Creation and Adventurer Creation Screenshot
(Second last being Jett, Last being Adventurer)
lawrence8529 - v144.3 Character Creation Problem - RaGEZONE Forums

Red = Jett
Teal = Explorer

LOG_PACKET_EXCEPT
Code:
------------------------ 2014-10-31 22:25:47 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:25:47 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9A 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:25:54 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:25:54 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:26:39 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:26:39 ------------------------
Packet: 39
All: 27 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:27:09 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:27:09 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:27:18 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:27:18 ------------------------
Packet: 39
All: 27 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:28:11 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:11 ------------------------
Packet: 94
All: 5E 00 08 9D A8 EB C8 D0 3D 7F 0B 00 00 00 00 00 73 FF 23 00 DD 00 00 00 02 00 A6 FF 23 00 DD 00 00 00 04 00 00 00 00 00 02 E6 00 00 E4 FF 23 00 DD 00 00 00 01 00 00 00 00 00 02 18 01 11 44 44 44 44 44 44 44 44 04 73 FF 23 00 E4 FF 23 00
Now: 11 44 44 44 44 44 44 44 44 04 73 FF 23 00 E4 FF 23 00
------------------------ 2014-10-31 22:28:12 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:12 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:28:46 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:46 ------------------------
Packet: 94
All: 5E 00 08 D0 EB 54 72 F4 AF 7F 0B 00 00 00 00 00 99 09 4E 01 DD 00 00 00 05 00 99 09 4D 01 DD 00 00 00 73 00 00 00 00 00 02 00 00 00 99 09 4D 01 DD 00 00 00 00 00 00 00 00 00 06 00 00 01 DD 00 56 FD 06 00 00 00 E1 09 D8 00 DD 00 EA FF 00 00 00 00 00 00 06 4A 01 00 0A 0A F5 00 DD 00 51 01 00 00 00 00 00 00 06 B4 00 11 44 44 44 44 44 44 44 44 04 99 09 D8 00 0A 0A 4E 01
Now: 11 44 44 44 44 44 44 44 44 04 99 09 D8 00 0A 0A 4E 01
------------------------ 2014-10-31 22:28:47 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:47 ------------------------
Packet: 94
All: 5E 00 08 D0 EB 54 72 DC 22 65 07 00 00 00 00 00 B0 06 4E 01 96 00 00 00 01 00 FD 06 4E 01 96 00 00 00 5E 00 00 00 00 00 02 FE 01 11 44 44 44 44 44 44 44 44 04 B0 06 4E 01 FD 06 4E 01
Now: 11 44 44 44 44 44 44 44 44 04 B0 06 4E 01 FD 06 4E 01

InterServerHandler.java
Code:
/* This file is part of the OdinMS Maple Story Server
 Copyright (C) 2008 ~ 2010 Patrick Huy <patrick.huy@frz.cc> 
 Matthias Butz <matze@odinms.de>
 Jan Christian Meyer <vimes@odinms.de>


 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License version 3
 as published by the Free Software Foundation. You may not use, modify
 or distribute this program under any other version of the
 GNU Affero General Public License.


 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 Affero General Public License for more details.


 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package handling.channel.handler;


import client.MapleCharacter;
import client.MapleClient;
import client.MapleQuestStatus;
import client.SkillFactory;
import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType;
import constants.GameConstants;
import handling.cashshop.CashShopServer;
import handling.cashshop.handler.CashShopOperation;
import handling.channel.ChannelServer;
import handling.farm.FarmServer;
import handling.farm.handler.FarmOperation;
import handling.login.LoginServer;
import handling.world.*;
import handling.world.exped.MapleExpedition;
import handling.world.guild.*;
import java.util.ArrayList;
import java.util.List;
import scripting.NPCScriptManager;
import server.*;
import server.maps.FieldLimitType;
import server.maps.MapleMap;
import server.quest.*;
import tools.FileoutputUtil;
import tools.Triple;
import tools.data.LittleEndianAccessor;
import tools.packet.CField;
import tools.packet.CWvsContext;
import tools.packet.CWvsContext.BuddylistPacket;
import tools.packet.CWvsContext.GuildPacket;
import tools.packet.CSPacket;
import tools.packet.FarmPacket;
import tools.packet.JobPacket.AvengerPacket;


public class InterServerHandler {


    public static void EnterCS(final MapleClient c, final MapleCharacter chr) {
        if (chr.hasBlockedInventory() || chr.getMap() == null || chr.getEventInstance() != null || c.getChannelServer() == null) {
            c.getSession().write(CField.serverBlocked(2));
            CharacterTransfer farmtransfer = FarmServer.getPlayerStorage().getPendingCharacter(chr.getId());
            if (farmtransfer != null) {
                c.getSession().write(FarmPacket.farmMessage("You cannot move into Cash Shop while visiting your farm, yet."));
            }
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in a minute or less.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        ChannelServer ch = ChannelServer.getInstance(c.getChannel());
        chr.changeRemoval();
        if (chr.getMessenger() != null) {
            MapleMessengerCharacter messengerplayer = new MapleMessengerCharacter(chr);
            World.Messenger.leaveMessenger(chr.getMessenger().getId(), messengerplayer);
        }
        PlayerBuffStorage.addBuffsToStorage(chr.getId(), chr.getAllBuffs());
        PlayerBuffStorage.addCooldownsToStorage(chr.getId(), chr.getCooldowns());
        PlayerBuffStorage.addDiseaseToStorage(chr.getId(), chr.getAllDiseases());
        World.ChannelChange_Data(new CharacterTransfer(chr), chr.getId(), -10);
        ch.removePlayer(chr);
        c.updateLoginState(3, c.getSessionIPAddress());
        chr.saveToDB(false, false);
        chr.getMap().removePlayer(chr);
        c.getSession().write(CField.getChannelChange(c, Integer.parseInt(CashShopServer.getIP().split(":")[1])));
        c.setPlayer(null);
        c.setReceiving(false);
    }


    public static void EnterFarm(final MapleClient c, final MapleCharacter chr) {
        if (chr.hasBlockedInventory() || chr.getMap() == null || chr.getEventInstance() != null || c.getChannelServer() == null) {
            c.getSession().write(CField.serverBlocked(2));
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in a minute or less.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        ChannelServer ch = ChannelServer.getInstance(c.getChannel());
        chr.changeRemoval();
        if (chr.getMessenger() != null) {
            MapleMessengerCharacter messengerplayer = new MapleMessengerCharacter(chr);
            World.Messenger.leaveMessenger(chr.getMessenger().getId(), messengerplayer);
        }
        PlayerBuffStorage.addBuffsToStorage(chr.getId(), chr.getAllBuffs());
        PlayerBuffStorage.addCooldownsToStorage(chr.getId(), chr.getCooldowns());
        PlayerBuffStorage.addDiseaseToStorage(chr.getId(), chr.getAllDiseases());
        World.ChannelChange_Data(new CharacterTransfer(chr), chr.getId(), -30);
        ch.removePlayer(chr);
        c.updateLoginState(3, c.getSessionIPAddress());
        chr.saveToDB(false, false);
        chr.getMap().removePlayer(chr);
        c.getSession().write(CField.getChannelChange(c, Integer.parseInt(FarmServer.getIP().split(":")[1])));
        c.setPlayer(null);
        c.setReceiving(false);
    }


    public static void Loggedin(final int playerid, final MapleClient c) {
        try {
        MapleCharacter player;
        CharacterTransfer transfer = CashShopServer.getPlayerStorage().getPendingCharacter(playerid);
        if (transfer != null) {
//            c.getSession().write(CWvsContext.BuffPacket.cancelBuff());
            CashShopOperation.EnterCS(transfer, c);
            return;
        }
        CharacterTransfer farmtransfer = FarmServer.getPlayerStorage().getPendingCharacter(playerid);
        if (farmtransfer != null) {
            FarmOperation.EnterFarm(farmtransfer, c);
            return;
        }
        for (ChannelServer cserv : ChannelServer.getAllInstances()) {
            transfer = cserv.getPlayerStorage().getPendingCharacter(playerid);
            if (transfer != null) {
                c.setChannel(cserv.getChannel());
                break;
            }
        }


        if (transfer == null) { // Player isn't in storage, probably isn't CC
            Triple<String, String, Integer> ip = LoginServer.getLoginAuth(playerid);
            String s = c.getSessionIPAddress();
            if (ip == null || !s.substring(s.indexOf('/') + 1, s.length()).equals(ip.left)) {
                if (ip != null) {
                    LoginServer.putLoginAuth(playerid, ip.left, ip.mid, ip.right);
                }
                c.getSession().close();
                return;
            }
            c.setTempIP(ip.mid);
            c.setChannel(ip.right);
            player = MapleCharacter.loadCharFromDB(playerid, c, true);
        } else {
            player = MapleCharacter.ReconstructChr(transfer, c, true);
        }
        final ChannelServer channelServer = c.getChannelServer();
        c.setPlayer(player);
        c.setAccID(player.getAccountID());


        if (!c.CheckIPAddress()) { // Remote hack
            c.getSession().close();
            return;
        }
        final int state = c.getLoginState();
        boolean allowLogin = false;
        if (state == MapleClient.LOGIN_SERVER_TRANSITION || state == MapleClient.CHANGE_CHANNEL || state == MapleClient.LOGIN_NOTLOGGEDIN) {
            allowLogin = !World.isCharacterListConnected(c.loadCharacterNames(c.getWorld()));
        }
        if (!allowLogin) {
            c.setPlayer(null);
            c.getSession().close();
            return;
        }
        c.updateLoginState(MapleClient.LOGIN_LOGGEDIN, c.getSessionIPAddress());
        channelServer.addPlayer(player);


        player.giveCoolDowns(PlayerBuffStorage.getCooldownsFromStorage(player.getId()));
        player.silentGiveBuffs(PlayerBuffStorage.getBuffsFromStorage(player.getId()));
        player.giveSilentDebuff(PlayerBuffStorage.getDiseaseFromStorage(player.getId()));


        c.getSession().write(CWvsContext.updateCrowns(new int[]{-1, -1, -1, -1, -1}));
        c.getSession().write(CField.getCharInfo(player));
        PlayersHandler.calcHyperSkillPointCount(c);
        c.getSession().write(CSPacket.enableCSUse());
        c.getSession().write(CWvsContext.updateSkills(c.getPlayer().getSkills(), false));//skill to 0 "fix"


        player.getMap().addPlayer(player);
        try {
            // Start of buddylist
            final int buddyIds[] = player.getBuddylist().getBuddyIds();
            World.Buddy.loggedOn(player.getName(), player.getId(), c.getChannel(), buddyIds);
            if (player.getParty() != null) {
                final MapleParty party = player.getParty();
                World.Party.updateParty(party.getId(), PartyOperation.LOG_ONOFF, new MaplePartyCharacter(player));


                if (party != null && party.getExpeditionId() > 0) {
                    final MapleExpedition me = World.Party.getExped(party.getExpeditionId());
                    if (me != null) {
                        c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(me, false, true));
                    }
                }
            }
            final CharacterIdChannelPair[] onlineBuddies = World.Find.multiBuddyFind(player.getId(), buddyIds);
            for (CharacterIdChannelPair onlineBuddy : onlineBuddies) {
                player.getBuddylist().get(onlineBuddy.getCharacterId()).setChannel(onlineBuddy.getChannel());
            }
            c.getSession().write(BuddylistPacket.updateBuddylist(player.getBuddylist().getBuddies()));


            // Start of Messenger
            final MapleMessenger messenger = player.getMessenger();
            if (messenger != null) {
                World.Messenger.silentJoinMessenger(messenger.getId(), new MapleMessengerCharacter(c.getPlayer()));
                World.Messenger.updateMessenger(messenger.getId(), c.getPlayer().getName(), c.getChannel());
            }


            // Start of Guild and alliance
            if (player.getGuildId() > 0) {
                World.Guild.setGuildMemberOnline(player.getMGC(), true, c.getChannel());
                c.getSession().write(GuildPacket.showGuildInfo(player));
                final MapleGuild gs = World.Guild.getGuild(player.getGuildId());
                if (gs != null) {
                    final List<byte[]> packetList = World.Alliance.getAllianceInfo(gs.getAllianceId(), true);
                    if (packetList != null) {
                        for (byte[] pack : packetList) {
                            if (pack != null) {
                                c.getSession().write(pack);
                            }
                        }
                    }
                } else { //guild not found, change guild id
                    player.setGuildId(0);
                    player.setGuildRank((byte) 5);
                    player.setAllianceRank((byte) 5);
                    player.saveGuildStatus();
                }
            }
            if (player.getFamilyId() > 0) {
                World.Family.setFamilyMemberOnline(player.getMFC(), true, c.getChannel());
            }
            //c.getSession().write(FamilyPacket.getFamilyData());
            //c.getSession().write(FamilyPacket.getFamilyInfo(player));
        } catch (Exception e) {
            FileoutputUtil.outputFileError(FileoutputUtil.Login_Error, e);
        }
        player.getClient().getSession().write(CWvsContext.broadcastMsg(channelServer.getServerMessage()));
        player.sendMacros();
        player.showNote();
        player.sendImp();
        player.updatePartyMemberHP();
        player.startFairySchedule(false);
        player.baseSkills(); //fix people who've lost skills.
        if (GameConstants.isZero(player.getJob())) {
            c.getSession().write(CWvsContext.updateSkills(player.getSkills(), false));
        }
        c.getSession().write(CField.getKeymap(player.getKeyLayout()));
        player.updatePetAuto();
        player.expirationTask(true, transfer == null);
        c.getSession().write(CWvsContext.updateMaplePoint(player.getCSPoints(2)));
        if (player.getJob() == 132) { // DARKKNIGHT
            player.checkBerserk();
        }
        if (GameConstants.isXenon(player.getJob())) {
            player.startXenonSupply();
        }
        if (GameConstants.isDemonAvenger(player.getJob())) {
            c.getSession().write(AvengerPacket.giveAvengerHpBuff(player.getStat().getHp()));
        }
        player.spawnClones();
        player.spawnSavedPets();
        if (player.getStat().equippedSummon > 0) {
            SkillFactory.getSkill(player.getStat().equippedSummon + (GameConstants.getBeginnerJob(player.getJob()) * 1000)).getEffect(1).applyTo(player);
        }
        MapleQuestStatus stat = player.getQuestNoAdd(MapleQuest.getInstance(GameConstants.PENDANT_SLOT));
        c.getSession().write(CWvsContext.pendantSlot(stat != null && stat.getCustomData() != null && Long.parseLong(stat.getCustomData()) > System.currentTimeMillis()));
        stat = player.getQuestNoAdd(MapleQuest.getInstance(GameConstants.QUICK_SLOT));
        c.getSession().write(CField.quickSlot(stat != null && stat.getCustomData() != null ? stat.getCustomData() : null));
        // c.getSession().write(CWvsContext.getFamiliarInfo(player));
        MapleInventory equipped = player.getInventory(MapleInventoryType.EQUIPPED);
        MapleInventory equip = player.getInventory(MapleInventoryType.EQUIP);
        List<Short> slots = new ArrayList<>();
        for (Item item : equipped.newList()) {
            slots.add(item.getPosition());
        }
        for (short slot : slots) {
            if (GameConstants.isIllegalItem(equipped.getItem(slot).getItemId())) {
                MapleInventoryManipulator.removeFromSlot(player.getClient(), MapleInventoryType.EQUIPPED, slot, (short) 1, false);
            }
        }
        //c.getSession().write(CWvsContext.shopDiscount(ServerConstants.SHOP_DISCOUNT));
        //List<Pair<Integer, String>> npcs = new ArrayList<>();
        //npcs.add(new Pair<>(9070006, "Why...why has this happened to me? My knightly honor... My knightly pride..."));
        //npcs.add(new Pair<>(9000021, "Are you enjoying the event?"));
        //c.getSession().write(NPCPacket.setNpcScriptable(npcs));
        //c.getSession().write(NPCPacket.setNPCScriptable());
        player.updateReward();
        //        player.setDeathCount(99);
        //        c.getSession().write(CField.EffectPacket.updateDeathCount(99)); //for fun
        player.getClient().getSession().write(CWvsContext.broadcastMsg(channelServer.getServerMessage()));
        Thread.sleep(3100);
                if (c.getPlayer().getLevel() < 11) { 
        NPCScriptManager.getInstance().start(c, 9000108, "LoginTot");
        } else if (c.getPlayer().getLevel() > 10) { 
        NPCScriptManager.getInstance().start(c, 9000108, "LoginRed");
        }
  
        if (!GameConstants.isZero(player.getJob())) { //tell all players 2 login so u can remove this from ther
            Equip a = (Equip) player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
            if (GameConstants.getWeaponType(a.getItemId()) == MapleWeaponType.LONG_SWORD) {
                player.getInventory(MapleInventoryType.EQUIPPED).removeItem((short) -11);
            }
            Equip b = (Equip) player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
            if (GameConstants.getWeaponType(b.getItemId()) == MapleWeaponType.BIG_SWORD) {
                player.getInventory(MapleInventoryType.EQUIPPED).removeItem((short) -10);
            }
        }
        } catch (InterruptedException e) {
        }
   }
    
    public static final void ChangeChannel(final LittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr, final boolean room) {
        if (chr == null || chr.hasBlockedInventory() || chr.getEventInstance() != null || chr.getMap() == null || chr.isInBlockedMap() || FieldLimitType.ChannelSwitch.check(chr.getMap().getFieldLimit())) {
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in less than a minute.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        final int chc = slea.readByte() + 1;
        int mapid = 0;
        if (room) {
            mapid = slea.readInt();
        }
        chr.updateTick(slea.readInt());
        if (!World.isChannelAvailable(chc, chr.getWorld())) {
            chr.dropMessage(1, "Request denied due to an unknown error.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (room && (mapid < 910000001 || mapid > 910000022)) {
            chr.dropMessage(1, "Request denied due to an unknown error.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (room) {
            if (chr.getMapId() == mapid) {
                if (c.getChannel() == chc) {
                    chr.dropMessage(1, "You are already in " + chr.getMap().getMapName());
                    c.getSession().write(CWvsContext.enableActions());
                } else { // diff channel
                    chr.changeChannel(chc);
                }
            } else { // diff map
                if (c.getChannel() != chc) {
                    chr.changeChannel(chc);
                }
                final MapleMap warpz = ChannelServer.getInstance(c.getChannel()).getMapFactory().getMap(mapid);
                if (warpz != null) {
                    chr.changeMap(warpz, warpz.getPortal("out00"));
                } else {
                    chr.dropMessage(1, "Request denied due to an unknown error.");
                    c.getSession().write(CWvsContext.enableActions());
                }
            }
        } else {
            chr.changeChannel(chc);
        }
    }
}
Line 320: if (GameConstants.getWeaponType(b.getItemId()) == MapleWeaponType.BIG_SWORD) {
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
Bump. Please help me with this. Im not quite sure what file is causing this problem
 
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
You should update the create character handler.
Go to CharLoginHandler.java and look at CreateChar method.

Thank you so much for telling me which file it is. Ill look into it later.

EDIT: There doesn't seem to be anything wrong with it...

"CreateChar" in CharLoginHandler.java
Code:
    public static void CreateChar(final LittleEndianAccessor slea, final MapleClient c) {        String name;
        byte gender, skin, unk;
        short subcategory;
        int face, hair, hairColor = -1, hat = -1, top, bottom = -1, shoes, weapon, cape = -1, faceMark = -1, shield = -1;
        JobType job;
        name = slea.readMapleAsciiString();
        if (!MapleCharacterUtil.canCreateChar(name, false)) {
            System.out.println("char name hack: " + name);
            return;
        }
        slea.readInt(); //-1
        int job_type = slea.readInt();
        job = JobType.getByType(job_type);
        if (job == null) {
            System.out.println("New job type found: " + job_type);
            return;
        }
        for (JobConstants.LoginJob j : JobConstants.LoginJob.values()) {
            if (j.getJobType() == job_type) {
                if (j.getFlag() != JobConstants.LoginJob.JobFlag.ENABLED.getFlag()) {
                    System.out.println("job was tried to be created while not enabled");
                    return;
                }
            }
        }
        subcategory = slea.readShort();
        gender = slea.readByte();
        skin = slea.readByte();
        unk = slea.readByte(); //6/7/8
        face = slea.readInt();
        hair = slea.readInt();
        if (job.hairColor) {
            hairColor = slea.readInt();
        }
        if (job.skinColor) {
            slea.readInt();
        }
        if (job.faceMark) {
            faceMark = slea.readInt();
        }
        if (job.hat) {
            hat = slea.readInt();
        }
        top = slea.readInt();
        if (job.bottom) {
            bottom = slea.readInt();
        }
        if (job.cape) {
            cape = slea.readInt();
        }
        shoes = slea.readInt();
        weapon = slea.readInt();
        if (slea.available() >= 4) {
            shield = slea.readInt();
        }
        int index = 0;
        boolean noSkin = job == JobType.Demon || job == JobType.Mercedes || job == JobType.Jett;
        int[] items = new int[]{face, hair, hairColor, noSkin ? -1 : skin, faceMark, hat, top, bottom, cape, shoes, weapon, shield};
        for (int i : items) {
            if (i > -1) {
                if (!LoginInformationProvider.getInstance().isEligibleItem(gender, index, job.type, i)) {
                    System.out.println(gender + " | " + index + " | " + job.type + " | " + i);
                    return;
                }
                index++;
            }
        }
        MapleCharacter newchar = MapleCharacter.getDefault(c, job);
        newchar.setWorld((byte) c.getWorld());
        newchar.setFace(face);
        newchar.setSecondFace(face);
        if (hairColor < 0) {
            hairColor = 0;
        }
        if (job != JobType.Mihile) {
            hair += hairColor;
        }
        newchar.setHair(hair);
        newchar.setSecondHair(hair);
        if (job == JobType.AngelicBuster) {
            newchar.setSecondFace(21173);
            newchar.setSecondHair(37141);
        } else if (job == JobType.Zero) {
            newchar.setSecondFace(21290);
            newchar.setSecondHair(37623);
        }
        newchar.setGender(gender);
        newchar.setName(name);
        newchar.setSkinColor(skin);
        if (faceMark < 0) {
            faceMark = 0;
        }
        newchar.setFaceMarking(faceMark);
        final MapleItemInformationProvider li = MapleItemInformationProvider.getInstance();
        final MapleInventory equip = newchar.getInventory(MapleInventoryType.EQUIPPED);
        Item item;
        //-1 Hat | -2 Face | -3 Eye acc | -4 Ear acc | -5 Topwear 
        //-6 Bottom | -7 Shoes | -9 Cape | -10 Shield | -11 Weapon
        //todo check zero's beta weapon slot
        int[][] equips = new int[][]{{hat, -1}, {top, -5}, {bottom, -6}, {cape, -9}, {shoes, -7}, {weapon, -11}, {shield, -10}};
        for (int[] i : equips) {
            if (i[0] > 0) {
                item = li.getEquipById(i[0]);
                item.setPosition((byte) i[1]);
                item.setGMLog("Character Creation");
                equip.addFromDB(item);
            }
        }
        // Additional skills for all first job classes. Some skills are not added by default,
        // so adding the skill ID here between the {}, will give the skills you entered to the desired job.
        int[][] skills = new int[][]{
            {80001152},//Resistance
            {80001152, 1281},//Explorer
            {10001244, 10000252, 80001152},//Cygnus
            {20000194},//Aran
            {20010022, 20010194},//Evan
            {20020109, 20021110, 20020111, 20020112}, //Mercedes
            {},//Demon
            {},//Phantom
            {},//Dualblade
            {50001214},//Mihile
            {20040216, 20040217, 20040218, 20040219, 20040220, 20040221, 20041222},//Luminous
            {},//Kaiser
            {60011216, 60010217, 60011218, 60011219, 60011220, 60011221, 60011222},//AngelicBuster
            {},//Cannoneer
            {30020232, 30020233, 30020234, 30020240, 30021238},//Xenon
            {100000279, 100000282, 100001262, 100001263, 100001264, 100001265, 100001266, 100001268},//Zero
            {228, 80001151},//Jett
            {},//Hayato
            {40020000, 40020001, 40020002, 40021023, 40020109}//Kanna
        };
        if (skills[job.type].length > 0) {
            final Map<Skill, SkillEntry> ss = new HashMap<>();
            Skill s;
            for (int i : skills[job.type]) {
                s = SkillFactory.getSkill(i);
                int maxLevel = s.getMaxLevel();
                if (maxLevel < 1) {
                    maxLevel = s.getMasterLevel();
                }
                ss.put(s, new SkillEntry((byte) 1, (byte) maxLevel, -1));
            }
            if (job == JobType.Zero) {
                ss.put(SkillFactory.getSkill(101000103), new SkillEntry((byte) 8, (byte) 10, -1));
                ss.put(SkillFactory.getSkill(101000203), new SkillEntry((byte) 8, (byte) 10, -1));
            }
            newchar.changeSkillLevel_Skip(ss, false);
        }
        int[][] guidebooks = new int[][]{{4161001, 0}, {4161047, 1}, {4161048, 2000}, {4161052, 2001}, {4161054, 3}, {4161079, 2002}};
        int guidebook = 0;
        for (int[] i : guidebooks) {
            if (newchar.getJob() == i[1]) {
                guidebook = i[0];
            } else if (newchar.getJob() / 1000 == i[1]) {
                guidebook = i[0];
            }
        }
        if (guidebook > 0) {
            newchar.getInventory(MapleInventoryType.ETC).addItem(new Item(guidebook, (byte) 0, (short) 1, (byte) 0));
        }
        
        if (job == JobType.Zero) {
            newchar.setLevel((short) 100);
            newchar.getStat().str = 518;
            newchar.getStat().maxhp = 6910;
            newchar.getStat().hp = 6910;
            newchar.getStat().maxmp = 100;
            newchar.getStat().mp = 100;
            newchar.setRemainingSp(3, 0); //alpha
            newchar.setRemainingSp(3, 1); //beta
        }


        if (MapleCharacterUtil.canCreateChar(name, c.isGm()) && (!LoginInformationProvider.getInstance().isForbiddenName(name) || c.isGm()) && (c.isGm() || c.canMakeCharacter(c.getWorld()))) {
            MapleCharacter.saveNewCharToDB(newchar, job, subcategory);
            c.getSession().write(LoginPacket.addNewCharEntry(newchar, true));
            c.createdChar(newchar.getId());
            //newchar.newCharRewards();
        } else {
            c.getSession().write(LoginPacket.addNewCharEntry(newchar, false));
        }
    }
 
Last edited:
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
Log CREATE_CHAR (0x45) recv and compare it with your one


My revpacketop says CREATE_CHAR is 0x45

I am able to create every character besides Adventurer, Hero and Luminous. The rest can be created fine, so i'm pretty sure the its not something to do with the OP code for CREATE_CHAR.

RecvPacketOpcode.JAVA
Code:
package handling;

public enum RecvPacketOpcode implements WritableIntValueHolder {


    /*
     * General Oopcodes.
     * Used for general purposes.
     */
    RSA_KEY(false),
    STRANGE_DATA,
    LOGIN_REDIRECTOR(false, (short) 0x01),
    CRASH_INFO(false, (short) 0x2E),
    PONG(false, (short) 0x2F),
    /*
     * Login Opcodes.
     * Used for login packets.
     */
    GUEST_LOGIN(true, (short) 0x16),
    SERVERSTATUS_REQUEST(false, (short) 0x1D),
    TOS(true, (short) 0x1D),
    VIEW_SERVERLIST(false, (short) 0x21),
    SERVERLIST_REQUEST(false, (short) 0x22),
    REDISPLAY_SERVERLIST(true, (short) 0x23),
    CHAR_SELECT_NO_PIC(false, (short) 0x25),
    PLAYER_LOGGEDIN(false, (short) 0x27),
    CHECK_CHAR_NAME(true, (short) 0x28),
    DELETE_CHAR(true, (short) 0x2C),
    AUTH_REQUEST(false, (short) 0x30),
    CHAR_SELECT(true, (short) 0x31),
    VIEW_REGISTER_PIC(true, (short) 0x32),
    VIEW_SELECT_PIC(true, (short) 0x35),
    CLIENT_START(false, (short) 0x38),
    CLIENT_FAILED(false, (short) 0x39),
    PART_TIME_JOB(true, (short) 0x3B),
    CHARACTER_CARD(true, (short) 0x3C),
    ENABLE_LV50_CHAR(true, (short) 0x3D),
    CREATE_LV50_CHAR(true, (short) 0x3E),
    ENABLE_SPECIAL_CREATION(true, (short) 0x3E),
    CLIENT_HELLO(false, (short) 0x3F),
    LOGIN_PASSWORD(false, (short) 0x40),
    CREATE_SPECIAL_CHAR(true, (short) 0x41),
    CHARLIST_REQUEST(false, (short) 0x43),
    CREATE_CHAR(false, (short) 0x45),
    CREATE_ULTIMATE(false, (short) 0x999),//46
    AUTH_SECOND_PASSWORD(true, (short) 0x47),
    CLIENT_ERROR(false, (short) 0x4A),
    /*
     * Channel Opcodes.
     * Used for in-game packets.
     */
    CHANGE_MAP(true, (short) 0x51),
    CHANGE_CHANNEL(true, (short) 0x52),
    ENTER_CASH_SHOP(true, (short) 0x54),
    ENTER_FARM(true, (short) 0x57),
    ENTER_AZWAN(true, (short) 0x4D),
    ENTER_AZWAN_EVENT(true, (short) 0x4A),
    LEAVE_AZWAN(true, (short) 0x4B),
    ENTER_PVP(true, (short) 0x50),
    ENTER_PVP_PARTY(true, (short) 0x50),
    LEAVE_PVP(true, (short) 0x999),
    MOVE_PLAYER(true, (short) 0x5E),
    CANCEL_CHAIR(true, (short) 0x60),
    USE_CHAIR(true, (short) 0x61),
    CLOSE_RANGE_ATTACK(true, (short) 0x62),
    RANGED_ATTACK(true, (short) 0x63),
    MAGIC_ATTACK(true, (short) 0x64),
    PASSIVE_ENERGY(true, (short) 0x65),
    TAKE_DAMAGE(true, (short) 0x68),
    PVP_ATTACK(true, (short) 0x69),
    GENERAL_CHAT(true, (short) 0x6A),
    CLOSE_CHALKBOARD(true, (short) 0x6B),
    FACE_EXPRESSION(true, (short) 0x6C),
    FACE_ANDROID(true, (short) 0x6D),
    USE_ITEMEFFECT(true, (short) 0x6E),
    WHEEL_OF_FORTUNE(true, (short) 0x6F),
    USE_TITLE(true, (short) 0x71),//70
    ANGELIC_CHANGE(true, (short) 0x72),//71
    CHANGE_CODEX_SET(true, (short) 0x7A),//79
    CODEX_UNK(true, (short) 0x7B),
    MONSTER_BOOK_DROPS(true, (short) 0x7D),//7C
    NPC_TALK(true, (short) 0x7F),//7E
    NPC_TALK_MORE(true, (short) 0x81),//80
    NPC_SHOP(true, (short) 0x82),//81
    STORAGE(true, (short) 0x84),//83
    USE_HIRED_MERCHANT(true, (short) 0x85),//84
    MERCH_ITEM_STORE(true, (short) 0x86),//85
    PACKAGE_OPERATION(true, (short) 0x7F),//87
    MECH_CANCEL(true, (short) 0x88),//87
    OWL(true, (short) 0x8C),//8A
    OWL_WARP(true, (short) 0x8D),//8A
    ITEM_SORT(true, (short) 0x92),//90
    ITEM_GATHER(true, (short) 0x93),//91
    ITEM_MOVE(true, (short) 0x94),//92
    MOVE_BAG(true, (short) 0x95),//93
    SWITCH_BAG(true, (short) 0x96),//94
    USE_ITEM(true, (short) 0x98),//96
    CANCEL_ITEM_EFFECT(true, (short) 0x99),//97
    USE_SUMMON_BAG(true, (short) 0x9B),//99
    PET_FOOD(true, (short) 0x9C),//9A
    USE_MOUNT_FOOD(true, (short) 0x9D),//9B
    USE_SCRIPTED_NPC_ITEM(true, (short) 0x9E),//9C
    USE_RECIPE(true, (short) 0x9F),//9D
    USE_NEBULITE(true, (short) 0xA0),//9E
    USE_ALIEN_SOCKET(true, (short) 0xA1),//9F
    USE_ALIEN_SOCKET_RESPONSE(true, (short) 0xA2),//A0
    USE_NEBULITE_FUSION(true, (short) 0xA3),//A1
    USE_CASH_ITEM(true, (short) 0xA4),//A2
    USE_CATCH_ITEM(true, (short) 0xA6),//A4
    USE_SKILL_BOOK(true, (short) 0xAB),//A9
    USE_EXP_POTION(true, (short) 0xAC),//A8
    TOT_GUIDE(true, (short) 0xB5),
    USE_OWL_MINERVA(true, (short) 0xBC),//BA
    USE_TELE_ROCK(true, (short) 0xBD),//BB
    USE_RETURN_SCROLL(true, (short) 0xBE),//BC
    USE_UPGRADE_SCROLL(true, (short) 0xBF),//BD
    USE_FLAG_SCROLL(true, (short) 0xC0),//BE
    USE_EQUIP_SCROLL(true, (short) 0xC1),//BF
    USE_POTENTIAL_SCROLL(true, (short) 0xC6),//C3
    USE_ABYSS_SCROLL(true, (short) 0xC7),//C4
    USE_CARVED_SEAL(true, (short) 0xC8),//C5
    USE_BAG(true, (short) 0xC9),
    USE_CRAFTED_CUBE(true, (short) 0xCA),
    USE_MAGNIFY_GLASS(true, (short) 0xCD),//CA
    DISTRIBUTE_AP(true, (short) 0xD0),//CD
    AUTO_ASSIGN_AP(true, (short) 0xD1),//CE
    HEAL_OVER_TIME(true, (short) 0xD2),//CF
    DISTRIBUTE_SP(true, (short) 0xD5),//D2
    SPECIAL_MOVE(true, (short) 0xD6),//D3
    CANCEL_BUFF(true, (short) 0xD7),//D4
    SKILL_EFFECT(true, (short) 0xD8),//D5
    MESO_DROP(true, (short) 0xD9),//D6
    GIVE_FAME(true, (short) 0xDA),//D7
    CHAR_INFO_REQUEST(true, (short) 0xDC),//D9
    SPAWN_PET(true, (short) 0xDD),//DA
    GET_BOOK_INFO(true, (short) 0xDF),//DC
    USE_FAMILIAR(true, (short) 0xE0),//DD
    SPAWN_FAMILIAR(true, (short) 0xE1),//DE
    RENAME_FAMILIAR(true, (short) 0xE2),//DF
    PET_BUFF(true, (short) 0xE3),//E0
    CANCEL_DEBUFF(true, (short) 0xE4),//E1
    CHANGE_MAP_SPECIAL(true, (short) 0xE5),//e2
    USE_INNER_PORTAL(true, (short) 0xE6),//E3
    TROCK_ADD_MAP(true, (short) 0xE7),//e4
    LIE_DETECTOR(true, (short) 0xE8),//E5
    LIE_DETECTOR_SKILL(true, (short) 0xE9),//E6
    LIE_DETECTOR_RESPONSE(true, (short) 0xEA),//E7
    REPORT(true, (short) 0xEC),//E9
    QUEST_ACTION(true, (short) 0xED),//EA
    REISSUE_MEDAL(true, (short) 0xEE),//EB
//    BUFF_RESPONSE(true, (short) 0xEF),//EC
    SKILL_MACRO(true, (short) 0xF3),//F0
    REWARD_ITEM(true, (short) 0xF5),//F2
    ITEM_MAKER(true, (short) 0x999),
    REPAIR_ALL(true, (short) 0xFE),//C7
    REPAIR(true, (short) 0xFF),//C8
    SOLOMON(true, (short) 0xC9),
    GACH_EXP(true, (short) 0xCA),
    FOLLOW_REQUEST(true, (short) 0xFD),
    PQ_REWARD(true, (short) 0xFE),
    FOLLOW_REPLY(true, (short) 0x101),
    AUTO_FOLLOW_REPLY(true, (short) 0x999),
    USE_TREASURE_CHEST(true, (short) 0x999),
    PROFESSION_INFO(true, (short) 0x102),
    USE_POT(true, (short) 0x999),//D6
    CLEAR_POT(true, (short) 0xD7),
    FEED_POT(true, (short) 0xD8),
    CURE_POT(true, (short) 0xD9),
    REWARD_POT(true, (short) 0xDA),
    AZWAN_REVIVE(true, (short) 0xDB),
    USE_COSMETIC(true, (short) 0x999),
    INNER_CIRCULATOR(true, (short) 0xDF),
    PVP_RESPAWN(true, (short) 0xE0),
    GAIN_FORCE(true, (short) 0xE1),
    ADMIN_CHAT(true, (short) 0x126),//119
    PARTYCHAT(true, (short) 0x127),//120
    COMMAND(true, (short) 0x129),//121
    SPOUSE_CHAT(true, (short) 0x12A),//122
    MESSENGER(true, (short) 0x12B),//123
    PLAYER_INTERACTION(true, (short) 0x12C),//124
    PARTY_OPERATION(true, (short) 0x12D),//125
    DENY_PARTY_REQUEST(true, (short) 0x12E),//126
    ALLOW_PARTY_INVITE(true, (short) 0x12F),//127
    EXPEDITION_OPERATION(true, (short) 0x130),//128
    EXPEDITION_LISTING(true, (short) 0x131),//129
    GUILD_OPERATION(true, (short) 0x132),//12A
    DENY_GUILD_REQUEST(true, (short) 0x133),//12B
    ADMIN_COMMAND(true, (short) 0x134),//12C
    ADMIN_LOG(true, (short) 0x135),//12D
    BUDDYLIST_MODIFY(true, (short) 0x137), //12E
    NOTE_ACTION(true, (short) 0x999),//127
    USE_DOOR(true, (short) 0x13A),//131
    USE_MECH_DOOR(true, (short) 0x13B),//132
    CHANGE_KEYMAP(true, (short) 0x13D), //134
    RPS_GAME(true, (short) 0x135),
    RING_ACTION(true, (short) 0x136),
    WEDDING_ACTION(true, (short) 0x137),
    ALLIANCE_OPERATION(true, (short) 0x13B),
    DENY_ALLIANCE_REQUEST(true, (short) 0x13C),
    REQUEST_FAMILY(true, (short) 0x999),//13D
    OPEN_FAMILY(true, (short) 0x13E),//13E
    FAMILY_OPERATION(true, (short) 0x13F),
    DELETE_JUNIOR(true, (short) 0x140),
    DELETE_SENIOR(true, (short) 0x141),
    ACCEPT_FAMILY(true, (short) 0x142),
    USE_FAMILY(true, (short) 0x143),
    FAMILY_PRECEPT(true, (short) 0x144),
    FAMILY_SUMMON(true, (short) 0x145),
    BBS_OPERATION(true, (short) 0x150),//10B
    SOLOMON_EXP(true, (short) 0x151),//10C
    NEW_YEAR_CARD(true, (short) 0x11E),
    XMAS_SURPRISE(true, (short) 0x111),
    TWIN_DRAGON_EGG(true, (short) 0x112),
    ARAN_COMBO(true, (short) 0x15E),//0x152
    TRANSFORM_PLAYER(true, (short) 0x999),
    CYGNUS_SUMMON(true, (short) 0x999),
    CRAFT_DONE(true, (short) 0x162),//157
    CRAFT_EFFECT(true, (short) 0x163),//158
    CRAFT_MAKE(true, (short) 0x164),//159
    CHANGE_ROOM_CHANNEL(true, (short) 0x169),//15D
    EVENT_CARD(true, (short) 0x15E),
    CHOOSE_SKILL(true, (short) 0x15F),
    SKILL_SWIPE(true, (short) 0x160),
    VIEW_SKILLS(true, (short) 0x999),//161
    CANCEL_OUT_SWIPE(true, (short) 0x162),
    YOUR_INFORMATION(true, (short) 0x163),
    FIND_FRIEND(true, (short) 0x164),
    PINKBEAN_CHOCO_OPEN(true, (short) 0x165),
    PINKBEAN_CHOCO_SUMMON(true, (short) 0x166),
    BUY_SILENT_CRUSADE(true, (short) 0x127),
    BUDDY_ADD(true, (short) 0x1A2),
    MOVE_PET(true, (short) 0x1B8),//1A8
    PET_CHAT(true, (short) 0x1B9),//1A9
    PET_COMMAND(true, (short) 0x1BA),//1AA
    PET_LOOT(true, (short) 0x1BB),//1AB
    PET_AUTO_POT(true, (short) 0x1BC),//1AC
    PET_IGNORE(true, (short) 0x1BD),//1AD
    MOVE_HAKU(true, (short) 0x1C1),//1B1
    CHANGE_HAKU(true, (short) 0x1C2),//1B2
    //HAKU_1D8(true, (short) 0x1D8),//test
    //HAKU_1D9(true, (short) 0x1D9),//test
    MOVE_SUMMON(true, (short) 0x1C8),//1b8
    SUMMON_ATTACK(true, (short) 0x1C9),//1B9
    DAMAGE_SUMMON(true, (short) 0x1CA),//1BA
    SUB_SUMMON(true, (short) 0x1CB),//1BB
    REMOVE_SUMMON(true, (short) 0x1CC),//1BC
    PVP_SUMMON(true, (short) 0x1CE),//1BE
    MOVE_DRAGON(true, (short) 0x1CF),//1C0
    USE_ITEM_QUEST(true, (short) 0x1D2),//1C4
    MOVE_ANDROID(true, (short) 0x1D3),//1C5
    UPDATE_QUEST(true, (short) 0x1D5),//1C7//+16
    QUEST_ITEM(true, (short) 0x1D6),//1C8
    MOVE_FAMILIAR(true, (short) 0x1DC),//1CC
    TOUCH_FAMILIAR(true, (short) 0x1DD),//1CD
    ATTACK_FAMILIAR(true, (short) 0x1DE),//1CE
    REVEAL_FAMILIAR(true, (short) 0x1DF),//1CF
    QUICK_SLOT(true, (short) 0x1D0),
    PAM_SONG(true, (short) 0x1D8),
    MOVE_LIFE(true, (short) 0x208),//1EC
    AUTO_AGGRO(true, (short) 0x1EE),
    FRIENDLY_DAMAGE(true, (short) 0x999),//1ef
    MONSTER_BOMB(true, (short) 0x1F0),
    HYPNOTIZE_DMG(true, (short) 0x1F1),
    MOB_BOMB(true, (short) 0x1F5),
    MOB_NODE(true, (short) 0x1F6),
    DISPLAY_NODE(true, (short) 0x1F7),
    MONSTER_CARNIVAL(true, (short) 0x1F8),
    NPC_ACTION(true, (short) 0x222),//203
    ITEM_PICKUP(true, (short) 0x227),//208
    DAMAGE_REACTOR(true, (short) 0x22A),//20B
    TOUCH_REACTOR(true, (short) 0x22B),//20C
    CLICK_REACTOR(true, (short) 0x22C),//20D
    MAKE_EXTRACTOR(true, (short) 0x22F),//210
    UPDATE_ENV(true, (short) 0x17E),
    SNOWBALL(true, (short) 0x182),
    LEFT_KNOCK_BACK(true, (short) 0x183),
    CANDY_RANKING(true, (short) 0x185),//
    COCONUT(true, (short) 0x186),
    SHIP_OBJECT(true, (short) 0x999),
    PARTY_SEARCH_START(true, (short) 0x197),
    PARTY_SEARCH_STOP(true, (short) 0x198),
    START_HARVEST(true, (short) 0x24E),//22F
    STOP_HARVEST(true, (short) 0x24F),//230
    QUICK_MOVE(true, (short) 0x19E),
    CS_UPDATE(true, (short) 0x28A),//257
    BUY_CS_ITEM(true, (short) 0x28B),//258
    COUPON_CODE(true, (short) 0x28C),//259
    CASH_CATEGORY(true, (short) 0x291),//25D
    PLACE_FARM_OBJECT(false, (short) 0x278),
    FARM_SHOP_BUY(false, (short) 0x27D),
    FARM_COMPLETE_QUEST(false, (short) 0x281),
    FARM_NAME(false, (short) 0x282),
    HARVEST_FARM_BUILDING(false, (short) 0x283),
    USE_FARM_ITEM(false, (short) 0x284),
    RENAME_MONSTER(false, (short) 0x294),
    NURTURE_MONSTER(false, (short) 0x295),
    EXIT_FARM(false, (short) 0x299),
    FARM_QUEST_CHECK(false, (short) 0x29D),
    FARM_FIRST_ENTRY(false, (short) 0x2A8),
    GOLDEN_HAMMER(true, (short) 0x2A4),//1BB
    VICIOUS_HAMMER(true, (short) 0x1BD),
    PYRAMID_BUY_ITEM(true, (short) 0x999),
    CLASS_COMPETITION(true, (short) 0x999),
    MAGIC_WHEEL(true, (short) 0x2EB),
    REWARD(true, (short) 0x2EC),
    BLACK_FRIDAY(true, (short) 0x2BE),
    UPDATE_RED_LEAF(true, (short) 0x29C),
    //Not Placed:
    SPECIAL_STAT(false, (short) 0x10C),//107
    UPDATE_HYPER(true, (short) 0x171),//
    RESET_HYPER(true, (short) 0x172),//
    DRESSUP_TIME(true, (short) 0x17F),
    DF_COMBO(true, (short) 0x10F),
    BUTTON_PRESSED(true, (short) 0x1E3),//1D3
    OS_INFORMATION(true, (short) 0x1E6),//1D6
    LUCKY_LOGOUT(true, (short) 0x2B6),
    MESSENGER_RANKING(true, (short) 0x1DD);
    private short code = -2;


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public void setValue(short code) {
        this.code = code;
    }


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public final short getValue() {
        return code;
    }
    private final boolean CheckState;


    private RecvPacketOpcode() {
        this.CheckState = true;
    }


    private RecvPacketOpcode(final boolean CheckState) {
        this.CheckState = CheckState;
    }


    private RecvPacketOpcode(final boolean CheckState, short code) {
        this.CheckState = CheckState;
        this.code = code;
    }


    public final boolean NeedsChecking() {
        return CheckState;
    }


    public static String nameOf(short value) {
        for (RecvPacketOpcode header : RecvPacketOpcode.values()) {
            if (header.getValue() == value) {
                return header.name();
            }
        }
        return "UNKNOWN";
    }
}

Comparison between Jett Creation and Adventurer Creation Screenshot
(Second last being Jett, Last being Adventurer)
lawrence8529 - v144.3 Character Creation Problem - RaGEZONE Forums

Red = Jett
Teal = Explorer
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Jun 29, 2013
Messages
44
Reaction score
2
My revpacketop says CREATE_CHAR is 0x45

I am able to create every character besides Adventurer, Hero and Luminous. The rest can be created fine, so i'm pretty sure the its not something to do with the OP code for CREATE_CHAR.

RecvPacketOpcode.JAVA
Code:
package handling;

public enum RecvPacketOpcode implements WritableIntValueHolder {


    /*
     * General Oopcodes.
     * Used for general purposes.
     */
    RSA_KEY(false),
    STRANGE_DATA,
    LOGIN_REDIRECTOR(false, (short) 0x01),
    CRASH_INFO(false, (short) 0x2E),
    PONG(false, (short) 0x2F),
    /*
     * Login Opcodes.
     * Used for login packets.
     */
    GUEST_LOGIN(true, (short) 0x16),
    SERVERSTATUS_REQUEST(false, (short) 0x1D),
    TOS(true, (short) 0x1D),
    VIEW_SERVERLIST(false, (short) 0x21),
    SERVERLIST_REQUEST(false, (short) 0x22),
    REDISPLAY_SERVERLIST(true, (short) 0x23),
    CHAR_SELECT_NO_PIC(false, (short) 0x25),
    PLAYER_LOGGEDIN(false, (short) 0x27),
    CHECK_CHAR_NAME(true, (short) 0x28),
    DELETE_CHAR(true, (short) 0x2C),
    AUTH_REQUEST(false, (short) 0x30),
    CHAR_SELECT(true, (short) 0x31),
    VIEW_REGISTER_PIC(true, (short) 0x32),
    VIEW_SELECT_PIC(true, (short) 0x35),
    CLIENT_START(false, (short) 0x38),
    CLIENT_FAILED(false, (short) 0x39),
    PART_TIME_JOB(true, (short) 0x3B),
    CHARACTER_CARD(true, (short) 0x3C),
    ENABLE_LV50_CHAR(true, (short) 0x3D),
    CREATE_LV50_CHAR(true, (short) 0x3E),
    ENABLE_SPECIAL_CREATION(true, (short) 0x3E),
    CLIENT_HELLO(false, (short) 0x3F),
    LOGIN_PASSWORD(false, (short) 0x40),
    CREATE_SPECIAL_CHAR(true, (short) 0x41),
    CHARLIST_REQUEST(false, (short) 0x43),
    CREATE_CHAR(false, (short) 0x45),
    CREATE_ULTIMATE(false, (short) 0x999),//46
    AUTH_SECOND_PASSWORD(true, (short) 0x47),
    CLIENT_ERROR(false, (short) 0x4A),
    /*
     * Channel Opcodes.
     * Used for in-game packets.
     */
    CHANGE_MAP(true, (short) 0x51),
    CHANGE_CHANNEL(true, (short) 0x52),
    ENTER_CASH_SHOP(true, (short) 0x54),
    ENTER_FARM(true, (short) 0x57),
    ENTER_AZWAN(true, (short) 0x4D),
    ENTER_AZWAN_EVENT(true, (short) 0x4A),
    LEAVE_AZWAN(true, (short) 0x4B),
    ENTER_PVP(true, (short) 0x50),
    ENTER_PVP_PARTY(true, (short) 0x50),
    LEAVE_PVP(true, (short) 0x999),
    MOVE_PLAYER(true, (short) 0x5E),
    CANCEL_CHAIR(true, (short) 0x60),
    USE_CHAIR(true, (short) 0x61),
    CLOSE_RANGE_ATTACK(true, (short) 0x62),
    RANGED_ATTACK(true, (short) 0x63),
    MAGIC_ATTACK(true, (short) 0x64),
    PASSIVE_ENERGY(true, (short) 0x65),
    TAKE_DAMAGE(true, (short) 0x68),
    PVP_ATTACK(true, (short) 0x69),
    GENERAL_CHAT(true, (short) 0x6A),
    CLOSE_CHALKBOARD(true, (short) 0x6B),
    FACE_EXPRESSION(true, (short) 0x6C),
    FACE_ANDROID(true, (short) 0x6D),
    USE_ITEMEFFECT(true, (short) 0x6E),
    WHEEL_OF_FORTUNE(true, (short) 0x6F),
    USE_TITLE(true, (short) 0x71),//70
    ANGELIC_CHANGE(true, (short) 0x72),//71
    CHANGE_CODEX_SET(true, (short) 0x7A),//79
    CODEX_UNK(true, (short) 0x7B),
    MONSTER_BOOK_DROPS(true, (short) 0x7D),//7C
    NPC_TALK(true, (short) 0x7F),//7E
    NPC_TALK_MORE(true, (short) 0x81),//80
    NPC_SHOP(true, (short) 0x82),//81
    STORAGE(true, (short) 0x84),//83
    USE_HIRED_MERCHANT(true, (short) 0x85),//84
    MERCH_ITEM_STORE(true, (short) 0x86),//85
    PACKAGE_OPERATION(true, (short) 0x7F),//87
    MECH_CANCEL(true, (short) 0x88),//87
    OWL(true, (short) 0x8C),//8A
    OWL_WARP(true, (short) 0x8D),//8A
    ITEM_SORT(true, (short) 0x92),//90
    ITEM_GATHER(true, (short) 0x93),//91
    ITEM_MOVE(true, (short) 0x94),//92
    MOVE_BAG(true, (short) 0x95),//93
    SWITCH_BAG(true, (short) 0x96),//94
    USE_ITEM(true, (short) 0x98),//96
    CANCEL_ITEM_EFFECT(true, (short) 0x99),//97
    USE_SUMMON_BAG(true, (short) 0x9B),//99
    PET_FOOD(true, (short) 0x9C),//9A
    USE_MOUNT_FOOD(true, (short) 0x9D),//9B
    USE_SCRIPTED_NPC_ITEM(true, (short) 0x9E),//9C
    USE_RECIPE(true, (short) 0x9F),//9D
    USE_NEBULITE(true, (short) 0xA0),//9E
    USE_ALIEN_SOCKET(true, (short) 0xA1),//9F
    USE_ALIEN_SOCKET_RESPONSE(true, (short) 0xA2),//A0
    USE_NEBULITE_FUSION(true, (short) 0xA3),//A1
    USE_CASH_ITEM(true, (short) 0xA4),//A2
    USE_CATCH_ITEM(true, (short) 0xA6),//A4
    USE_SKILL_BOOK(true, (short) 0xAB),//A9
    USE_EXP_POTION(true, (short) 0xAC),//A8
    TOT_GUIDE(true, (short) 0xB5),
    USE_OWL_MINERVA(true, (short) 0xBC),//BA
    USE_TELE_ROCK(true, (short) 0xBD),//BB
    USE_RETURN_SCROLL(true, (short) 0xBE),//BC
    USE_UPGRADE_SCROLL(true, (short) 0xBF),//BD
    USE_FLAG_SCROLL(true, (short) 0xC0),//BE
    USE_EQUIP_SCROLL(true, (short) 0xC1),//BF
    USE_POTENTIAL_SCROLL(true, (short) 0xC6),//C3
    USE_ABYSS_SCROLL(true, (short) 0xC7),//C4
    USE_CARVED_SEAL(true, (short) 0xC8),//C5
    USE_BAG(true, (short) 0xC9),
    USE_CRAFTED_CUBE(true, (short) 0xCA),
    USE_MAGNIFY_GLASS(true, (short) 0xCD),//CA
    DISTRIBUTE_AP(true, (short) 0xD0),//CD
    AUTO_ASSIGN_AP(true, (short) 0xD1),//CE
    HEAL_OVER_TIME(true, (short) 0xD2),//CF
    DISTRIBUTE_SP(true, (short) 0xD5),//D2
    SPECIAL_MOVE(true, (short) 0xD6),//D3
    CANCEL_BUFF(true, (short) 0xD7),//D4
    SKILL_EFFECT(true, (short) 0xD8),//D5
    MESO_DROP(true, (short) 0xD9),//D6
    GIVE_FAME(true, (short) 0xDA),//D7
    CHAR_INFO_REQUEST(true, (short) 0xDC),//D9
    SPAWN_PET(true, (short) 0xDD),//DA
    GET_BOOK_INFO(true, (short) 0xDF),//DC
    USE_FAMILIAR(true, (short) 0xE0),//DD
    SPAWN_FAMILIAR(true, (short) 0xE1),//DE
    RENAME_FAMILIAR(true, (short) 0xE2),//DF
    PET_BUFF(true, (short) 0xE3),//E0
    CANCEL_DEBUFF(true, (short) 0xE4),//E1
    CHANGE_MAP_SPECIAL(true, (short) 0xE5),//e2
    USE_INNER_PORTAL(true, (short) 0xE6),//E3
    TROCK_ADD_MAP(true, (short) 0xE7),//e4
    LIE_DETECTOR(true, (short) 0xE8),//E5
    LIE_DETECTOR_SKILL(true, (short) 0xE9),//E6
    LIE_DETECTOR_RESPONSE(true, (short) 0xEA),//E7
    REPORT(true, (short) 0xEC),//E9
    QUEST_ACTION(true, (short) 0xED),//EA
    REISSUE_MEDAL(true, (short) 0xEE),//EB
//    BUFF_RESPONSE(true, (short) 0xEF),//EC
    SKILL_MACRO(true, (short) 0xF3),//F0
    REWARD_ITEM(true, (short) 0xF5),//F2
    ITEM_MAKER(true, (short) 0x999),
    REPAIR_ALL(true, (short) 0xFE),//C7
    REPAIR(true, (short) 0xFF),//C8
    SOLOMON(true, (short) 0xC9),
    GACH_EXP(true, (short) 0xCA),
    FOLLOW_REQUEST(true, (short) 0xFD),
    PQ_REWARD(true, (short) 0xFE),
    FOLLOW_REPLY(true, (short) 0x101),
    AUTO_FOLLOW_REPLY(true, (short) 0x999),
    USE_TREASURE_CHEST(true, (short) 0x999),
    PROFESSION_INFO(true, (short) 0x102),
    USE_POT(true, (short) 0x999),//D6
    CLEAR_POT(true, (short) 0xD7),
    FEED_POT(true, (short) 0xD8),
    CURE_POT(true, (short) 0xD9),
    REWARD_POT(true, (short) 0xDA),
    AZWAN_REVIVE(true, (short) 0xDB),
    USE_COSMETIC(true, (short) 0x999),
    INNER_CIRCULATOR(true, (short) 0xDF),
    PVP_RESPAWN(true, (short) 0xE0),
    GAIN_FORCE(true, (short) 0xE1),
    ADMIN_CHAT(true, (short) 0x126),//119
    PARTYCHAT(true, (short) 0x127),//120
    COMMAND(true, (short) 0x129),//121
    SPOUSE_CHAT(true, (short) 0x12A),//122
    MESSENGER(true, (short) 0x12B),//123
    PLAYER_INTERACTION(true, (short) 0x12C),//124
    PARTY_OPERATION(true, (short) 0x12D),//125
    DENY_PARTY_REQUEST(true, (short) 0x12E),//126
    ALLOW_PARTY_INVITE(true, (short) 0x12F),//127
    EXPEDITION_OPERATION(true, (short) 0x130),//128
    EXPEDITION_LISTING(true, (short) 0x131),//129
    GUILD_OPERATION(true, (short) 0x132),//12A
    DENY_GUILD_REQUEST(true, (short) 0x133),//12B
    ADMIN_COMMAND(true, (short) 0x134),//12C
    ADMIN_LOG(true, (short) 0x135),//12D
    BUDDYLIST_MODIFY(true, (short) 0x137), //12E
    NOTE_ACTION(true, (short) 0x999),//127
    USE_DOOR(true, (short) 0x13A),//131
    USE_MECH_DOOR(true, (short) 0x13B),//132
    CHANGE_KEYMAP(true, (short) 0x13D), //134
    RPS_GAME(true, (short) 0x135),
    RING_ACTION(true, (short) 0x136),
    WEDDING_ACTION(true, (short) 0x137),
    ALLIANCE_OPERATION(true, (short) 0x13B),
    DENY_ALLIANCE_REQUEST(true, (short) 0x13C),
    REQUEST_FAMILY(true, (short) 0x999),//13D
    OPEN_FAMILY(true, (short) 0x13E),//13E
    FAMILY_OPERATION(true, (short) 0x13F),
    DELETE_JUNIOR(true, (short) 0x140),
    DELETE_SENIOR(true, (short) 0x141),
    ACCEPT_FAMILY(true, (short) 0x142),
    USE_FAMILY(true, (short) 0x143),
    FAMILY_PRECEPT(true, (short) 0x144),
    FAMILY_SUMMON(true, (short) 0x145),
    BBS_OPERATION(true, (short) 0x150),//10B
    SOLOMON_EXP(true, (short) 0x151),//10C
    NEW_YEAR_CARD(true, (short) 0x11E),
    XMAS_SURPRISE(true, (short) 0x111),
    TWIN_DRAGON_EGG(true, (short) 0x112),
    ARAN_COMBO(true, (short) 0x15E),//0x152
    TRANSFORM_PLAYER(true, (short) 0x999),
    CYGNUS_SUMMON(true, (short) 0x999),
    CRAFT_DONE(true, (short) 0x162),//157
    CRAFT_EFFECT(true, (short) 0x163),//158
    CRAFT_MAKE(true, (short) 0x164),//159
    CHANGE_ROOM_CHANNEL(true, (short) 0x169),//15D
    EVENT_CARD(true, (short) 0x15E),
    CHOOSE_SKILL(true, (short) 0x15F),
    SKILL_SWIPE(true, (short) 0x160),
    VIEW_SKILLS(true, (short) 0x999),//161
    CANCEL_OUT_SWIPE(true, (short) 0x162),
    YOUR_INFORMATION(true, (short) 0x163),
    FIND_FRIEND(true, (short) 0x164),
    PINKBEAN_CHOCO_OPEN(true, (short) 0x165),
    PINKBEAN_CHOCO_SUMMON(true, (short) 0x166),
    BUY_SILENT_CRUSADE(true, (short) 0x127),
    BUDDY_ADD(true, (short) 0x1A2),
    MOVE_PET(true, (short) 0x1B8),//1A8
    PET_CHAT(true, (short) 0x1B9),//1A9
    PET_COMMAND(true, (short) 0x1BA),//1AA
    PET_LOOT(true, (short) 0x1BB),//1AB
    PET_AUTO_POT(true, (short) 0x1BC),//1AC
    PET_IGNORE(true, (short) 0x1BD),//1AD
    MOVE_HAKU(true, (short) 0x1C1),//1B1
    CHANGE_HAKU(true, (short) 0x1C2),//1B2
    //HAKU_1D8(true, (short) 0x1D8),//test
    //HAKU_1D9(true, (short) 0x1D9),//test
    MOVE_SUMMON(true, (short) 0x1C8),//1b8
    SUMMON_ATTACK(true, (short) 0x1C9),//1B9
    DAMAGE_SUMMON(true, (short) 0x1CA),//1BA
    SUB_SUMMON(true, (short) 0x1CB),//1BB
    REMOVE_SUMMON(true, (short) 0x1CC),//1BC
    PVP_SUMMON(true, (short) 0x1CE),//1BE
    MOVE_DRAGON(true, (short) 0x1CF),//1C0
    USE_ITEM_QUEST(true, (short) 0x1D2),//1C4
    MOVE_ANDROID(true, (short) 0x1D3),//1C5
    UPDATE_QUEST(true, (short) 0x1D5),//1C7//+16
    QUEST_ITEM(true, (short) 0x1D6),//1C8
    MOVE_FAMILIAR(true, (short) 0x1DC),//1CC
    TOUCH_FAMILIAR(true, (short) 0x1DD),//1CD
    ATTACK_FAMILIAR(true, (short) 0x1DE),//1CE
    REVEAL_FAMILIAR(true, (short) 0x1DF),//1CF
    QUICK_SLOT(true, (short) 0x1D0),
    PAM_SONG(true, (short) 0x1D8),
    MOVE_LIFE(true, (short) 0x208),//1EC
    AUTO_AGGRO(true, (short) 0x1EE),
    FRIENDLY_DAMAGE(true, (short) 0x999),//1ef
    MONSTER_BOMB(true, (short) 0x1F0),
    HYPNOTIZE_DMG(true, (short) 0x1F1),
    MOB_BOMB(true, (short) 0x1F5),
    MOB_NODE(true, (short) 0x1F6),
    DISPLAY_NODE(true, (short) 0x1F7),
    MONSTER_CARNIVAL(true, (short) 0x1F8),
    NPC_ACTION(true, (short) 0x222),//203
    ITEM_PICKUP(true, (short) 0x227),//208
    DAMAGE_REACTOR(true, (short) 0x22A),//20B
    TOUCH_REACTOR(true, (short) 0x22B),//20C
    CLICK_REACTOR(true, (short) 0x22C),//20D
    MAKE_EXTRACTOR(true, (short) 0x22F),//210
    UPDATE_ENV(true, (short) 0x17E),
    SNOWBALL(true, (short) 0x182),
    LEFT_KNOCK_BACK(true, (short) 0x183),
    CANDY_RANKING(true, (short) 0x185),//
    COCONUT(true, (short) 0x186),
    SHIP_OBJECT(true, (short) 0x999),
    PARTY_SEARCH_START(true, (short) 0x197),
    PARTY_SEARCH_STOP(true, (short) 0x198),
    START_HARVEST(true, (short) 0x24E),//22F
    STOP_HARVEST(true, (short) 0x24F),//230
    QUICK_MOVE(true, (short) 0x19E),
    CS_UPDATE(true, (short) 0x28A),//257
    BUY_CS_ITEM(true, (short) 0x28B),//258
    COUPON_CODE(true, (short) 0x28C),//259
    CASH_CATEGORY(true, (short) 0x291),//25D
    PLACE_FARM_OBJECT(false, (short) 0x278),
    FARM_SHOP_BUY(false, (short) 0x27D),
    FARM_COMPLETE_QUEST(false, (short) 0x281),
    FARM_NAME(false, (short) 0x282),
    HARVEST_FARM_BUILDING(false, (short) 0x283),
    USE_FARM_ITEM(false, (short) 0x284),
    RENAME_MONSTER(false, (short) 0x294),
    NURTURE_MONSTER(false, (short) 0x295),
    EXIT_FARM(false, (short) 0x299),
    FARM_QUEST_CHECK(false, (short) 0x29D),
    FARM_FIRST_ENTRY(false, (short) 0x2A8),
    GOLDEN_HAMMER(true, (short) 0x2A4),//1BB
    VICIOUS_HAMMER(true, (short) 0x1BD),
    PYRAMID_BUY_ITEM(true, (short) 0x999),
    CLASS_COMPETITION(true, (short) 0x999),
    MAGIC_WHEEL(true, (short) 0x2EB),
    REWARD(true, (short) 0x2EC),
    BLACK_FRIDAY(true, (short) 0x2BE),
    UPDATE_RED_LEAF(true, (short) 0x29C),
    //Not Placed:
    SPECIAL_STAT(false, (short) 0x10C),//107
    UPDATE_HYPER(true, (short) 0x171),//
    RESET_HYPER(true, (short) 0x172),//
    DRESSUP_TIME(true, (short) 0x17F),
    DF_COMBO(true, (short) 0x10F),
    BUTTON_PRESSED(true, (short) 0x1E3),//1D3
    OS_INFORMATION(true, (short) 0x1E6),//1D6
    LUCKY_LOGOUT(true, (short) 0x2B6),
    MESSENGER_RANKING(true, (short) 0x1DD);
    private short code = -2;


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public void setValue(short code) {
        this.code = code;
    }


    @[I][B][URL="http://forum.ragezone.com/members/2000004426.html"]Override[/URL][/B][/I]
    public final short getValue() {
        return code;
    }
    private final boolean CheckState;


    private RecvPacketOpcode() {
        this.CheckState = true;
    }


    private RecvPacketOpcode(final boolean CheckState) {
        this.CheckState = CheckState;
    }


    private RecvPacketOpcode(final boolean CheckState, short code) {
        this.CheckState = CheckState;
        this.code = code;
    }


    public final boolean NeedsChecking() {
        return CheckState;
    }


    public static String nameOf(short value) {
        for (RecvPacketOpcode header : RecvPacketOpcode.values()) {
            if (header.getValue() == value) {
                return header.name();
            }
        }
        return "UNKNOWN";
    }
}

Comparison between Jett Creation and Adventurer Creation Screenshot
(Second last being Jett, Last being Adventurer)
lawrence8529 - v144.3 Character Creation Problem - RaGEZONE Forums

Red = Jett
Teal = Explorer
Update your handler:thumbup1:
 
Upvote 0
Junior Spellweaver
Joined
Jan 2, 2014
Messages
150
Reaction score
50
If your not able to click any buttons when you try to create your character it means it had a error reading the packet, from looks its a bit smaller than adventurer one, Does astralms have a Log_Packet_Except file? If so could you provide me with the error?

Might be because Jett automatically gets set a certain hair,eye,etc and doesn't need to read that part of the packet.
 
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
If your not able to click any buttons when you try to create your character it means it had a error reading the packet, from looks its a bit smaller than adventurer one, Does astralms have a Log_Packet_Except file? If so could you provide me with the error?

Might be because Jett automatically gets set a certain hair,eye,etc and doesn't need to read that part of the packet.

Its not only Jett; Resistance, Aran, Evan can all be created with items in tact. fine but Kanna, Hayato get created naked. It's only Explorer that can not be created

I accidentally deleted the Except file, how do I create another?



EDIT:

LOG_PACKET_EXCEPT
Code:
------------------------ 2014-10-31 22:25:47 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:25:47 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9A 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:25:54 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:25:54 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:26:39 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:26:39 ------------------------
Packet: 39
All: 27 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:27:09 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:27:09 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:27:18 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:27:18 ------------------------
Packet: 39
All: 27 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 71 21 3C 00 00 00 00 00 4A CA 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:28:11 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:11 ------------------------
Packet: 94
All: 5E 00 08 9D A8 EB C8 D0 3D 7F 0B 00 00 00 00 00 73 FF 23 00 DD 00 00 00 02 00 A6 FF 23 00 DD 00 00 00 04 00 00 00 00 00 02 E6 00 00 E4 FF 23 00 DD 00 00 00 01 00 00 00 00 00 02 18 01 11 44 44 44 44 44 44 44 44 04 73 FF 23 00 E4 FF 23 00
Now: 11 44 44 44 44 44 44 44 44 04 73 FF 23 00 E4 FF 23 00
------------------------ 2014-10-31 22:28:12 ------------------------
java.lang.NullPointerException
    at handling.channel.handler.InterServerHandler.Loggedin(InterServerHandler.java:320)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:645)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:12 ------------------------
Packet: 39
All: 27 00 00 00 00 00 9B 00 00 00 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
Now: 00 00 00 00 00 00 F2 85 F7 76 00 00 00 00 6D 64 00 00 00 00 00 00 00 00 00 00
------------------------ 2014-10-31 22:28:46 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:46 ------------------------
Packet: 94
All: 5E 00 08 D0 EB 54 72 F4 AF 7F 0B 00 00 00 00 00 99 09 4E 01 DD 00 00 00 05 00 99 09 4D 01 DD 00 00 00 73 00 00 00 00 00 02 00 00 00 99 09 4D 01 DD 00 00 00 00 00 00 00 00 00 06 00 00 01 DD 00 56 FD 06 00 00 00 E1 09 D8 00 DD 00 EA FF 00 00 00 00 00 00 06 4A 01 00 0A 0A F5 00 DD 00 51 01 00 00 00 00 00 00 06 B4 00 11 44 44 44 44 44 44 44 44 04 99 09 D8 00 0A 0A 4E 01
Now: 11 44 44 44 44 44 44 44 44 04 99 09 D8 00 0A 0A 4E 01
------------------------ 2014-10-31 22:28:47 ------------------------
java.lang.NullPointerException
    at client.MapleCharacter.sendDestroyData(MapleCharacter.java:5313)
    at server.maps.MapleMap.updateMapObjectVisibility(MapleMap.java:3087)
    at server.maps.MapleMap.movePlayer(MapleMap.java:3119)
    at handling.channel.handler.PlayerHandler.MovePlayer(PlayerHandler.java:1721)
    at handling.MapleServerHandler.handlePacket(MapleServerHandler.java:714)
    at handling.MapleServerHandler.messageReceived(MapleServerHandler.java:464)
    at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Unknown Source)


------------------------ 2014-10-31 22:28:47 ------------------------
Packet: 94
All: 5E 00 08 D0 EB 54 72 DC 22 65 07 00 00 00 00 00 B0 06 4E 01 96 00 00 00 01 00 FD 06 4E 01 96 00 00 00 5E 00 00 00 00 00 02 FE 01 11 44 44 44 44 44 44 44 44 04 B0 06 4E 01 FD 06 4E 01
Now: 11 44 44 44 44 44 44 44 44 04 B0 06 4E 01 FD 06 4E 01
 
Last edited:
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
Whats on InterServerHandler.java Line 320?



InterServerHandler.java
Code:
/* This file is part of the OdinMS Maple Story Server
 Copyright (C) 2008 ~ 2010 Patrick Huy <patrick.huy@frz.cc> 
 Matthias Butz <matze@odinms.de>
 Jan Christian Meyer <vimes@odinms.de>


 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License version 3
 as published by the Free Software Foundation. You may not use, modify
 or distribute this program under any other version of the
 GNU Affero General Public License.


 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 Affero General Public License for more details.


 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package handling.channel.handler;


import client.MapleCharacter;
import client.MapleClient;
import client.MapleQuestStatus;
import client.SkillFactory;
import client.inventory.Equip;
import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType;
import constants.GameConstants;
import handling.cashshop.CashShopServer;
import handling.cashshop.handler.CashShopOperation;
import handling.channel.ChannelServer;
import handling.farm.FarmServer;
import handling.farm.handler.FarmOperation;
import handling.login.LoginServer;
import handling.world.*;
import handling.world.exped.MapleExpedition;
import handling.world.guild.*;
import java.util.ArrayList;
import java.util.List;
import scripting.NPCScriptManager;
import server.*;
import server.maps.FieldLimitType;
import server.maps.MapleMap;
import server.quest.*;
import tools.FileoutputUtil;
import tools.Triple;
import tools.data.LittleEndianAccessor;
import tools.packet.CField;
import tools.packet.CWvsContext;
import tools.packet.CWvsContext.BuddylistPacket;
import tools.packet.CWvsContext.GuildPacket;
import tools.packet.CSPacket;
import tools.packet.FarmPacket;
import tools.packet.JobPacket.AvengerPacket;


public class InterServerHandler {


    public static void EnterCS(final MapleClient c, final MapleCharacter chr) {
        if (chr.hasBlockedInventory() || chr.getMap() == null || chr.getEventInstance() != null || c.getChannelServer() == null) {
            c.getSession().write(CField.serverBlocked(2));
            CharacterTransfer farmtransfer = FarmServer.getPlayerStorage().getPendingCharacter(chr.getId());
            if (farmtransfer != null) {
                c.getSession().write(FarmPacket.farmMessage("You cannot move into Cash Shop while visiting your farm, yet."));
            }
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in a minute or less.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        ChannelServer ch = ChannelServer.getInstance(c.getChannel());
        chr.changeRemoval();
        if (chr.getMessenger() != null) {
            MapleMessengerCharacter messengerplayer = new MapleMessengerCharacter(chr);
            World.Messenger.leaveMessenger(chr.getMessenger().getId(), messengerplayer);
        }
        PlayerBuffStorage.addBuffsToStorage(chr.getId(), chr.getAllBuffs());
        PlayerBuffStorage.addCooldownsToStorage(chr.getId(), chr.getCooldowns());
        PlayerBuffStorage.addDiseaseToStorage(chr.getId(), chr.getAllDiseases());
        World.ChannelChange_Data(new CharacterTransfer(chr), chr.getId(), -10);
        ch.removePlayer(chr);
        c.updateLoginState(3, c.getSessionIPAddress());
        chr.saveToDB(false, false);
        chr.getMap().removePlayer(chr);
        c.getSession().write(CField.getChannelChange(c, Integer.parseInt(CashShopServer.getIP().split(":")[1])));
        c.setPlayer(null);
        c.setReceiving(false);
    }


    public static void EnterFarm(final MapleClient c, final MapleCharacter chr) {
        if (chr.hasBlockedInventory() || chr.getMap() == null || chr.getEventInstance() != null || c.getChannelServer() == null) {
            c.getSession().write(CField.serverBlocked(2));
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in a minute or less.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        ChannelServer ch = ChannelServer.getInstance(c.getChannel());
        chr.changeRemoval();
        if (chr.getMessenger() != null) {
            MapleMessengerCharacter messengerplayer = new MapleMessengerCharacter(chr);
            World.Messenger.leaveMessenger(chr.getMessenger().getId(), messengerplayer);
        }
        PlayerBuffStorage.addBuffsToStorage(chr.getId(), chr.getAllBuffs());
        PlayerBuffStorage.addCooldownsToStorage(chr.getId(), chr.getCooldowns());
        PlayerBuffStorage.addDiseaseToStorage(chr.getId(), chr.getAllDiseases());
        World.ChannelChange_Data(new CharacterTransfer(chr), chr.getId(), -30);
        ch.removePlayer(chr);
        c.updateLoginState(3, c.getSessionIPAddress());
        chr.saveToDB(false, false);
        chr.getMap().removePlayer(chr);
        c.getSession().write(CField.getChannelChange(c, Integer.parseInt(FarmServer.getIP().split(":")[1])));
        c.setPlayer(null);
        c.setReceiving(false);
    }


    public static void Loggedin(final int playerid, final MapleClient c) {
        try {
        MapleCharacter player;
        CharacterTransfer transfer = CashShopServer.getPlayerStorage().getPendingCharacter(playerid);
        if (transfer != null) {
//            c.getSession().write(CWvsContext.BuffPacket.cancelBuff());
            CashShopOperation.EnterCS(transfer, c);
            return;
        }
        CharacterTransfer farmtransfer = FarmServer.getPlayerStorage().getPendingCharacter(playerid);
        if (farmtransfer != null) {
            FarmOperation.EnterFarm(farmtransfer, c);
            return;
        }
        for (ChannelServer cserv : ChannelServer.getAllInstances()) {
            transfer = cserv.getPlayerStorage().getPendingCharacter(playerid);
            if (transfer != null) {
                c.setChannel(cserv.getChannel());
                break;
            }
        }


        if (transfer == null) { // Player isn't in storage, probably isn't CC
            Triple<String, String, Integer> ip = LoginServer.getLoginAuth(playerid);
            String s = c.getSessionIPAddress();
            if (ip == null || !s.substring(s.indexOf('/') + 1, s.length()).equals(ip.left)) {
                if (ip != null) {
                    LoginServer.putLoginAuth(playerid, ip.left, ip.mid, ip.right);
                }
                c.getSession().close();
                return;
            }
            c.setTempIP(ip.mid);
            c.setChannel(ip.right);
            player = MapleCharacter.loadCharFromDB(playerid, c, true);
        } else {
            player = MapleCharacter.ReconstructChr(transfer, c, true);
        }
        final ChannelServer channelServer = c.getChannelServer();
        c.setPlayer(player);
        c.setAccID(player.getAccountID());


        if (!c.CheckIPAddress()) { // Remote hack
            c.getSession().close();
            return;
        }
        final int state = c.getLoginState();
        boolean allowLogin = false;
        if (state == MapleClient.LOGIN_SERVER_TRANSITION || state == MapleClient.CHANGE_CHANNEL || state == MapleClient.LOGIN_NOTLOGGEDIN) {
            allowLogin = !World.isCharacterListConnected(c.loadCharacterNames(c.getWorld()));
        }
        if (!allowLogin) {
            c.setPlayer(null);
            c.getSession().close();
            return;
        }
        c.updateLoginState(MapleClient.LOGIN_LOGGEDIN, c.getSessionIPAddress());
        channelServer.addPlayer(player);


        player.giveCoolDowns(PlayerBuffStorage.getCooldownsFromStorage(player.getId()));
        player.silentGiveBuffs(PlayerBuffStorage.getBuffsFromStorage(player.getId()));
        player.giveSilentDebuff(PlayerBuffStorage.getDiseaseFromStorage(player.getId()));


        c.getSession().write(CWvsContext.updateCrowns(new int[]{-1, -1, -1, -1, -1}));
        c.getSession().write(CField.getCharInfo(player));
        PlayersHandler.calcHyperSkillPointCount(c);
        c.getSession().write(CSPacket.enableCSUse());
        c.getSession().write(CWvsContext.updateSkills(c.getPlayer().getSkills(), false));//skill to 0 "fix"


        player.getMap().addPlayer(player);
        try {
            // Start of buddylist
            final int buddyIds[] = player.getBuddylist().getBuddyIds();
            World.Buddy.loggedOn(player.getName(), player.getId(), c.getChannel(), buddyIds);
            if (player.getParty() != null) {
                final MapleParty party = player.getParty();
                World.Party.updateParty(party.getId(), PartyOperation.LOG_ONOFF, new MaplePartyCharacter(player));


                if (party != null && party.getExpeditionId() > 0) {
                    final MapleExpedition me = World.Party.getExped(party.getExpeditionId());
                    if (me != null) {
                        c.getSession().write(CWvsContext.ExpeditionPacket.expeditionStatus(me, false, true));
                    }
                }
            }
            final CharacterIdChannelPair[] onlineBuddies = World.Find.multiBuddyFind(player.getId(), buddyIds);
            for (CharacterIdChannelPair onlineBuddy : onlineBuddies) {
                player.getBuddylist().get(onlineBuddy.getCharacterId()).setChannel(onlineBuddy.getChannel());
            }
            c.getSession().write(BuddylistPacket.updateBuddylist(player.getBuddylist().getBuddies()));


            // Start of Messenger
            final MapleMessenger messenger = player.getMessenger();
            if (messenger != null) {
                World.Messenger.silentJoinMessenger(messenger.getId(), new MapleMessengerCharacter(c.getPlayer()));
                World.Messenger.updateMessenger(messenger.getId(), c.getPlayer().getName(), c.getChannel());
            }


            // Start of Guild and alliance
            if (player.getGuildId() > 0) {
                World.Guild.setGuildMemberOnline(player.getMGC(), true, c.getChannel());
                c.getSession().write(GuildPacket.showGuildInfo(player));
                final MapleGuild gs = World.Guild.getGuild(player.getGuildId());
                if (gs != null) {
                    final List<byte[]> packetList = World.Alliance.getAllianceInfo(gs.getAllianceId(), true);
                    if (packetList != null) {
                        for (byte[] pack : packetList) {
                            if (pack != null) {
                                c.getSession().write(pack);
                            }
                        }
                    }
                } else { //guild not found, change guild id
                    player.setGuildId(0);
                    player.setGuildRank((byte) 5);
                    player.setAllianceRank((byte) 5);
                    player.saveGuildStatus();
                }
            }
            if (player.getFamilyId() > 0) {
                World.Family.setFamilyMemberOnline(player.getMFC(), true, c.getChannel());
            }
            //c.getSession().write(FamilyPacket.getFamilyData());
            //c.getSession().write(FamilyPacket.getFamilyInfo(player));
        } catch (Exception e) {
            FileoutputUtil.outputFileError(FileoutputUtil.Login_Error, e);
        }
        player.getClient().getSession().write(CWvsContext.broadcastMsg(channelServer.getServerMessage()));
        player.sendMacros();
        player.showNote();
        player.sendImp();
        player.updatePartyMemberHP();
        player.startFairySchedule(false);
        player.baseSkills(); //fix people who've lost skills.
        if (GameConstants.isZero(player.getJob())) {
            c.getSession().write(CWvsContext.updateSkills(player.getSkills(), false));
        }
        c.getSession().write(CField.getKeymap(player.getKeyLayout()));
        player.updatePetAuto();
        player.expirationTask(true, transfer == null);
        c.getSession().write(CWvsContext.updateMaplePoint(player.getCSPoints(2)));
        if (player.getJob() == 132) { // DARKKNIGHT
            player.checkBerserk();
        }
        if (GameConstants.isXenon(player.getJob())) {
            player.startXenonSupply();
        }
        if (GameConstants.isDemonAvenger(player.getJob())) {
            c.getSession().write(AvengerPacket.giveAvengerHpBuff(player.getStat().getHp()));
        }
        player.spawnClones();
        player.spawnSavedPets();
        if (player.getStat().equippedSummon > 0) {
            SkillFactory.getSkill(player.getStat().equippedSummon + (GameConstants.getBeginnerJob(player.getJob()) * 1000)).getEffect(1).applyTo(player);
        }
        MapleQuestStatus stat = player.getQuestNoAdd(MapleQuest.getInstance(GameConstants.PENDANT_SLOT));
        c.getSession().write(CWvsContext.pendantSlot(stat != null && stat.getCustomData() != null && Long.parseLong(stat.getCustomData()) > System.currentTimeMillis()));
        stat = player.getQuestNoAdd(MapleQuest.getInstance(GameConstants.QUICK_SLOT));
        c.getSession().write(CField.quickSlot(stat != null && stat.getCustomData() != null ? stat.getCustomData() : null));
        // c.getSession().write(CWvsContext.getFamiliarInfo(player));
        MapleInventory equipped = player.getInventory(MapleInventoryType.EQUIPPED);
        MapleInventory equip = player.getInventory(MapleInventoryType.EQUIP);
        List<Short> slots = new ArrayList<>();
        for (Item item : equipped.newList()) {
            slots.add(item.getPosition());
        }
        for (short slot : slots) {
            if (GameConstants.isIllegalItem(equipped.getItem(slot).getItemId())) {
                MapleInventoryManipulator.removeFromSlot(player.getClient(), MapleInventoryType.EQUIPPED, slot, (short) 1, false);
            }
        }
        //c.getSession().write(CWvsContext.shopDiscount(ServerConstants.SHOP_DISCOUNT));
        //List<Pair<Integer, String>> npcs = new ArrayList<>();
        //npcs.add(new Pair<>(9070006, "Why...why has this happened to me? My knightly honor... My knightly pride..."));
        //npcs.add(new Pair<>(9000021, "Are you enjoying the event?"));
        //c.getSession().write(NPCPacket.setNpcScriptable(npcs));
        //c.getSession().write(NPCPacket.setNPCScriptable());
        player.updateReward();
        //        player.setDeathCount(99);
        //        c.getSession().write(CField.EffectPacket.updateDeathCount(99)); //for fun
        player.getClient().getSession().write(CWvsContext.broadcastMsg(channelServer.getServerMessage()));
        Thread.sleep(3100);
                if (c.getPlayer().getLevel() < 11) { 
        NPCScriptManager.getInstance().start(c, 9000108, "LoginTot");
        } else if (c.getPlayer().getLevel() > 10) { 
        NPCScriptManager.getInstance().start(c, 9000108, "LoginRed");
        }
  
        if (!GameConstants.isZero(player.getJob())) { //tell all players 2 login so u can remove this from ther
            Equip a = (Equip) player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
            if (GameConstants.getWeaponType(a.getItemId()) == MapleWeaponType.LONG_SWORD) {
                player.getInventory(MapleInventoryType.EQUIPPED).removeItem((short) -11);
            }
            Equip b = (Equip) player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
            if (GameConstants.getWeaponType(b.getItemId()) == MapleWeaponType.BIG_SWORD) {
                player.getInventory(MapleInventoryType.EQUIPPED).removeItem((short) -10);
            }
        }
        } catch (InterruptedException e) {
        }
   }
    
    public static final void ChangeChannel(final LittleEndianAccessor slea, final MapleClient c, final MapleCharacter chr, final boolean room) {
        if (chr == null || chr.hasBlockedInventory() || chr.getEventInstance() != null || chr.getMap() == null || chr.isInBlockedMap() || FieldLimitType.ChannelSwitch.check(chr.getMap().getFieldLimit())) {
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (World.getPendingCharacterSize() >= 10) {
            chr.dropMessage(1, "The server is busy at the moment. Please try again in less than a minute.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        final int chc = slea.readByte() + 1;
        int mapid = 0;
        if (room) {
            mapid = slea.readInt();
        }
        chr.updateTick(slea.readInt());
        if (!World.isChannelAvailable(chc, chr.getWorld())) {
            chr.dropMessage(1, "Request denied due to an unknown error.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (room && (mapid < 910000001 || mapid > 910000022)) {
            chr.dropMessage(1, "Request denied due to an unknown error.");
            c.getSession().write(CWvsContext.enableActions());
            return;
        }
        if (room) {
            if (chr.getMapId() == mapid) {
                if (c.getChannel() == chc) {
                    chr.dropMessage(1, "You are already in " + chr.getMap().getMapName());
                    c.getSession().write(CWvsContext.enableActions());
                } else { // diff channel
                    chr.changeChannel(chc);
                }
            } else { // diff map
                if (c.getChannel() != chc) {
                    chr.changeChannel(chc);
                }
                final MapleMap warpz = ChannelServer.getInstance(c.getChannel()).getMapFactory().getMap(mapid);
                if (warpz != null) {
                    chr.changeMap(warpz, warpz.getPortal("out00"));
                } else {
                    chr.dropMessage(1, "Request denied due to an unknown error.");
                    c.getSession().write(CWvsContext.enableActions());
                }
            }
        } else {
            chr.changeChannel(chc);
        }
    }
}
Line 320: if (GameConstants.getWeaponType(b.getItemId()) == MapleWeaponType.BIG_SWORD) {

Edit: The creation of any other character works fine, but if it is the creation of a Explorer, it wont create. Such as Cannoneer, Dual blade and Explorer aren't able to be created.
 
Last edited:
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
Post LoginInformationProvider.java here please

LoginInformationProvider.java
Code:
/* This file is part of the OdinMS Maple Story Server
 Copyright (C) 2008 ~ 2010 Patrick Huy <patrick.huy@frz.cc>
 Matthias Butz <matze@odinms.de>
 Jan Christian Meyer <vimes@odinms.de>


 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License version 3
 as published by the Free Software Foundation. You may not use, modify
 or distribute this program under any other version of the
 GNU Affero General Public License.


 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 Affero General Public License for more details.


 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package handling.login;


import constants.GameConstants;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import provider.MapleData;
import provider.MapleDataProvider;
import provider.MapleDataProviderFactory;
import provider.MapleDataTool;
import tools.Triple;


public class LoginInformationProvider {


    public enum JobType {


        UltimateAdventurer(-1, 0, 100000000, true, true, false, false, true, false),
        Resistance(0, 3000, 931000000, true, true, false, false, true, false),
        Adventurer(1, 0, 4000, false, true, false, false, false, false),
        Cygnus(2, 1000, 130030000, false, true, false, false, false, true),
        Aran(3, 2000, 914000000, true, true, false, false, true, false),
        Evan(4, 2001, 900010000, true, true, false, false, true, false),//evan starter map - need to test tutorial
        Mercedes(5, 2002, 910150000, false, false, false, false, false, false),//101050000 - 910150000
        Demon(6, 3001, 931050310, false, false, true, false, false, false),
        Phantom(7, 2003, 915000000, false, true, false, false, false, true),
        DualBlade(8, 0, 103050900, true, true, false, false, true, false),
        Mihile(9, 5000, 913070000, true, true, false, false, true, false),
        Luminous(10, 2004, 101000000, false, true, false, false, false, true),//Ellinia atm TODO tutorial
        Kaiser(11, 6000, 0, false, true, false, false, false, false),
        AngelicBuster(12, 6001, 940011000, false, true, false, false, false, false),//400000000 - 940011000 - town now TODO tutorial
        Cannoneer(13, 0, 0, true, true, false, false, true, false),
        Xenon(14, 3002, 931050920, true, true, true, false, false, false),
        Zero(15, 10112, 100000000, false, true, false, false, false, true),//321000000 = zero starter map
        Jett(16, 0, 552000050, false, false, false, false, false, true),//End map for tutorial
        Hayato(17, 4001, 807000000, true, true, false, true, false, false),//half stater map TODO real tutorial
        Kanna(18, 4002, 807040000, true, true, false, true, false, false);
        public int type, id, map;
        public boolean hairColor, skinColor, faceMark, hat, bottom, cape;


        private JobType(int type, int id, int map, boolean hairColor, boolean skinColor, boolean faceMark, boolean hat, boolean bottom, boolean cape) {
            this.type = type;
            this.id = id;
            this.map = map;
            this.hairColor = hairColor;
            this.skinColor = skinColor;
            this.faceMark = faceMark;
            this.hat = hat;
            this.bottom = bottom;
            this.cape = cape;
        }


        public static JobType getByType(int g) {
            if (g == JobType.Cannoneer.type) {
                return JobType.Adventurer;
            }
            for (JobType e : JobType.values()) {
                if (e.type == g) {
                    return e;
                }
            }
            return null;
        }


        public static JobType getById(int g) {
            if (g == JobType.Adventurer.id) {
                return JobType.Adventurer;
            }
            if (g == 508) {
                return JobType.Jett;
            }
            for (JobType e : JobType.values()) {
                if (e.id == g) {
                    return e;
                }
            }
            return null;
        }
    }
    private final static LoginInformationProvider instance = new LoginInformationProvider();
    protected final List<String> ForbiddenName = new ArrayList<>();
    //gender, val, job
    protected final Map<Triple<Integer, Integer, Integer>, List<Integer>> makeCharInfo = new HashMap<>();
    //0 = eyes 1 = hair 2 = haircolor 3 = skin 4 = top 5 = bottom 6 = shoes 7 = weapon


    public static LoginInformationProvider getInstance() {
        return instance;
    }


    protected LoginInformationProvider() {
        final String WZpath = System.getProperty("wzpath");
        final MapleDataProvider prov = MapleDataProviderFactory.getDataProvider(new File(WZpath + "/Etc.wz"));
        MapleData nameData = prov.getData("ForbiddenName.img");
        for (final MapleData data : nameData.getChildren()) {
            ForbiddenName.add(MapleDataTool.getString(data));
        }
        nameData = prov.getData("Curse.img");
        for (final MapleData data : nameData.getChildren()) {
            ForbiddenName.add(MapleDataTool.getString(data).split(",")[0]);
        }
        final MapleData infoData = prov.getData("MakeCharInfo.img");
        final MapleData data = infoData.getChildByPath("Info");
        /*
         for (MapleData dat : data) {
         int val = -1;
         if (dat.getName().endsWith("Female")) {
         val = 1;
         } else if (dat.getName().endsWith("Male")) {
         val = 0;
         }
         final int job = JobType.getByJob(dat.getName()).type;
         for (MapleData da : dat) {
         final Triple<Integer, Integer, Integer> key = new Triple<>(val, Integer.parseInt(da.getName()), job);
         List<Integer> our = makeCharInfo.get(key);
         if (our == null) {
         our = new ArrayList<>();
         makeCharInfo.put(key, our);
         }
         for (MapleData d : da) {
         our.add(MapleDataTool.getInt(d, -1));
         }
         }
         }
         */
        for (MapleData dat : infoData) {
            try {
                final int type;
                if (dat.getName().equals("000_1")) {
                    type = JobType.DualBlade.type;
                } else {
                    type = JobType.getById(Integer.parseInt(dat.getName())).type;
                }
                for (MapleData d : dat) {
                    int val;
                    /*
                     if (d.getName().contains("info")) {
                     for (MapleData da : d) {
                     if (da.getName().equalsIgnoreCase("choosableGender")) {
                     int choosable = Integer.parseInt(da.getName());
                     if (choosable > 1) {
                     if (choosable == 2) {
                     //val = 0; //Forced male
                     } else if (choosable == 3) {
                     //val = 1; //Forced Female
                     }
                     }
                     }
                     }
                     }*/
                    if (d.getName().contains("female")) {
                        val = 1;
                    } else if (d.getName().contains("male")) {
                        val = 0;
                    } else {
                        continue;
                    }
                    for (MapleData da : d) {
                        int index;
                        Triple<Integer, Integer, Integer> key;
                        index = Integer.parseInt(da.getName());
                        key = new Triple<>(val, index, type);
                        List<Integer> our = makeCharInfo.get(key);
                        if (our == null) {
                            our = new ArrayList<>();
                            makeCharInfo.put(key, our);
                        }
                        for (MapleData dd : da) {
                            if (dd.getName().equalsIgnoreCase("color")) {
                                for (MapleData dda : dd) {
                                    for (MapleData ddd : dda) {
                                        our.add(MapleDataTool.getInt(ddd, -1));
                                    }
                                }
                            } else {
                                try {
                                    our.add(MapleDataTool.getInt(dd, -1));
                                } catch (Exception ex) { //probably like color
                                    for (MapleData dda : dd) {
                                        for (MapleData ddd : dda) {
                                            our.add(MapleDataTool.getInt(ddd, -1));
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            } catch (NumberFormatException | NullPointerException e) {
            }
        }
        final MapleData uA = infoData.getChildByPath("UltimateAdventurer");
        for (MapleData dat : uA) {
            final Triple<Integer, Integer, Integer> key = new Triple<>(-1, Integer.parseInt(dat.getName()), JobType.UltimateAdventurer.type);
            List<Integer> our = makeCharInfo.get(key);
            if (our == null) {
                our = new ArrayList<>();
                makeCharInfo.put(key, our);
            }
            for (MapleData d : dat) {
                our.add(MapleDataTool.getInt(d, -1));
            }
        }
    }


    public static boolean isExtendedSpJob(int jobId) {
        return GameConstants.isSeparatedSp(jobId);
    }


    public final boolean isForbiddenName(final String in) {
        for (final String name : ForbiddenName) {
            if (in.toLowerCase().contains(name.toLowerCase())) {
                return true;
            }
        }
        return false;
    }


    public final boolean isEligibleItem(final int gender, final int val, final int job, final int item) {
        if (item < 0) {
            return false;
        }
        final Triple<Integer, Integer, Integer> key = new Triple<>(gender, val, job);
        final List<Integer> our = makeCharInfo.get(key);
        if (our == null) {
            return false;
        }
        return our.contains(item);
    }
}
 
Upvote 0
Junior Spellweaver
Joined
May 3, 2007
Messages
135
Reaction score
3
Code:
[U][B]Explorer
[/B][/U]Received data :
45 00 05 00 31 32 33 34 35 FF FF FF FF 01 00 00 00 00 00 00 01 06 05 5B 00 00 B9
 8F 00 00 01 00 00 00 AF 06 10 00 C2 5E 10 00 F0 DD 13 00
E...12345????..........[..??......?...?^..??..
[Recv]  CREATE_CHAR                     |       69      |       0x0045
0 | 0 | 1 | 23301


[U][B]Cygnus[/B][/U]
Received data :
45 00 05 00 31 32 33 34 35 FF FF FF FF 02 00 00 00 00 00 00 00 07 6D 50 00 00 DD
 8E 00 00 00 00 00 00 A0 06 10 00 C6 D2 10 00 91 5E 10 00 F0 DD 13 00
E...12345????.........mP..??......?...??..?^..??..
[Recv]  CREATE_CHAR                     |       69      |       0x0045
[Send]  ADD_NEW_CHAR_ENTRY              |       13      |       0x000D


[U][B]Resistance[/B][/U]
45 00 05 00 31 32 33 34 35 FF FF FF FF 00 00 00 00 00 00 00 03 08 B2 4F 00 00 CE
 77 00 00 07 00 00 00 03 00 00 00 3F 06 10 00 00 00 00 00 71 5D 10 00 8D DE 13 0
0
E...12345????.........?O..?w..........?.......q]..??..
[Recv]  CREATE_CHAR                     |       69      |       0x0045
[Send]  ADD_NEW_CHAR_ENTRY              |       13      |       0x000D


[U][B]Dual Blade[/B][/U]
Received data :
45 00 05 00 31 32 33 34 35 FF FF FF FF 08 00 00 00 01 00 00 01 06 05 5B 00 00 1C
 84 00 00 01 00 00 00 AF 06 10 00 C1 5E 10 00 F0 DD 13 00
E...12345????..........[...?......?...?^..??..
[Recv]  CREATE_CHAR                     |       69      |       0x0045

[U][B]Jett[/B][/U]
45 00 05 00 31 32 33 34 35 FF FF FF FF 10 00 00 00 0A 00 00 00 06 B1 4F 00 00 0E
 8D 00 00 79 06 10 00 3B D2 10 00 15 5E 10 00 B6 C4 16 00
E...12345????.........±O...?..y...;?...^..??..
[Recv]  CREATE_CHAR                     |       69      |       0x0045
[Send]  ADD_NEW_CHAR_ENTRY              |       13      |       0x000D
 
Upvote 0
Back
Top