Курилка Флудим и шутим тут!
01.02.2012, 14:40
#1
Местный
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
Заточка с Java
У кого есть свой сервак Java поделитесь плиз исходником самой заточки
хочу увидеть как сервак генерирует саму заточку и от чего она зависит.
интересно же.
__________________
---------------------------__--------__-----
---____- ___-- ____-- - ___/'- /__ ___ - (__)- ____
--/-___-/ -__-\/-__--\ /-__--'/ --|-/--/ /---/ /--__--\
-/-/_/ -/ -/_/--/-/_/--/ -/_/--/ |--|/--'/ /---/ /--/-/--/
-\___-/ \____/\____/ \____/ -|____/ /__'/ /_'/-/__/
/_-__/
01.02.2012, 15:01
#2
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
Суть на явах одна:
пример - шанс крафта 60%
i = random(100)
/генерируем функцией явы псевдослучайное число от 0 до 100
если i менше или равно 60 то собрали. Если выше то фейл.
на оффсервере там свой корейский способ вычисления этого числа,гдето видел формулу, но смысл тотже.
__________________
читернуть бы ништяг
За это сообщение mira нажился спасибкой от:
01.02.2012, 15:02
#3
Местный
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
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 нажился спасибкой от:
01.02.2012, 16:35
#4
Местный
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
На некоторых, а может быть и на всех java сборках шанс заточки не зависит от текущего уровня заточки вещи. То есть что +4 что +25 шанс успеха например 60%.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
01.02.2012, 18:10
#5
Местный
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
это уже детали реализации.
суть одна всеравно...
__________________
читернуть бы ништяг
01.02.2012, 19:46
#6
Местный
Регистрация: 13.02.2011
Сообщений: 506
Сказал Спасибо: 121
Имеет 100 спасибок в 83 сообщенях
Мда,тупо генерирует )Некакой изюминки)
__________________
---------------------------__--------__-----
---____- ___-- ____-- - ___/'- /__ ___ - (__)- ____
--/-___-/ -__-\/-__--\ /-__--'/ --|-/--/ /---/ /--__--\
-/-/_/ -/ -/_/--/-/_/--/ -/_/--/ |--|/--'/ /---/ /--/-/--/
-\___-/ \____/\____/ \____/ -|____/ /__'/ /_'/-/__/
/_-__/
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 18:48 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!