-
Публикаций
386 -
Зарегистрирован
-
Посещение
-
Победитель дней
7 -
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент DevGoD
-
Раньше было в GamePacketHandler, World, Player, GameServer. Это не считая лг.
-
И просьба, более не путать со Start-Dev.
-
Будут, но позже, т.к. временно отошел я от дел. А больше впрочем и некому.
-
Скинул в скайп всё.
- 2 ответа
-
- 1
-
Проблема скорее в том, что: 1)Сборка обфусцирована и unix не читает приложенный класслоадер. 2)Ява выше версии 7.21, где забыли про UTF-8.
-
Твой класс файл в ядре ГСа лежит. Толк от того, что он у тебя будет перед глазами стремится к нулю.
-
Возможны ограничения связанные с типом данных/выставленные где-то в ядре.
-
Ошибка исправляется редактированием запроса под конкретную бд.
-
Ну так пробей поиском сурсы по переменной конфига каждого.
-
Контакты все в профиле. Хотя не вижу причины добавления в скайп, я всё предельно ясно объяснил.
-
Проблема в том, что неправильно прописан путь к ядру. Либо не скомпилено ядро, если речь об исходниках.
-
Поясню: В статах прописывается изначальная закупочная цена, которая потом превращается в цену продажи путём деления на 2. Соответственно меняя цену для продажи,вашим способом, мы меняем и цену покупки.
-
Ну тут еще надо учитывать вариации закупочных цен при изменении цены в статах.
-
Просто writeQ(0); но можно и референс цену умножить на ноль, разницы никакой.
- 21 ответ
-
- 1
-
Ну а зачем гемороится с сотней-другой файлов, когда можно заменить всего одну строку, ну или на крайняк конфиг вывести с условием в пакете.
-
for(TradeItem item : _sellList) { writeItemInfo(item); writeQ(item.getReferencePrice() / 2); } где item.getReferencePrice() - цена в прописанная в xml, соответственно цена продажи в 2 раза дешевле. для 1а ставим 1
- 21 ответ
-
- 2
-
Как вариант пакет ExBuySellList поковырять.
-
Собственно сабж. Занялся проработкой отображения времени отката инстанса. Сделал всё, кроме отображения корректного времени отката. По коду как то так: 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 Что в принципе неправильно. Где я накосячил, подскажите пожалуйста.
-
Обновлено: За 9.09 http://yadi.sk/d/RX2HjbiF8zBz5 Фикс Лист как всегда внутри. Всем Лучи Добра ^^
-
Зависит от того, что надо. В зависимости от задуманной функции меняется и файл где это должно использоваться.
-
It would be done later.
-
Проверьте наличие библиотек и корректно ли прописан путь к ним.
-
Ну про старт дев написано и мою "причастность" к ним написано выше.
-
Товарищ из Start-Dev, более известный как DXVSI, а также ChipWar, выступают у меня в роли датапакеров. Посему не сложно догадаться, откуда фикс лист 1 в 1, но число рев рисовано. Так сказать, автономно. То, что я заливаю на свн, могут быть как малейшие фиксы, так и разработки механизмов/систем, т.к. периодически, либо не хватает времени, либо, как например сегодня, ушло вдохновение Всем добра.