Dark Asura 39 Опубликовано: вчера в 04:17 Рассказать Опубликовано: вчера в 04:17 Подскажите по поводу шанса заточки после 16. На 16 заточить 30 проц., а дальше? И какая максимальная заточка? Просто тип заточил топ ц на 17, и возник вопрос, какие шансы. 😁 Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
НечтоХрустящее 1530 Опубликовано: вчера в 04:38 Рассказать Опубликовано: вчера в 04:38 On 12/23/2024 at 7:17 AM, Dark Asura said: И какая максимальная заточка? +65324 или типо того Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark Asura 39 Опубликовано: вчера в 04:54 Автор Рассказать Опубликовано: вчера в 04:54 23.12.2024 в 07:38, НечтоХрустящее сказал: +65324 или типо того То есть на сервере нет ограничений,а шас какой на 17,18 ? Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YaguaRr 63 Опубликовано: вчера в 06:59 Рассказать Опубликовано: вчера в 06:59 65535 вроде Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
YaguaRr 63 Опубликовано: вчера в 07:00 Рассказать Опубликовано: вчера в 07:00 23.12.2024 в 07:54, Dark Asura сказал: То есть на сервере нет ограничений,а шас какой на 17,18 ? По ответу администрации - базовый, а базовый ищите в интернете Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
nоmоre 132 Опубликовано: вчера в 16:29 Рассказать Опубликовано: вчера в 16:29 23.12.2024 в 07:17, Dark Asura сказал: Подскажите по поводу шанса заточки после 16. На 16 заточить 30 проц., а дальше? Скрытый текст char __thiscall CWorldItem::EnchantItem(CWorldItem *this, CWorldItem *itemToEnchant, CWorldUser *user) { int enchantLevel; // esi@3 CSharedItemConstData *constSharedData; // eax@4 CUserSocket *userSocket; // eax@11 MAPDST double dice2; // st7@28 int itemClassId; // [sp-4h] [bp-3Ch]@11 MAPDST int v11; // [sp+0h] [bp-38h]@1 double dice; // [sp+Ch] [bp-2Ch]@9 double chance; // [sp+14h] [bp-24h]@6 int *v15; // [sp+28h] [bp-10h]@1 int v16; // [sp+34h] [bp-4h]@1 v15 = &v11; v16 = 0; if ( !itemToEnchant ) // Add lock/unlock!! { return false; } enchantLevel = itemToEnchant->m_d.m_sharedData->enchantLevel; if ( itemToEnchant->vtable->m_v.IsWeapon(itemToEnchant) ) { constSharedData = itemToEnchant->m_d.m_constSharedData; if ( constSharedData->crystalType >= 2 && constSharedData->isMagicWeapon ) { chance = 100.0 - 60.0; if ( enchantLevel < 3 ) { LABEL_11: userSocket = user->m_d.m_userSocket; itemClassId = itemToEnchant->m_d.m_sharedData->itemClassId; if ( enchantLevel ) { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddddd", ServerToClientPacket_SystemMessage, SystemMessageId_s1s2_has_been_successfully_enchanted, 2, 1, enchantLevel, 3, itemClassId); } else { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddd", ServerToClientPacket_SystemMessage, SystemMessageId_s1_has_been_successfully_enchanted, 1, 3, itemClassId); } CDB::RequestEnchantItem(&g_cacheD, this, itemToEnchant, enchantLevel + 1, user); return true; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice = Utils::GetRandomNumber(0.0, 100.0); if ( dice <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } else { chance = 100.0 - 30.0; if ( enchantLevel < 3 ) { goto LABEL_11; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice = Utils::GetRandomNumber(0.0, 100.0); if ( dice <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } } else { if ( enchantLevel < 3 ) { goto LABEL_11; } if ( enchantLevel >= 20 ) { chance = 0.0; } else { chance = 100.0 - g_armorEnchantFailureChances[enchantLevel] * 100.0; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice2 = Utils::GetRandomNumber(0.0, 100.0); dice = dice2; if ( enchantLevel < 20 && dice2 <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } userSocket = user->m_d.m_userSocket; itemClassId = itemToEnchant->m_d.m_sharedData->itemClassId; if ( enchantLevel ) { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddddd", ServerToClientPacket_SystemMessage, SystemMessageId_Enchantment_has_failed_s1s2_has_been_evaporated, 2, 1, enchantLevel, 3, itemClassId); } else { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddd", ServerToClientPacket_SystemMessage, SystemMessageId_Enchantment_has_failed_s1_has_been_evaporated, 1, 3, itemClassId); } CDB::RequestEnchantItemFail(&g_cacheD, this, itemToEnchant, user); return true; } Если я правильно понимаю, то шанс заточки файтерского оружия 70% (chance = 100.0 - 30.0;), после +15 шанс снижается в 2 раза (if ( enchantLevel >= 15 ) { chance = chance * 0.5;)) магического 40% (chance = 100.0 - 60.0;) и так же после +15 шанс снижается 2 раза до 20%. Если я правильно понимаю вот эту часть (if ( enchantLevel >= 20 ) { chance = 0.0;), то после 20 оружие вообще не точится, хотя, я на GF PTS'e вроде бы точил "рисованное" оружие после 20. Взято от сюда, я не программист и эту билеберду сложно понимаю. https://mmo-dev.info/threads/Формула-заточки-предметов-на-pts.11089/ Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
CodeV 11 Опубликовано: 23 часа назад Рассказать Опубликовано: 23 часа назад (изменено) 23.12.2024 в 19:29, nоmоre сказал: Показать содержимое char __thiscall CWorldItem::EnchantItem(CWorldItem *this, CWorldItem *itemToEnchant, CWorldUser *user) { int enchantLevel; // esi@3 CSharedItemConstData *constSharedData; // eax@4 CUserSocket *userSocket; // eax@11 MAPDST double dice2; // st7@28 int itemClassId; // [sp-4h] [bp-3Ch]@11 MAPDST int v11; // [sp+0h] [bp-38h]@1 double dice; // [sp+Ch] [bp-2Ch]@9 double chance; // [sp+14h] [bp-24h]@6 int *v15; // [sp+28h] [bp-10h]@1 int v16; // [sp+34h] [bp-4h]@1 v15 = &v11; v16 = 0; if ( !itemToEnchant ) // Add lock/unlock!! { return false; } enchantLevel = itemToEnchant->m_d.m_sharedData->enchantLevel; if ( itemToEnchant->vtable->m_v.IsWeapon(itemToEnchant) ) { constSharedData = itemToEnchant->m_d.m_constSharedData; if ( constSharedData->crystalType >= 2 && constSharedData->isMagicWeapon ) { chance = 100.0 - 60.0; if ( enchantLevel < 3 ) { LABEL_11: userSocket = user->m_d.m_userSocket; itemClassId = itemToEnchant->m_d.m_sharedData->itemClassId; if ( enchantLevel ) { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddddd", ServerToClientPacket_SystemMessage, SystemMessageId_s1s2_has_been_successfully_enchanted, 2, 1, enchantLevel, 3, itemClassId); } else { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddd", ServerToClientPacket_SystemMessage, SystemMessageId_s1_has_been_successfully_enchanted, 1, 3, itemClassId); } CDB::RequestEnchantItem(&g_cacheD, this, itemToEnchant, enchantLevel + 1, user); return true; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice = Utils::GetRandomNumber(0.0, 100.0); if ( dice <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"magic weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } else { chance = 100.0 - 30.0; if ( enchantLevel < 3 ) { goto LABEL_11; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice = Utils::GetRandomNumber(0.0, 100.0); if ( dice <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"weapon enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } } else { if ( enchantLevel < 3 ) { goto LABEL_11; } if ( enchantLevel >= 20 ) { chance = 0.0; } else { chance = 100.0 - g_armorEnchantFailureChances[enchantLevel] * 100.0; } if ( enchantLevel >= 15 ) { chance = chance * 0.5; } dice2 = Utils::GetRandomNumber(0.0, 100.0); dice = dice2; if ( enchantLevel < 20 && dice2 <= chance ) { CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant success, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); goto LABEL_11; } CLog::Add(&g_winlog, LOG_REQUEST, L"armor enchant fail, prev enchanted[%d], dice[%f], prob[%f]", enchantLevel, dice, chance); } userSocket = user->m_d.m_userSocket; itemClassId = itemToEnchant->m_d.m_sharedData->itemClassId; if ( enchantLevel ) { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddddd", ServerToClientPacket_SystemMessage, SystemMessageId_Enchantment_has_failed_s1s2_has_been_evaporated, 2, 1, enchantLevel, 3, itemClassId); } else { CServerSocketBase::Send((CServerSocketBase *)userSocket, (const char *)"cdddd", ServerToClientPacket_SystemMessage, SystemMessageId_Enchantment_has_failed_s1_has_been_evaporated, 1, 3, itemClassId); } CDB::RequestEnchantItemFail(&g_cacheD, this, itemToEnchant, user); return true; } Если я правильно понимаю, то шанс заточки файтерского оружия 70% (chance = 100.0 - 30.0;), после +15 шанс снижается в 2 раза (if ( enchantLevel >= 15 ) { chance = chance * 0.5;)) магического 40% (chance = 100.0 - 60.0;) и так же после +15 шанс снижается 2 раза до 20%. Если я правильно понимаю вот эту часть (if ( enchantLevel >= 20 ) { chance = 0.0;), то после 20 оружие вообще не точится, хотя, я на GF PTS'e вроде бы точил "рисованное" оружие после 20. Взято от сюда, я не программист и эту билеберду сложно понимаю. https://mmo-dev.info/threads/Формула-заточки-предметов-на-pts.11089/ шансы тут динамические вроде бы,и после +12 если не ошибаюсь высвечивает предупреждение что ты скорее всего сломаешь это,а вот после 15 думаю что шанс меньше на точку в 2 раза посравнению с заточкой на +15 тобой выкопаный код я не смотрел даже ибо далек от етого Изменено 23 часа назад пользователем CodeV Цитата Ссылка на сообщение Поделиться на других сайтах More sharing options...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.