public static byte[] showBuffeffect(int cid, int skillid, int effectid, int playerLevel, int skillLevel, byte direction) {
            MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();

            if (cid == -1) {
                mplew.writeShort(SendPacketOpcode.SHOW_SPECIAL_EFFECT.getValue());
            } else {
                mplew.writeShort(SendPacketOpcode.SHOW_FOREIGN_EFFECT.getValue());
                mplew.writeInt(cid);
            }
            mplew.write(effectid);
            mplew.writeInt(skillid);
            mplew.write(playerLevel);
            if ((effectid == 2) && (skillid == 31111003)) {
                mplew.writeInt(0);
            }
            mplew.write(skillLevel);
            if ((direction != 3) || (skillid == 1320006) || (skillid == 30001062) || (skillid == 30001061)) {
                mplew.write(direction);
            }

            if (skillid == 30001062) {
                mplew.writeInt(0);
            }
            if (cid == -1) {
                mplew.writeZeroBytes(10);
            }
            mplew.writeZeroBytes(20);

            return mplew.getPacket();
        }