Перейти к содержанию
Авторизация  
Anderson

Color

Рекомендуемые сообщения

Слушайте, меняю колор имени через адм панель, все ок. Перезахожу, цвет - дефолтный.

Я поискал, и не нашел где цвета сохраняются. Как сделать что б после перезахода в игру цвет оставался тем на который я изменил (и после рестарта сервера). Сборка Силентиум

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На большинстве сборок это не реализовано.

Необходимо в базу characters добавлять столбец "nameColor", в загрузке и выгрузке персонажа читать и записывать его.

Смотрите по аналогии с titleColor.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На большинстве сборок это не реализовано.

Необходимо в базу characters добавлять столбец "nameColor", в загрузке и выгрузке персонажа читать и записывать его.

Смотрите по аналогии с titleColor.

Я понял, ща буду делать. Но титл цвет тоже надо делать=)

В таблицу засунуть ид персонажа, цвет ника и цвет титула да? И в ентер ворлд менять, и в выходе присваивать? Но не будит ли задержки, и хоть на долю усиление нагрузки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем новую таблицу делать? добавь к существующей в конец. oid персонажа там есть, в конец добавь нужные поля (если навикат, то правый так по таблице - дизайн).

Загружать прямо в загрузке персонажа. Вы лыже это L2PcInstance.restore();

Сохранять аналогично, в сохранении персонажа, L2PcInstance.store();

 

Если сделаешь так - производительность не упадет.

 

Если в коде нет загрузки цвета титула (что уже странно) - делай по аналогии с самим титулом. Он уж точно сохраняется как надо и куда надо.

 

 

Если пишешь в эклипсе - то наведи курсор на метод getTitle, правый тык, Ссылки -> Рабочая область.

В окне поиска покажет все упомянания этого метода.

Там и найдешь загрузку/сохранение.

Изменено пользователем Relvl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зачем новую таблицу делать? добавь к существующей в конец. oid персонажа там есть, в конец добавь нужные поля (если навикат, то правый так по таблице - дизайн).

Загружать прямо в загрузке персонажа. Вы лыже это L2PcInstance.restore();

Сохранять аналогично, в сохранении персонажа, L2PcInstance.store();

 

Если сделаешь так - производительность не упадет.

 

Если в коде нет загрузки цвета титула (что уже странно) - делай по аналогии с самим титулом. Он уж точно сохраняется как надо и куда надо.

 

 

Если пишешь в эклипсе - то наведи курсор на метод getTitle, правый тык, Ссылки -> Рабочая область.

В окне поиска покажет все упомянания этого метода.

Там и найдешь загрузку/сохранение.

Да нашел их. Ид персонажа поступает туда прям, норм если считывать буду прям в этой функции? Нагрузку даст?

 

П.С. В каких файлах ф-ции для щитки с базы? А то никак не дойду поиском)

 


try (Connection con = DatabaseFactory.getConnection())
{
PreparedStatement statement = con.prepareStatement(INSERT_CHARACTER);
statement.setString(1, _accountName);
}

Это мы в 1 столбик записываем переменную accountName?

Изменено пользователем Anderson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таблице чарактерс просто создай еще 1 поле, в котором будешь хранить цвет.

Потом уже в L2PcInstance при загрузке чара бери цвет из ResultSet, при выходе - сохраняй.

Для сохранения придется поправить запрос, для загрузки возможно и не придется.

 

 

//upd опередили.

 

Юзай эклипс, не будет вопросо в каких файлах.

Это мы в 1 столбик записываем переменную accountName?

Нет, это мы в запрос на место первого параметра подставляем значение _accountName

Изменено пользователем mouse

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таблице чарактерс просто создай еще 1 поле, в котором будешь хранить цвет.

Потом уже в L2PcInstance при загрузке чара бери цвет из ResultSet, при выходе - сохраняй.

Для сохранения придется поправить запрос, для загрузки возможно и не придется.

 

 

