Jump to content

Question

Posted

Hey guys, I have another question for you.....

Whenever i try to name a pet inside game I got this error: This is the image of the problem.... Sorry for quallity I did it with phone....

 

Here is the SQL of my pets table in my DB

 

-- Table structure for pets
-- ----------------------------
DROP TABLE IF EXISTS `pets`;
CREATE TABLE `pets` (
  `item_obj_id` int(10) unsigned NOT NULL,
  `name` varchar(16) DEFAULT NULL,
  `level` smallint(2) unsigned NOT NULL,
  `curHp` int(9) unsigned DEFAULT '0',
  `curMp` int(9) unsigned DEFAULT '0',
  `exp` bigint(20) unsigned DEFAULT '0',
  `sp` int(10) unsigned DEFAULT '0',
  `fed` int(10) unsigned DEFAULT '0',
  `ownerId` int(10) NOT NULL DEFAULT '0',
  `restore` enum('true','false') NOT NULL DEFAULT 'false',
  PRIMARY KEY (`item_obj_id`),
  KEY `ownerId` (`ownerId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Any ideas ?? :/ 

9 answers to this question

Recommended Posts

  • 1
Posted

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

  • 0
Posted (edited)
3 hours ago, Tryskell said:

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

/*
 * Copyright (C) 2004-2016 L2J DataPack
 * 
 * This file is part of L2J DataPack.
 * 
 * L2J DataPack 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.
 * 
 * L2J DataPack 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.targethandlers;

import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;

/**
 * Target Pet handler.
 * @author UnAfraid
 */
public class Pet implements ITargetTypeHandler
{
	@Override
	public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
	{
		if (activeChar.hasPet())
		{
			return new L2Character[]
			{
				activeChar.getSummon()
			};
		}
		return EMPTY_TARGET_LIST;
	}
	!!!!!!!! >>>HERE SHOULD BE 45 <<<< !!!!!!!!!!!!!1
	@Override
	public Enum<L2TargetType> getTargetType()
	{
		return L2TargetType.PET;
	}
}

Is this what are we talking about ? But 45 doesn't have anyting

Edited by milosvamp
  • 0
Posted (edited)
On 12/19/2017 at 11:27 AM, Tryskell said:

Verify PetNameTable line 45. Most probably it misses the argument (invalid parameters count), or the String parameter to test is either edited in the method itself or the verification check for "null" String is missing.

Here is it 

/*
 * Copyright (C) 2004-2016 L2J Server
 * 
 * This file is part of L2J Server.
 * 
 * L2J Server 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.
 * 
 * L2J Server 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 com.l2jserver.gameserver.data.sql.impl;

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

import com.l2jserver.Config;
import com.l2jserver.commons.database.pool.impl.ConnectionFactory;

public class PetNameTable
{
	private static Logger LOGGER = Logger.getLogger(PetNameTable.class.getName());
	
	public static PetNameTable getInstance()
	{
		return SingletonHolder._instance;
	}
	
	public boolean doesPetNameExist(String name)
	{
		try (Connection con = ConnectionFactory.getInstance().getConnection();
			PreparedStatement ps = con.prepareStatement("SELECT name FROM pets WHERE name=?"))
		{
--------------->>>LINE 45>>>>>>>>	try (ResultSet rs = ps.executeQuery()) <<<<LINE 45 <<<<<<<--------------------
			{
				return rs.next();
			}
		}
		catch (SQLException e)
		{
			LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Could not check existing petname:" + e.getMessage(), e);
		}
		return false;
	}
	
	public boolean isValidPetName(String name)
	{
		return Config.PET_NAME_TEMPLATE.matcher(name).matches();
	}
	
	private static class SingletonHolder
	{
		protected static final PetNameTable _instance = new PetNameTable();
	}
}

 

Edited by milosvamp
  • 0
Posted (edited)

as tryskell mentioned. you are missing one line there.

 

before the line n45

ps.setString(1,name);

 

Also, remove the 2nd try statement

Edited by melron
  • 0
Posted
4 hours ago, melron said:

as tryskell mentioned. you are missing one line there.

 

before the line n45


ps.setString(1,name);

 

Also, remove the 2nd try statement

so to remove this  

try (ResultSet rs = ps.executeQuery())
			{
				return rs.next();
			}
		}

and add this: 

ps.setString(1,name);

pls tell me is it literally so ?

 

1 hour ago, Tryskell said:

ps.setString(1,name);

ResultSet rs = ps.executeQuery();
return rs.next();

The second try is normally needed to correctly close the rs, but using "return" also closes it. Eclipse maybe still needs it to avoid the ressource leak warning.

 

And I was right, it was missing the parameter.

Thank you very much for your help.

 

4 hours ago, melron said:

as tryskell mentioned. you are missing one line there.

 

before the line n45


ps.setString(1,name);

 

Also, remove the 2nd try statement

Thank you.

 

On 20/12/2017 at 1:23 AM, SweeTs said:

Core.. Error last line, you have the location. 

Thank you for joining our conversation and your help.

  • 0
Posted (edited)
ps.setString(1,name);

ResultSet rs = ps.executeQuery();
return rs.next();

The second try is normally needed to correctly close the rs, but using "return" also closes it. Eclipse maybe still needs it to avoid the ressource leak warning.

 

And I was right, it was missing the parameter.

Edited by Tryskell
Guest
This topic is now closed to further replies.


  • Posts

    • We provide DDoS protection for Perfect World, Jade Dynasty, and other game servers. Your server connects through a dedicated DDoS-protected IP address. Traffic is filtered and forwarded to your game server over a secure connection. What we offer: Protection against L3/L4 DDoS attacks; Protection for TCP and UDP game servers; Filtering of malicious and abnormal traffic; Protection against game port overload; Hiding your game server’s real IP address; Preserving players’ real IP addresses; Protection configured specifically for your gaming project; A stable connection with minimal impact on latency; Bandwidth tailored to your requirements. Free 3-day DDoS protection trial for everyone. You can connect your existing server and test latency, connection stability, and protection performance under real traffic loads. Pricing is calculated individually for each client, based on the project, required bandwidth, and protection configuration. Setup and support: Telegram: @alex_protection Products: Alex DDoS-Guard | Reliable Protection for Your Services and Game Servers
    • That sounds great, but the download link is dead for me too. Could you re-upload it or send it directly? Thanks for sharing the event
    • October 30th is the grand opening.
    • 🔥 L2FOREVER — FRESH START IS LIVE! 🔥 INTERLUDE x25 JOIN THE ADVENTURE! Tired of the same old Lineage 2 servers? Looking for something that combines the legendary Interlude experience with fresh progression systems, meaningful PvP, and rewarding PvE? Our fresh start launched on September 11, 2026, giving everyone a new beginning. Whether you're a solo adventurer, a competitive PvP player, or a dedicated clan leader, there's a place for you.      SERVER INFORMATION Chronicle : Interlude EXP/SP: x25 Adena: x12 Drop chance: x10 Spoil chance: x15 Quest drop chance: x10 Box limit: 1+1  UNIQUE SERVER FEATURES  TALENT TREE & REBIRTH SYSTEM   Take character progression beyond level 80! Earn talent points while leveling. Unlock powerful Combat, Defense and Utility talents.Rebirth up to 7 times. Customize your character with unique builds. Keep your equipment and enchanted skills through rebirths.    BOUNTY HUNT SYSTEM   Complete hunting objectives, progress through bounty ranks, collect Bounty Coins and earn valuable rewards.    DAILY PvP ARENA   Prove your skills against other players! Daily Arena battles. Event equipment available to participants. Earn Arena points and Medals. Compete on the weekly leaderboard.   RAID BOSSES & PvE CONTENT   Challenge powerful Raid Bosses, collect rewards, participate in Solo Trials and discover additional progression opportunities.    CHAMPION MONSTERS   Encounter stronger monsters with increased rewards! Champion monsters with boosted XP and loot. Rare Super Champions offering even greater challenges. Exciting encounters throughout your leveling journey.    COMPANION SYSTEM   Choose a companion that supports your playstyle: Tank Healer Damage Dealer   ADDITIONAL FEATURES   Auto-Farm system with a daily time allowance. Free first class transfer at level 20. Subclass and Noblesse trials. Custom Potions & Alchemy. Custom UI options. Offline trading. Weekly Castle Sieges. Olympiad competitions. Free convenience features for everyone.    NO DIRECT GEAR SALES L2Forever focuses on meaningful character progression. No gear, enchant scrolls or enchanted equipment sold in the shop. Build your character, earn your equipment and enjoy the adventure.  SOLO PLAYERS & CLANS WELCOME! Explore the world at your own pace, develop your character, challenge Raid Bosses, join PvP battles and fight alongside your clan. Your journey. Your build. Your legacy.  YOUR NEXT LINEAGE II ADVENTURE STARTS HERE!  WEBSITE: https://l2forever.eu  SERVER FEATURES & DOCUMENTATION: https://l2forever.eu/docs  L2FOREVER — INTERLUDE x25 CREATE YOUR CHARACTER. BUILD YOUR LEGEND. FIGHT FOREVER.  
  • 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..