Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Дополнения от наших пользователей/[share][j2se]Сохранене цвета ника и титула.
Поиск

[share][j2se]Сохранене цвета ника и титула.

16 ответов1,669 просмотровСейчас просматривают: 1
vistall
vistall

Пользователь

Участник

Постов: 41

На форуме с: 29.03.2008

Репутация: +51

Рейтинг: 0

· 03.12.2008, 08:00

Смысл кода простой один метод грузит цвет ника другой сохраняет. Все изменение в файле L2Player.java для Rebillion, L2PcInstance.java для других
Для Rebillion

Код
private void restoreColor()
    {

        ThreadConnection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            FiltredPreparedStatement statement = con.prepareStatement("SELECT name_color,title_color FROM character_color WHERE obj_id=?");
            statement.setInt(1, getObjectId());
            ResultSet rset = statement.executeQuery();
            while (rset.next())
            {
                setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());
                setTitleColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("title_color")).toString()).intValue());
            }
            DatabaseUtils.closeDatabaseCSR(con,statement,rset);

        }
        catch (Exception e)
        {
            _log.warning("could not restore colors: "+e);
        }

    }
     private void storeColor()
    {

        ThreadConnection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            FiltredPreparedStatement statement = con.prepareStatement("UPDATE character_color SET name_color=?,title_color=? WHERE obj_id=?");
            statement.setString(1, Integer.toHexString(getNameColor()).toUpperCase());
            statement.setString(2, Integer.toHexString(getTitleColor()).toUpperCase());
            statement.setInt(3, getObjectId());
            statement.execute();

            DatabaseUtils.closeDatabaseCS(con,statement);


        }
        catch (Exception e)
        {
            _log.warning("could not store colors: "+e);
        }

    }


Для других
Код
private void restoreColor()
    {

        java.sql.Connection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT name_color,title_color FROM character_color WHERE obj_id=?");
            statement.setInt(1, getObjectId());
            ResultSet rset = statement.executeQuery();
            while (rset.next())
            {
                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());
            }
            DatabaseUtils.closeDatabaseCSR(con,statement,rset);

        }
        catch (Exception e)
        {
            _log.warning("could not restore colors: "+e);
        }
        finally
        {
            try{ con.close(); statement.close(); rset.close();}
            catch(SQLException e) {}
        }    

    }
     private void storeColor()
    {

        java.sql.Connection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("UPDATE character_color SET name_color=?,title_color=? WHERE obj_id=?");
            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);
        }
        finally
        {
            try{ con.close(); statement.close(); rset.close();}
            catch(SQLException e) {}
        }    


    }


Потом нати строчки где пишется в метод restore() по другом player.restoreColor();

И в методе store() пишем storeColor();

SQL

Код
CREATE TABLE IF NOT EXISTS character_color (
    obj_id 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  (obj_Id)
);


P.S. для не знающих ядра л2ж сервера просьба не писать что и зачем. Большая просьба добавить эти методы в сборку л2жБасе шары

О ищо в метод createDB пишем

Для Rebillion
Код
            DatabaseUtils.closeStatement(statement);
            statement = con.prepareStatement("INSERT INTO character_color (obj_id,name_color,title_color) VALUES (?,?,?)");
            statement.setInt(1,getObjectId());
            statement.setString(2, Integer.toHexString(getNameColor()).toUpperCase());
            statement.setString(3, Integer.toHexString(getTitleColor()).toUpperCase());
            statement.executeUpdate();



Для других
Код
            statement.close();
            statement = con.prepareStatement("INSERT INTO character_color (obj_id,name_color,title_color) VALUES (?,?,?)");
            statement.setInt(1,getObjectId());
            statement.setString(2, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
            statement.setString(3, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
            statement.executeUpdate();

0
Станислав
Станислав

Пользователь

Участник

Постов: 51

На форуме с: 26.09.2007

Репутация: +160

Рейтинг: 0

· 06.01.2009, 14:57

solovec: Лан , на досуге поковыряюсь попробую под эму сделать ) Тока тыкните мне пальцем де в L2PcInstance метод CreateDB а то чёт поиск по файлу не решает :)