//upd опередили.

 

Юзай эклипс, не будет вопросо в каких файлах.

 

Нет, это мы в запрос на место первого параметра подставляем значение _accountName

Спасибо, разобрался, сейчас буду делать, не так уж и трудно. Добавил цвет имени и титула типа варчар длинной 6, и буду там хекс цвета хранить, запросы в базу увидел где править, спасибо за помощь, сделаю отпишусь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, разобрался, сейчас буду делать, не так уж и трудно. Добавил цвет имени и титула типа варчар длинной 6, и буду там хекс цвета хранить, запросы в базу увидел где править, спасибо за помощь, сделаю отпишусь

Сразу опережу, храни не варчар а инт, сервер принимает в кач-ве цвета интовую переменную.

Либо каждый раз придется юзать Integer.decode().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сразу опережу, храни не варчар а инт, сервер принимает в кач-ве цвета интовую переменную.

Либо каждый раз придется юзать Integer.decode().

Только это делаю, и как раз задумался, уже начал писать декод, но задумался, спасибо, сделаю в инт. Интовые значение типо: 255255255255?

 

П.С. Еклипс не люблю, юзаю IntelliJ IDEA

Изменено пользователем Anderson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только это делаю, и как раз задумался, уже начал писать декод, но задумался, спасибо, сделаю в инт. Интовые значение типо: 255255255255?

 

П.С. Еклипс не люблю, юзаю IntelliJ IDEA

Лишь бы не нотепад++ и ант из консольки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лишь бы не нотепад++ и ант из консольки

Нет, там невозможно работать, ни мемберов не видешь ни ошибок. Слуш а какие значения цветов в инте: 255255255255(белый)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, там невозможно работать, ни мемберов не видешь ни ошибок. Слуш а какие значения цветов в инте: 255255255255(белый)?

16777215

 

юзай виндовый калькулятор, для конвертирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все, сделал, заработало. Спасибо всем за помощь. Закрыто

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все же есть еще вопрос, почему цвета хм, другие, тоесть: делаю синий - меняет на черный, делаю желтый - меняет на зеленый. Но все бипасы правильные, и цвета у нпс отображает корректно:

 

<html><body>Color Manager:<br>
Для изменения цвета ника вам нужно заплатить мне 6 COL<br>
Если вы согласны, тогда выберайте:<br>
<a action="bypass -h npc_%objectId%_SetNameColor 0"><font color="000000">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 16711680"><font color="FF0000">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 65280"><font color="00FF00">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 255"><font color="0000FF">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 16776960"><font color="FFFF00">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 65535"><font color="00FFFF">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 16711935"><font color="FF00FF">Выбор цвета</font></a><br>
<a action="bypass -h npc_%objectId%_SetNameColor 12632256"><font color="C0C0C0">Выбор цвета</font></a>
</body></html>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

байты переверни. HTML и ява работают на разных вариантах цвета. Ява на GGBBRR, а HTML на RRGGBB.

 

Пример, в HTML красный FF0000, а я яве 0000FF, более доступный пример: FA883F <=> 3F88FA

 

Ну и мега-шара от меня, подобранные цвета впихнутые в энумератор :)

 

public static enum Colors{
 //Color(ID, Color, Name, Nick, Title, Html);
 White(0xFFFFFF, "Белый (бесплатно)", true , false, "FFFFFF", true),
 WhiteTitle(0xFFFFFF, "Белый", false , true, "FFFFFF"),
 Electric(0xFFFF77, "Электро (бесплатно)", false , true, "77FFFF", true),
 ElectricName(0xFFFF77, "Электро", true , false, "77FFFF"),

 Black(0x000000, "Черный", true , true, "000000"),
 DarkGray(0x555555, "Темно-серый", true , true, "555555"),
 LiteGray(0xAAAAAA, "Светло-серый", true , true, "AAAAAA"),
 Red(0x0000FF, "Красный", false , true, "FF0000"),

