Jump to content
  • 0

[HELP]With Addapt


Question

Posted

Hi cheaters!

im trying to adapt this code :http://maxcheaters.com/forum/index.php?topic=105180.0

on interlude.Its an aio item for freya.

Since im not a good developer,i will ask for your help!

I have aplied the code (only core-side) but i have a problem.I got many errors on ItemBypass.java

I cant find some imports since its different chronicle,so i will post the code bellow and w8 for sb to help me.

package com.l2jfrozen.gameserver.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

import javolution.text.TextBuilder;
import javolution.util.FastList;
import javolution.util.FastMap;
import com.l2jfrozen.Config;
import com.l2jfrozen.L2DatabaseFactory;
import com.l2jfrozen.gameserver.TradeController;
import com.l2jfrozen.gameserver.datatables.SkillTable;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.TvTEvent;
import com.l2jfrozen.gameserver.model.itemcontainer.PcFreight;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed;
import com.l2jfrozen.gameserver.network.serverpackets.BuyList;
import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jfrozen.gameserver.network.serverpackets.PackageToList;
import com.l2jfrozen.gameserver.network.serverpackets.SortedWareHouseWithdrawalList;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
import com.l2jfrozen.gameserver.network.serverpackets.WareHouseDepositList;
import com.l2jfrozen.gameserver.network.serverpackets.WareHouseWithdrawalList;
import com.l2jfrozen.gameserver.network.serverpackets.SortedWareHouseWithdrawalList.WarehouseListType;

/**
* 
* @author BiggBoss
*
*/