Имя файла: L2PcInstance.java

Фаил в котором надо правтить лежит тут:
java\net\sf\l2j\gameserver\model\actor\instance

Отерываем его и жмем Ctrl+F

Вводим: CreateDB

и лично у мну нашло на линиях 712 и 5281.

На линие 5281 читаем синтаксис и добавляем то что вам нужно.

0
S
Storm2k

Пользователь

Новичок

Постов: 9

На форуме с: 01.04.2008

Репутация: +24

Рейтинг: 0

· 12.01.2009, 13:03

[INFO] Compilation failure

C:\l2emu\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\actor
\instance\L2PcInstance.java:[1069,46] ')' expected

C:\l2emu\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\actor
\instance\L2PcInstance.java:[1069,50] illegal start of expression

вот сама строка

setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());

Пытался сделать так:

getAppearance().setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());

0
vistall
vistall

Пользователь

Участник

Постов: 41

На форуме с: 29.03.2008

Репутация: +51

Рейтинг: 0

· 13.01.2009, 09:09

Storm2k: [INFO] Compilation failure

C:\l2emu\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\actor
\instance\L2PcInstance.java:[1069,46] ')' expected

C:\l2emu\L2EmuProject-Game\src\main\java\net\l2emuproject\gameserver\model\actor
\instance\L2PcInstance.java:[1069,50] illegal start of expression

вот сама строка

setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());

Пытался сделать так:

getAppearance().setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());



читай внимательнее тут под Ребу и л2ж так что смотри.

0
vistall
vistall

Пользователь

Участник

Постов: 41

На форуме с: 29.03.2008

Репутация: +51

Рейтинг: 0

· 26.01.2009, 16:52

<<<ATTENTION>>>
<<<NEW VERSION>>>

можно немного модифицировать код и получится как на оффе цвет ника.

Код
private void restoreColor()
    {

        ThreadConnection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            FiltredPreparedStatement statement = con.prepareStatement("SELECT name_color,title_color FROM character_color WHERE obj_id=?");
            statement.setInt(1, getObjectId());
            ResultSet rset = statement.executeQuery();
            while (rset.next())
            {
                setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());
                setTitleColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("title_color")).toString()).intValue());
            }
            DatabaseUtils.closeDatabaseCSR(con,statement,rset);

        }
        catch (SQLException e)
        {
            setNameColor(0xFFFFFF);
            setTitleColor(0xFFFF77);
        }

    }
     private void storeColor()
    {

        if(getNameColor() == 0xFFFFFF && getTitleColor() == 0xFFFF77)
                    return;
        ThreadConnection con = null;
        FiltredPreparedStatement statement=null;

        try
        {
            
            con = L2DatabaseFactory.getInstance().getConnection();
            statement = con.prepareStatement("UPDATE character_color SET name_color=?,title_color=? WHERE obj_id=?");
            statement.setString(1, Integer.toHexString(getNameColor()).toUpperCase());
            statement.setString(2, Integer.toHexString(getTitleColor()).toUpperCase());
            statement.setInt(3, getObjectId());
            statement.execute();

            DatabaseUtils.closeDatabaseCS(con,statement);


        }
        catch (SQLException e)
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            statement = con.prepareStatement("INSERT INTO character_color(obj_id, name_color, title_color) VALUES (?,?,?)");
            statement.setInt(1, getObjectId());
            statement.setString(2, Integer.toHexString(getNameColor()).toUpperCase());
            statement.setString(3, Integer.toHexString(getTitleColor()).toUpperCase());
            statement.execute();

            DatabaseUtils.closeDatabaseCS(con,statement);
        }

    }


делайте на другие серваки у мну нет времени. Это под ребу.(могу и ошибится).
Терь в нем лагу нет что только для созданых персонахов но и терь и для старых.
Теперь в метод createDb() ничего не пишем.
Смысл типа оффа - если есть в таблице перс то берет с него а если нет то стандартные значение.[size="7"][/size]

