Jump to content

[Share] Repair clientcrash on character enter


Recommended Posts

I think you have realistic depth on in the settings (it's below shaders)

 

To those who ask for IL: this is for IL, if you know what to do; it's replacement at lobby.unr and stuff, I think it's explained at the share or else the author should explain it here :)

 

edit

error fixed

Link to comment
Share on other sites

  • 2 months later...

some modifications must be made

 

Repair.java

-package handlers.voicedcommandhandlers;
+ package com.l2jserver.gameserver.handler.voicedcommandhandlers;
-private static final String[]	 _voicedCommands	=
+private static final String[] VOICED_COMMANDS =

-return _voicedCommands;
+return VOICED_COMMANDS;

 

Config.java

public static boolean ENABLE_REPAIR;

 

VoicedCommanderHandler.java

if (Config.ENABLE_REPAIR)
		registerVoicedCommandHandler(new Repair());

Link to comment
Share on other sites

wow!

Really useful code, i'm gonna add it in my project for sure!

BUT

If someone has karma and he is afraid of loosing his items, may use it to escape and save his item once the items are going in warehouse!

:/ any ideas to avoid it???

Link to comment
Share on other sites

+cs.Tribal®™ 's  Request

 

/*
* 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 handlers.voicedcommandhandlers;

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

import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;

/**
* <B><U>User Character .repair voicecommand - SL2 L2JEmu</U></B><BR><BR>
*
* 
* <U>NOTICE:</U> Voice command .repair that when used, allows player to
* try to repair any of characters on his account, by setting spawn
* to Floran, removing all shortcuts and moving everything equipped to
* that char warehouse.<BR><BR>
*
*
* (solving client crashes on character entering world)<BR><BR>
*
*
* @author szponiasty
* @version $Revision: 0.17.2.95.2.9 $ $Date: 2010/03/03 9:07:11 $
*/

public class Repair implements IVoicedCommandHandler
{
static final Logger _log = Logger.getLogger(Repair.class.getName());

private static final String[]	 _voicedCommands	=
	{ 
	"repair", 
	"startrepair"
	};

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{		
	if (activeChar==null)
		return false;

	String repairChar=null;

	try		
	{
		if(target != null)
			if(target.length() > 1)
			  {
			   String[] cmdParams = target.split(" ");
			   repairChar=cmdParams[0];
			  }
	}
	catch (Exception e)
	{
		repairChar = null;
	}						
	// Send activeChar HTML page
	if (command.startsWith("repair"))               
	{             
		String htmContent = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/repair/repair.htm");
		NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
		npcHtmlMessage.setHtml(htmContent);		
		npcHtmlMessage.replace("%acc_chars%", getCharList(activeChar));
		activeChar.sendPacket(npcHtmlMessage);	
		return true;
	}
	// Command for enter repairFunction from html
	if (command.startsWith("startrepair") && (repairChar != null))
	{
		//_log.warning("Repair Attempt: Character " + repairChar);
			if (checkAcc(activeChar,repairChar))
			{
				if (checkChar(activeChar,repairChar))
				{
					String htmContent = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/repair/repair-self.htm");
					NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
					npcHtmlMessage.setHtml(htmContent);
					activeChar.sendPacket(npcHtmlMessage);
					return false;
				}
				else if (checkJail(activeChar,repairChar))
				{
					String htmContent = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/repair/repair-jail.htm");
					NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
					npcHtmlMessage.setHtml(htmContent);
					activeChar.sendPacket(npcHtmlMessage);	
					return false;
				}
+                                      else if (checkKarma(activeChar,repairChar))
+		                        {
+			                        activeChar.sendMessage("Selected Char has Karma,Cannot be repaired!");
+			                        return false;
+		                        }
				else
				{
					repairBadCharacter(repairChar);
					String htmContent = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/repair/repair-done.htm");
					NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
					npcHtmlMessage.setHtml(htmContent);
					activeChar.sendPacket(npcHtmlMessage);
					return true;
				}
			}
			else
			{
				String htmContent = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/mods/repair/repair-error.htm");
				NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5);
				npcHtmlMessage.setHtml(htmContent);
				activeChar.sendPacket(npcHtmlMessage);
				return false;
			}
	}
	//_log.warning("Repair Attempt: Failed. ");
	return false;
}