public class ItemBypass {

/* Constants */
private static final String _headHtml = "<html><title>AIO Item</title><body><center><br>";
private static final String _endHtml = "</center></body></html>";

/* Maps, Lists and Arrays to hold the data */
private static Map<String, FastMap<String, Integer[]>> _teleports = new FastMap<String, FastMap<String, Integer[]>>();
private static Map<String, FastMap<String, Integer[]>> _buffs = new FastMap<String, FastMap<String, Integer[]>>();

private static int _pagesPerTp;
private static int _pagesPerBuffs;
private static final int _coinpertp = Config.AIO_TPCOIN;
private static final int _coinperbuff = Config.AIO_BUFFCOIN;
/* Pice for teleport */
private static final int _tpprice = Config.AIO_PRICE_PERTP;
/* Price per buff */
private static final int _buffprice = Config.AIO_PRICE_PERBUFF;


public static void loadData() {
	int counter = 0;
	System.out.println("----------------------------------------------");
	System.out.println("Loading AIO Item data. Info:");
	System.out.println("----------------------------------------------");

	try {
		Connection con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT category FROM aio_teleports");
		ResultSet rset = statement.executeQuery();

		while(rset.next()) {
			String tpcategory = rset.getString("category");

			Connection con2 = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement2 = con2.prepareStatement("SELECT tpname, x, y, z FROM aio_teleports WHERE category = ?");
			statement2.setString(1, tpcategory);
			ResultSet rset2 = statement2.executeQuery();
			FastMap <String, Integer[]> temptp = new FastMap<String, Integer[]>();

			while(rset2.next()) {
				String tpname = rset2.getString("tpname");
				Integer[] coords = new Integer[3];
				coords[0] = rset2.getInt("x");
				coords[1] = rset2.getInt("y");
				coords[2] = rset2.getInt("z");
				temptp.put(tpname, coords);
			}
			con2.close();
			statement2.close();
			rset2.close();
			_teleports.put(tpcategory, temptp);
		}
		con.close();
		statement.close();
		rset.close();
	}
	catch(SQLException e) {
		counter += 1;
		e.printStackTrace();
	}
	int c = 0;
	System.out.println("Loaded " + _teleports.keySet().size() + " teleport categories for the AIO Item");
	for(String st : _teleports.keySet()) {
		c += _teleports.get(st).keySet().size();
	}
	System.out.println("Loaded " + c + " teleport spawnpoints for the AIO Item");

	try {
		Connection con3 = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement3 = con3.prepareStatement("SELECT category FROM aio_buffs");
		ResultSet rset3 = statement3.executeQuery();

		while(rset3.next()) {
			String bcategory = rset3.getString("category");

			Connection con4 = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement4 = con4.prepareStatement("SELECT buff_name, buff_id, buff_lvl FROM aio_buffs WHERE category = ?");
			statement4.setString(1, bcategory);
			ResultSet rset4 = statement4.executeQuery();
			FastMap<String, Integer[]> tempbuff = new FastMap<String, Integer[]>();

			while(rset4.next()) {
				String bname = rset4.getString("buff_name");
				Integer[] ar = new Integer[2];
				ar[0] = rset4.getInt("buff_id");
				ar[1] = rset4.getInt("buff_lvl");
				tempbuff.put(bname, ar);
			}
			con4.close();
			statement4.close();
			rset4.close();
			_buffs.put(bcategory, tempbuff);
		}
		con3.close();
		statement3.close();
		rset3.close();
	}
	catch(SQLException e) {
		counter += 2;
		e.printStackTrace();
	}
	int i = 0;
	System.out.println("Loaded " + _buffs.keySet().size() + " buffs categories for the AIO Item");
	for(String st : _buffs.keySet()) {
		i += _buffs.get(st).keySet().size();
	}
	System.out.println("Loaded " + i + " buffs for the AIO Item");

	if(counter == 0)
		System.out.println("AIO Item loaded sucesfully!");
	else
		switch(counter) {
		case 1:
			System.out.println("There was a problem loading Teleports. Check what did you enter on aio_teleports.");
			break;
		case 2:
			System.out.println("There was a problem loading Buffs. Check what did you enter on aio_buffs.");
			break;
			default:
				System.out.println("Something was wrong during AIO item load. Check the console.");
		}
	System.out.println("----------------------------------------------");
}

public static void onBypassFeedback(L2PcInstance player, String command) {

	//No null pointers or npc interaction
	if(player == null) return;

	if(player.getTarget() != null) {
		player.sendMessage("Remove your current target before use the AIO Item");
		return;
	}

	if(player.isInOlympiadMode() || TvTEvent.isPlayerParticipant(player.getObjectId())
			|| player.getKarma() > 0) {
		player.sendPacket(new SystemMessage(SystemMessageId.CANNOT_TRY_ON_NOW));
		return;
	}

	long pAdena = player.getAdena();
	String[] subCommand = command.split("_");
	WarehouseListType itemtype = null;

	if(command.startsWith("warehouse")) 
		showWarehouseWindow(player);
	else if(command.startsWith("nwidraw")) {
		player.sendPacket(ActionFailed.STATIC_PACKET);
		player.setActiveWarehouse(player.getWarehouse());
		if(pAdena == 0 || player.getInventory().getItemByItemId(57) == null) {
			player.sendMessage("You dont have adena to afford the transaction");
			return;
		}
		if(player.getWarehouse().getSize() == 0) {
			player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
			return;
		}
		else {
			if (itemtype != null)
				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE, itemtype, (byte) 0));
			else
				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.PRIVATE));

		}
	}
	else if(command.startsWith("ndeposit")) {
		player.sendPacket(ActionFailed.STATIC_PACKET);
		player.setActiveWarehouse(player.getWarehouse());
		if(player.getWarehouse().getSize() == player.getWareHouseLimit()) {
			player.sendMessage("The warehouse is full");
			return;
		}
		else {
			player.tempInventoryDisable();
			player.sendPacket(new WareHouseDepositList(player, WareHouseDepositList.PRIVATE));
		}
	}
	else if(command.startsWith("clanwidraw")) {
		player.sendPacket(ActionFailed.STATIC_PACKET);
		player.setActiveWarehouse(player.getClan().getWarehouse());
		if(!player.isClanLeader() || player.getClan() == null ) {
			player.sendMessage("You are not the clan leader");
			return;
		}
		else if(player.getClan().getWarehouse().getSize() == 0) {
			player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
			return;
		}
		else if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) != L2Clan.CP_CL_VIEW_WAREHOUSE) {
			player.sendPacket(new SystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_CLAN_WAREHOUSE));
			return;
		}
		else if(player.getClan().getLevel() == 0) {
			player.sendMessage("Only clan with lvl 1 or avobe can use clan warehouse");
			return;
		}
		else {
			player.setActiveWarehouse(player.getClan().getWarehouse());

			if (itemtype != null)
				player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN, itemtype, (byte) 0));
			else
				player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.CLAN));
		}
	}

	else if(command.startsWith("clandeposit")) {
		player.sendPacket(ActionFailed.STATIC_PACKET);
		player.setActiveWarehouse(player.getClan().getWarehouse());
		if(!player.isClanLeader() || player.getClan() == null ) {
			player.sendMessage("You are not the clan leader");
			return;
		}
		else {
			player.setActiveWarehouse(player.getClan().getWarehouse());
			player.tempInventoryDisable();
			player.sendPacket(new WareHouseDepositList(player, WareHouseDepositList.CLAN));
		}
	}
	else if(command.startsWith("freightwidraw")) {
		player.sendPacket(ActionFailed.STATIC_PACKET);
		PcFreight freight = player.getFreight();

		if (freight != null)
		{
			if (freight.getSize() > 0)
			{
				if (Config.ALT_GAME_FREIGHTS)
					freight.setActiveLocation(0);
				else
					freight.setActiveLocation(player.getWorldRegion().hashCode());

				player.setActiveWarehouse(freight);

				if (itemtype != null)
					player.sendPacket(new SortedWareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT, itemtype, (byte)0));
				else
					player.sendPacket(new WareHouseWithdrawalList(player, WareHouseWithdrawalList.FREIGHT));
			}
			else
				player.sendPacket(new SystemMessage(SystemMessageId.NO_ITEM_DEPOSITED_IN_WH));
		}
	}
	else if(command.startsWith("freightdeposit")) {
		if (player.getAccountChars().isEmpty())
			player.sendPacket(new SystemMessage(SystemMessageId.CHARACTER_DOES_NOT_EXIST));
		else {
			Map<Integer, String> chars = player.getAccountChars();

			if (chars.isEmpty()) {
				player.sendPacket(ActionFailed.STATIC_PACKET);
				return;
			}

			player.sendPacket(new PackageToList(chars));
		}
	}

	else if(command.startsWith("showTeleportWindow")) {
		if(player.getPvpFlag() > 0) {
			player.sendMessage("Cannot teleport while in pvp");
			return;
		}
		else 
			showTeleportWindow(player);
	}
	else if(command.startsWith("tpcategory")) 	
		showTeleportCategoryWindow(player, subCommand[1], 1);

	else if(command.startsWith("teleportTo")) {
		if(player.getInventory().getItemByItemId(_coinpertp) == null) {
			player.sendMessage("You dont have the necessary items");
			return;
		}
		else if(player.getInventory().getItemByItemId(_coinpertp).getCount() < _tpprice) {
			player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
			return;
		}

		int x = Integer.valueOf(subCommand[1]);
		int y = Integer.valueOf(subCommand[2]);
		int z = Integer.valueOf(subCommand[3]);

		player.destroyItemByItemId("AIO Teleport", _coinpertp, _tpprice, player, true);
		player.teleToLocation(x, y, z);
	}

	// For multiples pages on Gm Shop
	else if(command.startsWith("Chat")) {
		if(subCommand[1].isEmpty() || subCommand[1] == null) return;

		String file = "data/html/AIOItem/"+subCommand[1];
		NpcHtmlMessage msg = new NpcHtmlMessage(5);
		msg.setFile(file);
		player.sendPacket(msg);
	}
	else if(command.startsWith("showShopWindow")) {
		if(player.getPvpFlag() > 0 || pAdena == 0) return;

		String buyHtml = "data/html/AIOItem/GMShop.htm";
		NpcHtmlMessage msg = new NpcHtmlMessage(5);
		msg.setFile(buyHtml);
		player.sendPacket(msg);
	}
	else if(command.startsWith("showBuyWindow")){
		int val = Integer.valueOf(subCommand[1]);
		showBuyWindow(player, val);
	}
	else if(command.startsWith("ShowBuffWindow")) 
		showBuffsPage(player);
	else if(command.startsWith("showBuffCategory")){
		showBuffsPage(player, subCommand[1], Integer.valueOf(subCommand[2]));
	}
	else if(command.startsWith("buffMe")) {
		if(player.getInventory().getItemByItemId(_coinperbuff).getCount() < _buffprice) {
			player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_REQUIRED_ITEMS));
			return;
		}
		else {
			player.destroyItemByItemId("AIO Buffer", _coinperbuff, _buffprice, player, true);
			SkillTable.getInstance().getInfo(_buffs.get(subCommand[1]).get(subCommand[2])[0], _buffs.get(subCommand[1]).get(subCommand[2])[1]).getEffects(player, player);
			showBuffsPage(player, subCommand[1], 1);
		}
	}
	else if(command.startsWith("tvtinfo")) {
		showTvTInfoPage(player);
	}
	else if(command.startsWith("tvtjoin")) {
		if(subCommand[1].equals("reg"))
			TvTEvent.onBypass("tvt_event_participation", player);
		else if(subCommand[1].equals("unreg")) 
			TvTEvent.onBypass("tvt_event_remove_participation", player);
		else
			return;
	}
}

private static void showTvTInfoPage(L2PcInstance player) {
	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	if(TvTEvent.isParticipating()) {
		tb.append("TvT did not start yet!.<br1>");
		if(!TvTEvent.isPlayerParticipant(player.getObjectId())) {
			tb.append("Do you want to participate? Click <font color=LEVEL>Ok!</font> to<br1>");
			tb.append("join the event!");
			tb.append("<button value=\"Ok!\" action=\"bypass -h Aioitem_tvtjoin_reg\" width=120 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
		}
		else {
			tb.append("You are alredy participating. Do you<br1>");
			tb.append("want to unregister? Click the below button<br>");
			tb.append("<button value=\"Unregister\" action=\"bypass -h Aioitem_tvtjoin_unreg\" width=120 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
		}
	}
	else if(TvTEvent.isStarted()) {
		tb.append("TvT alredy started. You can not join<br1>");
		tb.append("join at this momment. But you can see the<br1>");
		tb.append("stats:<br>");
		for(String st : TvTEvent.getTeamNames()) {
			tb.append("<font color=LEVEL>" + st + ":</font><br1>");
			tb.append("- Participants: <font color=\"0000FF\">" + TvTEvent.getTeamsPlayerCounts()[0] +"</font><br1>");
			tb.append("- Kills: <font color=\"0000FF\">" + TvTEvent.getTeamsPoints()[0] +"</font><br1>");
			tb.append("- Deads: <font color=\"0000FF\">" + TvTEvent.getTeamsPoints()[1] +"</font><br>");
		}
	}
	else {
		tb.append("TvT is not avaliable at this momment<br1>");
		tb.append("Wait till it starts");
	}
	tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}

private static void showBuffsPage(L2PcInstance player, String string, int val) {

	FastMap<String, Integer[]> temp = _buffs.get(string);
	FastList<String> buff = new FastList<String>();
	buff.addAll(_buffs.get(string).keySet());
	_pagesPerBuffs = Math.round((buff.size() / 15));

	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	tb.append("Choose betwen the below buffs:<br>");
	tb.append("<table width = 240 height = 32>");
	for(String st : buff.subList((val * 15) - 15, getMaxRange(buff, ((val * 15) * 2) - 15))) {
		tb.append("<tr>");
		if(temp.get(st)[0] < 1000) 
			tb.append("<td><img src=\"icon.skill0" + temp.get(st)[0] + "\" width=32 height=32></td>");
		else
			tb.append("<td><img src=\"icon.skill" +temp.get(st)[0] + "\" width=32 height=32></td>");
		tb.append("<td><button value=\"" + st + "\" action=\"bypass -h Aioitem_buffMe_" + string + "_" + st + "\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\"></td>");
		if(temp.get(st)[0] < 1000) 
			tb.append("<td><img src=\"icon.skill0" + temp.get(st)[0] + "\" width=32 height=32></td>");
		else
			tb.append("<td><img src=\"icon.skill" +temp.get(st)[0] + "\" width=32 height=32></td>");

		tb.append("</tr>");
	}
	tb.append("</table>");
	for(int i = 1; i<_pagesPerBuffs; i++) {
		tb.append("<a action=\"bypass -h Aioitem_showBuffCategory_" + string + "_" + i +"\">" + i + "</a>");
	}
	tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}
private static void showBuffsPage(L2PcInstance player) {
	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	tb.append("Chose betwen the below categories:<br>");
	for(String st : _buffs.keySet()) {
		tb.append("<button value=\"" + st + "\" action=\"bypass -h Aioitem_showBuffCategory_" + st + "_1\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	}
tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}
private static void showTeleportCategoryWindow(L2PcInstance player, String string, int val) {

	FastMap<String, Integer[]> temp = _teleports.get(string);
	FastList<String> keys = new FastList<String>();
	keys.addAll(_teleports.get(string).keySet());
	_pagesPerTp = Math.round(keys.size() / 15);

	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	tb.append("Choose a teleport:<br>");

	for(String st : keys.subList((val * 15) - 15, getMaxRange(keys, ((val * 15) * 2) - 15)) ) {
		tb.append("<button value=\"" + st + "\" action=\"bypass -h Aioitem_teleportTo_" +temp.get(st)[0] + "_" +
				temp.get(st)[1] + "_" + temp.get(st)[2] + "\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" " +
						"fore=\"L2UI_ct1.button_df\">");
	}
	for(int i = 1; i<_pagesPerTp; i++) {
		tb.append("<a action=\"bypass -h Aioitem_tpcategory_" + string + "_" + i +"\">" + i + "</a>");
	}
	tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}

private static void showTeleportWindow(L2PcInstance player) {

	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	tb.append("Choose one of the below categories:<br>");

	for(String st : _teleports.keySet()) {
		tb.append("<button value=\"" + st + "\" action=\"bypass -h Aioitem_tpcategory_" + st + "_1\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	}
	tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}

private static void showWarehouseWindow(L2PcInstance player) {

	TextBuilder tb = new TextBuilder();
	tb.append(_headHtml);
	tb.append("Choose betwen the avobe options:<br>");
	tb.append("<button value=\"Withdraw\" action=\"bypass -h Aioitem_nwidraw\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append("<button value=\"Deposit\" action=\"bypass -h Aioitem_ndeposit\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append("<button value=\"Clan Withdraw\" action=\"bypass -h Aioitem_clanwidraw\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append("<button value=\"Clan Deposit\" action=\"bypass -h Aioitem_clandeposit\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append("<button value=\"Freight Withdraw\" action=\"bypass -h Aioitem_freightwidraw\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append("<button value=\"Freight Deposit\" action=\"bypass -h Aioitem_freightdeposit\" width=176 height=32 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_ct1.button_df\">");
	tb.append(_endHtml);

	NpcHtmlMessage msg = new NpcHtmlMessage(5);
	msg.setHtml(tb.toString());
	player.sendPacket(msg);
}

    private static void showBuyWindow(L2PcInstance player, int val) {
    	player.tempInventoryDisable();

        L2TradeList list = TradeController.getInstance().getBuyList(val);

        if (list != null) {
            player.sendPacket(new BuyList(list, player.getAdena(), 0));
        }
        player.sendPacket(ActionFailed.STATIC_PACKET);
    }
    
    //Give the max range each 15 units
    private static int getMaxRange(FastList<String> list, int lastindex) {
    	if(list.size() - lastindex > 0) 
    		return lastindex;
    	else
    		return list.size();
    }
}

So check the imports and tell me the rights.

Also if sb could make a full adaption (couse many ppl ask for this) would be great! :)

 

P.S

Im here couse i need some help(if i had the skills i could help some ppl too,also i could fix the code by myself).And as long this section is HELP section,i dont want to see ryplies like "read guides,learn java,you have to pay for this"

If you cant help or dont want to just get the f*** out of here!!

11 answers to this question

Recommended Posts

  • 0
Posted

lol "Since im not a good developer,i will ask for your help!" - so u will always stay noob and u will also always ask for help. Where are the errors?

  • 0
Posted

lol "Since im not a good developer,i will ask for your help!" - so u will always stay noob and u will also always ask for help. Where are the errors?

i dont want to be rude!but dude read the whole post before reply!i ask you to tell me what i have done wrong!

come on,try to search on your own.

 

its just imports,lol.

 

fanky they are not only imports since the code was written for freya!as you can see on tho code above i shared the changes i made.is l2jfrozen pack as you can see.

and i asked what was my mistake!

p.s fanky please read your pm's if possible.

p.s2 i was about to adapt this but i knew that i would fail.so i make a copy of workspace and since i got a lot of errors i quite and delete it!but i can apply this again and share the errors...

also i would appriciate if you could tell me what i have to do here :D

http://tinypic.com/view.php?pic=6iefxz&s=6

  • 0
Posted

check how the rest of itemhandlers are registered and you'll figure out what you'll have to do in order to fix it.

 

 

ok i will..since im trying to learn too!but could you tell me where i have to start?

  • 0
Posted

ok i will..since im trying to learn too!but could you tell me where i have to start?

i have no idea,never touched frozen.

 

in l2j,they are getting registered in gameserver,but seems they have make another class for this registration.

 

im not supposed to know how the items are registered in every fork.

  • 0
Posted

i have no idea,never touched frozen.

 

in l2j,they are getting registered in gameserver,but seems they have make another class for this registration.

 

im not supposed to know how the items are registered in every fork.

fanky your helping me! (siriously)

i went on  com.l2jfrozen.gameserver.handler.ItemHandler

and added this :

if(Config.AioItem)
    registerItemHandler(new AioItem());

it was :

 if(Config.AioItem)
                       _itemHandler.registerItemHandler(new AioItem());

and i got no errors..so let me add db side to test it and inform you.stay tuned! :P

  • 0
Posted

I'm glad that I actually helped.

it worked as "idea" the item apear with gm shop buffer etc...but i have to add htm files in order to test it properly!

fanky could you send me via pm your skype?i wont spam you and i will never ask from you fix this error for me,also i will never mention team.v! ;D

i just want to have communication with you in order to ask if i need your help!

thx in advance.

Guest
This topic is now closed to further replies.


  • Posts

    • 🏆 UPDATE: CLAN RACE — R$ 300 (PIX in Brazil, or the equivalent in USDT/PayPal) for the first clan ready for World B PvP Worlds opens on Friday, September 25, 19:00 BRT (GMT-3). Everyone starts together, from scratch. The challenge: the first clan with 9 members ready to enter World B wins. Ready = level 51, World C registered and the full C set equipped (weapon, armor and jewelry) with at least 3 attributes on each piece. Only Queen Ant stands between you and World B. Rules: main character only; 9 different people, each on their own PC; the server records the exact time each member became ready. Deadline: October 14. Sign up your clan on our Discord (link on the site): l2mog.com/pvp
    • 🚀 L2-Gold Custom PvP – Beta Test is LIVE! 🚀 Hey guys! We are opening a brand new Custom PvP server and looking for passionate players to help us test it out before the official grand opening! 💥 What we offer: High Rates & Custom PvP Gameplay Custom NPC Buffer, GM Shop & Global GK Balanced classes and epic custom items Interlude with c4 skills 🎁 Beta Rewards: Every active tester who reports bugs or gives feedback will receive Exclusive Custom Rewards on the official launch day! 🛑 No website needed yet! All files, patch, and support are inside our Discord. 🔗 Join Beta Test Here: [https://discord.gg/9qkSxQtTq]
    • "CAN YOU DO A BULGARIAN REVOLUT?" – WE DID. FIRST DRAFT, NO EDITS The request came in short: a photo of a bank card, Bulgaria, Revolut. We said yes and asked the only question that matters – what data. The client was on the road, asked for a couple of hours, then sent the lot: number, expiry, CVV, payment system, bank, cardholder name. Then came the part the client never sees: - ran the number through Luhn – the check digit has to add up, otherwise the card is dead the second anything automated looks at it - matched the BIN to the issuer: Revolut in Bulgaria isn't a "local bank", the cards run through Revolut Bank UAB. The number range has to actually belong there, not just start with the right digit - built the current design, not a five-year-old picture: vertical layout, flat laser print instead of embossing, correct chip module, contactless mark where it belongs - the payment system logo – with the right gradient where the circles overlap and the wordmark sitting exactly where it should. A small thing that kills half the fakes out there - and finally, physics. Plastic has to catch light: a highlight along the edge, a micro-shadow under the chip, a faint fingerprint. A phone shot, not a render Sent the draft for approval. The client looked it over, signed off with zero corrections – final files went out. One pass, no rework. A card is a deceptively simple document. Looks like a rectangle and sixteen digits. In reality it's maths in the number, a tie to the issuer, a current design and light on plastic. Miss any one of the four and the file gets exactly two seconds of attention. Need a card for a specific bank and country? Message us. We'll tell you straight what's realistic for your case – then build it. { all data published with the client's consent} › TG: @mustang_service_ms ( https:// t.me/ mustang_service_ms ) › Channel: Mustang Service ( https:// t.me/ +JPpJCETg-xM1NjNl ) #drawing #card #photoshop #revolut #case
    • ============================================================               CLExt Classic Interlude: v7.80 ============================================================   01. Fixed ValidateLocation handling and player/client position synchronization. 02. Added protection against invalid coordinates and characters falling under the map. 03. Improved XY/Z position and heading validation. 04. Fixed MoveToLocation and MoveToPawn packet conversion and target validation. 05. Fixed TargetSelected, TargetUnselected and MyTargetSelected packet handling. 06. Improved GeoData Z-location handling and disabled unsafe PathNode modifications. 07. Added ExUserInfoInventoryWeight support. 08. Fixed inventory weight and maximum load synchronization. 09. Fixed incorrect 0% inventory weight after character login. 10. Added automatic inventory weight updates after EnterWorld and inventory changes. 11. Added inventory weight packet spam protection and safe weight caching. 12. Fixed BuyList and SellList inventory, slot and weight synchronization. 13. Improved NPC target and Buy/Sell packet validation. 14. Reworked mail attachment inventory and weight validation. 15. Added all-or-nothing mail attachment receiving and safe retry handling. 16. Fixed stackable mail attachment validation and INT_MAX overflow protection. 17. Improved COD Adena validation and post-mail inventory weight refresh. 18. Improved Warehouse Deposit and Withdraw validation. 19. Added protection against malformed warehouse item counts, DBIDs and amounts. 20. Added warehouse INT_MAX, CItem and pSID validation. 21. Improved warehouse anti-dupe protection. 22. Reworked the HTML Cache system for improved stability and memory usage. 23. Added lazy HTML loading instead of loading ~20,000 files during startup. 24. Fixed HTML Cache startup crashes with large HTML collections. 25. Added thread-safe HTML Cache access and Clear/Reload support. 26. Added bad allocation, invalid HTML and oversized HTML protection. 27. Reduced HTML Cache RAM usage, startup allocations and disk I/O. 28. Added HTML Caching ON/OFF with live HTM loading support. 29. Fixed ToggleCachingHook and added VS2005-compatible live HTML handling. 30. Fixed ShortcutInit processing and skill synchronization order. 31. Improved shortcut item validation, augmentation handling and va_list safety. 32. Added LiveMode Ability Point system. 33. Added inventory-item-based Ability Points with configurable pointItemId. 34. Preserved the original level-based Ability Point system as fallback. 35. Fixed incorrect Ability Point display and inventory synchronization. 36. Improved Ability skill learning and point validation. 37. Improved OfflineShopRestore loading and FakePC/DBID handling. 38. Added safer OfflineShopRestore socket limits and batch processing. 39. Prevented thousands of restore sockets from loading simultaneously. 40. Added delayed, non-blocking OfflineShopRestore after server startup. 41. Improved OnEnterWorld initialization order and stability. 42. Improved inventory weight, SkillList and acquired-skill initialization after login. 43. Added VIP integration to the EnterWorld process. 44. Added safe UserExtData initialization without modifying the native User structure. 45. Improved duplicate Bronch Jewel and equipped-slot protection. 46. Improved Bracelet, Belt, Bronch and general UseItem validation. 47. Improved general packet, UserSocket, User, pSD and Creature validation. 48. Added safer INT32/INT64 packet handling and malformed-packet protection. 49. Improved L2Server startup memory usage and lazy resource loading. 50. Reduced unnecessary startup allocations. 51. Improved account-only KeyEngine authentication and remote account validation. 52. Removed account expiration-time requirements. 53. Added updater/restart design without requiring CLExtUpdate.exe. 54. Improved CLIEXT HWID, shared-memory and client/server version validation. 55. Improved ReadFile/WriteFile hooks and MemoryProtector handling. 56. Added UoPilot and Extreme Injector detection handling. 57. Reworked VIP point loading, saving and database synchronization. 58. Fixed VIP Level 0 initialization and first VIP activation. 59. Fixed vip.htm activation after login and from party-shared points. 60. Fixed VIP points being incorrectly reset before successful activation. 61. Improved VIP progression from Level 1 through Level 7. 62. Added proper VIP Level 7 MAX/DONE behavior with no Level 8 requirement. 63. Disabled further VIP point collection after reaching maximum level. 64. Reworked VIP BonusInfo/ReceiveVipInfo packet synchronization. 65. Fixed VIP tier, points, duration and level requirement packet fields. 66. Added VIP duration, tier, point and User validation protections. 67. Added safer 64-bit VIP EXP and party EXP calculations. 68. Preserved subclass maximum EXP protection. 69. Improved ItemDataEx validation during character loading. 70. Fixed augmentation loss during login, relog and server restart. 71. Added safe restoration of augmentation IDs directly from the database. 72. Added CItem, pSID, pExItem and User validation during ItemDataEx loading. 73. Improved Shadow Item mana and item lifetime loading. 74. Preserved item protection timeout data during character loading. 75. Added augmentation loading diagnostics and protected valid augmentation data. 76. Preserved database value 0 for genuinely non-augmented items. 77. Added RaidBoss Status synchronization with the World Map. 78. Fixed alive/dead RaidBoss status updates after spawn and death. 79. Added RaidBossStatus as the source of truth for RaidBoss map packets. 80. Fixed RaidBoss map status synchronization after server/database loading.
    • 🚀 L2AQUILA — GRAND OPENING TOMORROW! Lineage 2 Gracia Final — Like L2 Pride, but fresh. The server you've been waiting for opens tomorrow, Saturday 19/09, 16:00 (Greek time) — No Wipe · 24/7 · Anti-DDoS. ⚔️ What's inside: • EXP 9300x · SP 3000x · Adena 5500x · High drop • Max enchant +20 · Safe +3 · 24 buffs / 3 debuffs • 20 free Custom Coins for every new player on day one! • Custom farming zones (Cave of Trials, Cemetery, Ruins of Despair + more) • PvP Events · Olympiads · Offline Trading · Weddings · Balanced classes • Starter + Dynasty shops in every town — playable from minute one 📥 Download: Client + Patch at https://l2aquila.com/index.html 💬 Discord: discord.gg/5ZyBRvG4k · Facebook: facebook.com/l2aquila Be there at opening hour — bring your squad. See you at the Grand Opening! 🔥
  • Topics

×
×
  • 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..