если ошибся в синтаксе MySQL то извеняйте я занимаюсь пока с PostgeSQL и с мускулом редко встречаюсь.
Это сырой вариант подправляйте

0
V
VlLight

Пользователь

Бывалый

Постов: 235

На форуме с: 20.05.2009

Репутация: +63

Рейтинг: 0

· 14.08.2009, 09:06

Под Emu, но думаю, различий немного

Раскрывающийся текст

import sys
import time
from com.l2emu.gameserver.model.actor.instance import L2PcInstance
from com.l2emu.gameserver.datatables import PcColorTable;
from com.l2emu import L2DatabaseFactory;
from com.l2emu.gameserver.model.quest import State
from com.l2emu.gameserver.model.quest import QuestState
from com.l2emu.gameserver.model.quest.jython import QuestJython as JQuest
#
#========================================
# DO NOT TOUCH THIS
#========================================
QuestId = 9000
QuestName = "ColorManager"
QuestDesc = "custom"
qn = "q"+str(QuestId)+"_"+str(QuestName)
#========================================
StartNpc = 33344
ItemId = 4037
ItemQty = 1
MinLevel = 1
MaxLevel = 85
#========================================
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def onAdvEvent(Self,event,npc,player):
text = "noaction.htm"
st = player.getQuestState(qn)
if not st : return text
if (player.getLevel() < MinLevel) or (player.getLevel() > MaxLevel) : return "charlevel.htm"
#if st.getQuestItemsCount(ItemId) < ItemQty : return "nomoney.htm"
if event == "N_DarkBlue" :
nameColor = "660000"
if event == "N_Blue" :
nameColor = "FF0000"
elif event == "N_Rose" :
nameColor = "CC33FF"
elif event == "N_Cyan" :
nameColor = "FF00CC"
elif event == "N_Bordo" :
nameColor = "330066"
elif event == "N_Magenta" :
nameColor = "FF00FF"
elif event == "N_Yellow" :
nameColor = "00FFFF"
elif event == "N_Orange" :
nameColor = "0066FF"
elif event == "N_Gray" :
nameColor = "808080"
elif event == "N_Black" :
nameColor = "000000"
elif event == "N_White" :
nameColor = "FFFFFF"
nameColor = int(nameColor,16)
initTime=int(time.time())*1000
PcColorTable.getInstance().add(player, nameColor, initTime, 0)
text = "done.htm"
return text

def onTalk (Self,npc,player):
st = player.getQuestState(qn)
if not st :
st = self.newQuestState(player)
return "1.htm"

def onFirstTalk (Self,npc,player):
st = getQuestState(qn)
if not st : return "Invalid quest state"

QUEST = Quest(QuestId,qn,QuestDesc)

QUEST.addStartNpc(StartNpc)
QUEST.addTalkId(StartNpc)

print "Loaded: "+qn

0
vistall
vistall

Пользователь

Участник

Постов: 41

На форуме с: 29.03.2008

Репутация: +51

Рейтинг: 0

· 05.09.2009, 08:02

http://dump.ru/file/3360874 вот для последней сборки l2jserver.com.

0
U
Uphill
· 14.01.2010, 00:58

Цитата
http://dump.ru/file/3360874 вот для последней сборки l2jserver.com.

перезалей плиз

0
U
Uphill
· 16.01.2010, 04:26

не работает. даю чару цвет он делает релог и опять ник белый

0
CKA3KART
CKA3KART

Пользователь

Бывалый

Постов: 359

На форуме с: 05.01.2010

Репутация: +41

Рейтинг: 0

· 16.01.2010, 07:46

Uphill: не работает. даю чару цвет он делает релог и опять ник белый


значит ты невызываешь в нужных местах данные методы

0
BAS
BAS

Пользователь

Бывалый

Постов: 281

На форуме с: 14.10.2007

Репутация: +79

Рейтинг: 0

· 16.01.2010, 08:08