 Green(0x00FF00, "Зеленый", true , true, "00FF00"),

 Blue(0xFF0000, "Синий", true , true, "0000FF"),

 Yellow(0x00FFFF, "Желтый", true , true, "FFFF00"),
 Mandarine(0x008CFF, "Мандарин", true , true, "FF8C00"),
 Yantar(0x00bfff, "Янтарь", true , true, "ffbf00"),
 Golden(0x00d7ff, "Золотой", true , true, "ffd700"),
 Peach(0xb4e5ff, "Персиковый", true , true, "ffe5b4"),
 Beige(0xdcf5f5, "Бежевый", true , true, "f5f5dc"),
 YellowBrown(0x8cb4d2, "Желто-коричневый", true , true, "d2b48c"),
 Haki(0x2a6b80, "Хаки", true , true, "806b2a"),
 DarkHaki(0x183c4c, "Темный хаки", true , true, "4c3c18"),
 Olive(0x008080, "Оливковый", true , true, "808000"),
 Latun(0x42a6b5, "Латунный", true , true, "b5a642"),
 Creame(0xc6ddf2, "Кремовый", true , true, "f2ddc6"),
 GreenTea(0xbadaca, "Зеленый чай", true , true, "cadaba"),
 Swamp(0x8eb7ac, "Болотный", true , true, "acb78e"),
 Grassy(0x30a15d, "Трава", true , true, "5da130"),
 Acid(0x00ff7f, "Кислотный", true , true, "7fff00"),
 LiteGreen(0x99ff99, "Салатовый", true , true, "99ff99"),
 Nefrite(0x6ba800, "Нефритовый", true , true, "00a86b"),
 Emerald(0x78c850, "Изумрудный", true , true, "50c878"),
 Aquamarine(0xd4ff7f, "Аквамарин", true , true, "7fffd4"),
 Murena(0x726b1c, "Мурена", true , true, "1c6b72"),
 BlueRgeen(0x808000, "Cине-зеленый", true , true, "008080"),
 CatbirdEgg(0xcccc00, "Яйцо дрозда", true , true, "00cccc"),
 Cian(0xffff00, "Циановый", true , true, "00ffff"),
 Silver(0xc0c0c0, "Серебрянный", true , true, "c0c0c0"),
 Saphire(0x672508, "Сапфировый", true , true, "082567"),
 Ultramarine(0x8f0a12, "Ультрамарин", true , true, "120a8f"),
 Cobalt(0xab4700, "Кобальт", true , true, "0047ab"),
 KingBlue(0xe16941, "Королевский", true , true, "4169e1"),
 LiteBlue(0xffaa42, "Голубой", true , true, "42aaff"),
 Sky(0xffc77f, "Небесный", true , true, "7fc7ff"),
 Lavender(0xfae6e6, "Лавандовый", true , true, "e6e6fa"),
 Glicin(0xdca0c9, "Глицин", true , true, "c9a0dc"),
 Ametiste(0xcc6699, "Аметистовый", true , true, "9966cc"),
 SeroBuroMalinoviy(0x845173, "Серобуромалиновый", true , true, "735184"),
 Purple(0xff008b, "Фиолетовый", true , true, "8b00ff"),
 Persian(0xff0066, "Персицкий", true , true, "6600ff"),
 DeepPurple(0x893142, "Deep Purple", true , true, "423189"),
 Indigo(0x82004b, "Индиго", true , true, "4b0082"),
 Plum(0x660066, "Сливовый", true , true, "660066"),
 Orchid(0xd670da, "Орхидея", true , true, "da70d6"),
 LitePurple(0xe584f9, "Светло-фиолетовый", true , true, "f984e5"),
 Glamour(0xca47ff, "Гламурный", true , true, "ff47ca"),
 Magenta(0xff00ff, "Пурпурный", false , true, "ff00ff"),
 Aubergine(0x660099, "Баклажановый", true , true, "990066"),
 Cherry(0x421e91, "Вишневый", false , true, "911e42"),
 LiteCherry(0x6331de, "Светло-вишневый", false , true, "de3163"),
 Violet(0x9370db, "Лиловый", true , true, "db7093"),
 Brown(0x1c1645, "Коричневый", true , true, "45161c"),
 Carrot(0x2362f3, "Морковный", true , true, "f36223");
 private final int _color;
 private final String _locName;
 private final boolean _forNick;
 private final boolean _forTitle;
 private final String _htmlColor;
 private final boolean _free;

