Jump to content
  • 0

Save char name\tittle color


Uphillyout

Question

Well... is this code have any mistakes? why does not work?

 

L2PcInstance.java

 
// Character Transformation SQL String Definitions:
private static final String SELECT_CHAR_TRANSFORM = "SELECT transform_id FROM characters WHERE charId=?";
private static final String UPDATE_CHAR_TRANSFORM = "UPDATE characters SET transform_id=? WHERE charId=?";

+	// Character Color System by =)
+	private static final String INSERT_CHAR_COLOR = "INSERT INTO character_color(charId, name_color, title_color) VALUES (?,?,?)";
+	private static final String SELECT_CHAR_COLOR = "SELECT * FROM character_color WHERE charId=?";
+	private static final String UPDATE_CHAR_COLOR = "UPDATE character_color SET name_color=?, title_color=? WHERE charId=?";

=====================================

case L2PcInstance.STORE_PRIVATE_MANUFACTURE:
        		activeChar.sendPacket(new RecipeShopMsg(this));
        		break;
        }
    }

+	/**
+	 * method fo restore colors from database
+	 * and insert if in database if not exists
+	 * @author =)
+	 */
+	public void restoreColor()
+	{
+		Connection con = null;
+		PreparedStatement statement = null;
+		ResultSet rset = null;
+        try
+        {
+            con = L2DatabaseFactory.getInstance().getConnection();
+            statement = con.prepareStatement(SELECT_CHAR_COLOR);
+            statement.setInt(1, getObjectId());
+            rset = statement.executeQuery();
+
+			if (rset.next())
+            {
+               	getAppearance().setNameColor(Integer.decode((new +StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());
+                getAppearance().setTitleColor(Integer.decode((new +StringBuilder()).append("0x").append(rset.getString("title_color")).toString()).intValue());
+            }
+			else
+			{
+				con = L2DatabaseFactory.getInstance().getConnection();
+           	 	statement = con.prepareStatement(INSERT_CHAR_COLOR);
+            	statement.setInt(1, getObjectId());
+            	statement.setString(2, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
+            	statement.setString(3, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
+            	statement.execute();
+			}
+        }
+        catch (Exception e)
+        {
+            _log.warning("could not restore colors: "+e);
+        }
+        finally
+        {
+            try{ con.close(); statement.close(); rset.close();}
+
+			catch(SQLException e) {}
+        }
+	}
+
+	/**
+	 * Store colors
+	 * @author =)
+	 */
+    private void storeColor()
+    {
+
+       	Connection con = null;
+		PreparedStatement statement = null;
+        try
+        {
+            con = L2DatabaseFactory.getInstance().getConnection();
+            statement = con.prepareStatement(UPDATE_CHAR_COLOR);
+            statement.setString(1, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
+            statement.setString(2, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
+            statement.setInt(3, getObjectId());
+            statement.execute();
+        }
+        catch (Exception e)
+        {
+            _log.warning("could not store colors: "+e);
+			e.printStackTrace();
+        }
+        finally
+        {
+            try
+			{
+				con.close(); statement.close();
+			}
+            catch(SQLException e) {}
+        }
+	}

 

And MYSQL

-- ----------------------------------------
-- Table structure for `character_color` --
-- ----------------------------------------
DROP TABLE IF EXISTS `character_color`;
CREATE TABLE `character_color` (
  `charId` decimal(11,0) NOT NULL DEFAULT '0',
  `name_color` char(6) NOT NULL DEFAULT 'FFFFFF',
  `title_color` char(6) NOT NULL DEFAULT 'FFFF77',
  PRIMARY KEY (`charId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-------------------------------------------

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Okay , i don't have time right now to tell you what exactly methods are.

 

Check and read this tutorial about java methods :

 

Click Me

 

If you have any problems , do not hesitate to ask.

Link to comment
Share on other sites

  • 0

Okay , i don't have time right now to tell you what exactly methods are.

 

Check and read this tutorial about java methods :

 

Click Me

 

If you have any problems , do not hesitate to ask.

and what is the point?

Link to comment
Share on other sites

  • 0

and what is the point?

 

What do you mean ? He don't know how to call the methods in a code , that's why i gave him this link.

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.

Guest
Answer this question...

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



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