Jump to content
  • 0

Erorr making offshop


Question

Posted

Hi all, then i tried to create offline shop mode in aCis source i get erorrs and for me its imposible to fix it. Maby someone will fix it

This is a code of oflinetrade.java

/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* 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 General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.l2j.gameserver.datatables;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;

import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.LoginServerThread;
import net.sf.l2j.gameserver.model.L2ManufactureItem;
import net.sf.l2j.gameserver.model.L2ManufactureList;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.TradeList.TradeItem;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.network.L2GameClient.GameClientState;

public class OfflineTradersTable
{
private static Logger _log = Logger.getLogger(OfflineTradersTable.class.getName());

//SQL DEFINITIONS
private static final String SAVE_OFFLINE_STATUS = "INSERT INTO character_offline_trade (`charId`,`time`,`type`,`title`) VALUES (?,?,?,?)";
private static final String SAVE_ITEMS = "INSERT INTO character_offline_trade_items (`charId`,`item`,`count`,`price`) VALUES (?,?,?,?)";
private static final String CLEAR_OFFLINE_TABLE = "DELETE FROM character_offline_trade";
private static final String CLEAR_OFFLINE_TABLE_ITEMS = "DELETE FROM character_offline_trade_items";
private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM character_offline_trade";
private static final String LOAD_OFFLINE_ITEMS = "SELECT * FROM character_offline_trade_items WHERE charId = ?";

public static void storeOffliners()
{
	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement stm = con.prepareStatement(CLEAR_OFFLINE_TABLE);
		stm.execute();
		stm.close();
		stm = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS);
		stm.execute();
		stm.close();

		con.setAutoCommit(false); // avoid halfway done
		stm = con.prepareStatement(SAVE_OFFLINE_STATUS);
		PreparedStatement stm_items = con.prepareStatement(SAVE_ITEMS);

		//TextBuilder items = TextBuilder.newInstance();
		for (L2PcInstance pc : L2World.getInstance().getAllPlayers().values())
		{
			try
			{
				if ((pc.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE) && (pc.getClient() == null || pc.getClient().isDetached()))
				{
					stm.setInt(1, pc.getObjectId()); //Char Id
					stm.setLong(2, pc.getOfflineStartTime());
					stm.setInt(3, pc.getPrivateStoreType()); //store type
					String title = null;

					switch (pc.getPrivateStoreType())
					{
						case L2PcInstance.STORE_PRIVATE_BUY:
							if (!Config.OFFLINE_TRADE_ENABLE)
								continue;
							title = pc.getBuyList().getTitle();
							for (TradeItem i : pc.getBuyList().getItems())
							{
								stm_items.setInt(1, pc.getObjectId());
								stm_items.setInt(2, i.getItem().getItemId());
								stm_items.setInt(3, i.getCount());
								stm_items.setInt(4, i.getPrice());
								stm_items.executeUpdate();
								stm_items.clearParameters();
							}
							break;
						case L2PcInstance.STORE_PRIVATE_SELL:
						case L2PcInstance.STORE_PRIVATE_PACKAGE_SELL:
							if (!Config.OFFLINE_TRADE_ENABLE)
								continue;
							title = pc.getSellList().getTitle();
							for (TradeItem i : pc.getSellList().getItems())
							{
								stm_items.setInt(1, pc.getObjectId());
								stm_items.setInt(2, i.getObjectId());
								stm_items.setInt(3, i.getCount());
								stm_items.setInt(4, i.getPrice());
								stm_items.executeUpdate();
								stm_items.clearParameters();
							}
							break;
						case L2PcInstance.STORE_PRIVATE_MANUFACTURE:
							if (!Config.OFFLINE_CRAFT_ENABLE)
								continue;
							title = pc.getCreateList().getStoreName();
							for (L2ManufactureItem i : pc.getCreateList().getList())
							{
								stm_items.setInt(1, pc.getObjectId());
								stm_items.setInt(2, i.getRecipeId());
								stm_items.setLong(3, 0);
								stm_items.setLong(4, i.getCost());
								stm_items.executeUpdate();
								stm_items.clearParameters();
							}
					}
					stm.setString(4, title);
					stm.executeUpdate();
					stm.clearParameters();
					con.commit(); // flush
				}
			}
			catch (Exception e)
			{
				_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
			}
		}
		stm.close();
		stm_items.close();
		_log.info("Offline traders stored.");
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING,"OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: "  e,e);
	}
	finally
	{
		try
		{
			con.close();
		} catch (Exception e)
		{
		}
		con = null;
	}
}

public static void restoreOfflineTraders()
{
	_log.info("Loading offline traders...");
	Connection con = null;
	int nTraders = 0;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement stm = con.prepareStatement(LOAD_OFFLINE_STATUS);
		ResultSet rs = stm.executeQuery();
		while (rs.next())
		{
			long time = rs.getLong("time");
			if (Config.OFFLINE_MAX_DAYS > 0)
			{
				Calendar cal = Calendar.getInstance();
				cal.setTimeInMillis(time);
				cal.add(Calendar.DAY_OF_YEAR, Config.OFFLINE_MAX_DAYS);
				if (cal.getTimeInMillis() <= System.currentTimeMillis())
					continue;
			}

			int type = rs.getInt("type");
			if (type == L2PcInstance.STORE_PRIVATE_NONE)
				continue;

			L2PcInstance player = null;

			try
			{
				L2GameClient client = new L2GameClient(null);
				client.setDetached(true);
				player = L2PcInstance.load(rs.getInt("charId"));
				client.setActiveChar(player);
				player.setOnlineStatus(true, false);
				client.setAccountName(player.getAccountName());
				client.setState(GameClientState.IN_GAME);
				player.setClient(client);
				player.setOfflineStartTime(time);
				player.spawnMe(player.getX(), player.getY(), player.getZ());
				LoginServerThread.getInstance().addGameServerLogin(player.getAccountName(), client);
				PreparedStatement stm_items = con.prepareStatement(LOAD_OFFLINE_ITEMS);
				stm_items.setInt(1, player.getObjectId());
				ResultSet items = stm_items.executeQuery();

				switch (type)
				{
					case L2PcInstance.STORE_PRIVATE_BUY:
						while (items.next())
						{
							if (player.getBuyList().addItemByItemId(items.getInt(2), items.getInt(3), items.getInt(4)) == null)
								throw new NullPointerException();
						}
						player.getBuyList().setTitle(rs.getString("title"));
						break;
					case L2PcInstance.STORE_PRIVATE_SELL:
					case L2PcInstance.STORE_PRIVATE_PACKAGE_SELL:
						while (items.next())
						{
							if (player.getSellList().addItem(items.getInt(2), items.getInt(3), items.getInt(4)) == null)
								throw new NullPointerException();
						}
						player.getSellList().setTitle(rs.getString("title"));
						player.getSellList().setPackaged(type == L2PcInstance.STORE_PRIVATE_PACKAGE_SELL);
						break;
					case L2PcInstance.STORE_PRIVATE_MANUFACTURE:
						L2ManufactureList createList = new L2ManufactureList();
						while (items.next())
						{
							createList.add(new L2ManufactureItem(items.getInt(2), items.getInt(4)));
						}
						player.setCreateList(createList);
						player.getCreateList().setStoreName(rs.getString("title"));
						break;
				}
				items.close();
				stm_items.close();

				player.sitDown();
				if (Config.OFFLINE_SET_NAME_COLOR)
					player.getAppearance().setNameColor(Config.OFFLINE_NAME_COLOR);
				player.setPrivateStoreType(type);
				player.setOnlineStatus(true, true);
				player.restoreEffects();
				player.broadcastUserInfo();
				nTraders;
			}
			catch (Exception e)
			{
				_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error loading trader: "player,e);
				if (player != null)
				{
					player.deleteMe();
				}
			}
		}
		rs.close();
		stm.close();
		_log.info("Loaded: " nTraders " offline trader(s)");
		stm = con.prepareStatement(CLEAR_OFFLINE_TABLE);
		stm.execute();
		stm.close();
		stm = con.prepareStatement(CLEAR_OFFLINE_TABLE_ITEMS);
		stm.execute();
		stm.close();
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error while loading offline traders: ",e);
	}
	finally
	{
		try
		{
		con.close();
		}
		catch (Exception e)
		{ }
		con = null;
	}
}
}

 

And this is errors

 

[javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: ')' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                     ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: illegal start of expression
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                         ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: ';' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                                     ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: not a statement
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                                              ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: ';' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                                               ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: not a statement
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                                                 ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:130: error: ';' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[storeTradeItems()]: Error while saving offline trader: "  pc.getObjectId()  " "  e, e);
    [javac] 					                                                                                                                                  ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:139: error: ')' expected
    [javac] 			_log.log(Level.WARNING,"OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: "  e,e);
    [javac] 			                                                                                                     ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:139: error: illegal start of expression
    [javac] 			_log.log(Level.WARNING,"OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: "  e,e);
    [javac] 			                                                                                                        ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:139: error: ';' expected
    [javac] 			_log.log(Level.WARNING,"OfflineTradersTable[storeTradeItems()]: Error while saving offline traders: "  e,e);
    [javac] 			                                                                                                          ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:238: error: not a statement
    [javac] 					nTraders;
    [javac] 					^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:242: error: ')' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error loading trader: "player,e);
    [javac] 					                                                                                      ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:242: error: illegal start of expression
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error loading trader: "player,e);
    [javac] 					                                                                                            ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:242: error: ';' expected
    [javac] 					_log.log(Level.WARNING, "OfflineTradersTable[loadOffliners()]: Error loading trader: "player,e);
    [javac] 					                                                                                              ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:251: error: ')' expected
    [javac] 			_log.info("Loaded: " nTraders " offline trader(s)");
    [javac] 			                    ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:251: error: not a statement
    [javac] 			_log.info("Loaded: " nTraders " offline trader(s)");
    [javac] 			                              ^
    [javac] D:\MidSource\trunk_260\aCis_gameserver\java\net\sf\l2j\gameserver\datatables\OfflineTradersTable.java:251: error: ';' expected
    [javac] 			_log.info("Loaded: " nTraders " offline trader(s)");
    [javac] 			                                                  ^
    [javac] 17 errors

3 answers to this question

Recommended Posts

  • 0
Posted

Shit happens when you replace all "+" by "". You wanted to do it fast as it was a patch and you couldn't apply patch manually so you cped patch with all + and then thought to drop them using replace command.

 

I'm so good.

  • 0
Posted

Shit happens when you replace all "+" by "". You wanted to do it fast as it was a patch and you couldn't apply patch manually so you cped patch with all + and then thought to drop them using replace command.

 

I'm so good.

 

 

:O how u know that? xd Next time dont boring :p

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..