Jump to content
  • 0

Can't Save New Data To The Database.


Question

Posted

Hello guys.

 

(Using hi5 latest)

I have the following problem.

 

I made a hide/show accessory voiced command similar to L2 Pride's accD. The command works fine in game without any problems. I also added the necessary lines to the createDB, restore, insert_character/ and update_character in L2PcInstance.

 

However, when i use the command in game and hide the accessories and restart, it does not save it to the DB and stays defualt/ 0. If I set the value in the DB manually to (1=hide both hair/hair2 acce) for exemple. then when i log in the chosen value in the DB takes effect.

 

To me it seems it doesn not save the new value to the new column I made in the characters table.

 

My knowladge is quite lacking in sql which i plan to improve ofc^^, but at the moment I'm kinda stucked with this problem.

 

I'd appreciate some help, thanks in advance.

 

4 answers to this question

Recommended Posts

  • 0
Posted (edited)

The voiced command.

	else if (command.equalsIgnoreCase("acctest"))
	{
		byte i = activeChar.getAccDisplay();
		i = (byte) (i + 1);
		if (i > 3)
			i = 0;
		
		activeChar.setAccDisplay(i);
		
		switch (i)
		{
		case 0:
			activeChar.sendMessage("All acc on.");
			break;
		case 1:
			activeChar.sendMessage("All acc off.");
			break;
		case 2:
			activeChar.sendMessage("hair1 on");
			break;
		case 3:
			activeChar.sendMessage("hair 2 on");
			break;
		}
		activeChar.broadcastUserInfo();
		return true;
	}

L2PcInstance:

private byte _accDisplay = 0;



final public byte getAccDisplay()
{
	return _accDisplay;
}
final public void setAccDisplay(final byte val)
{
	_accDisplay = val;
}
    // Character Character SQL String Definitions:
    private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createDate, acchide) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=?,acchide=? WHERE charId=?";
    private static final String RESTORE_CHARACTER = "SELECT * FROM characters WHERE charId=?";


player.setOnlineTime(rset.getLong("onlinetime"));
player.setNewbie(rset.getInt("newbie"));
player.setNoble(rset.getInt("nobless") == 1);
player.setAccDisplay(rset.getByte("acchide")); // the new line in L2PcInstance restore
ps.setLong(24, getDeleteTimer());
ps.setInt(25, getAccDisplay()); // new line in createDb()
ps.setInt(26, hasDwarvenCraft() ? 1 : 0);
ps.setString(27, getTitle());
ps.setString(49, getLang());
ps.setInt(50, getObjectId());
ps.setByte(51, _accDisplay); //new line in storeCharBase()
ps.execute();

 also added   `acchide` int(1) NOT NULL default '0', to characters.sql and created a new column in the characters table as acchide.

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


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock