[Tools] Getting v88 localhost to work.

I seriously dont know how to use #C. Can someone please help me on the first step where he says get rid of the ip check and stuff. I dont even know how to compile it to get the new client
 
Hey, I was just wondering... What file do you replace the Ipcheck with? I searched: Checkip() in the GMSLocalhost folder and a few files popped up.

frmMain.cs, Located in GMS Localhost Revamped folder

InterceptedLinkedClient.cs, Located in the GMS Localhost Revamped folder

frmMain.cs, located in the GMS Localhost Revamped/Backup folder

InterceptedLinkedClient.cs, GMS Localhost Revamped/Backup folder

Program.cs, backup folder

Program.cs, GMS Localhost Revamped folder

Which one do i edit? Help is appreciated.
Thanks.
 
I have problem
When I create character and Click OK to accept his name nothing happen
Also if I open char from MYSQL and than I log in the account I dont see any world
How can I fix it?
 
where the hell is the compile button in Microsoft visual 2008?!Or is the build?Must i need the wamp server in order to start v88?Please reply me soon!
 
i keep getting this error im not sure why guys? i changed the clients ip to my server and etc but still and accountcheck is in my wamp and wamp is white and working 100%

 
is it work for mapleglobal v97?? i change case 0x24 to case 0x23 in InterceptedLinkedClient.cs, but when my friend try to connect to my server, he has "wrong version" error ;/ I can play but he can't.

//edit
I fixed it
 
Last edited:
Similar to a few others I am also getting the error where when you type a correct user/pass it simple says "1" in a popup box...
Any help would be nice
thanks

-Terra

Edit: Try using the original db name of shootsource. I tried that and it fixed my problem.

Made all the proper edits but for some reason it gave me that problem until I changed it to that.
 
Last edited:
well im sure no1 is gonna reply or help me but w/e its worth a shot. database offline error which means i have to place my account check .php file. but where do i place it. if you want you can tell me on msn: [email protected]
 
to the people that can't get past the character select screen its because "world" doesn't have a default value.. here's a fix:

replace your server.maplestorage.java with this:
PHP:
/*
	This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 Patrick Huy <[email protected]>
		       Matthias Butz <[email protected]>
		       Jan Christian Meyer <[email protected]>

    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 <http://www.gnu.org/licenses/>.
*/
package server;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import client.IItem;
import client.ItemFactory;
import client.MapleClient;
import client.MapleInventoryType;
import tools.DatabaseConnection;
import tools.MaplePacketCreator;
import tools.Pair;

/**
 *
 * @author Matze
 */
public class MapleStorage {
    private int id;
    private List<IItem> items;
    private int meso;
    private byte slots;
    private Map<MapleInventoryType, List<IItem>> typeItems = new HashMap<MapleInventoryType, List<IItem>>();

    private MapleStorage(int id, byte slots, int meso) {
        this.id = id;
        this.slots = slots;
        this.items = new LinkedList<IItem>();
        this.meso = meso;
    }

