10-07-2016, 11:13 PM
Народ Так как это пофиксить на Яве?
Много сервов видел где этого нет
Много сервов видел где этого нет
Лаг Шотов
|
10-07-2016, 11:13 PM
Народ Так как это пофиксить на Яве?
Много сервов видел где этого нет
10-09-2016, 01:23 AM
реализовывай "ленивое" обновление в бд определенных предметов (по типу или ид) - это достаточно легко реализуемо.
10-09-2016, 07:39 PM
я бы сделал так - пришел пакет о включении автошотов, проверил что шоты есть поставил флаг bool useFokingShots = true; И при каждом ударе, скилле убавлялбы шоты и применял эффект шота. Кончились шоты - убрал флаг и все.
10-09-2016, 10:00 PM
Gaikotsu Написал:реализовывай "ленивое" обновление в бд определенных предметов (по типу или ид) - это достаточно легко реализуемо. Блин, а как это реализовать? и что значит "ленивое"? Может где то есть уже инфа по реализации. Ну или Расшифруйте что такое "ленивое" обновление в Базе
10-09-2016, 10:46 PM
(Сообщение последний раз редактировалось: 10-09-2016, 10:48 PM virusoflove.)
public class BlessedSpiritShot extends ScriptItemHandler implements ScriptFile {
// all the items ids that this handler knowns private static final int[] _itemIds = {3947, 3948, 3949, 3950, 3951, 3952, 22072, 22073, 22074, 22075, 22076}; private static final int[] _skillIds = {2061, 2160, 2161, 2162, 2163, 2164}; @Override public boolean pickupItem(Playable playable, ItemInstance item) { return true; } @Override public void onLoad() { ItemHandler.getInstance().registerItemHandler(this); } @Override public void onReload() { } @Override public void onShutdown() { } @Override public boolean useItem(Playable playable, ItemInstance item, boolean ctrl) { if (playable == null || !playable.isPlayer()) { return false; } Player player = (Player) playable; ItemInstance weaponInst = player.getActiveWeaponInstance(); WeaponTemplate weaponItem = player.getActiveWeaponItem(); int SoulshotId = item.getItemId(); boolean isAutoSoulShot = false; if (player.getAutoSoulShot().contains(SoulshotId)) { isAutoSoulShot = true; } if (weaponInst == null) { if (!isAutoSoulShot) { player.sendPacket(Msg.CANNOT_USE_SPIRITSHOTS); } return false; } if (weaponInst.getChargedSpiritshot() == ItemInstance.CHARGED_BLESSED_SPIRITSHOT) // already charged by blessed spirit shot // btw we cant charge only when bsps is charged { return false; } int spiritshotId = item.getItemId(); int grade = weaponItem.getCrystalType().externalOrdinal; int blessedsoulSpiritConsumption = weaponItem.getSpiritShotCount(); if (blessedsoulSpiritConsumption == 0) { // Can't use Spiritshots if (isAutoSoulShot) { player.removeAutoSoulShot(SoulshotId); player.sendPacket(new ExAutoSoulShot(SoulshotId, false), new SystemMessage(SystemMessage.THE_AUTOMATIC_USE_OF_S1_WILL_NOW_BE_CANCELLED).addItemName(spiritshotId)); return false; } player.sendPacket(Msg.CANNOT_USE_SPIRITSHOTS); return false; } if (grade == 0 && spiritshotId != 3947 // NG || grade == 1 && spiritshotId != 3948 && spiritshotId != 22072 // D || grade == 2 && spiritshotId != 3949 && spiritshotId != 22073 // C || grade == 3 && spiritshotId != 3950 && spiritshotId != 22074 // B || grade == 4 && spiritshotId != 3951 && spiritshotId != 22075 // A || grade == 5 && spiritshotId != 3952 && spiritshotId != 22076 // S ) { if (isAutoSoulShot) { return false; } player.sendPacket(Msg.SPIRITSHOT_DOES_NOT_MATCH_WEAPON_GRADE); return false; } long count = item.getCount(); if (Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY && count >= 1) { weaponInst.setChargedSpiritshot(ItemInstance.CHARGED_BLESSED_SPIRITSHOT); player.sendPacket(Msg.POWER_OF_MANA_ENABLED); player.broadcastPacket(new MagicSkillUse(player, player, _skillIds[grade], 1, 0, 0)); } else if (!Config.ALLOW_SOUL_SPIRIT_SHOT_INFINITELY) { if (!player.getInventory().destroyItem(item, blessedsoulSpiritConsumption)) { if (isAutoSoulShot) { player.removeAutoSoulShot(SoulshotId); player.sendPacket(new ExAutoSoulShot(SoulshotId, false), new SystemMessage(SystemMessage.THE_AUTOMATIC_USE_OF_S1_WILL_NOW_BE_CANCELLED).addItemName(spiritshotId)); return false; } player.sendPacket(Msg.NOT_ENOUGH_SPIRITSHOTS); return false; } weaponInst.setChargedSpiritshot(ItemInstance.CHARGED_BLESSED_SPIRITSHOT); player.sendPacket(Msg.POWER_OF_MANA_ENABLED); player.broadcastPacket(new MagicSkillUse(player, player, _skillIds[grade], 1, 0, 0)); } return true; } @Override public final int[] getItemIds() { return _itemIds; } } Добавлено через 1 минуту тут вроди все норм
10-10-2016, 09:04 AM
Выкини MMOCore и впихни что-то более вменяемое. Этим ты исправишь самый большой косяк L2J проекта в целом. И не слушай никого, никакими кэшами производительности сервера не увеличить, если модуль работы с сетевыми подключениями унылое говно.
Помнится, на mmocom один олдфаг шарил видео с отсутствующим лагом сосок на дуалах. Типа тогда это была фишка PTS сборок по которой их можно отличить от унылой жабы.
Родился, живу и когда-нибудь умру.
10-10-2016, 09:57 AM
Donatte Написал:Помнится, на mmocom один олдфаг шарил видео с отсутствующим лагом сосок на дуалах. Типа тогда это была фишка PTS сборок по которой их можно отличить от унылой жабы. у нас (c1 pts) когда онлайн был 10 человек - тоже никакого лага сосок небыло
10-10-2016, 07:24 PM
(Сообщение последний раз редактировалось: 10-10-2016, 07:32 PM virusoflove.)
На боевые(СС...) никакого лага нету.
А вот у магов Бсс... Лагают. Даже при Локалке... Добавлено через 7 минут Donatte Написал:Выкини MMOCore и впихни что-то более вменяемое. Этим ты исправишь самый большой косяк L2J проекта в целом. И не слушай никого, никакими кэшами производительности сервера не увеличить, если модуль работы с сетевыми подключениями унылое говно. У меня это первый проект и еще не дорос к сожалению до такого.... Я так понимаю ты предлагаешь ядро заменить. Но я не шарю как. И так уже от Ява скрипта в глазах рябит Если есть статейка какая то на тему твоего предложения буду очень признателен. Надо ж учится как то. Я за Учение))) |
« Предыдущая | Следующая »
|
Возможно похожие темы ... | |||||
Тема | Автор | Ответы | Просмотры | Последний пост | |
Файл отвечающий за автоюз шотов | 6 | 3,069 |
07-18-2008, 04:06 PM Последний пост: Nytrex |