Перейти к содержанию

DevGoD

Заблокирован
  • Публикаций

    386
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7
  • Отзывы

    0%

Весь контент DevGoD

  1. Раньше было в GamePacketHandler, World, Player, GameServer. Это не считая лг.
  2. И просьба, более не путать со Start-Dev.
  3. Будут, но позже, т.к. временно отошел я от дел. А больше впрочем и некому.
  4. Проблема скорее в том, что: 1)Сборка обфусцирована и unix не читает приложенный класслоадер. 2)Ява выше версии 7.21, где забыли про UTF-8.
  5. Твой класс файл в ядре ГСа лежит. Толк от того, что он у тебя будет перед глазами стремится к нулю.
  6. DevGoD

    Создание Моба

    Возможны ограничения связанные с типом данных/выставленные где-то в ядре.
  7. Ошибка исправляется редактированием запроса под конкретную бд.
  8. Ну так пробей поиском сурсы по переменной конфига каждого.
  9. DevGoD

    Проблема В Гс

    Контакты все в профиле. Хотя не вижу причины добавления в скайп, я всё предельно ясно объяснил.
  10. DevGoD

    Проблема В Гс

    Проблема в том, что неправильно прописан путь к ядру. Либо не скомпилено ядро, если речь об исходниках.
  11. Поясню: В статах прописывается изначальная закупочная цена, которая потом превращается в цену продажи путём деления на 2. Соответственно меняя цену для продажи,вашим способом, мы меняем и цену покупки.
  12. Ну тут еще надо учитывать вариации закупочных цен при изменении цены в статах.
  13. Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой.
  14. Ну а зачем гемороится с сотней-другой файлов, когда можно заменить всего одну строку, ну или на крайняк конфиг вывести с условием в пакете.
  15. for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1
  16. Как вариант пакет ExBuySellList поковырять.
  17. Собственно сабж. Занялся проработкой отображения времени отката инстанса. Сделал всё, кроме отображения корректного времени отката. По коду как то так: Player.java public Map<Integer, Long> getAllInstanceTimes(int playerObjId) { if (!_playerInstanceTimes.containsKey(Integer.valueOf(playerObjId))) { loadInstanceReuses(); } return _playerInstanceTimes.get(Integer.valueOf(playerObjId)); } public Map<Integer, Long> getInstanceReuses() { return _instancesReuses; } private void loadInstanceReuses() { Connection con = null; PreparedStatement offline = null; ResultSet rs = null; try { con = DatabaseFactory.getInstance().getConnection(); offline = con.prepareStatement("SELECT * FROM character_instances WHERE obj_id = ?"); offline.setInt(1, getObjectId()); rs = offline.executeQuery(); while(rs.next()) { int id = rs.getInt("id"); long reuse = rs.getLong("reuse"); _instancesReuses.put(id, reuse); } } catch(Exception e) { _log.error("", e); } finally { DbUtils.closeQuietly(con, offline, rs); } } Далее, получив данные из таблицы, к примеру 205,1378764709154 где 205 - id, 1378764709154 - reuse Пишем это дело в пакет. public class ExInzoneWaitingInfo extends L2GameServerPacket { private static final Logger _log = LoggerFactory.getLogger(ExInzoneWaitingInfo.class); private int _currentInzoneID = -1; private int _StoryId; private long _storyReuse; Map<Integer, Integer> _instanceTimes; private int instRe; private int thisRef; public ExInzoneWaitingInfo(Player player) { _instanceTimes = new FastMap<Integer, Integer>(); if(player.getActiveReflection() == null) { thisRef = 0; } else { thisRef = player.getActiveReflection().getInstancedZoneId(); } player.getAllInstanceTimes(player.getObjectId()); Map<Integer,Long> maps = player.getInstanceReuses(); for(int instanceId : maps.keySet()) { int remainingTime = (int)((((Long)maps.get(Integer.valueOf(instanceId))).longValue() - System.currentTimeMillis()) / 1000L); _log.info("Current reuse : "+ ((Long)maps.get(Integer.valueOf(instanceId)).longValue())); _instanceTimes.put(Integer.valueOf(instanceId), Integer.valueOf(remainingTime)); } } @Override protected void writeImpl() { writeD(thisRef); //Обозначаем Текущий инстанс writeD(_instanceTimes.size()); for(int instanceId : _instanceTimes.keySet()) { //instReenter = (int) instRe; writeD(instanceId); //Недоступное подземелье writeD(((Integer)_instanceTimes.get(Integer.valueOf(instanceId))).intValue()); //Откат } } } При этом, получаем remainingTime < 0 Что в принципе неправильно. Где я накосячил, подскажите пожалуйста.
  18. Обновлено: За 9.09 http://yadi.sk/d/RX2HjbiF8zBz5 Фикс Лист как всегда внутри. Всем Лучи Добра ^^
  19. Зависит от того, что надо. В зависимости от задуманной функции меняется и файл где это должно использоваться.
  20. Проверьте наличие библиотек и корректно ли прописан путь к ним.
  21. Ну про старт дев написано и мою "причастность" к ним написано выше.
  22. Товарищ из Start-Dev, более известный как DXVSI, а также ChipWar, выступают у меня в роли датапакеров. Посему не сложно догадаться, откуда фикс лист 1 в 1, но число рев рисовано. Так сказать, автономно. То, что я заливаю на свн, могут быть как малейшие фиксы, так и разработки механизмов/систем, т.к. периодически, либо не хватает времени, либо, как например сегодня, ушло вдохновение Всем добра.
×
×
  • Создать...