    private static MapleStorage create(int id, byte world) {
        try {
            PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("INSERT INTO storages (accountid, world, slots, meso) VALUES (?, ?, 4, 0)");
            ps.setInt(1, id);
            ps.setByte(2, world);
            ps.executeUpdate();
            ps.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return loadOrCreateFromDB(id, world);
    }

    public static MapleStorage loadOrCreateFromDB(int id, byte world) {
        MapleStorage ret = null;
        int storeId;
        try {
            Connection con = DatabaseConnection.getConnection();
            PreparedStatement ps = con.prepareStatement("SELECT storageid, slots, meso FROM storages WHERE accountid = ? AND world = ?");
            ps.setInt(1, id);
            ps.setByte(2, world);
            ResultSet rs = ps.executeQuery();
            if (!rs.next()) {
                rs.close();
                ps.close();
                return create(id, world);
            } else {
                storeId = rs.getInt("storageid");
                ret = new MapleStorage(storeId, (byte) rs.getInt("slots"), rs.getInt("meso"));
                rs.close();
                ps.close();
            for (Pair<IItem, MapleInventoryType> item : ItemFactory.STORAGE.loadItems(ret.id, false))
	         ret.items.add(item.getLeft());
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return ret;
    }

    public byte getSlots() {
	return slots;
    }

    public boolean gainSlots(int slots) {
	slots += this.slots;

	if (slots <= 48) {
            this.slots = (byte) slots;
            return true;
	}

	return false;
    }
    public void setSlots(byte set) {
        this.slots = set;
    }

    public void saveToDB() {
        try {
            Connection con = DatabaseConnection.getConnection();
            PreparedStatement ps = con.prepareStatement("UPDATE storages SET slots = ?, meso = ? WHERE storageid = ?");
            ps.setInt(1, slots);
            ps.setInt(2, meso);
            ps.setInt(3, id);
            ps.executeUpdate();
            ps.close();
            List<Pair<IItem, MapleInventoryType>> itemsWithType = new ArrayList<Pair<IItem, MapleInventoryType>>();

	    for (IItem item : items)
	               itemsWithType.add(new Pair<IItem,
	               MapleInventoryType>(item, MapleItemInformationProvider.getInstance().getInventoryType(item.getItemId())));

	    ItemFactory.STORAGE.saveItems(itemsWithType, id);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public IItem getItem(byte slot) {
        return items.get(slot);       
    }
    
    public IItem takeOut(byte slot) {
        IItem ret = items.remove(slot);
        MapleInventoryType type = MapleItemInformationProvider.getInstance().getInventoryType(ret.getItemId());
        typeItems.put(type, new ArrayList<IItem>(filterItems(type)));
        return ret;
    }

    public void store(IItem item) {
        items.add(item);
        MapleInventoryType type = MapleItemInformationProvider.getInstance().getInventoryType(item.getItemId());
        typeItems.put(type, new ArrayList<IItem>(filterItems(type)));
    }

    public List<IItem> getItems() {
        return Collections.unmodifiableList(items);
    }

    private List<IItem> filterItems(MapleInventoryType type) {
        List<IItem> ret = new LinkedList<IItem>();
        MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
        for (IItem item : items) {
            if (ii.getInventoryType(item.getItemId()) == type) {
                ret.add(item);
            }
        }
        return ret;
    }

    public byte getSlot(MapleInventoryType type, byte slot) {
        byte ret = 0;
        for (IItem item : items) {
            if (item == typeItems.get(type).get(slot)) {
                return ret;
            }
            ret++;
        }
        return -1;
    }

    public void sendStorage(MapleClient c, int npcId) {
        final MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
        Collections.sort(items, new Comparator<IItem>() {
            public int compare(IItem o1, IItem o2) {
                if (ii.getInventoryType(o1.getItemId()).getType() < ii.getInventoryType(o2.getItemId()).getType()) {
                    return -1;
                } else if (ii.getInventoryType(o1.getItemId()) == ii.getInventoryType(o2.getItemId())) {
                    return 0;
                }
                return 1;
            }
        });
        for (MapleInventoryType type : MapleInventoryType.values()) {
            typeItems.put(type, new ArrayList<IItem>(items));
        }
        c.getSession().write(MaplePacketCreator.getStorage(npcId, slots, items, meso));
    }

    public void sendStored(MapleClient c, MapleInventoryType type) {
        c.getSession().write(MaplePacketCreator.storeStorage(slots, type, typeItems.get(type)));
    }

    public void sendTakenOut(MapleClient c, MapleInventoryType type) {
        c.getSession().write(MaplePacketCreator.takeOutStorage(slots, type, typeItems.get(type)));
    }

    public int getMeso() {
        return meso;
    }

    public void setMeso(int meso) {
        if (meso < 0) {
            throw new RuntimeException();
        }
        this.meso = meso;
    }

    public void sendMeso(MapleClient c) {
        c.getSession().write(MaplePacketCreator.mesoStorage(slots, meso));
    }

    public boolean isFull() {
        return items.size() >= slots;
    }

    public void close() {
        typeItems.clear();
    }
}
then go to client.maplecharacter.java and change:
PHP:
ret.storage = MapleStorage.loadOrCreateFromDB(ret.accountid);
to:
PHP:
ret.storage = MapleStorage.loadOrCreateFromDB(ret.accountid, (byte) ret.world);

that should fix your problem logging in..

and @ the poster above, just place it in your www folder in wamp or whatever you use.
 
Last edited:
@Xenzy
EDIT: Ohwait, the usual MapeleStorage problem just appear again:
joy13975 - [Tools] Getting v88 localhost to work. - RaGEZONE Forums
 
Last edited:
okay so i am having this problem with my v88 server, i get this "cygnus intro lock OPCODE "error and idk how to fix, more details about it here

please help me :c
 
Back