U3Games
Lineage II | Desarrollo & Soporte => Desarrollo de Servidores => Implementaciones => Mensaje iniciado por: Swarlog en Ago 19, 2022, 01:11 AM
CitarCORE:
### Eclipse Workspace Patch 1.0
#P L2J_Server 2 latest
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 5537)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -316,8 +316,8 @@
// 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) 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=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
- private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, 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, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createDate,language FROM characters WHERE charId=?";
+ 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=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=?,namec=? WHERE charId=?";
+ private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, 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, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createDate,language,namec FROM characters WHERE charId=?"; //survey
// Character Teleport Bookmark:
private static final String INSERT_TP_BOOKMARK = "INSERT INTO character_tpbookmark (charId,Id,x,y,z,icon,tag,name) values (?,?,?,?,?,?,?,?)";
@@ -7240,6 +7240,9 @@
player.setName(rset.getString("char_name"));
player._lastAccess = rset.getLong("lastAccess");
+ // Appearance
+ player.setNamec(rset.getString("namec"));
+
player.getStat().setExp(rset.getLong("exp"));
player.setExpBeforeDeath(rset.getLong("expBeforeDeath"));
player.getStat().setLevel(rset.getByte("level"));
@@ -7314,7 +7317,7 @@
player.setTitle(rset.getString("title"));
- player.getAppearance().setTitleColor(rset.getInt("title_color"));
+ player.setTitlec(rset.getString("title_color"));
player.setAccessLevel(rset.getInt("accesslevel"));
player.setFistsWeaponItem(player.findFistsWeaponItem(activeClassId));
player.setUptime(System.currentTimeMillis());
@@ -7781,7 +7784,7 @@
statement.setInt(25, getClassId().getId());
statement.setLong(26, getDeleteTimer());
statement.setString(27, getTitle());
- statement.setInt(28, getAppearance().getTitleColor());
+ statement.setString(28, getTitlec());
statement.setInt(29, getAccessLevel().getLevel());
statement.setInt(30, isOnlineInt());
statement.setInt(31, isIn7sDungeon() ? 1 : 0);
@@ -7812,7 +7815,8 @@
statement.setInt(50, getBookMarkSlot());
statement.setInt(51, getVitalityPoints());
statement.setString(52, getLang());
- statement.setInt(53, getObjectId());
+ statement.setString(53, getNamec());
+ statement.setInt(54, getObjectId());
statement.execute();
statement.close();
@@ -14182,6 +14186,26 @@
return true;
}
+ // Appearance system start
+ public String _namec = "FFFFFF";
+ public String getNamec()
+ {
+ return _namec;
+ }
+ public void setNamec(String val)
+ {
+ _namec = val;
+ }
+ public String _titlec = "FFFFFF";
+ public String getTitlec()
+ {
+ return _titlec;
+ }
+ public void setTitlec(String val)
+ {
+ _titlec = val;
+ } // Appearance system end
+
public void teleportBookmarkAdd(int x,int y,int z,int icon, String tag, String name)
{
if(this == null)
Index: java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 5526)
+++ java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
@@ -447,29 +456,28 @@
obj.sendPacket(sm);
}
}
-
+
+ // Appearance
+ if (!activeChar.isGM())
+ {
+ activeChar.getAppearance().setNameColor(Integer.decode("0x" + activeChar.getNamec()));
+ activeChar.getAppearance().setTitleColor(Integer.decode("0x" + activeChar.getTitlec()));
+ }
activeChar.sendPacket(SystemMessageId.WELCOME_TO_LINEAGE);
Index: java/com/l2jserver/gameserver/model/actor/instance/L2AppearanceInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2AppearanceInstance.java (revision 0)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2AppearanceInstance.java (revision 0)
@@ -0,0 +1,370 @@
+/*
+ * 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 com.l2jserver.gameserver.model.actor.instance;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+import javolution.text.TextBuilder;
+
+import com.l2jserver.Config;
+import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.communitybbs.Manager.RegionBBSManager;
+import com.l2jserver.gameserver.datatables.CharNameTable;
+import com.l2jserver.gameserver.instancemanager.TransformationManager;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.appearance.PcAppearance;
+import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
+import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
+import com.l2jserver.gameserver.network.communityserver.writepackets.WorldInfo;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
+import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jserver.gameserver.network.serverpackets.PartySmallWindowAll;
+import com.l2jserver.gameserver.network.serverpackets.PartySmallWindowDeleteAll;
+import com.l2jserver.gameserver.util.Util;
+
+/**
+ *
+ * @author NeverMore
+ *
+ */
+public final class L2AppearanceInstance extends L2Npc
+{
+
+ public L2AppearanceInstance(int objectId, L2NpcTemplate template)
+ {
+ super(objectId, template);
+ }
+
+ @Override
+ public void onBypassFeedback(L2PcInstance player, String command)
+ {
+ if (player == null)
+ {
+ return;
+ }
+ if (command.startsWith("info"))
+ {
+ showInfoWindow(player);
+ }
+ if (command.startsWith("namec"))
+ {
+ try
+ {
+ String val = command.substring(6);
+ player.getAppearance().setNameColor(Integer.decode("0x" + val));
+ ExShowScreenMessage message = new ExShowScreenMessage("Your name color has been changed", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Your name color has been changed");
+ player.broadcastUserInfo();
+ player.setNamec(val);
+ }
+ catch (Exception e)
+ { //Case of empty color or invalid hex string
+ ExShowScreenMessage message = new ExShowScreenMessage("You need to specify a valid new color.", 4000);
+ player.sendPacket(message);
+ player.sendMessage("You need to specify a valid new color.");
+ }
+ return;
+ }
+ if (command.startsWith("titlec"))
+ {
+ try
+ {
+ String val = command.substring(7);
+ player.getAppearance().setTitleColor(Integer.decode("0x" + val));
+ ExShowScreenMessage message = new ExShowScreenMessage("Your title color has been changed", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Your title color has been changed");
+ player.broadcastUserInfo();
+ player.setTitlec(val);
+ }
+ catch (Exception e)
+ { //Case of empty color or invalid hex string
+ ExShowScreenMessage message = new ExShowScreenMessage("You need to specify a valid new color.", 4000);
+ player.sendPacket(message);
+ player.sendMessage("You need to specify a valid new color.");
+ }
+ return;
+ }
+ if (command.startsWith("name"))
+ {
+ try
+ {
+ String val = command.substring(5);
+ if (val.length() > 16)
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage("Name cannot be more than 16 characters", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ if (CharNameTable.getInstance().getIdByName(val) > 0)
+ {
+ ExShowScreenMessage message = new ExShowScreenMessage("Problem, name "+val+" already exists! Try something else", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Problem, name "+val+" already exists! Try something else");
+ return;
+ }
+ if (Config.FORBIDDEN_NAMES.length > 1)
+ {
+ for (String st : Config.FORBIDDEN_NAMES)
+ {
+ if (val.toLowerCase().contains(st.toLowerCase()))
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage("This name is forbidden ,try something else.", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ }
+ }
+ if (!Util.isAlphaNumeric(val) || !isValidName(val))
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage("This name is not valid ,try something else.", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ player.setName(val);
+ player.store();
+
+ ExShowScreenMessage message = new ExShowScreenMessage("You successfully changed your name to "+val+"", 4000);
+ player.sendPacket(message);
+ player.sendMessage("You successfully changed your name to "+val);
+ player.broadcastUserInfo();
+ CommunityServerThread.getInstance().sendPacket(new WorldInfo(player, null, WorldInfo.TYPE_UPDATE_PLAYER_DATA));
+
+ if (player.isInParty())
+ {
+ // Delete party window for other party members
+ player.getParty().broadcastToPartyMembers(player, PartySmallWindowDeleteAll.STATIC_PACKET);
+ for (L2PcInstance member : player.getParty().getMembers())
+ {
+ // And re-add
+ if (member != player)
+ member.sendPacket(new PartySmallWindowAll(member, player.getParty()));
+ }
+ }
+ if (player.getClan() != null)
+ {
+ player.getClan().broadcastClanStatus();
+ }
+ RegionBBSManager.getInstance().changeCommunityBoard();
+ return;
+ }
+ catch (Exception e)
+ { //Case of empty name
+ ExShowScreenMessage message = new ExShowScreenMessage("Enter the Name into the box.", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Enter the Name into the box.");
+ }
+ }
+ if (command.startsWith("sex"))
+ {
+ player.getAppearance().setSex(player.getAppearance().getSex() ? false : true);
+ ExShowScreenMessage message = new ExShowScreenMessage("Your gender has been changed!", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Your gender has been changed!");
+ player.broadcastUserInfo();
+ // Transform-untransorm player quickly to force the client to reload the character textures
+ TransformationManager.getInstance().transformPlayer(105, player);
+ ThreadPoolManager.getInstance().scheduleGeneral(new Untransform(player), 200);
+ return;
+ }
+ if (command.startsWith("face"))
+ {
+ try
+ {
+ String val = command.substring(5);
+ int faceVal = Integer.parseInt(val);
+ if ((faceVal != 0) && (faceVal != 1) && (faceVal != 2))
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage("Invalid face id | Possible id's (0,1,2)", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ if (faceVal == PcAppearance.getFace())
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage(" Id " + faceVal + " is your current face id ! Try something else ! ", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ PcAppearance.setFace(faceVal);
+ ExShowScreenMessage message = new ExShowScreenMessage("Your face id has been changed!", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Your face id has been changed!");
+ player.broadcastUserInfo();
+ // Transform-untransorm player quickly to force the client to reload the character textures
+ TransformationManager.getInstance().transformPlayer(105, player);
+ ThreadPoolManager.getInstance().scheduleGeneral(new Untransform(player), 200);
+
+ }
+ catch (Exception e)
+ { //Case of empty id or invalid id
+ ExShowScreenMessage message1 = new ExShowScreenMessage("Fill into the box the face id (0,1,2).", 4000);
+ player.sendPacket(message1);
+ player.sendMessage("Fill into the box the face id (0,1,2).");
+ }
+ }
+ if (command.startsWith("hair"))
+ {
+ try
+ {
+ String val = command.substring(5);
+ int hairVal = Integer.parseInt(val);
+ if ((hairVal != 0) && (hairVal != 1) && (hairVal != 2) && (hairVal != 3))
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage("Invalid hair id | Possible id's (0,1,2,3)", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ if (hairVal == PcAppearance.getHairStyle())
+ {
+ ExShowScreenMessage message1 = new ExShowScreenMessage(" Id " + hairVal + " is your current hair id ! Try something else ! ", 4000);
+ player.sendPacket(message1);
+ return;
+ }
+ PcAppearance.setHairStyle(hairVal);
+ ExShowScreenMessage message = new ExShowScreenMessage("Your hair id has been changed!", 4000);
+ player.sendPacket(message);
+ player.sendMessage("Your hair id has been changed!");
+ player.broadcastUserInfo();
+ // Transform-untransorm player quickly to force the client to reload the character textures
+ TransformationManager.getInstance().transformPlayer(105, player);
+ ThreadPoolManager.getInstance().scheduleGeneral(new Untransform(player), 200);
+
+ }
+ catch (Exception e)
+ { //Case of empty id or invalid id
+ ExShowScreenMessage message1 = new ExShowScreenMessage("Fill into the box the hair id (0,1,2,3).", 4000);
+ player.sendPacket(message1);
+ player.sendMessage("Fill into the box the hair id (0,1,2,3).");
+ }
+ }
+ }
+
+ /**
+ * @param val
+ * @return
+ */
+ private boolean isValidName(String val)
+ {
+ boolean result = true;
+ String test = val;
+ Pattern pattern;
+ try
+ {
+ pattern = Pattern.compile(Config.CNAME_TEMPLATE);
+ }
+ catch (PatternSyntaxException e) // case of illegal pattern
+ {
+ _log.warning("ERROR : Character name pattern of config is wrong!");
+ pattern = Pattern.compile(".*");
+ }
+ Matcher regexp = pattern.matcher(test);
+ if (!regexp.matches())
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ @Override
+ public void showChatWindow(L2PcInstance player)
+ {
+ if (player == null)
+ {
+ return;
+ }
+ NpcHtmlMessage nhm = new NpcHtmlMessage(2);
+ TextBuilder tb = new TextBuilder("");
+
+ tb.append("<html>");
+ tb.append(" <head>");
+ tb.append(" <title>Appearance Manager</title>");
+ tb.append(" </head>");
+ tb.append("<body>");
+ tb.append("<center>");
+ tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"444444\">");
+ tb.append("<tr>");
+ tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
+ tb.append("<td valign=\"top\"><font color=\"FF6600\">Appearance manager</font>");
+ tb.append("<br1><font color=\"00FF00\">"+ player.getName() +"</font>, use this npc to change your appearance.</td>");
+ tb.append("</tr></table></center><br><center>");
+ tb.append("<br><edit var=\"val\" width=140 height=20><br>");
+ tb.append("<table width=125 border=0 bgcolor=444444><tr><br><br><br><br>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_name $val\" value=\"Name\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_sex\" value=\"Sex\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("</tr></table>");
+ tb.append("<table width=125 border=0 bgcolor=444444><tr><br><br><br><br>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_namec $val\" value=\"Name Color\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_titlec $val\" value=\"Title Color\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("</tr></table>");
+ tb.append("<table width=125 border=0 bgcolor=444444><tr><br><br><br><br>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_hair $val\" value=\"Hair id\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_face $val\" value=\"Face id\" width=90 height=24 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("</tr></table><br><br>");
+ tb.append("<table width=125 border=0 bgcolor=444444><tr><br><br><br><br>");
+ tb.append("<td><button action=\"bypass -h npc_" + getObjectId() + "_info\" value=\"How to use ?\" width=130 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ tb.append("</tr></table>");
+ tb.append("</center><br><br>");
+ tb.append("<br><br><center><font color=\"A9A9A9\">~ by NeverMore ~</font></center>");
+ tb.append("</body>");
+ tb.append("</html>");
+ nhm.setHtml(tb.toString());
+ player.sendPacket(nhm);
+ }
+
+ public void showInfoWindow(L2PcInstance player)
+ {
+ NpcHtmlMessage nhm = new NpcHtmlMessage(1);
+ TextBuilder tb = new TextBuilder("");
+
+ tb.append("<html>");
+ tb.append(" <head>");
+ tb.append(" <title>Appearance Manager</title>");
+ tb.append(" </head>");
+ tb.append("<body>");
+ tb.append("<center>");
+ tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"444444\">");
+ tb.append("<tr>");
+ tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>");
+ tb.append("<td valign=\"top\"><font color=\"FF6600\">Appearance manager</font>");
+ tb.append("<br1><font color=\"00FF00\">"+ player.getName() +"</font>, use this npc to change your appearance.</td>");
+ tb.append("</tr></table></center><br><center>");
+ tb.append("<br><br>Using this npc , you can change your Name / Title and Name Color / Sex / Hair and Face id!<br>Just fill into the box the required value's and press the button you want.");
+ tb.append("</center>");
+ tb.append("<br><br><center><font color=\"A9A9A9\">~ by NeverMore ~</font></center>");
+ tb.append("</body>");
+ tb.append("</html>");
+ nhm.setHtml(tb.toString());
+ player.sendPacket(nhm);
+ }
+
+ private final class Untransform implements Runnable
+ {
+ private final L2PcInstance _player;
+
+ protected Untransform(L2PcInstance player)
+ {
+ _player = player;
+ }
+
+ @Override
+ public void run()
+ {
+ _player.untransform();
+ }
+ }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (revision 5526)
+++ java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (working copy)
@@ -20,11 +20,11 @@
{
private L2PcInstance _owner;
- private byte _face;
+ private static byte _face;
private byte _hairColor;
- private byte _hairStyle;
+ private static byte _hairStyle;
private boolean _sex; // Female true(1)
@@ -94,7 +94,7 @@
return _visibleTitle;
}
- public final byte getFace()
+ public final static byte getFace()
{
return _face;
}
@@ -102,7 +102,7 @@
/**
* @param value
*/
- public final void setFace(int value)
+ public final static void setFace(int value)
{
_face = (byte) value;
}
@@ -120,7 +120,7 @@
_hairColor = (byte) value;
}
- public final byte getHairStyle()
+ public final static byte getHairStyle()
{
return _hairStyle;
}
@@ -128,7 +128,7 @@
/**
* @param value
*/
- public final void setHairStyle(int value)
+ public final static void setHairStyle(int value)
{
_hairStyle = (byte) value;
}
CitarDATA:
### Eclipse Workspace Patch 1.0
#P L2J_DataPack
Index: dist/sql/game/characters.sql
===================================================================
--- dist/sql/game/characters.sql (revision 9024)
+++ dist/sql/game/characters.sql (working copy)
@@ -32,7 +32,7 @@
`deletetime` bigint(13) unsigned NOT NULL DEFAULT '0',
`cancraft` TINYINT UNSIGNED DEFAULT NULL,
`title` VARCHAR(16) DEFAULT NULL,
- `title_color` MEDIUMINT UNSIGNED NOT NULL DEFAULT '16777079',
+ `title_color` VARCHAR(16) NOT NULL DEFAULT 'FFFFFF',
`accesslevel` MEDIUMINT DEFAULT 0,
`online` TINYINT UNSIGNED DEFAULT NULL,
`onlinetime` INT DEFAULT NULL,
@@ -58,6 +58,7 @@
`vitality_points` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`createDate` date NOT NULL DEFAULT '0000-00-00',
`language` VARCHAR(2) DEFAULT NULL,
+ `namec` VARCHAR(16) NOT NULL DEFAULT 'FFFFFF',
PRIMARY KEY (`charId`),
KEY `account_name` (`account_name`),
KEY `char_name` (`char_name`),