private String getCharList(L2PcInstance activeChar)
{
	String result="";
	String repCharAcc=activeChar.getAccountName();
	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT char_name FROM characters WHERE account_name=?");
		statement.setString(1, repCharAcc);
		ResultSet rset = statement.executeQuery();
		while (rset.next())
		{
			if (activeChar.getName().compareTo(rset.getString(1)) != 0)
				result += rset.getString(1)+";";
		}
		//_log.warning("Repair Attempt: Output Result for searching characters on account:"+result);
		rset.close();
		statement.close();
	}
	catch (SQLException e)
	{
		e.printStackTrace();
		return result;
	}
	finally
	{
		try
		{
			if (con != null)
				con.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	return result;	
}

private boolean checkAcc(L2PcInstance activeChar,String repairChar)
{
	boolean result=false;
	String repCharAcc="";
	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT account_name FROM characters WHERE char_name=?");
		statement.setString(1, repairChar);
		ResultSet rset = statement.executeQuery();
		if (rset.next())
		{
			repCharAcc = rset.getString(1);
		}
		rset.close();
		statement.close();

	}
	catch (SQLException e)
	{
		e.printStackTrace();
		return result;
	}
	finally
	{
		try
		{
			if (con != null)
				con.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	if (activeChar.getAccountName().compareTo(repCharAcc)==0)
		result=true;
	return result;
}

private boolean checkJail(L2PcInstance activeChar,String repairChar)
{
	boolean result=false;
	int repCharJail = 0;
	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement statement = con.prepareStatement("SELECT punish_level FROM characters WHERE char_name=?");
		statement.setString(1, repairChar);
		ResultSet rset = statement.executeQuery();
		if (rset.next())
		{
			repCharJail = rset.getInt(1);
		}
		rset.close();
		statement.close();

	}
	catch (SQLException e)
	{
		e.printStackTrace();
		return result;
	}
	finally
	{
		try
		{
			if (con != null)
				con.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
	if (repCharJail > 1) // 0 norm, 1 chat ban, 2 jail, 3....
		result=true;
	return result;
}

+      private boolean checkKarma(L2PcInstance activeChar,String repairChar)
+	{
+		boolean result=false;
+		int repCharKarma = 0;
+		Connection con = null;
+		try
+		{
+			con = L2DatabaseFactory.getInstance().getConnection();
+			PreparedStatement statement = con.prepareStatement("SELECT karma FROM characters WHERE char_name=?");
+			statement.setString(1, repairChar);
+			ResultSet rset = statement.executeQuery();
+			if (rset.next())
+			{
+				repCharKarma = rset.getInt(1);
+			}
+			rset.close();
+			statement.close();
+		}
+		catch (SQLException e)
+		{
+			e.printStackTrace();
+			return result;
+		}
+		finally
+		{
+			try
+			{
+				if (con != null)
+					con.close();
+			}
+			catch (SQLException e)
+			{
+				e.printStackTrace();
+			}
+		}
+		if (repCharKarma > 0) 
+			result=true;
+		return result;
+	}

private boolean checkChar(L2PcInstance activeChar,String repairChar)
{
	boolean result=false;
	if (activeChar.getName().compareTo(repairChar)==0)
		result=true;
	return result;
}

private void repairBadCharacter(String charName)
{
	Connection con = null;
	try
	{
		con = L2DatabaseFactory.getInstance().getConnection();

		PreparedStatement statement;
		statement = con.prepareStatement("SELECT charId FROM characters WHERE char_name=?");
		statement.setString(1, charName);
		ResultSet rset = statement.executeQuery();

		int objId = 0;
		if (rset.next())
		{
			objId = rset.getInt(1);
		}
		rset.close();
		statement.close();
		if (objId == 0)
		{
			con.close();
			return;
		}
		statement = con.prepareStatement("UPDATE characters SET x=17867, y=170259, z=-3503 WHERE charId=?");
		statement.setInt(1, objId);
		statement.execute();
		statement.close();
		statement = con.prepareStatement("DELETE FROM character_shortcuts WHERE charId=?");
		statement.setInt(1, objId);
		statement.execute();
		statement.close();
		statement = con.prepareStatement("UPDATE items SET loc=\"WAREHOUSE\" WHERE owner_id=? AND loc=\"PAPERDOLL\"");
		statement.setInt(1, objId);
		statement.execute();
		statement.close();
	}
	catch (Exception e)
	{
		_log.warning("GameServer: could not repair character:" + e);
	}
	finally
	{
		try
		{
			if (con != null)
				con.close();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
	}
}

public String[] getVoicedCommandList()
{
	return _voicedCommands;
}
}

Link to comment
Share on other sites

gameserver error

 

Loaded : 2 cursed weapon(s).

------------------------------------------------------------------=[ Scripts ]

AirShipManager: Loaded 0 private airships

BotManager: Loaded 0 bot reports

Loading Server Scripts

----------

1. ERROR in \MasterHandler.java (at line 25)

       {

       ^

Syntax error on token "{", { expected after this token

----------

2. ERROR in \MasterHandler.java (at line 26)

       if (Config.REPAIR_ALLOW_REPAIR)

        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Rep

air());

       }

 

       private static void loadAdminHandlers()

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

^^^^^^^^^^^^^^^^^

Syntax error on token(s), misplaced construct(s)

----------

3. ERROR in \MasterHandler.java (at line 28)

       }

       ^

Syntax error on token "}", delete this token

----------

4. ERROR in \MasterHandler.java (at line 30)

       private static void loadAdminHandlers()

                      ^^^^

Syntax error on token "void", @ expected

----------

4 problems (4 errors)Failed executing script

 

MasterHandler.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 handlers;

import handlers.admincommandhandlers.*;
import handlers.donatorcommandhandlers.*;
import handlers.scripthandlers.*;
import handlers.voicedcommandhandlers.*;

import com.l2jserver.gameserver.handler.*;

public class MasterHandler
{
   if (Config.REPAIR_ALLOW_REPAIR)
        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Repair());
}

private static void loadAdminHandlers()
{
	AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminFile());
}