 public int COLOR(){return _color;}
 public String LOCNAME(){return _locName;}
 public boolean FORNICK(){return _forNick;}
 public boolean FORTITLE(){return _forTitle;}
 public String HTMLCOLOR(){return _htmlColor;}
 public boolean FREE(){return _free;}
 private Colors(int color, String locName, boolean forNick, boolean forTitle, String htmlColor){_color = color;_locName = locName;_forNick = forNick;_forTitle = forTitle;_htmlColor = htmlColor;_free = false;}
 private Colors(int color, String locName, boolean forNick, boolean forTitle, String htmlColor, boolean free){_color = color;_locName = locName;_forNick = forNick;_forTitle = forTitle;_htmlColor = htmlColor;_free = free;}
}

 

Пользоваться так:

   case "namecolor":
 html = "<table border=0 cellspacing=0>";
 i = 0;
 for (Colors clr : Colors.values()) {
  if (clr.FORNICK()){
   if (i % 4 == 0){html += "<tr>";}
   html += "<td width=130 height=25><a action=\"bypass -h BBS_SERVICES:namecolor:set:"+clr.name()+"\"><font color="+clr.HTMLCOLOR()+">"+clr.LOCNAME()+"</font></a></td>";
   if (i % 4 == 3){html += "</tr>";}
   i++;
  }
 }
 if (html.endsWith("</tr>")){html += "</tr>";}
 html += "</table>";
 Content = Content.replaceAll("<tag_list_colors>", html);
 Content = Content.replaceAll("<tag_namecolor_cost>", Util.getItemHtmlName(_CommunityBoard.DONATE_ITEM_ID, COST_NICK_COLOR, player));
 break;

и

  case "namecolor":
   if (Arg2.equals("set") && Arg3 != null){
 Colors _color = Colors.valueOf(Arg3);
 if (_color == null || !_color.FORNICK()){
  onError(player,"Ошибка при попытке определить цвет! Администрация извещена.");
  _log.log(Level.WARNING, "[bBS_SERVICE:parseCommand] "+player.getName()+" ("+player.getObjectId()+") send illegal bypass: BBS_SERVICES:"+Arg1+":"+Arg2+":"+Arg3);
  break;
 }
 if (!_color.FREE()){
  if (player.getInventory().getItemByItemId(_CommunityBoard.DONATE_ITEM_ID).getCount() < COST_NICK_COLOR){
   onError(player,"Стоимость смены цвета ника составляет "+Util.getCountString(COST_NICK_COLOR)+" "+Util.getItemIdName(_CommunityBoard.DONATE_ITEM_ID));
   break;
  }
  else if (!player.destroyItemByItemId("CommunitySetNameColor", _CommunityBoard.DONATE_ITEM_ID, COST_NICK_COLOR, player, true)){
   onError(player,"Ошибка при попытке оплаты сервиса.");
   break;
  }
 }

 player.getAppearance().setNameColor(_color.COLOR());
 player.broadcastUserInfo();
 player.store();
 return _CommunityBoard.BBS_SERVICES + ":namecolor:congr:"+_color.name();
   }
   break;

 

Других подробностей не дам, надоело всё объяснять как для даунов.