Если нужно то вот скомпилиненный мною сервак Lineage II Gracia Final rev.6775 последняя стабильная сборка Final от команды L2jserver в ней уже реализовано и цветные ники и встроенный ГМшоп в комунити.Если кому будет нужно выложу в шару Lineage II Gracia Epilogue от команды L2jserver в ней будет всё то же что и в Final.

Вот ссылка на тему где есть небольшое описание по этой сборке + пару плюшек в виде Баффера с анимацией баффов и ГлобалГК.
_/ru/forum/dopolneniya-ot-nashikh-polzovatelej/15613#post-127621

Лучший игровой сервер - Земля: карта всего одна,но на 6 миллиардов игроков,читеров нет,админ терпеливый,но если уж забанит...

— Уважаемый

0
U
Uphill
· 18.01.2010, 21:59

не работало вот почему. надо было в базу засунуть -

Раскрывающийся текст
-- ----------------------------------------
-- 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;
-------------------------------------------

0
U
Uphill
· 19.01.2010, 12:15

Помогите плиз дописать чтобы цвета вписывало в таблицу "character_color"

Раскрывающийся текст

import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from net.sf.l2j.gameserver.model.actor.appearance import PcAppearance
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

qn = "7900_Namecolor"

NPC=[90000]
QuestId = 7900
QuestName = "Namecolor"
QuestDesc = "custom"
InitialHtml = "1.htm"
APIGA = 9143
APIGA_KOL = 300

print "Loaded Custom: 7900 Namecolor"

class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

def onEvent(self,event,st) :
htmltext = event

if event == "1":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x009900)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"
st.exitQuest(0)

if event == "2":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0xff7f00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "3":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x333333)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "4":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x00ffff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "5":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x660066)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "6":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x0099ff)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "7":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x70db93)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "8":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0x9f9f9f)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"

if event == "9":
if st.getQuestItemsCount(APIGA) > 299:
st.takeItems(APIGA,APIGA_KOL)
st.getPlayer().getAppearance().setNameColor(0xffff00)
st.getPlayer().broadcastUserInfo();
return "1.htm"
if st.getQuestItemsCount(APIGA) <= 299:
return "Announcements: No Enought GA To Select Color!"



def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><head><body><center>Spasibo Vam</center></body></html>"
st.setState(State.STARTED)
return InitialHtml

QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)

0
U
Uphill
· 26.01.2010, 12:59

блин, забыл вставить код который у меня был, скомпилил....
теперь пытаюсь поставить и не работает ничего...

L2PcInstance.java

