Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.02.2012, 14:40   #1
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию Заточка с Java

У кого есть свой сервак Java поделитесь плиз исходником самой заточки
хочу увидеть как сервак генерирует саму заточку и от чего она зависит.
интересно же.
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
goodvin1709 вне форума   Ответить с цитированием
Старый 01.02.2012, 15:01   #2
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Суть на явах одна:
пример - шанс крафта 60%

i = random(100)
/генерируем функцией явы псевдослучайное число от 0 до 100
если i менше или равно 60 то собрали. Если выше то фейл.

на оффсервере там свой корейский способ вычисления этого числа,гдето видел формулу, но смысл тотже.
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 01.02.2012, 15:02   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Java Код:
int safeEnchantLevel = itemToEnchant.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR ? Config.SAFE_ENCHANT_FULL_BODY : Config.SAFE_ENCHANT_COMMON;         double chance;         if(itemToEnchant.getEnchantLevel() < safeEnchantLevel)             chance = 100;         else if(itemType == L2Item.TYPE2_WEAPON)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_WEAPON : Config.ENCHANT_CHANCE_WEAPON;         else if(itemType == L2Item.TYPE2_SHIELD_ARMOR)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_ARMOR : Config.ENCHANT_CHANCE_ARMOR;         else if(itemType == L2Item.TYPE2_ACCESSORY)             chance = removedScroll.isCrystallEnchantScroll() ? Config.ENCHANT_CHANCE_CRYSTAL_ACCESSORY : Config.ENCHANT_CHANCE_ACCESSORY;         else         {             System.out.println("WTF? Request to enchant " + itemToEnchant.getItemId());             activeChar.sendPacket(EnchantResult.CANCEL);             activeChar.sendActionFailed();             activeChar.sendPacket(Msg.SYSTEM_ERROR);             inventory.addItem(removedScroll);             return;         }         if(scroll.isDivineEnchantScroll()) // Item Mall divine             chance = 100;         else if(scroll.isItemMallEnchantScroll()) // Item Mall normal/ancient             chance += 10;         if(removedCatalyst != null)             chance += removedCatalyst.getCatalystPower();         if(Rnd.chance(chance))         {             itemToEnchant.setEnchantLevel(itemToEnchant.getEnchantLevel() + 1);             itemToEnchant.updateDatabase();             activeChar.sendPacket(new InventoryUpdate().addModifiedItem(itemToEnchant));             Log.add(activeChar.getName() + "|Successfully enchanted|" + itemToEnchant.getItemId() + "|to+" + itemToEnchant.getEnchantLevel() + "|" + chance, "enchants");             Log.LogItem(activeChar, Log.EnchantItem, itemToEnchant);             activeChar.sendPacket(EnchantResult.SUCESS);             if(itemToEnchant.getEnchantLevel() >= (itemType == L2Item.TYPE2_WEAPON ? 6 : 5))             {                 activeChar.altUseSkill(SkillTable.getInstance().getInfo(21006, 1), activeChar);                 activeChar.broadcastPacket(new SystemMessage(SystemMessage.C1_HAS_SUCCESSFULY_ENCHANTED_A__S2_S3).addName(activeChar).addNumber(itemToEnchant.getEnchantLevel()).addItemName(itemToEnchant.getItemId()));             }         }         else         {             Log.add(activeChar.getName() + "|Failed to enchant|" + itemToEnchant.getItemId() + "|+" + itemToEnchant.getEnchantLevel() + "|" + chance, "enchants");             if(scroll.isBlessedEnchantScroll()) // фейл, но заточка блесед             {                 itemToEnchant.setEnchantLevel(0);                 activeChar.sendPacket(new InventoryUpdate().addModifiedItem(itemToEnchant));                 activeChar.sendPacket(Msg.FAILED_IN_BLESSED_ENCHANT_THE_ENCHANT_VALUE_OF_THE_ITEM_BECAME_0);                 activeChar.sendPacket(EnchantResult.BLESSED_FAILED);             }             else if(scroll.isAncientEnchantScroll()) // фейл, но заточка ancient                 activeChar.sendPacket(EnchantResult.ANCIENT_FAILED);             else             // фейл, разбиваем вещь             {                 if(itemToEnchant.isEquipped())                     inventory.unEquipItemInSlot(itemToEnchant.getEquipSlot());                 L2ItemInstance destroyedItem = inventory.destroyItem(itemToEnchant.getObjectId(), 1, true);                 if(destroyedItem == null)                 {                     _log.warning("failed to destroy " + itemToEnchant.getObjectId() + " after unsuccessful enchant attempt by char " + activeChar.getName());                     activeChar.sendActionFailed();                     return;                 }                 Log.LogItem(activeChar, Log.EnchantItemFail, itemToEnchant);                 if(crystalId > 0)                 {                     L2ItemInstance crystalsToAdd = ItemTable.getInstance().createItem(crystalId);                     int count = (int) (itemToEnchant.getItem().getCrystalCount() * 0.87);                     if(destroyedItem.getEnchantLevel() > 3)                         count += itemToEnchant.getItem().getCrystalCount() * 0.25 * (destroyedItem.getEnchantLevel() - 3);                     if(count < 1)                         count = 1;                     crystalsToAdd.setCount(count);                     inventory.addItem(crystalsToAdd);                     Log.LogItem(activeChar, Log.Sys_GetItem, crystalsToAdd);                     activeChar.sendPacket(new EnchantResult(1, crystalsToAdd.getItemId(), count), SystemMessage.obtainItems(crystalId, count, 0));                 }                 else                     activeChar.sendPacket(EnchantResult.FAILED_NO_CRYSTALS);                 activeChar.refreshExpertisePenalty();             }         }
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 01.02.2012, 16:35   #4
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

На некоторых, а может быть и на всех java сборках шанс заточки не зависит от текущего уровня заточки вещи. То есть что +4 что +25 шанс успеха например 60%.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 01.02.2012, 18:10   #5
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

это уже детали реализации.
суть одна всеравно...
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 01.02.2012, 19:46   #6
Местный
 
Аватар для goodvin1709
 
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
goodvin1709 пока неопределено
По умолчанию

Мда,тупо генерирует )Некакой изюминки)
__________________
---------------------------__--------__-----
---____- ___--____--- ___/'- /__ ___-(__)-____
--/-___-/-__-\/-__--\ /-__--'/--|-/--//---//--__--\
-/-/_/ -/-/_/--/-/_/--/-/_/--/|--|/--'//---//--/-/--/
-\___-/\____/\____/\____/-|____//__'//_'/-/__/
/_-__/
goodvin1709 вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Курилка



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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 20:24.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!