Есть голова - припилите к своей сборке. Нет - пройдете мимо.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо огромнишое за цвета, скрипт я не беру, так как сам написал. А вот цвета, супер, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не за что... Сам в шарах порылся, обычно цветов 10 от силы указывают.

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слуш, спасибо еще раз огромное.

Но такой вопрос:

Я цвет имени и титула сохраняю при релоге, а при входе вытягиваю с базы и присваиваю плееру. Как сходу после изменения с инстанса выслать в базу убдейт нужной колонки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если апдейт нужной колонки - то только свой метод писать с этим апдейтом.

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

Такие изменения происходят редко, за нагрузку можно не переживать, персонаж сохраняется меньше одной миллисекунды по времени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

private static final String UPDATE_TITLE_COLOR = "UPDATE characters set titleColor = ? where charId = ?";
public void updateTitleColor(){
try{
Connection conn = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement ps = conn.prepareStatement(UPDATE_TITLE_COLOR);
ps.setInt(1, getAppearance().getTitleColor());
ps.setInt(2, getObjectId());
 ps.executeUpdate();
}
catch (Exception e)
{
 e.printStackTrace();
}
}

Это все в L2PcInstance, потом откуда надо вызываешь метод updateTitleColor()

P.S., не помню, как точно в базе зовется поле с цветом титула, проверь.

 