private static void loadDonatorHandlers()
{
	DonatorCommandHandler.getInstance().registerDonatorCommandHandler(new DonatorFile());
}

private static void loadScriptHandlers()
{
	ScriptHandler.getInstance().registerHandler(new EnterWorld());
	ScriptHandler.getInstance().registerHandler(new OnDeath());
	ScriptHandler.getInstance().registerHandler(new OnExit());
	ScriptHandler.getInstance().registerHandler(new OnKill());
	ScriptHandler.getInstance().registerHandler(new OnRess());
}

private static void loadVoicedHandlers()
{
	VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new VoicedFile());
}

public static void main(String[] args)
{
	loadAdminHandlers();
	loadDonatorHandlers();
	loadScriptHandlers();
	loadVoicedHandlers();
}
}

Link to comment
Share on other sites

/*
* 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 handlers;

import handlers.admincommandhandlers.*;
import handlers.donatorcommandhandlers.*;
import handlers.scripthandlers.*;
import handlers.voicedcommandhandlers.*;

import com.l2jserver.gameserver.handler.*;

public class MasterHandler
{
   if (Config.REPAIR_ALLOW_REPAIR)
+      {
        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Repair());
}

private static void loadAdminHandlers()
{
	AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminFile());
}

private static void loadDonatorHandlers()
{
	DonatorCommandHandler.getInstance().registerDonatorCommandHandler(new DonatorFile());
}

private static void loadScriptHandlers()
{
	ScriptHandler.getInstance().registerHandler(new EnterWorld());
	ScriptHandler.getInstance().registerHandler(new OnDeath());
	ScriptHandler.getInstance().registerHandler(new OnExit());
	ScriptHandler.getInstance().registerHandler(new OnKill());
	ScriptHandler.getInstance().registerHandler(new OnRess());
}

private static void loadVoicedHandlers()
{
	VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new VoicedFile());
}

public static void main(String[] args)
{
	loadAdminHandlers();
	loadDonatorHandlers();
	loadScriptHandlers();
	loadVoicedHandlers();
}
}

Link to comment
Share on other sites

HELP

 

Loaded : 2 cursed weapon(s).

------------------------------------------------------------------=[ Scripts ]

AirShipManager: Loaded 0 private airships

BotManager: Loaded 0 bot reports

Loading Server Scripts

----------

1. ERROR in \MasterHandler.java (at line 25)

       {

       ^

Syntax error on token "{", { expected after this token

----------

2. ERROR in \MasterHandler.java (at line 26)

       if (Config.REPAIR_ALLOW_REPAIR)

   {

        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Rep

air());

       }

 

       private static void loadAdminHandlers()

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

^^^^^^^^^^^^^^^^^^^^^^^^

Syntax error on token(s), misplaced construct(s)

----------

3. ERROR in \MasterHandler.java (at line 31)

       private static void loadAdminHandlers()

                      ^^^^

Syntax error on token "void", @ expected

----------

3 problems (3 errors)Failed executing script

HellboundManager: Initializing

 

 

 

not have to put something on config.java?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • bro is any chance some one share compile pack and patch system for that one? is any chance here.... and client
    • Hello members of the forum! We offer hosting services for a different range of services: - ip spoofing; - scanning; - phishing; - botnets; - proxy; - gambling; - stealers; - legal adult; Prices: - VPS starting at $24; - Dedicated servers  starting at  $110; Contctats: layer0.ltd@gmail.com Telegram: @layer0_ltd Discord: layer0.ltd#6843 site: layer0.ltd
    • OUR OFFICIAL WEBSITE / FORUM - MILLENNIUM-HOOK.NET CHEAT DESCRIPTION: Our CS2 cheat is a premium cheat which provides a ton of features for legit gamplay. The cheat was created specifically for strong leagues and anti-cheats such as Faceit, 5EWin, Gamersclub, Esportal and many others. This cheat is perfect for players who want a safe undetected and reliable multi-hack while dominating their opponents and winning the game in their own style. To ensure maximum security of our cheat, we use more than 15+ methods of protection (for example, String Encryption, PE Header Erased, Code Mutation and much more that we cannot talk about for security reasons). Settings are directly configurable via a superb looking in-game menu or over our online «Cloud Panel». Our product is constantly receiving updates in collaboration with the our coders community and suggestions by you! SUPPORTED ANTI-CHEATS: (read more on official website) - VAC (Valve Anti-Cheat) - MM (Matchmaking) - FACEIT Server-Side - FACEIT Client - CEVO / Gfinity - EAC (Easy Anti-Cheat) - ESL Wire - 5EWin / 5EPlay - Perfect World - Gamersclub - Esportal - WePlay - ESEA Our CS2 cheat has a limited number of slots to ensure greater product security! (Available slots check on official website) FEATURES: AIMBOT: - Bone Aimbot (Legit aimbot that doesn't use any angle code that other competitors use. It aims in a legitimate fashion) - Bone and Multibone (Adjust which bone to aim at or select as many Bones as you want) - Smoothaim (Adjust how smooth the aimbot is in its human-like drag) - CloseAim (Toggle distance based aiming algorithm, for increased stickyness, or whoever is closest to the crosshair) - FoV (Adjust the Field of View of the aimbot or percentage of the screen that the aimbot will target enemies from) - Aimkey (Adjust which key the aimbot will use to aim) - AimDraw (Toggle the drawing of the aimspot on enemies (Visible/Always) - VisibleCheck (Visible checking on enemies with close enemy) - NoHop (Aim at One Target per press of the AimKey (Aimbot Doesn't Hop to Other Targets even after death) - RandomSpot (Randomizes the Spot around the target bones, making your aim look more humanized and legit) - Aimtime (Amount of time that the aimbot and Aimbot-RCS is active for, after you press the aimkey) - Ammo Management (Disable aimbot and TriggerBot when the gun clip is empty) - CloseFoV (Different FoV for players with in a certain distance (CloseFOV Distance) - AimOnShoot (Aim when shooting, aim when not shooting) - RecoilAfter (Start recoil after x bullets (Good for 1-2 Taps) - Recoil (Adjust the recoil counter while using the aimbot) - RecoilKey (Adjust which key the anti-recoil is set on (For all Aimbot Keys) - RecoilType (Control if recoil control is always on or only when using the Aimbot) - RecoilFOV (Adjust how long the Recoil will stay stuck to the target, very usable for when playing at a LAN) TRIGGERBOT: - TriggerBot (Automatically shoot at an enemy in a radius (usable with or without Aimbot) - TriggerKey (Control what key activates the TriggerBot (use with any key) - TriggerFov (Control the radius around the AimSpot which activates the TriggerBot) - TriggerDraw (Draw the bone spot that the TriggerBot is aiming at) - TriggerBone (Select the bone that the TriggerBot will target) - TriggerDelay (To add to the legitimacy of the TriggerBot, delays shooting for up to 0.5 seconds) - MonsterTrigger (Extremely Fast & Accurate TriggerBot with Fullbody Options Perfect TriggerBot) - VisCheck (Make sure you're only hitting enemies that you can see, or turn it off to get some sick wallbangs) - Random Delay (A random delay for your trigger bot to look even more legitimate) - Trigger Button (Use any button you like to control the triggerbot) ESP: - Name (Name of the player) - Health (Shows the current health of a player) - Armor (Shows the current amount of armor a player has) - ArmorType (Show if a player currently has a Kevlar vest, a helmet or both equipped) - Weapon (See what weapon a player is currently holding) - Weapon Ammo (See how much ammo you have left in the current clip) - Index (The internal index of the player based on the CSGO engine) - Distance (The distance of each player from you) - Box (A box around each players model, adjusting with distance (new rectangle box type) - Sequence (What action or stance the player is in (Running, Ducking, Jumping, Scoped etc) - Box Size & Box Multi (The size of the boxes around the players, adjustable to how you like) - Team ESP (Toggle ESP on your teammates) - Clean Draw ESP (Move ESP away from box) - Pixel ESP (Single Pixel ESP for legitimate play, shows one single pixel on the screen so it's not noticeable to any casual observers) - Visible ESP (Different color ESP for visible & non-visible players) - Entity ESP (See weapons, defusers, Bomb Location, and defusing players) - Entity Distance (Adjust how far away you will see different Entities for the ultimate in Player-Location assistance) - List ESP (The Ultimate Legit ESP, Listing Players that are not on your screen, or players anywhere in case you don't want to know where they are exactly) MISC: - Bunny Hop (Jumps automatically while the chosen key is being held) - Crosshair (When enabled it will draw a cross-hair on your screen, perfect for snipers, it also features an adjustable size) - Weapon Config System (Weapon configurations for each weapon group (pistols, deagle, snipers, SMG, Knife, rifles, etc) - Flash reduction (Make sure you can see enemies while you're supposed to be flashed) - Radar In Game (A radar is displayed where you see opponents) REQUIREMENTS: - Included HWID Spoofer: Yes - Stream Bypass: Yes - Supported game modes: Windowed, Borderless - Supported CPU: Intel & AMD - Supported OS: Windows 10 (1903,1909,2004,20H2,21H1, 22H2), Windows 11 (All version). Supported OS change and are added periodically. More check on official website.   IN-GAME SCREENSHOTS:   - Check on the official website.
    • A very skilled guy, did the job and delivered super fast, you can go without fear   100% malaka boy
  • Topics

×
×
  • Create New...