Раскрывающийся текст
1.
2. // Character Transformation SQL String Definitions:
3. private static final String SELECT_CHAR_TRANSFORM = "SELECT transform_id FROM characters WHERE charId=?";
4. private static final String UPDATE_CHAR_TRANSFORM = "UPDATE characters SET transform_id=? WHERE charId=?";
5.
6. + // Character Color System by VISTALL
7. + private static final String INSERT_CHAR_COLOR = "INSERT INTO character_color(charId, name_color, title_color) VALUES (?,?,?)";
8. + private static final String SELECT_CHAR_COLOR = "SELECT * FROM character_color WHERE charId=?";
9. + private static final String UPDATE_CHAR_COLOR = "UPDATE character_color SET name_color=?, title_color=? WHERE charId=?";
10.
11. =====================================
12.
13. case L2PcInstance.STORE_PRIVATE_MANUFACTURE:
14. activeChar.sendPacket(new RecipeShopMsg(this));
15. break;
16. }
17. }
18.
19. + /**
20. + * method fo restore colors from database
21. + * and insert if in database if not exists
22. + * @author VISTALL
23. + */
24. + public void restoreColor()
25. + {
26. + Connection con = null;
27. + PreparedStatement statement = null;
28. + ResultSet rset = null;
29. + try
30. + {
31. + con = L2DatabaseFactory.getInstance().getConnection();
32. + statement = con.prepareStatement(SELECT_CHAR_COLOR);
33. + statement.setInt(1, getObjectId());
34. + rset = statement.executeQuery();
35. +
36. + if (rset.next())
37. + {
38. + getAppearance().setNameColor(Integer.decode((new +StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue());
39. + getAppearance().setTitleColor(Integer.decode((new +StringBuilder()).append("0x").append(rset.getString("title_color")).toString()).intValue());
40. + }
41. + else
42. + {
43. + con = L2DatabaseFactory.getInstance().getConnection();
44. + statement = con.prepareStatement(INSERT_CHAR_COLOR);
45. + statement.setInt(1, getObjectId());
46. + statement.setString(2, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
47. + statement.setString(3, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
48. + statement.execute();
49. + }
50. + }
51. + catch (Exception e)
52. + {
53. + _log.warning("could not restore colors: "+e);
54. + }
55. + finally
56. + {
57. + try{ con.close(); statement.close(); rset.close();}
58. +
59. + catch(SQLException e) {}
60. + }
61. + }
62. +
63. + /**
64. + * Store colors
65. + * @author VISTALL
66. + */
67. + private void storeColor()
68. + {
69. +
70. + Connection con = null;
71. + PreparedStatement statement = null;
72. + try
73. + {
74. + con = L2DatabaseFactory.getInstance().getConnection();
75. + statement = con.prepareStatement(UPDATE_CHAR_COLOR);
76. + statement.setString(1, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
77. + statement.setString(2, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
78. + statement.setInt(3, getObjectId());
79. + statement.execute();
80. + }
81. + catch (Exception e)
82. + {
83. + _log.warning("could not store colors: "+e);
84. + e.printStackTrace();
85. + }
86. + finally
87. + {
88. + try
89. + {
90. + con.close(); statement.close();
91. + }
92. + catch(SQLException e) {}
93. + }
94. + }


правильно?

0
Хам
Хам

Пользователь

Бывалый

Постов: 179

На форуме с: 16.03.2008

Репутация: +45

Рейтинг: 0

· 01.02.2010, 13:54

делал как в первом примере, т.е. с createDB, сборка Archid interlud, косяк в том цвет то он дает, но при релоге не подгружает его на чара, ниже код

Раскрывающийся текст

Код
    private void restoreColor()
    {

        java.sql.Connection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT name_color,title_color FROM character_color WHERE obj_id=?");
            statement.setInt(1, getObjectId());
            ResultSet rset = statement.executeQuery();
            while (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());
            }
            rset.close();
            statement.close();
        }
        catch (Exception e)
        {
            _log.warning("could not restore colors: "+e);
        }
        finally
        {
            try{ con.close(); }
            catch(SQLException e) {}
        }

    }

    private void storeColor()
    {

        java.sql.Connection con = null;

        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("UPDATE character_color SET name_color=?,title_color=? WHERE obj_id=?");
            statement.setString(1, Integer.toHexString(getAppearance().getNameColor()).toUpperCase());
            statement.setString(2, Integer.toHexString(getAppearance().getTitleColor()).toUpperCase());
            statement.setInt(3, getObjectId());
            statement.execute();
            statement.close();
        }
        catch (Exception e)
        {
            _log.warning("could not store colors: "+e);
        }
        finally
        {
            try { con.close(); } catch (SQLException e) {}
        }


    }


переменную storeColor(); вписал как показанно ниже:
Код
    public synchronized void store()
    {
        //update client coords, if these look like true
        if (isInsideRadius(getClientX(), getClientY(), 1000, true))
            setXYZ(getClientX(), getClientY(), getClientZ());

        storeCharBase();
        storeCharSub();
        storeEffect();
        storeRecipeBook();
        storeColor();
    }



в чем косяк... непонимаю...

0
Хам
Хам

Пользователь

Бывалый

Постов: 179

На форуме с: 16.03.2008

Репутация: +45

Рейтинг: 0

· 01.02.2010, 14:38

разобрался :)нужно в класс private void restoreCharData() добавить restoreColor();

0
Войдите или зарегистрируйтесь чтобы ответить