upd: опять автор поста выше опередил меня :( И да, действительно, лучше сохранять все это дело после изменений.

Бояться за какую-то нагрузку здесь не надо, при каждом подборе дропа, например, происходит запись в базу всех собранных итемов, так что не парься, это не то, что может грузануть сервер.

Изменено пользователем mouse
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и зовется...

 

Но нафига плодить кучу методов? тем более в ПсИнстанс, который и так в лыже разросся до 16к строк?

 

Я так цвета меняю:

case "namecolor":
if (Arg2.equals("set") && Arg3 != null){
 Colors _color = Colors.valueOf(Arg3);
 if (_color == null || !_color.FORNICK()){
 onError(player,"Ошибка при попытке определить цвет! Администрация извещена.");
 _log.log(Level.WARNING, "[bBS_SERVICE:parseCommand] "+player.getName()+" ("+player.getObjectId()+") send illegal bypass: BBS_SERVICES:"+Arg1+":"+Arg2+":"+Arg3);
 break;
 }
 if (!_color.FREE()){
 if (player.getInventory().getItemByItemId(DONATE_ITEM_ID).getCount() < COST_NICK_COLOR){
 onError(player,"Стоимость смены цвета ника составляет "+Util.getCountString(COST_NICK_COLOR)+" "+Util.getItemIdName(DONATE_ITEM_ID));
 break;
 }
 else if (!player.destroyItemByItemId("CommunitySetNameColor", DONATE_ITEM_ID, COST_NICK_COLOR, player, true)){
 onError(player,"Ошибка при попытке оплаты сервиса.");
 break;
 }
 }

 player.getAppearance().setNameColor(_color.COLOR());
 player.broadcastUserInfo();
 player.store();
 return _CommunityBoard.BBS_SERVICES + ":namecolor:congr:"+_color.name();
}
break;
case "titlecolor":
if (Arg2.equals("set") && Arg3 != null){
 Colors _color = Colors.valueOf(Arg3);
 if (_color == null || !_color.FORTITLE()){
 onError(player,"Ошибка при попытке определить цвет! Администрация извещена.");
 _log.log(Level.WARNING, "[bBS_SERVICE:parseCommand] "+player.getName()+" ("+player.getObjectId()+") send illegal bypass: BBS_SERVICES:"+Arg1+":"+Arg2+":"+Arg3);
 break;
 }
 if (!_color.FREE()){
 if (player.getInventory().getItemByItemId(DONATE_ITEM_ID).getCount() < COST_TITLE_COLOR){
 onError(player,"Стоимость смены цвета титула составляет "+Util.getCountString(COST_TITLE_COLOR)+" "+Util.getItemIdName(DONATE_ITEM_ID));
 break;
 }
 else if (!player.destroyItemByItemId("CommunitySetTitleColor", DONATE_ITEM_ID, COST_TITLE_COLOR, player, true)){
 onError(player,"Ошибка при попытке оплаты сервиса.");
 break;
 }
 }

 player.getAppearance().setTitleColor(_color.COLOR());
 player.broadcastTitleInfo();
 player.store();
 return _CommunityBoard.BBS_SERVICES + ":titlecolor:congr:"+_color.name();
}
break;

 

Обрати внимание на player.store();

Этот метод полностью сохраняет персонажа в базу. Хуже от этого ни когда не станет.

Изменено пользователем Relvl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и зовется...

 

Но нафига плодить кучу методов? тем более в ПсИнстанс, который и так в лыже разросся до 16к строк?

 

Я так цвета меняю:

case "namecolor":
if (Arg2.equals("set") && Arg3 != null){
 Colors _color = Colors.valueOf(Arg3);
 if (_color == null || !_color.FORNICK()){
 onError(player,"Ошибка при попытке определить цвет! Администрация извещена.");
 _log.log(Level.WARNING, "[bBS_SERVICE:parseCommand] "+player.getName()+" ("+player.getObjectId()+") send illegal bypass: BBS_SERVICES:"+Arg1+":"+Arg2+":"+Arg3);
 break;
 }
 if (!_color.FREE()){
 if (player.getInventory().getItemByItemId(DONATE_ITEM_ID).getCount() < COST_NICK_COLOR){
 onError(player,"Стоимость смены цвета ника составляет "+Util.getCountString(COST_NICK_COLOR)+" "+Util.getItemIdName(DONATE_ITEM_ID));
 break;
 }
 else if (!player.destroyItemByItemId("CommunitySetNameColor", DONATE_ITEM_ID, COST_NICK_COLOR, player, true)){
 onError(player,"Ошибка при попытке оплаты сервиса.");
 break;
 }
 }

 player.getAppearance().setNameColor(_color.COLOR());
 player.broadcastUserInfo();
 player.store();
 return _CommunityBoard.BBS_SERVICES + ":namecolor:congr:"+_color.name();
}
break;
case "titlecolor":
if (Arg2.equals("set") && Arg3 != null){
 Colors _color = Colors.valueOf(Arg3);
 if (_color == null || !_color.FORTITLE()){
 onError(player,"Ошибка при попытке определить цвет! Администрация извещена.");
 _log.log(Level.WARNING, "[bBS_SERVICE:parseCommand] "+player.getName()+" ("+player.getObjectId()+") send illegal bypass: BBS_SERVICES:"+Arg1+":"+Arg2+":"+Arg3);
 break;
 }
 if (!_color.FREE()){
 if (player.getInventory().getItemByItemId(DONATE_ITEM_ID).getCount() < COST_TITLE_COLOR){
 onError(player,"Стоимость смены цвета титула составляет "+Util.getCountString(COST_TITLE_COLOR)+" "+Util.getItemIdName(DONATE_ITEM_ID));
 break;
 }
 else if (!player.destroyItemByItemId("CommunitySetTitleColor", DONATE_ITEM_ID, COST_TITLE_COLOR, player, true)){
 onError(player,"Ошибка при попытке оплаты сервиса.");
 break;
 }
 }

 player.getAppearance().setTitleColor(_color.COLOR());
 player.broadcastTitleInfo();
 player.store();
 return _CommunityBoard.BBS_SERVICES + ":titlecolor:congr:"+_color.name();
}
break;

 

Обрати внимание на player.store();

Этот метод полностью сохраняет персонажа в базу. Хуже от этого ни когда не станет.

 

Да я понял, я как раз в этот метод добавил сохранение цвета, вызову его после применения платной ф-и. Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...