Fix for Potential System (100% GMS Like)

Page 1 of 4 1234 LastLast
Results 1 to 15 of 56
  1. #1
    Account Upgraded | Title Enabled! meydan is offline
    True MemberRank
    Apr 2008 Join Date
    321Posts

    Fix for Potential System (100% GMS Like)


    RaGEZONE Recommends

    RaGEZONE Recommends

    As you can see the fix that was provided here wasnt 100% GMS like the rank of the item can drop and the lines changes you cant use the magnifyingglass on the equipped window and the stats that you get has nothing to do with the rank of the item or the type of the item.
    so here is the complete fix for all what i said above and the cubes will work GMS like the normal cube cant change lines and the premium cube can change them.
    first go to MagnifyingGlassHandler.java and replace the whole code with
    Spoiler:
    PHP Code:
    package net.channel.handler
    import client.IEquip;
    import client.IItem;
    import client.MapleClient;
    import client.MapleInventoryType;
    import net.AbstractMaplePacketHandler;
    import server.MapleInventoryManipulator;
    import tools.MaplePacketCreator;
    import tools.Randomizer;
    import tools.data.input.SeekableLittleEndianAccessor;
    public class 
    MagnifyingGlassHandler extends AbstractMaplePacketHandler 
     
    @
    Override
    public final void handlePacket(SeekableLittleEndianAccessor sleaMapleClient c) { 
    slea.readInt(); 
    byte type = (byteslea.readShort(); 
    byte slot = (byteslea.readShort();
    IEquip item;
    if (
    slot <= 0
    item = (IEquipc.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem(slot);
    else 
    item = (IEquipc.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem(slot);
    IItem toUse c.getPlayer().getInventory(MapleInventoryType.USE).getItem(type); 
    if (
    toUse.getItemId() != 2460000 && toUse.getItemId() != 2460001 && toUse.getItemId() != 2460002 && toUse.getItemId() != 2460003 || toUse.getQuantity() < || item.getPotential() < || item.getPotential() > 3) { 
    c.getSession().write(MaplePacketCreator.enableActions()); 
    return; 
    }
    int itemId item.getItemId();
    int rand Randomizer.nextInt(100); 
    if (
    rand >= 90 || item.getRank() == 7) { // 10% chance for Unique
    item.setPotential((byte7);
    item.setRank((byte7);
    item.setPotent1(getRandomPotentialStat(itemIditem)); 
    item.setPotent2(getRandomPotentialStat(itemIditem));
    if(
    rand >= 65 && item.getLines() != || item.getLines() == 3) { // 35% to get 3rd line
    item.setPotent3(getRandomPotentialStat(itemIditem));
    item.setLines((byte)3);
    }
    else {
    item.setLines((byte)2);

    } else if (
    rand >= 80 || item.getRank() == 6) { // 20% chance for Epic
    rand Randomizer.nextInt(100);
    item.setPotential((byte6);
    item.setRank((byte6);
    item.setPotent1(getRandomPotentialStat(itemIditem)); 
    item.setPotent2(getRandomPotentialStat(itemIditem)); 
    if(
    rand >= 80 && item.getLines() != || item.getLines() == 3) { // 20% to get 3rd line
    item.setPotent3(getRandomPotentialStat(itemIditem));
    item.setLines((byte)3);
    }
    else {
    item.setLines((byte)2);

    } else { 
    // 80% chance for Rare
    rand Randomizer.nextInt(100);
    item.setPotential((byte5);
    item.setRank((byte5);
    item.setPotent1(getRandomPotentialStat(itemIditem));
    item.setPotent2(getRandomPotentialStat(itemIditem)); 
    if(
    rand >= 95 && item.getLines() != || item.getLines() == 3) { // 5% to get 3rd line
    item.setPotent3(getRandomPotentialStat(itemIditem));
    item.setLines((byte)3);
    }
    else {
    item.setLines((byte)2);
    }

    c.getPlayer().equipChanged(); 
    MapleInventoryManipulator.removeFromSlot(cMapleInventoryType.USE, type, (short1false); 
    c.getSession().write(MaplePacketCreator.showMagnifyingEffect(1slot));
    c.getSession().write(MaplePacketCreator.updateEquipSlot(item)); 
    c.getSession().write(MaplePacketCreator.enableActions()); 

    private 
    short getRandomPotentialStat(int itemIdIEquip item) {
    int rand;
    if (
    itemId >= 1000000 && itemId 1010000) { // Hats
    if (item.getRank() == 5) { // rare
    short[] hats = {1008120086123410041100421004310044901902903904905781004710048131410053100541020110206204012040620351910};
    rand Randomizer.nextInt(hats.length);
    return 
    hats[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] hats = {100813008610001100021000310004200412004220043 ,2004490190290390490510007100082004720048100131001420053200542020120206204012040620352100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(hats.length);
    return 
    hats[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] hats = {310021008130086100011000210003100043004130042300433004490190290390490510007100083004730048100131001430053300542020120206204012040620353100091001030106301073036630376305013051130551306563070130702}; 
    rand Randomizer.nextInt(hats.length);
    return 
    hats[rand];
    }
    } else if (
    itemId >= 1010000 && itemId 1020000) { // Face accessory
    if (item.getRank() == 5) { // rare
    short[] face = {1004110042100431004478131410053100541015110156910};
    rand Randomizer.nextInt(face.length);
    return 
    face[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] face = {200412004220043200441000710008100131001420053200541015110156100091001020366203762039620501205112065020656}; 
    rand Randomizer.nextInt(face.length);
    return 
    face[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] face = {300413004230043300441000710008100131001430053300541015110156100091001030106301073036630376305013051130551306563070130702}; 
    rand Randomizer.nextInt(face.length);
    return 
    face[rand];
    }
    } else if (
    itemId >= 1020000 && itemId 1032000) { // Eye accessory
    if (item.getRank() == 5) { // rare
    short[] eyes = {100411004210043100447813141005310054910};
    rand Randomizer.nextInt(eyes.length);
    return 
    eyes[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] eyes = {20041200422004320044100071000810013100142005320054100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(eyes.length);
    return 
    eyes[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] eyes = {30041300423004330044100071000810013100143005330054100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(eyes.length);
    return 
    eyes[rand];
    }
    } else if (
    itemId >= 1040000 && itemId 1050000) { // Tops
    if (item.getRank() == 5) { // rare
    short[] tops = {123410041100421004310044303711020110206204012040613141005310054781004710048910};
    rand Randomizer.nextInt(tops.length);
    return 
    tops[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] tops = {1000110002100031000420041200422004320044303712020120206 ,20401204061001310014200532005410007100082004720048100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(tops.length);
    return 
    tops[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] tops = {1000110002100031000430041300423004330044303712020120206 ,20401204061001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(tops.length);
    return 
    tops[rand];
    }
    } else if (
    itemId >= 1060000 && itemId 1070000) { // Bottoms
    if (item.getRank() == 5) { // rare
    short[] bottoms = {123410041100421004310044303711020110206204012040613141005310054781004710048910};
    rand Randomizer.nextInt(bottoms.length);
    return 
    bottoms[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] bottoms = {1000110002100031000420041200422004320044303712020120206 ,20401204061001310014200532005410007100082004720048100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(bottoms.length);
    return 
    bottoms[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] bottoms = {310041000110002100031000430041300423004330044303712020120206 ,20401204061001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(bottoms.length);
    return 
    bottoms[rand];
    }
    } else if (
    itemId >= 1050000 && itemId 1060000) { // Overalls
    if (item.getRank() == 5) { // rare
    short[] overalls = {123410041100421004310044303711020110206204012040613141005310054781004710048910};
    rand Randomizer.nextInt(overalls.length);
    return 
    overalls[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] overalls = {1000110002100031000420041200422004320044303712020120206 ,20401204061001310014200532005410007100082004720048100091001020366203762039620501205112065020656}; 
    rand Randomizer.nextInt(overalls.length);
    return 
    overalls[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] overalls = {1000110002100031000430041300423004330044303712020120206 ,20401204061001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702}; 
    rand Randomizer.nextInt(overalls.length);
    return 
    overalls[rand];
    }
    } else if (
    itemId >= 1070000 && itemId 1080000) { // Shoes
    if (item.getRank() == 5) { // rare
    short[] shoes = {1234100411004210043100441314100531005478100471004820351910};
    rand Randomizer.nextInt(shoes.length);
    return 
    shoes[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] shoes = {1000110002100031000420041200422004320044100131001420053200541000710008200472004820352100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(shoes.length);
    return 
    shoes[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] shoes = {310011000110002100031000430041300423004330044100131001430053300541000710008300473004820353100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(shoes.length);
    return 
    shoes[rand];
    }
    } else if (
    itemId >= 1080000 && itemId 1090000) { // Gloves
    if (item.getRank() == 5) { // rare
    short[] gloves = {100411004210043100441314100531005478100471004810201102062040120406910};
    rand Randomizer.nextInt(gloves.length);
    return 
    gloves[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] gloves = {20041200422004320044100131001420053200541000710008200472004820201202062040120406100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(gloves.length);
    return 
    gloves[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] gloves = {3100330041300423004330044100131001430053300541000710008300473004820201202062040120406100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(gloves.length);
    return 
    gloves[rand];
    }
    } else if (
    itemId >= 1102000 && itemId 1103000) { // Capes
    if (item.getRank() == 5) { // rare
    short[] capes = {1234100411004210043100441314100531005420351910};
    rand Randomizer.nextInt(capes.length);
    return 
    capes[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] capes = {10001100021000310004200412004220043200441001310014200532005420352100091001020366203762039620501205112065020656}; 
    rand Randomizer.nextInt(capes.length);
    return 
    capes[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] capes = {10001100021000310004300413004230043300441001310014300533005420353100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(capes.length);
    return 
    capes[rand];
    }
    } else if (
    itemId >= 1032000 && itemId 1122000) { // Earrings
    if (item.getRank() == 5) { // rare
    short[] earrings = {12341004110042100431004413141005310054781004710048910};
    rand Randomizer.nextInt(earrings.length);
    return 
    earrings[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] earrings = {10001100021000310004200412004220043200441001310014200532005410007100082004720048100091001020366203762039620501205112065020656}; 
    rand Randomizer.nextInt(earrings.length);
    return 
    earrings[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] earrings = {10001100021000310004300413004230043300441001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(earrings.length);
    return 
    earrings[rand];
    }
    } else if (
    itemId >= 1132000 && itemId 1140000) { // Belts
    if (item.getRank() == 5) { // rare
    short[] belts = {12341004110042100431004413141005310054781004710048910};
    rand Randomizer.nextInt(belts.length);
    return 
    belts[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] belts = {10001100021000310004200412004220043200441001310014200532005410007100082004720048100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(belts.length);
    return 
    belts[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] belts = {10001100021000310004300413004230043300441001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702}; 
    rand Randomizer.nextInt(belts.length);
    return 
    belts[rand];
    }
    } else if (
    itemId >= 1112000 && itemId 1120000) { // Rings
    if (item.getRank() == 5) { // rare
    short[] rings = {12341004110042100431004413141005310054781004710048910};
    rand Randomizer.nextInt(rings.length);
    return 
    rings[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] rings = {10001100021000310004200412004220043200441001310014200532005410007100082004720048100091001020366203762039620501205112065020656}; 
    rand Randomizer.nextInt(rings.length);
    return 
    rings[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] rings = {10001100021000310004300413004230043300441001310014300533005410007100083004730048100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(rings.length);
    return 
    rings[rand];
    }
    } else if (
    itemId >= 1300000 && itemId 1800000) { // Weapons
    if (item.getRank() == 5) { // rare
    short[] weapons = {11122005120052123410041100421004310044100701029130601306021020110206204012040610055102211022610231102361024110246910};
    rand Randomizer.nextInt(weapons.length);
    return 
    weapons[rand];
    } else if (
    item.getRank() == 6) { // epic
    short[] weapons = {100111001230051300521000110002100031000420041200422004320044200702029130601306022020120206204012040620055102211022610231102361024110246100091001020366203762039620501205112065020656};
    rand Randomizer.nextInt(weapons.length);
    return 
    weapons[rand];
    } else if (
    item.getRank() == 7) { // unique
    short[] weapons = {100111001230051300521000110002100031000430041300423004330044300703029130601306022020120206204012040630055102211022610231102361024110246100091001030106301073036630376305013051130551306563070130702};
    rand Randomizer.nextInt(weapons.length);
    return 
    weapons[rand];
    }
    } else {
    short[] potentials = {123456789101112131410001100021000310004100051000610007100081000910010100111001210013100141004110042100431004410045100461004710048100411005210053100541005510070100811020110206102211022610231102361024110246102912004120042200432004420045200462004720048200512005220053200542005520070200862020120206202912035120352203532036620396204012040620656300413004230044300453004630047300483005130053300543005530070300863035630357303663037130551306013060231001310023100331004}; 
    rand Randomizer.nextInt(potentials.length); 
    return 
    potentials[rand];
    }
    return 
    1// this will never happen




    after this go to UseCashItemHandler.java and replace the whole code with
    Spoiler:
    PHP Code:
    /*
    This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 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 as
    published by the Free Software Foundation 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 <Licenses - GNU Project - Free Software Foundation (FSF)>.
    */
    package net.channel.handler;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import constants.ExpTable;
    import client.IEquip;
    import client.IItem;
    import client.ISkill;
    import client.MapleCharacter;
    import client.MapleClient;
    import client.MapleInventoryType;
    import client.MapleJob;
    import client.MaplePet;
    import client.MapleStat;
    import client.SkillFactory;
    import constants.ItemConstants;
    import constants.SkillConstants.*;
    import java.sql.SQLException;
    import net.AbstractMaplePacketHandler;
    import scripting.npc.NPCScriptManager;
    import server.MapleInventoryManipulator;
    import server.MapleItemInformationProvider;
    import server.maps.MapleMap;
    import server.maps.MapleTVEffect;
    import tools.MaplePacketCreator;
    import tools.Pair;
    import tools.data.input.SeekableLittleEndianAccessor;
    import tools.DatabaseConnection;
    import java.sql.*;
    public final class 
    UseCashItemHandler extends AbstractMaplePacketHandler {
    public final 
    void handlePacket(SeekableLittleEndianAccessor sleaMapleClient c) {
    MapleCharacter player c.getPlayer();
    if (
    System.currentTimeMillis() - player.getLastUsedCashItem() < 3000) {
    return;
    }
    player.setLastUsedCashItem(System.currentTimeMillis());
    MapleItemInformationProvider ii MapleItemInformationProvider.getInstance();
    slea.readInt();//v97
    slea.skip(2);//v97
    int itemId slea.readInt();
    int itemType itemId 10000;
    IItem toUse c.getPlayer().getInventory(MapleInventoryType.CASH).getItem(c.getPlayer().getInventory(MapleInventoryType.CASH).findById(itemId).getPosition());
    String medal "";
    IItem medalItem c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -49);
    if (
    medalItem != null) {
    medal "<" ii.getName(medalItem.getItemId()) + "> ";
    }
    if (
    toUse == null || toUse.getItemId() != itemId || toUse.getQuantity() < 1) {
    c.announce(MaplePacketCreator.enableActions());
    return;
    }
    try {
    if (
    itemType == 505) { // AP/SP reset
    if (itemId 5050000) {
    int SPTo slea.readInt();
    int SPFrom slea.readInt();
    ISkill skillSPTo SkillFactory.getSkill(SPTo);
    ISkill skillSPFrom SkillFactory.getSkill(SPFrom);
    int curLevel player.getSkillLevel(skillSPTo);
    int curLevelSPFrom player.getSkillLevel(skillSPFrom);
    if ((
    curLevel skillSPTo.getMaxLevel()) && curLevelSPFrom 0) {
    player.changeSkillLevel(skillSPFrom, (curLevelSPFrom 1), player.getMasterLevel(skillSPFrom));
    player.changeSkillLevel(skillSPTo, (curLevel 1), player.getMasterLevel(skillSPTo));
    /* if (SPFrom == Aran.) {
    ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_FULL_DOUBLE);
    ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_FULL_TRIPLE);
    player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
    player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
    } else if (SPFrom == Aran.OVER_SWING) {
    ISkill hidden1 = SkillFactory.getSkill(Aran.HIDDEN_OVER_DOUBLE);
    ISkill hidden2 = SkillFactory.getSkill(Aran.HIDDEN_OVER_TRIPLE);
    player.changeSkillLevel(hidden1, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden1), -1);
    player.changeSkillLevel(hidden2, (byte) (curLevelSPFrom - 1), player.getMasterLevel(hidden2), -1);
    }*/
    }
    } else {
    List<
    Pair<MapleStatInteger>> statupdate = new ArrayList<Pair<MapleStatInteger>>(2);
    int APTo slea.readInt();
    int APFrom slea.readInt();
    switch (
    APFrom) {
    case 
    64// str
    if (player.getStr() < 5) {
    return;
    }
    player.addStat(1, -1);
    break;
    case 
    128// dex
    if (player.getDex() < 5) {
    return;
    }
    player.addStat(2, -1);
    break;
    case 
    256// int
    if (player.getInt() < 5) {
    return;
    }
    player.addStat(3, -1);
    break;
    case 
    512// luk
    if (player.getLuk() < 5) {
    return;
    }
    player.addStat(4, -1);
    break;
    case 
    2048// HP
    if (player.getHpMpApUsed() < || player.getHpMpApUsed() >= 10000) {
    return;
    }
    break;
    case 
    8192// MP
    if (player.getHpMpApUsed() <= || player.getHpMpApUsed() >= 10000) {
    return;
    }
    int mp player.getMp();
    int level player.getLevel();
    MapleJob job player.getJob();
    boolean canWash true;
    if (
    job.isA(MapleJob.SPEARMAN) && mp level 156) {
    canWash false;
    } else if (
    job.isA(MapleJob.FIGHTER) && mp level 56) {
    canWash false;
    } else if (
    job.isA(MapleJob.THIEF) && job.getId() % 100 && mp level 14 4) {
    canWash false;
    } else if (
    mp level 14 148) {
    canWash false;
    }
    if (
    canWash) {
    int minmp 0;
    if (
    job.isA(MapleJob.WARRIOR) || job.isA(MapleJob.DAWNWARRIOR1) || job.isA(MapleJob.ARAN1)) {
    minmp += 4;
    } else if (
    job.isA(MapleJob.MAGICIAN) || job.isA(MapleJob.BLAZEWIZARD1)) {
    minmp += 36;
    } else if (
    job.isA(MapleJob.BOWMAN) || job.isA(MapleJob.WINDARCHER1) || job.isA(MapleJob.THIEF) || job.isA(MapleJob.NIGHTWALKER1)) {
    minmp += 12;
    } else if (
    job.isA(MapleJob.PIRATE) || job.isA(MapleJob.THUNDERBREAKER1)) {
    minmp += 16;
    } else {
    minmp += 8;
    }
    player.setMp(player.getMp() - minmp);
    } else {
    c.announce(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATEtrue));
    return;
    }
    break;
    default:
    c.announce(MaplePacketCreator.updatePlayerStats(MaplePacketCreator.EMPTY_STATUPDATEtrue));
    return;
    }
    DistributeAPHandler.addStat(cAPTo);
    c.announce(MaplePacketCreator.updatePlayerStats(statupdatetrue));
    }
    remove(citemId);
    } else if (
    itemType == 506) {
    IItem eq null;
    if (
    itemId == 5060000) { // Item tag.
    int equipSlot slea.readShort();
    if (
    equipSlot == 0) {
    return;
    }
    eq player.getInventory(MapleInventoryType.EQUIPPED).getItem((byteequipSlot);
    eq.setOwner(player.getName());
    } else if (
    itemId == 5062000) { // miracle cube
    client.Equip equip = (client.Equipplayer.getInventory(MapleInventoryType.EQUIP).getItem((byteslea.readShort());
    if (
    equip.getPotential() < 5) {
    c.getSession().write(MaplePacketCreator.enableActions());
    return;
    }
    if (!
    MapleInventoryManipulator.addById(c2430112, (short1)) {
    c.getSession().write(MaplePacketCreator.enableActions());
    c.getSession().write(MaplePacketCreator.serverNotice(1"Please make room in your USE inventory."));
    return;
    }
    equip.potential = (byte1;
    equip.potent1 = (byte0;
    equip.potent2 = (byte0;
    equip.potent3 = (byte0;
    c.getSession().write(MaplePacketCreator.enableActions());
    c.getSession().write(MaplePacketCreator.showCubeEffect(itemId));
    c.getSession().write(MaplePacketCreator.updateEquipSlot(equip));
    remove(citemId);
    return;
    } else if (
    itemId == 5062001) { // premium miracle cube
    client.Equip equip = (client.Equipplayer.getInventory(MapleInventoryType.EQUIP).getItem((byteslea.readShort());
    if (
    equip.getPotential() < 5) {
    c.getSession().write(MaplePacketCreator.enableActions());
    return;
    }
    if (!
    MapleInventoryManipulator.addById(c2430112, (short1)) {
    c.getSession().write(MaplePacketCreator.enableActions());
    c.getSession().write(MaplePacketCreator.serverNotice(1"Please make room in your USE inventory."));
    return;
    }
    equip.lines = (byte0;
    equip.potential = (byte1;
    equip.potent1 = (byte0;
    equip.potent2 = (byte0;
    equip.potent3 = (byte0;
    c.getSession().write(MaplePacketCreator.enableActions());
    c.getSession().write(MaplePacketCreator.showCubeEffect(itemId));
    c.getSession().write(MaplePacketCreator.updateEquipSlot(equip));
    remove(citemId);
    return;
    } else if (
    itemId == 5060001 || itemId == 5061000 || itemId == 5061001 || itemId == 5061002 || itemId == 5061003) { // Sealing lock
    MapleInventoryType type MapleInventoryType.getByType((byteslea.readInt());
    IItem item c.getPlayer().getInventory(type).getItem((byteslea.readInt());
    if (
    item == null) { //Check if the type is EQUIPMENT?
    return;
    }
    byte flag item.getFlag();
    flag |= ItemConstants.LOCK;
    if (
    item.getExpiration() > -1) {
    return; 
    //No perma items pls
    }
    item.setFlag(flag);
    long period 0;
    if (
    itemId == 5061000) {
    period 7;
    } else if (
    itemId == 5061001) {
    period 30;
    } else if (
    itemId == 5061002) {
    period 90;
    } else if (
    itemId == 5061003) {
    period 365;
    }
    if (
    period 0) {
    item.setExpiration(System.currentTimeMillis() + (period 60 60 24 1000));
    }
    c.announce(MaplePacketCreator.updateSlot(item));
    remove(citemId);
    } else if (
    itemId == 5060002) { // Incubator
    byte inventory2 = (byteslea.readInt();
    byte slot2 = (byteslea.readInt();
    IItem item2 c.getPlayer().getInventory(MapleInventoryType.getByType(inventory2)).getItem(slot2);
    if (
    item2 == null// hacking
    {
    return;
    }
    if (
    getIncubatedItem(citemId)) {
    MapleInventoryManipulator.removeFromSlot(cMapleInventoryType.getByType(inventory2), slot2, (short1false);
    remove(citemId);
    }
    return;
    }
    slea.readInt(); // time stamp
    c.announce(MaplePacketCreator.updateSlot(eq));
    remove(citemId);
    } else if (
    itemType == 507) {
    boolean whisper;
    switch (
    itemId 1000 10) {
    case 
    1// Megaphone
    if (player.getLevel() > 9) {
    if (!
    player.isBlockedFromSmega()) {
    player.getClient().getChannelServer().broadcastMegaphones(MaplePacketCreator.serverNotice(2medal player.getName() + " : " slea.readMapleAsciiString()));
    } else {
    player.dropMessage(" You are blocked from using smegas. ");
    }
    } else {
    player.dropMessage(1"You may not use this until you're level 10.");
    }
    break;
    case 
    2// Super megaphone
    if (!player.isBlockedFromSmega()) {
    player.getClient().getChannelServer().broadcastMegaphones(MaplePacketCreator.serverNotice(3c.getChannel(), medal player.getName() + " : " slea.readMapleAsciiString(), (slea.readByte() != 0)));
    } else {
    player.dropMessage(" You are blocked from using smegas. ");
    }
    break;
    case 
    5// Maple TV
    int tvType itemId 10;
    boolean megassenger false;
    boolean ear false;
    MapleCharacter victim null;
    if (
    tvType != 1) {
    if (
    tvType >= 3) {
    megassenger true;
    if (
    tvType == 3) {
    slea.readByte();
    }
    ear == slea.readByte();
    } else if (
    tvType != 2) {
    slea.readByte();
    }
    if (
    tvType != 4) {
    victim c.getChannelServer().getPlayerStorage().getCharacterByName(slea.readMapleAsciiString());
    }
    }
    List<
    Stringmessages = new LinkedList<String>();
    StringBuilder builder = new StringBuilder();
    for (
    int i 05i++) {
    String message slea.readMapleAsciiString();
    if (
    megassenger) {
    builder.append(" ").append(message);
    }
    messages.add(message);
    }
    slea.readInt();
    if (
    megassenger) {
    c.getChannelServer().getWorldInterface().broadcastMessage(nullMaplePacketCreator.serverNotice(3c.getChannel(), medal player.getName() + " : " builder.toString(), ear).getBytes());
    }
    if (!
    MapleTVEffect.isActive()) {
    new 
    MapleTVEffect(playervictimmessagestvType);
    remove(citemId);
    } else {
    player.dropMessage(1"MapleTV is already in use.");
    return;
    }
    break;
    case 
    6//item megaphone
    String msg medal c.getPlayer().getName() + " : " slea.readMapleAsciiString();
    whisper slea.readByte() == 1;
    IItem item null;
    if (
    slea.readByte() == 1) { //item
    item c.getPlayer().getInventory(MapleInventoryType.getByType((byteslea.readInt())).getItem((byteslea.readInt());
    if (
    item == null//hack
    {
    return;
    } else if (
    ii.isDropRestricted(item.getItemId())) { //Lol?
    player.dropMessage(1"You cannot trade this item.");
    c.announce(MaplePacketCreator.enableActions());
    return;
    }
    }
    if (!
    player.isBlockedFromSmega()) {
    player.getClient().getChannelServer().broadcastMegaphones(MaplePacketCreator.itemMegaphone(msgwhisperc.getChannel(), item));
    } else {
    player.dropMessage(" You are blocked from using smegas. ");
    }
    break;
    case 
    7//triple megaphone
    int lines slea.readByte();
    if (
    lines || lines 3//hack
    {
    return;
    }
    String[] msg2 = new String[lines];
    for (
    int i 0linesi++) {
    msg2[i] = medal c.getPlayer().getName() + " : " slea.readMapleAsciiString();
    }
    whisper slea.readByte() == 1;
    if (!
    player.isBlockedFromSmega()) {
    player.getClient().getChannelServer().broadcastMegaphones(MaplePacketCreator.getMultiMegaphone(msg2c.getChannel(), whisper));
    } else {
    player.dropMessage(" You are blocked from using smegas. ");
    }
    break;
    }
    remove(citemId);
    } else if (
    itemType == 508) { //graduation banner
    slea.readMapleAsciiString(); // message, sepearated by 0A for lines
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 509) {
    String sendTo slea.readMapleAsciiString();
    String msg slea.readMapleAsciiString();
    player.sendNote(sendTomsg, (byte0);
    remove(citemId);
    } else if (
    itemType == 510) {
    player.getMap().broadcastMessage(MaplePacketCreator.musicChange("Jukebox/Congratulation"));
    remove(citemId);
    } else if (
    itemType == 512) {
    if (
    ii.getStateChangeItem(itemId) != 0) {
    for (
    MapleCharacter mChar c.getPlayer().getMap().getCharacters()) {
    ii.getItemEffect(ii.getStateChangeItem(itemId)).applyTo(mChar);
    }
    }
    player.getMap().startMapEffect(ii.getMsg(itemId).replaceFirst("%s"c.getPlayer().getName()).replaceFirst("%s"slea.readMapleAsciiString()), itemId);
    remove(citemId);
    } else if (
    itemType == 517) {
    MaplePet pet player.getPet(0);
    if (
    pet == null) {
    c.announce(MaplePacketCreator.enableActions());
    return;
    }
    IItem item player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
    String newName slea.readMapleAsciiString();
    pet.setName(newName);
    pet.saveToDb();
    try {
    Connection con DatabaseConnection.getConnection();
    PreparedStatement ps con.prepareStatement("UPDATE pets SET name = ? WHERE id = ?");
    ps.setString(1newName);
    ps.setInt(2pet.getPetId());
    ps.executeUpdate();
    ps.close();
    } catch (
    SQLException e) {
    e.printStackTrace();
    }
    c.announce(MaplePacketCreator.updateSlot(item));
    player.getMap().broadcastMessage(playerMaplePacketCreator.changePetName(playernewName1), true);
    c.announce(MaplePacketCreator.enableActions());
    remove(citemId);
    } else if (
    itemType == 504) { // vip teleport rock
    String error1 "Either the player could not be found or you were trying to teleport to an illegal location.";
    boolean vip slea.readByte() == 1;
    remove(citemId);
    if (!
    vip) {
    int mapId slea.readInt();
    if (
    c.getChannelServer().getMapFactory(c.getPlayer().getGMode()).getMap(mapId).getForcedReturnId() == 999999999) {
    player.changeMap(c.getChannelServer().getMapFactory(c.getPlayer().getGMode()).getMap(mapId));
    } else {
    MapleInventoryManipulator.addById(citemId, (short1);
    c.getPlayer().dropMessage(1error1);
    c.announce(MaplePacketCreator.enableActions());
    }
    } else {
    String name slea.readMapleAsciiString();
    MapleCharacter victim c.getChannelServer().getPlayerStorage().getCharacterByName(name);
    boolean success false;
    if (
    victim != null) {
    MapleMap target victim.getMap();
    if (
    c.getChannelServer().getMapFactory(c.getPlayer().getGMode()).getMap(c.getChannelServer().getWorldInterface().getLocation(name).map).getForcedReturnId() == 999999999 || victim.getMapId() < 100000000) {
    if (
    victim.gmLevel() <= player.gmLevel()) {
    if (
    itemId == 5041000 || victim.getMapId() / player.getMapId() == 1) { //viprock & same continent
    player.changeMap(targettarget.findClosestSpawnpoint(victim.getPosition()));
    success true;
    } else {
    player.dropMessage(1error1);
    }
    } else {
    player.dropMessage(1error1);
    }
    } else {
    player.dropMessage(1"You cannot teleport to this map.");
    }
    } else {
    player.dropMessage(1"Player could not be found in this channel.");
    }
    if (!
    success) {
    MapleInventoryManipulator.addById(citemId, (short1);
    c.announce(MaplePacketCreator.enableActions());
    }
    }
    } else if (
    itemType == 506) {
    byte slot = (byteslea.readShort();
    IEquip item = (IEquipplayer.getInventory(MapleInventoryType.EQUIP).getItem(slot);
    client.Equip eq = (client.Equipitem;
    eq.potential = (byte1;
    eq.potent1 = (byte0;
    eq.potent2 = (byte0;
    eq.potent3 = (byte0;
    c.getSession().write(MaplePacketCreator.enableActions());
    remove(citemId);
    } else if (
    itemType == 520) {
    player.gainMeso(ii.getMeso(itemId), truefalsetrue);
    remove(citemId);
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 524) {
    for (
    byte i 03i++) {
    MaplePet pet player.getPet(i);
    if (
    pet != null) {
    if (
    pet.canConsume(itemId)) {
    pet.setFullness(100);
    if (
    pet.getCloseness() + 100 30000) {
    pet.setCloseness(30000);
    } else {
    pet.gainCloseness(100);
    }
    while (
    pet.getCloseness() >= ExpTable.getClosenessNeededForLevel(pet.getLevel())) {
    pet.setLevel((byte) (pet.getLevel() + 1));
    byte index player.getPetIndex(pet);
    c.announce(MaplePacketCreator.showOwnPetLevelUp(index));
    player.getMap().broadcastMessage(MaplePacketCreator.showPetLevelUp(c.getPlayer(), index));
    }
    IItem item player.getInventory(MapleInventoryType.CASH).getItem(pet.getPosition());
    c.announce(MaplePacketCreator.updateSlot(item));
    player.getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.commandResponse(player.getId(), i1true), true);
    remove(citemId);
    break;
    }
    } else {
    break;
    }
    }
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 530) {
    ii.getItemEffect(itemId).applyTo(player);
    remove(citemId);
    } else if (
    itemType == 533) {
    NPCScriptManager.getInstance().start(c9010009nullnull);
    } else if (
    itemType == 537) {
    player.setChalkboard(slea.readMapleAsciiString());
    player.getMap().broadcastMessage(MaplePacketCreator.useChalkboard(playerfalse));
    player.getClient().announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 539) {
    List<
    Stringlines = new LinkedList<String>();
    if (
    itemId == 5390009) { // friendfinder
    lines.add("Hi, I am looking for friends!! Add me to your buddylist!");
    }
    for (
    int i 04i++) {
    lines.add(slea.readMapleAsciiString());
    }
    if (!
    player.isBlockedFromSmega()) {
    player.getClient().getChannelServer().broadcastMegaphones(MaplePacketCreator.getAvatarMega(c.getPlayer(), medalc.getChannel(), itemIdlines, (slea.readByte() != 0)));
    remove(citemId);
    } else {
    player.dropMessage("You cannot use megaphones since you are muted from using them.");
    }
    } else if (
    itemType == 545) { // MiuMiu's travel store
    //Code the npc
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 550) { //Extend item expiration
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 552) {
    MapleInventoryType type MapleInventoryType.getByType((byteslea.readInt());
    byte slot = (byteslea.readInt();
    IItem item c.getPlayer().getInventory(type).getItem(slot);
    if (
    item == null || item.getQuantity() <= || (item.getFlag() & ItemConstants.KARMA) > && ii.isKarmaAble(item.getItemId())) {
    c.announce(MaplePacketCreator.enableActions());
    return;
    }
    if (
    type.equals(MapleInventoryType.USE)) {
    item.setFlag((byteItemConstants.SPIKES);
    } else {
    item.setFlag((byteItemConstants.KARMA);
    }
    c.getPlayer().forceUpdateItem(typeitem);
    remove(citemId);
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 552) { //DS EGG THING
    c.announce(MaplePacketCreator.enableActions());
    } else if (
    itemType == 557) {
    slea.readInt();
    int itemSlot slea.readInt();
    slea.readInt();
    final 
    IEquip equip = (IEquipc.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((byteitemSlot);
    if (
    equip.getVicious() == || c.getPlayer().getInventory(MapleInventoryType.CASH).findById(5570000) == null) {
    return;
    }
    equip.setVicious(equip.getVicious() + 1);
    equip.setUpgradeSlots(equip.getUpgradeSlots() + 1);
    remove(citemId);
    c.announce(MaplePacketCreator.enableActions());
    c.announce(MaplePacketCreator.sendHammerData(equip.getVicious()));
    c.announce(MaplePacketCreator.hammerItem(equip));
    } else if (
    itemType == 561) { //VEGA'S SPELL
    c.announce(MaplePacketCreator.enableActions());
    } else {
    System.out.println("NEW CASH ITEM: " itemType "\n" slea.toString());
    c.announce(MaplePacketCreator.enableActions());
    }
    } catch (
    Exception e) {
    }
    }
    private static 
    void remove(MapleClient cint itemId) {
    MapleInventoryManipulator.removeById(cMapleInventoryType.CASHitemId1truefalse);
    }
    private static 
    boolean getIncubatedItem(MapleClient cint id) {
    final 
    int[] ids = {10120701302049130206313220272000004200000520200132020015204030720405092040519204052120405332040715204071720408102040811207000520700064020009,};
    final 
    int[] quantitys = {1111240200200200111111111113};
    int amount 0;
    for (
    int i 0ids.lengthi++) {
    if (
    == id) {
    amount quantitys[i];
    }
    }
    if (
    c.getPlayer().getInventory(MapleInventoryType.getByType((byte) (id 1000000))).isFull()) {
    return 
    false;
    }
    MapleInventoryManipulator.addById(cid, (shortamount);
    return 
    true;
    }



    after this go to Equip.java and replace the whole code with
    Spoiler:
    PHP Code:
    /*
    This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 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 as
    published by the Free Software Foundation 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 <Licenses - GNU Project - Free Software Foundation (FSF)>.
    */
    package client;
    import java.util.LinkedList;
    import java.util.List;
    import server.MapleItemInformationProvider;
    import tools.MaplePacketCreator;
    import tools.Pair;
    public class 
    Equip extends Item implements IEquip {
    private 
    byte upgradeSlots;
    private 
    byte levelflagitemLevel;
    private 
    short strdex_intlukhpmpwatkmatkwdefmdefaccavoidhandsspeedjumpvicious;
    private 
    float itemExp;
    private 
    int ringid = -1;
    private 
    boolean wear false;
    private 
    int skill0skill1skill2skill3;
    public 
    byte starspotentialranklines;
    public 
    short potent1;
    public 
    short potent2;
    public 
    short potent3;
     
     
    public 
    Equip(int idbyte position) {
    super(idposition, (short1);
    this.itemExp 0;
    this.itemLevel 1
    }
     
    public 
    Equip(int idbyte positionbyte potential) { 
    super(idposition, (short1); 
    this.itemExp 0
    this.itemLevel 0
    this.ringid = -1
    if(
    potential 1) { 
    this.potential = (byte) (potential 4); // 1 =5, 2 = 6, etc 
    } else { 
    this.potential potential


     
    public 
    Equip(int idbyte positionint slots) {
    super(idposition, (short1);
    this.upgradeSlots = (byteslots;
    this.itemExp 0;
    this.itemLevel 1;
    }
     
     
    public 
    byte getStars() {
    return 
    stars;
    }
     
    public 
    void setStars(byte i) {
    this.stars i;
    }
    @
    Override
    public IItem copy() {
    Equip ret = new Equip(getItemId(), getPosition(), getUpgradeSlots());
    ret.str str;
    ret.dex dex;
    ret._int _int;
    ret.luk luk;
    ret.hp hp;
    ret.mp mp;
    ret.matk matk;
    ret.mdef mdef;
    ret.watk watk;
    ret.wdef wdef;
    ret.acc acc;
    ret.avoid avoid;
    ret.hands hands;
    ret.speed speed;
    ret.jump jump;
    ret.flag flag;
    ret.vicious vicious;
    ret.upgradeSlots upgradeSlots;
    ret.itemLevel itemLevel;
    ret.itemExp itemExp;
    ret.level level;
    ret.potential potential;
    ret.rank rank;
    ret.lines lines;
    ret.stars stars;
    ret.potent1 potent1
    ret.potent2 potent2
    ret.potent3 potent3
     
    ret.log = new LinkedList<String>(log);
    ret.setOwner(getOwner());
    ret.setQuantity(getQuantity());
    ret.setExpiration(getExpiration());
    ret.setGiftFrom(getGiftFrom());
    return 
    ret;
    }
    @
    Override
    public byte getFlag() {
    return 
    flag;
    }
    @
    Override
    public byte getType() {
    return 
    IItem.EQUIP;
    }
    public 
    byte getUpgradeSlots() {
    return 
    upgradeSlots;
    }
    public 
    short getStr() {
    return 
    str;
    }
    public 
    short getDex() {
    return 
    dex;
    }
    public 
    short getInt() {
    return 
    _int;
    }
    public 
    short getLuk() {
    return 
    luk;
    }
    public 
    short getHp() {
    return 
    hp;
    }
    public 
    short getMp() {
    return 
    mp;
    }
    public 
    short getWatk() {
    return 
    watk;
    }
    public 
    short getMatk() {
    return 
    matk;
    }
    public 
    short getWdef() {
    return 
    wdef;
    }
    public 
    short getMdef() {
    return 
    mdef;
    }
    public 
    short getAcc() {
    return 
    acc;
    }
    public 
    short getAvoid() {
    return 
    avoid;
    }
    public 
    short getHands() {
    return 
    hands;
    }
    public 
    short getSpeed() {
    return 
    speed;
    }
    public 
    short getJump() {
    return 
    jump;
    }
    public 
    short getVicious() {
    return 
    vicious;
    }
     
    public 
    byte getPotential() { 
    return 
    potential

    public 
    byte getRank() { 
    return 
    rank;

     
    public 
    byte getLines() { 
    return 
    lines;

     
    public 
    short getPotent1() { 
    return 
    potent1

    public 
    short getPotent2() { 
    return 
    potent2

    public 
    short getPotent3() { 
    return 
    potent3

     
    @
    Override
    public void setFlag(byte flag) {
    this.flag flag;
    }
    public 
    void setStr(short str) {
    this.str str;
    }
    public 
    void setDex(short dex) {
    this.dex dex;
    }
    public 
    void setInt(short _int) {
    this._int _int;
    }
    public 
    void setLuk(short luk) {
    this.luk luk;
    }
    public 
    void setHp(short hp) {
    this.hp hp;
    }
    public 
    void setMp(short mp) {
    this.mp mp;
    }
    public 
    void setWatk(short watk) {
    this.watk watk;
    }
    public 
    void setMatk(short matk) {
    this.matk matk;
    }
    public 
    void setWdef(short wdef) {
    this.wdef wdef;
    }
    public 
    void setMdef(short mdef) {
    this.mdef mdef;
    }
    public 
    void setAcc(short acc) {
    this.acc acc;
    }
    public 
    void setAvoid(short avoid) {
    this.avoid avoid;
    }
    public 
    void setHands(short hands) {
    this.hands hands;
    }
    public 
    void setSpeed(short speed) {
    this.speed speed;
    }
    public 
    void setJump(short jump) {
    this.jump jump;
    }
    public 
    void setVicious(short vicious) {
    this.vicious vicious;
    }
    public 
    void setUpgradeSlots(byte upgradeSlots) {
    this.upgradeSlots upgradeSlots;
    }
    public 
    byte getLevel() {
    return 
    level;
    }
    public 
    void setLevel(byte level) {
    this.level level;
    }
    public 
    void setPotential(byte potent) { 
    this.potential potent

    public 
    void setRank(byte rank) { 
    this.rank rank

     
    public 
    void setLines(byte lines) { 
    this.lines lines

     
    public 
    void setPotent1(short potent) { 
    this.potent1 potent

    public 
    void setPotent2(short potent) { 
    this.potent2 potent

    public 
    void setPotent3(short potent) { 
    this.potent3 potent

     
    public 
    void gainLevel(MapleClient cboolean timeless) {
    List<
    Pair<StringInteger>> stats MapleItemInformationProvider.getInstance().getItemLevelupStats(getItemId(), itemLeveltimeless);
    for (
    Pair<StringIntegerstat stats) {
    if (
    stat.getLeft().equals("incDEX")) 
    dex += stat.getRight();
    else if (
    stat.getLeft().equals("incSTR"))
    str += stat.getRight(); 
    else if (
    stat.getLeft().equals("incINT"))
    _int += stat.getRight(); 
    else if (
    stat.getLeft().equals("incLUK"))
    luk += stat.getRight();
    else if (
    stat.getLeft().equals("incMHP"))
    hp += stat.getRight();
    else if (
    stat.getLeft().equals("incMMP"))
    mp += stat.getRight();
    else if (
    stat.getLeft().equals("incPAD"))
    watk += stat.getRight();
    else if (
    stat.getLeft().equals("incMAD"))
    matk += stat.getRight();
    else if (
    stat.getLeft().equals("incPDD"))
    wdef += stat.getRight();
    else if (
    stat.getLeft().equals("incMDD"))
    mdef += stat.getRight();
    else if (
    stat.getLeft().equals("incEVA"))
    avoid += stat.getRight();
    else if (
    stat.getLeft().equals("incACC"))
    acc += stat.getRight();
    else if (
    stat.getLeft().equals("incSpeed"))
    speed += stat.getRight(); 
    else if (
    stat.getLeft().equals("incJump"))
    jump += stat.getRight();
    else if (
    stat.getLeft().equals("Skill0"))
    skill0 stat.getRight();
    else if (
    stat.getLeft().equals("Skill1"))
    skill1 stat.getRight();
    else if (
    stat.getLeft().equals("Skill2"))
    skill2 stat.getRight();
    else if (
    stat.getLeft().equals("Skill3"))
    skill3 stat.getRight();
    }
    this.itemLevel++;
    c.announce(MaplePacketCreator.showEquipmentLevelUp());
    c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showForeignEffect(c.getPlayer().getId(), 15));
    c.getPlayer().forceUpdateItem(MapleInventoryType.EQUIPPEDthis);
    }
    public 
    int getItemExp() {
    return (int) 
    itemExp;
    }
    public 
    void gainItemExp(MapleClient cint gainboolean timeless) {
    int expneeded timeless ? (10 itemLevel 70) : (itemLevel 65);
    float modifier 364 expneeded;
    float exp = (expneeded / (1000000 modifier modifier)) * gain;
    itemExp += exp;
    if (
    itemExp >= 364) {
    itemExp = (itemExp 364);
    gainLevel(ctimeless);
    } else
    c.getPlayer().forceUpdateItem(MapleInventoryType.EQUIPPEDthis);
    }
    public 
    void setItemExp(int exp) {
    this.itemExp exp;
    }
    public 
    void setItemLevel(byte level) {
    this.itemLevel level;
    }
    @
    Override
    public void setQuantity(short quantity) {
    if (
    quantity || quantity 1) {
    throw new 
    RuntimeException("Setting the quantity to " quantity " on an equip (itemid: " getItemId() + ")");
    }
    super.setQuantity(quantity);
    }
    public 
    void setUpgradeSlots(int i) {
    this.upgradeSlots = (bytei;
    }
    public 
    void setVicious(int i) {
    this.vicious = (shorti;
    }
    public 
    int getRingId() {
    return 
    ringid;
    }
    public 
    void setRingId(int id) {
    this.ringid id;
    }
    public 
    boolean isWearing() {
    return 
    wear;
    }
    public 
    void wear(boolean yes) {
    wear yes;
    }
    public 
    byte getItemLevel() {
    return 
    itemLevel;
    }



    go to IEquip.java and replace it with
    Spoiler:
    PHP Code:
    /*
    This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 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 as
    published by the Free Software Foundation 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 <Licenses - GNU Project - Free Software Foundation (FSF)>.
    */
    package client;
    public interface 
    IEquip extends IItem {
    public 
    enum ScrollResult {
    SUCCESSFAILCURSE
    }
    public 
    void setUpgradeSlots(int i);
    public 
    void setVicious(int i);
    byte getUpgradeSlots();
    byte getLevel();
    public 
    byte getFlag();
    public 
    short getStr();
    public 
    short getDex();
    public 
    short getInt();
    public 
    short getLuk();
    public 
    short getHp();
    public 
    short getMp();
    public 
    short getWatk();
    public 
    short getMatk();
    public 
    short getWdef();
    public 
    short getMdef();
    public 
    short getAcc();
    public 
    short getAvoid();
    public 
    short getHands();
    public 
    short getSpeed();
    public 
    short getJump();
    public 
    short getVicious();
    public 
    int getItemExp();
    public 
    byte getItemLevel();
    public 
    int getRingId();
    public 
    void setRingId(int id);
    public 
    boolean isWearing();
    public 
    void wear(boolean yes);
    public 
    void setPotential(byte potent);
    public 
    void setRank(byte rank);
    public 
    void setLines(byte lines);
    public 
    void setPotent1(short potent); 
    public 
    void setPotent2(short potent); 
    public 
    void setPotent3(short potent); 
    public 
    void setStars(byte i);
    public 
    byte getPotential();
    public 
    byte getRank();
    public 
    byte getLines();
    public 
    short getPotent1(); 
    public 
    short getPotent2(); 
    public 
    short getPotent3(); 
    public 
    byte getStars();



    go to ItemFactory.java and replace all with
    Spoiler:
    PHP Code:
    /*
    This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 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 <Licenses - GNU Project - Free Software Foundation (FSF)>.
    */
    package client;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import tools.DatabaseConnection;
    import tools.Pair;
    /**
    *
    * @author Flav
    */
    public enum ItemFactory {
    INVENTORY(1false),
    STORAGE(2true),
    CASH_EXPLORER(3true),
    CASH_CYGNUS(4false),
    CASH_ARAN(5false),
    MERCHANT(6false),
    ELSE(
    7false);
    private 
    int value;
    private 
    boolean account;
    private 
    ItemFactory(int valueboolean account) {
    this.value value;
    this.account account;
    }
    public 
    int getValue() {
    return 
    value;
    }
    public List<
    Pair<IItemMapleInventoryType>> loadItems(int idboolean loginthrows SQLException {
    List<
    Pair<IItemMapleInventoryType>> items = new ArrayList<Pair<IItemMapleInventoryType>>();
    StringBuilder query = new StringBuilder();
    query.append("SELECT * FROM `inventoryitems` LEFT JOIN `inventoryequipment` USING(`inventoryitemid`) WHERE `type` = ? AND `");
    query.append(account "accountid" "characterid");
    query.append("` = ?");
    if (
    login) {
    query.append(" AND `inventorytype` = ");
    query.append(MapleInventoryType.EQUIPPED.getType());
    }
    PreparedStatement ps DatabaseConnection.getConnection().prepareStatement(query.toString());
    ps.setInt(1value);
    ps.setInt(2id);
    ResultSet rs ps.executeQuery();
    while (
    rs.next()) {
    MapleInventoryType mit MapleInventoryType.getByType(rs.getByte("inventorytype"));
    if (
    mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) {
    Equip equip = new Equip(rs.getInt("itemid"), (byters.getInt("position"));
    equip.setOwner(rs.getString("owner"));
    equip.setQuantity((shortrs.getInt("quantity"));
    equip.setAcc((shortrs.getInt("acc"));
    equip.setAvoid((shortrs.getInt("avoid"));
    equip.setDex((shortrs.getInt("dex"));
    equip.setHands((shortrs.getInt("hands"));
    equip.setHp((shortrs.getInt("hp"));
    equip.setInt((shortrs.getInt("int"));
    equip.setJump((shortrs.getInt("jump"));
    equip.setVicious((shortrs.getInt("vicious"));
    equip.setFlag((byters.getInt("flag"));
    equip.setLuk((shortrs.getInt("luk"));
    equip.setMatk((shortrs.getInt("matk"));
    equip.setMdef((shortrs.getInt("mdef"));
    equip.setMp((shortrs.getInt("mp"));
    equip.setSpeed((shortrs.getInt("speed"));
    equip.setStr((shortrs.getInt("str"));
    equip.setWatk((shortrs.getInt("watk"));
    equip.setWdef((shortrs.getInt("wdef"));
    equip.setUpgradeSlots((byters.getInt("upgradeslots"));
    equip.setLevel((byters.getByte("level"));
    equip.setItemExp(rs.getInt("itemexp"));
    equip.setItemLevel(rs.getByte("itemlevel"));
    equip.setExpiration(rs.getLong("expiration"));
    equip.setGiftFrom(rs.getString("giftFrom"));
    equip.setRingId(rs.getInt("ringid"));
    equip.setLines(rs.getByte("lines"));
    equip.setRank(rs.getByte("rank"));
    equip.setPotent1(rs.getShort("potent1")); 
    equip.setPotent2(rs.getShort("potent2")); 
    equip.setPotent3(rs.getShort("potent3")); 
    equip.stars rs.getByte("stars");
    equip.setPotential(rs.getByte("potential")); 
    items.add(new Pair<IItemMapleInventoryType>(equipmit));
    } else {
    Item item = new Item(rs.getInt("itemid"), (byters.getInt("position"), (shortrs.getInt("quantity"), rs.getInt("petid"));
    item.setOwner(rs.getString("owner"));
    item.setExpiration(rs.getLong("expiration"));
    item.setGiftFrom(rs.getString("giftFrom"));
    item.setFlag((byters.getInt("flag"));
    items.add(new Pair<IItemMapleInventoryType>(itemmit));
    }
    }
    rs.close();
    ps.close();
    return 
    items;
    }
    public 
    synchronized void saveItems(List<Pair<IItemMapleInventoryType>> itemsint idthrows SQLException {
    StringBuilder query = new StringBuilder();
    query.append("DELETE FROM `inventoryitems` WHERE `type` = ? AND `");
    query.append(account "accountid" "characterid");
    query.append("` = ?");
    Connection con DatabaseConnection.getConnection();
    PreparedStatement ps con.prepareStatement(query.toString());
    ps.setInt(1value);
    ps.setInt(2id);
    ps.executeUpdate();
    ps.close();
    ps con.prepareStatement("INSERT INTO `inventoryitems` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"Statement.RETURN_GENERATED_KEYS);
    PreparedStatement pse con.prepareStatement("INSERT INTO `inventoryequipment` VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    for (
    Pair<IItemMapleInventoryTypepair items) {
    IItem item pair.getLeft();
    MapleInventoryType mit pair.getRight();
    ps.setInt(1value);
    ps.setString(2account null String.valueOf(id));
    ps.setString(3account String.valueOf(id) : null);
    ps.setInt(4item.getItemId());
    ps.setInt(5mit.getType());
    ps.setInt(6item.getPosition());
    ps.setInt(7item.getQuantity());
    ps.setString(8item.getOwner());
    ps.setInt(9item.getPetId());
    ps.setInt(10item.getFlag());
    ps.setLong(11item.getExpiration());
    ps.setString(12item.getGiftFrom());
    ps.executeUpdate();
    if (
    mit.equals(MapleInventoryType.EQUIP) || mit.equals(MapleInventoryType.EQUIPPED)) {
    ResultSet rs ps.getGeneratedKeys();
    if (!
    rs.next())
    throw new 
    RuntimeException("Inserting item failed.");
    pse.setInt(1rs.getInt(1));
    rs.close();
    IEquip equip = (IEquipitem;
    pse.setInt(2equip.getUpgradeSlots());
    pse.setInt(3equip.getLevel());
    pse.setInt(4equip.getStr());
    pse.setInt(5equip.getDex());
    pse.setInt(6equip.getInt());
    pse.setInt(7equip.getLuk());
    pse.setInt(8equip.getHp());
    pse.setInt(9equip.getMp());
    pse.setInt(10equip.getWatk());
    pse.setInt(11equip.getMatk());
    pse.setInt(12equip.getWdef());
    pse.setInt(13equip.getMdef());
    pse.setInt(14equip.getAcc());
    pse.setInt(15equip.getAvoid());
    pse.setInt(16equip.getHands());
    pse.setInt(17equip.getSpeed());
    pse.setInt(18equip.getJump());
    pse.setInt(190);
    pse.setInt(20equip.getVicious());
    pse.setInt(21equip.getItemLevel());
    pse.setInt(22equip.getItemExp());
    pse.setInt(23equip.getRingId());
    pse.setByte(24equip.getLines());
    pse.setByte(25equip.getRank());
    pse.setShort(26equip.getPotent1()); 
    pse.setShort(27equip.getPotent2()); 
    pse.setShort(28equip.getPotent3()); 
    pse.setInt(29equip.getStars());
    pse.setByte(30equip.getPotential()); 
    pse.executeUpdate();
    }
    }
     
    pse.close();
    ps.close();
    }



    and finally run this SQL
    Spoiler:
    PHP Code:
    --
    -- 
    Definition of table `inventoryequipment`
    --
    DROP TABLE IF EXISTS `inventoryequipment`;
    CREATE TABLE `inventoryequipment` (
    `
    inventoryequipmentidint(10unsigned NOT NULL AUTO_INCREMENT,
    `
    inventoryitemidint(10unsigned NOT NULL DEFAULT '0',
    `
    upgradeslotsint(11NOT NULL DEFAULT '0',
    `
    levelint(11NOT NULL DEFAULT '0',
    `
    strint(11NOT NULL DEFAULT '0',
    `
    dexint(11NOT NULL DEFAULT '0',
    `
    intint(11NOT NULL DEFAULT '0',
    `
    lukint(11NOT NULL DEFAULT '0',
    `
    hpint(11NOT NULL DEFAULT '0',
    `
    mpint(11NOT NULL DEFAULT '0',
    `
    watkint(11NOT NULL DEFAULT '0',
    `
    matkint(11NOT NULL DEFAULT '0',
    `
    wdefint(11NOT NULL DEFAULT '0',
    `
    mdefint(11NOT NULL DEFAULT '0',
    `
    accint(11NOT NULL DEFAULT '0',
    `
    avoidint(11NOT NULL DEFAULT '0',
    `
    handsint(11NOT NULL DEFAULT '0',
    `
    speedint(11NOT NULL DEFAULT '0',
    `
    jumpint(11NOT NULL DEFAULT '0',
    `
    lockedint(11NOT NULL DEFAULT '0',
    `
    viciousint(11unsigned NOT NULL DEFAULT '0',
    `
    itemlevelint(11NOT NULL DEFAULT '1',
    `
    itemexpint(11unsigned NOT NULL DEFAULT '0',
    `
    ringidint(11NOT NULL DEFAULT '-1',
    `
    linestinyint(4NOT NULL DEFAULT '0',
    `
    ranktinyint(4NOT NULL DEFAULT '0',
    `
    potent1int(11NOT NULL DEFAULT '0',
    `
    potent2int(11NOT NULL DEFAULT '0',
    `
    potent3int(11NOT NULL DEFAULT '0',
    `
    starsint(11NOT NULL DEFAULT '0',
    `
    potentialtinyint(4NOT NULL DEFAULT '0',
    PRIMARY KEY (`inventoryequipmentid`),
    KEY `inventoryitemid` (`inventoryitemid`),
    CONSTRAINT `inventoryequipment_ibfk_1FOREIGN KEY (`inventoryitemid`) REFERENCES `inventoryitems` (`inventoryitemid`) ON DELETE CASCADE
    ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=latin1;
    --
    -- 
    Dumping data for table `inventoryequipment`
    --
    /*!40000 ALTER TABLE `inventoryequipment` DISABLE KEYS */;
    INSERT INTO `inventoryequipment` (`inventoryequipmentid`,`inventoryitemid`,`upgradeslots`,`level`,`str`,`dex`,`int`,`luk`,`hp`,`mp`,`watk`,`matk`,`wdef`,`mdef`,`acc`,`avoid`,`hands`,`speed`,`jump`,`locked`,`vicious`,`itemlevel`,`itemexp`,`ringid`,`lines`,`rank`,`potent1`,`potent2`,`potent3`,`stars`,`potential`) VALUES
    (5,9,7,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    6,10,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    7,11,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    8,12,7,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    17,24,7,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    18,25,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    19,26,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    20,27,7,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    21,29,7,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    22,30,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    23,31,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    24,32,7,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    25,34,7,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    26,35,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    27,36,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0),
    (
    28,37,7,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,0,0,0,0);
    /*!40000 ALTER TABLE `inventoryequipment` ENABLE KEYS */

    *you will have to delete your char and open a new one after extracting this*
    i did it all by myself took me ages to make the list of the correct bonus for every item and rank its still not 100% but its good enough the only thing that sucks is that sometimes you get the stat "Hidden Potential".
    Last edited by meydan; 03-04-12 at 04:40 AM.


  2. #2
    Account Upgraded | Title Enabled! SuperLol is offline
    True MemberRank
    Jun 2010 Join Date
    786Posts

    Re: Fix for Potential System (100% GMS Like)

    The system looks very good. The only problem it is pretty messy but I'll say good release. I don't understand the 28 rows you enter into the SQL but I guess those are just extra columns of random things.

    The stat "Hidden Potential" is actually a stat but just with the text missing. You can code the effects to it. Some effects you have to code yourself anyway like 30% recovery bonus isn't in the code unless you code that.

  3. #3
    Account Upgraded | Title Enabled! Lowsir is offline
    True MemberRank
    Mar 2011 Join Date
    1,022Posts

    Re: Fix for Potential System (100% GMS Like)

    Thanks a lot for this. I can get the pots I were not able to get before.

  4. #4
    Account Inactive SXMaple is offline
    InactiveRank
    Dec 2011 Join Date
    sxaera@hotmail.Location
    133Posts

    Re: Fix for Potential System (100% GMS Like)

    Should change the SQL just to
    Code:
    DROP TABLE IF EXISTS `inventoryequipment`;
    CREATE TABLE `inventoryequipment` (
    `inventoryequipmentid` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `inventoryitemid` int(10) unsigned NOT NULL DEFAULT '0',
    `upgradeslots` int(11) NOT NULL DEFAULT '0',
    `level` int(11) NOT NULL DEFAULT '0',
    `str` int(11) NOT NULL DEFAULT '0',
    `dex` int(11) NOT NULL DEFAULT '0',
    `int` int(11) NOT NULL DEFAULT '0',
    `luk` int(11) NOT NULL DEFAULT '0',
    `hp` int(11) NOT NULL DEFAULT '0',
    `mp` int(11) NOT NULL DEFAULT '0',
    `watk` int(11) NOT NULL DEFAULT '0',
    `matk` int(11) NOT NULL DEFAULT '0',
    `wdef` int(11) NOT NULL DEFAULT '0',
    `mdef` int(11) NOT NULL DEFAULT '0',
    `acc` int(11) NOT NULL DEFAULT '0',
    `avoid` int(11) NOT NULL DEFAULT '0',
    `hands` int(11) NOT NULL DEFAULT '0',
    `speed` int(11) NOT NULL DEFAULT '0',
    `jump` int(11) NOT NULL DEFAULT '0',
    `locked` int(11) NOT NULL DEFAULT '0',
    `vicious` int(11) unsigned NOT NULL DEFAULT '0',
    `itemlevel` int(11) NOT NULL DEFAULT '1',
    `itemexp` int(11) unsigned NOT NULL DEFAULT '0',
    `ringid` int(11) NOT NULL DEFAULT '-1',
    `lines` tinyint(4) NOT NULL DEFAULT '0',
    `rank` tinyint(4) NOT NULL DEFAULT '0',
    `potent1` int(11) NOT NULL DEFAULT '0',
    `potent2` int(11) NOT NULL DEFAULT '0',
    `potent3` int(11) NOT NULL DEFAULT '0',
    `stars` int(11) NOT NULL DEFAULT '0',
    `potential` tinyint(4) NOT NULL DEFAULT '0',
    PRIMARY KEY (`inventoryequipmentid`),
    KEY `inventoryitemid` (`inventoryitemid`),
    CONSTRAINT `inventoryequipment_ibfk_1` FOREIGN KEY (`inventoryitemid`) REFERENCES `inventoryitems` (`inventoryitemid`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    No one wants useless rows :p

    Good job.

  5. #5
    Account Upgraded | Title Enabled! avivii12345 is offline
    True MemberRank
    Jan 2012 Join Date
    276Posts

    Re: Fix for Potential System (100% GMS Like)

    why i have this a error?
    "player.changeSkillLevel(skillSPFrom, (curLevelSPFrom - 1), player.getMasterLevel(skillSPFrom));
    player.changeSkillLevel(skillSPTo, (curLevel + 1), player.getMasterLevel(skillSPTo));"

  6. #6
    Account Upgraded | Title Enabled! Buya is offline
    True MemberRank
    Oct 2008 Join Date
    1,304Posts

    Re: Fix for Potential System (100% GMS Like)

    Am I the only one who knows (except ArcaneMS) that there is 5 potential lines?
    No, it is NOT hp% and mp%. Tets it yourself.
    Good job.
    Last edited by Buya; 03-04-12 at 05:19 PM.

  7. #7
    Account Inactive edennimni is offline
    InactiveRank
    Mar 2012 Join Date
    19Posts

    Re: Fix for Potential System (100% GMS Like)

    theres some erros need to fix like
    catch (Exception e) {
    says its catch with out try but
    nice..

  8. #8
    Account Inactive Spiderman is offline
    InactiveRank
    Feb 2010 Join Date
    my comfy chairLocation
    420Posts

    Re: Fix for Potential System (100% GMS Like)

    Quote Originally Posted by Buya View Post
    Am I the only one who knows (except ArcaneMS) that there is 5 people lines?
    What?

  9. #9
    Account Upgraded | Title Enabled! Buya is offline
    True MemberRank
    Oct 2008 Join Date
    1,304Posts

    Re: Fix for Potential System (100% GMS Like)

    I meant *5 potential lines*, sorry, haven't noticed that I wrote crap : )

  10. #10
    warp(california, "home"); LameJacob is offline
    True MemberRank
    Sep 2008 Join Date
    CaliforniaLocation
    548Posts

    Re: Fix for Potential System (100% GMS Like)

    yeah, if you get Legendary tier then it can go to 4 or 5 lines.

  11. #11
    Account Upgraded | Title Enabled! meydan is offline
    True MemberRank
    Apr 2008 Join Date
    321Posts

    Re: Fix for Potential System (100% GMS Like)

    this is for the potential system of v97 there is no legendary tier in v97

  12. #12
    Account Upgraded | Title Enabled! SuperLol is offline
    True MemberRank
    Jun 2010 Join Date
    786Posts

    Re: Fix for Potential System (100% GMS Like)

    Quote Originally Posted by Buya View Post
    Am I the only one who knows (except ArcaneMS) that there is 5 potential lines?
    No, it is NOT hp% and mp%. Tets it yourself.
    Good job.
    I'm pretty sure it's widely acknowledged. I mean after seeing 4 and 5 line potential screenshots on basilmarket what else can the two lines after potential 3 be?

  13. #13
    Account Inactive edennimni is offline
    InactiveRank
    Mar 2012 Join Date
    19Posts

    Re: Fix for Potential System (100% GMS Like)

    oh and you missed usePotentialScroll handler but its easy
    so please dont spoonfeed

  14. #14
    Account Upgraded | Title Enabled! Buya is offline
    True MemberRank
    Oct 2008 Join Date
    1,304Posts

    Re: Fix for Potential System (100% GMS Like)

    Quote Originally Posted by SuperLol View Post
    I'm pretty sure it's widely acknowledged. I mean after seeing 4 and 5 line potential screenshots on basilmarket what else can the two lines after potential 3 be?
    I have only heard that GMS has 4 lined for VIP equip, can someone post the uptodate case about it?

  15. #15
    Account Upgraded | Title Enabled! SuperLol is offline
    True MemberRank
    Jun 2010 Join Date
    786Posts

    Re: Fix for Potential System (100% GMS Like)

    There were some glitched items on GMS with 4 and 5 lines and I think they had their 4th and 5th lines reset.




Page 1 of 4 1234 LastLast

Advertisement