Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Алгоритм заточки талик(исходный код).

-

Rising Force Online

- Уязвимости, баги, читы и статьи по RF Online.

Ответ
 
Опции темы
Старый 25.02.2010, 19:16   #1
 Разведчик
Аватар для Magbaf
 
Magbaf никому не известный тип
Регистрация: 22.02.2010
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Алгоритм заточки талик(исходный код).

Копирайт rf-cheats
Случайно обнаружил исходники клиента, сервера и движка рф онлайн. Порывшись немножко, я нашёл часть кода, отвечающую за вставку и изъятие талик:
PHP код:
void
CNormalItem
::InsertTalikBYTE pi_byTalikDTIndex )
{
    if( 
m_byLevel MAX_ITEM_LEVEL )
    {
        
InsertTalikstatic_castINGOT_DATA * >( _GetItemDataMgr()->GetDataIEPT_INGOTpi_byTalikDTIndex 20 ) ) );
    }
}

void
CNormalItem
::InsertTalikINGOT_DATA pi_pTalikData )
{
    if( 
pi_pTalikData )
    {
        if( 
m_byLevel MAX_ITEM_LEVEL )
        {
            ++
m_byLevel;
            
m_listTalik[m_byLevel-1] = pi_pTalikData;
            
ApplyUpgradeEffectm_listTalik[m_byLevel-1], TRUE );
        }
    }
}

void
CNormalItem
::InsertTalikFromServerFlagDWORD pi_dwServerFlag )
{
    if( !
IsUpgradable() )
        return;

    if( 
pi_dwServerFlag == ID_INVALID )
    {
        
m_byMaxSocketNum 0;
        return;
    }

    
BYTE pi_byTalikDTIndexi;

    
m_byMaxSocketNum pi_dwServerFlag >> 28;
    for( 
0m_byMaxSocketNum; ++)
    {
        
pi_byTalikDTIndex = ( pi_dwServerFlag >> ( ) ) & 0x0000000F;
        if( 
pi_byTalikDTIndex != 0xF )
            
InsertTalikpi_byTalikDTIndex );
    }
}

void
CNormalItem
::ExtractTalikvoid )
{
    if( 
m_byLevel )
    {
        
ApplyUpgradeEffectm_listTalik[m_byLevel-1], FALSE );
        
m_listTalik[m_byLevel-1] = NULL;
        --
m_byLevel;
    }
}

void
CNormalItem
::ExtractAllTalikvoid )
{
    if( 
m_byLevel )
    {
        for( 
int i m_byLevel 1>= 0; --)
        {
            
ApplyUpgradeEffectm_listTalik[i], FALSE );
            
m_listTalik[i] = NULL;
        }

        
m_byLevel 0;
    }
}

INGOT_DATA *
CNormalItem::GetTalikBYTE pi_bySocketNo )
{
    if( ( 
pi_bySocketNo >= m_byLevel ) || ( pi_bySocketNo >= MAX_ITEM_LEVEL ) )
        return 
NULL;

    return 
m_listTalik[pi_bySocketNo];
}

DWORD
CNormalItem
::IsEnableInsertJewelDWORD pi_dwJewelDTIndex )
{
    
BYTE byItemKind GetItemKind();
    
BYTE byWeaponCategoryID GetWeaponCategoryID();

    if( !( ( 
byItemKind IEPT_FACE ) && ( byItemKind <= IEPT_SHIELD ) ) )
        return 
0;

    
INGOT_DATA pJewelData static_castINGOT_DATA * >( _GetItemDataMgr()->GetDataIEPT_INGOTpi_dwJewelDTIndex ) );
    if( !
pJewelData )
        return 
0;

    
// ѕЖАМЕЫАМ №«±вАП °жїм
    
if( byItemKind == IEPT_WEAPON )
    {
        
// ±ЩБў №«±в
        
if( ( byWeaponCategoryID == IWCT_KNIFE ) || ( byWeaponCategoryID == IWCT_SWORD ) ||
            ( 
byWeaponCategoryID == IWCT_AXE ) || ( byWeaponCategoryID == IWCT_MACE ) ||
            ( 
byWeaponCategoryID == IWCT_SPEAR ) || ( byWeaponCategoryID == IWCT_STAFF ) )
        {
            if( 
pJewelData->GetUpgradeInsertLimitNumIEPT_WEAPON ) <= )
                return 
1;
        }
        
// їш°Её® №«±в
        
else if( ( byWeaponCategoryID == IWCT_BOW ) || ( byWeaponCategoryID == IWCT_FIREARM ) ||
                 ( 
byWeaponCategoryID == IWCT_LUANCHER ) || ( byWeaponCategoryID == IWCT_THROW ) )
        {
            if( 
pJewelData->GetUpgradeInsertLimitNum) <= )
                return 
1;
        }

        
// №«±вїЎґВ ±¤ИЦ, Б¤И*, јцИЈ, ЅЕідАЗ Е»ёЇ БЯ їАБч ЗПіЄёёА» »зїлЗТ јц АЦґЩ. ( DT Index 27 ~ 30 )
        
if( ( pi_dwJewelDTIndex >= 27 ) && ( pi_dwJewelDTIndex <= 30 ) )
        {
            for( 
int i 0m_byLevel; ++)
            {
                if( !
m_listTalik[i] )
                    continue;
                if( ( 
m_listTalik[i]->GetDTIndex() >= 27 ) && ( m_listTalik[i]->GetDTIndex() <= 30 ) )
                    return 
2;
            }
        }
    }
    
// ѕЖАМЕЫАМ ѕЖёУАП °жїм
    
else
    {
        if( 
pJewelData->GetUpgradeInsertLimitNumbyItemKind ) <= )
            return 
1;
    }

    return 
3;
}

//============================================================================//
//                                  Boundary                                  //
//============================================================================//

void
CNormalItem
::ApplyUpgradeEffectINGOT_DATA pi_pTalikBOOL pi_bIsAdd )
{
    
BYTE byTalikNum GetSameTalikNumpi_pTalik );
    if( 
byTalikNum <= )
        return;

    if( !
pi_bIsAdd )
        --
byTalikNum;

    
BYTE    byEffectType    pi_pTalik->byUpgradeEffectType;
    
float    fEffectConstant    pi_pTalik->fUpgradeEffectConstantbyTalikNum ];

    
// Е»ёЇАЗ АМЖеЖ® Аыїл
    
switch( byEffectType )
    {
        case 
:
            break;

        case 
:            // ёрµз°ш°Э·ВUP 1
            
if( byTalikNum <= )    m_clUpgradeEffect.m_fStrikingPower 0;
            else                    
m_clUpgradeEffect.m_fStrikingPower fEffectConstant;
            break;

        case 
:            // °Ў°ЭЗПґВ_µҐ№МБцАЗ_µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*А»_HP·О_Инјц 2
        
case :            // °Ў°ЭЗПґВ_µҐ№МБцАЗ_µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*А»_FP·О_Инјц 3
            
break;

        case 
:            // °Ў°ЭґзЗПґВ_ґл»уА»_stunЅГЕґ(µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*АЗ_И®·ь·О_1ГКµїѕИ) 4 => ѕЖАМЕЫАМ ѕЖґС ДіёЇЕНїЎ АыїлµЗ№З·О +1Ає ЗПБц ѕКґВґЩ.
            
if( byTalikNum <= )    m_clUpgradeEffect.m_fStunProb 0;
            else                    
m_clUpgradeEffect.m_fStunProb fEffectConstant;
            break;

        case 
:            // »зБ¤°Её®UP 5
            
if( byTalikNum <= )    m_clUpgradeEffect.m_byAttackRange 0;
            else                    
m_clUpgradeEffect.m_byAttackRange fEffectConstant;
            break;

        case 
:            // №жѕо·ВUP 6
            
if( byTalikNum <= )    m_clUpgradeEffect.m_fDefencePower 1;
            else                    
m_clUpgradeEffect.m_fDefencePower fEffectConstant;
            break;

        case 
:            // µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*АЗ_БцјУЗЗЗШєёБ¶ЅГ°Ј_ґЬГа 7
            
break;

        case 
:            // ДіёЇЕНАЗ_єТі»јє°ЄїЎ_µҐАМЕНЗКµе_°ЄёёЕ*АЗ_єТі»јєБх°Ў 8
        
case :            // ДіёЇЕНАЗ_єТі»јє°ЄїЎ_µҐАМЕНЗКµе_°ЄёёЕ*АЗ_№°і»јєБх°Ў 9
        
case 10 :            // ДіёЇЕНАЗ_єТі»јє°ЄїЎ_µҐАМЕНЗКµе_°ЄёёЕ*АЗ_Илі»јєБх°Ў 9
        
case 11 :            // ДіёЇЕНАЗ_єТі»јє°ЄїЎ_µҐАМЕНЗКµе_°ЄёёЕ*АЗ_№Щ¶чі»јєБх°Ў 9
            // №«±вАП °жїмґВ јУјє єЇИ*, №жѕо±ёАП °жїмґВ і»јє Бх°ЎАУ.
            
if( IsEqualItemKindIEPT_WEAPON ) )
            {
                if( 
byTalikNum <= )    m_clUpgradeEffect.m_byAttackAttribute 0xFF;
                else                    
m_clUpgradeEffect.m_byAttackAttribute byEffectType-8;
            }
            else
            {                
                if( 
byTalikNum <= )    m_clUpgradeEffect.m_byResist[byEffectType-8] = 0;
                else                    
m_clUpgradeEffect.m_byResist[byEffectType-8] = fEffectConstant;
            }
            break;

        case 
12 :            // µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*АЗ_HPИёє№·®_Бх°Ў 12
            
break;

        case 
13 :            // µҐАМЕНЗКµе_ЖЫјѕЖ®°ЄёёЕ*АЗ_ИёЗЗАІ_Бх°Ў 13 => ѕЖАМЕЫАМ ѕЖґС ДіёЇЕНїЎ АыїлµЗ№З·О +1Ає ЗПБц ѕКґВґЩ.
            
if( byTalikNum <= )    m_clUpgradeEffect.m_fAvoidProb 0;
            else                    
m_clUpgradeEffect.m_fAvoidProb fEffectConstant;
            break;

        case 
14 :            // °ЎАе_ГЦ±ЩїЎ_»рАФЗС_Е»ёЇ_іЇ·Б№цёІ 14
            
break;
    }
}

// µїАПЗС Е»ёЇАМ АЦґВБцё¦ ГјЕ©ЗШј*, °іјцё¦ °ЎБ®їВґЩ.
BYTE
CNormalItem
::GetSameTalikNumINGOT_DATA pi_pTalik )
{
    if( !
pi_pTalik )
        return 
0;
    if( !
IsUpgradable() )
        return 
0;
    
    
BYTE byTalikNum 0;
    for( 
int i 0m_byLevel; ++)
    {
        if( !
m_listTalik[i] )
            continue;

        if( 
m_listTalik[i]->dwDTIndex == pi_pTalik->dwDTIndex )
            ++
byTalikNum;
    }

    return 
byTalikNum;

Предлагаю разобраться в нем!
Вот исходники:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Данный код находится здесь:
RF Online Sourcecode\RF Client Side\RF_Client\item\citemdata.cpp

Последний раз редактировалось Magbaf; 25.02.2010 в 21:17.
  Ответить с цитированием
Старый 25.02.2010, 19:43   #2
Super Moderator
 Маршал
Аватар для Тигрь
 
Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

Это исходники гиги3? Просто качать нет времени.
________________
Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA
Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС.
Все мои читы/программы/статьи тут: http://zhyk.ru/forum/showpost.php?p=38501&postcount=21
  Ответить с цитированием
Старый 25.02.2010, 19:52   #3
 Разведчик
Аватар для Magbaf
 
Magbaf никому не известный тип
Регистрация: 22.02.2010
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

Если честно, не знаю... А чего тут качать, архив весит ~4мб...
  Ответить с цитированием
Старый 07.03.2010, 01:12   #4
 Разведчик
Аватар для Angelys
 
Angelys скоро будет известенAngelys скоро будет известенAngelys скоро будет известенAngelys скоро будет известенAngelys скоро будет известен
Регистрация: 31.07.2009
Сообщений: 28
Популярность: 420
Сказал(а) спасибо: 3
Поблагодарили 42 раз(а) в 17 сообщениях
Отправить сообщение для Angelys с помощью ICQ
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

Посчитай количество слов "case" - это рандом) Ужаснись.
________________
Leader of First Cheat Radiostation
  Ответить с цитированием
Старый 12.03.2010, 17:37   #5
 Разведчик
Аватар для iven
 
iven никому не известный тип
Регистрация: 22.12.2009
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

если кто разберется отпишитесь плиз.
  Ответить с цитированием
Старый 20.03.2010, 19:04   #6
 Сержант
Аватар для RFmaster
 
RFmaster скоро будет известенRFmaster скоро будет известенRFmaster скоро будет известен
Регистрация: 09.07.2008
Сообщений: 140
Популярность: 257
Сказал(а) спасибо: 120
Поблагодарили 71 раз(а) в 46 сообщениях
Отправить сообщение для RFmaster с помощью ICQ Отправить сообщение для RFmaster с помощью Skype™
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

Ты не тот файл распечатал...
________________
ICQ 498805509(все справки платные)

P.S - Помните дети мои...
MMORPG первая ступень в ад!!!
И если на то пошло,
то лучше продать душу дьяволу,
чем Иннове!!


[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 20.03.2010, 19:11   #7
Знатный Читер
 Фельдмаршал
Аватар для Leo_ня
 
Leo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядом
Регистрация: 10.06.2008
Сообщений: 965
Популярность: 5501
Сказал(а) спасибо: 786
Поблагодарили 942 раз(а) в 598 сообщениях
Отправить сообщение для Leo_ня с помощью ICQ Отправить сообщение для Leo_ня с помощью Telegram
 
По умолчанию Re: Алгоритм заточки талик(исходный код).

Цитата:
Посчитай количество слов "case" - это рандом) Ужаснись.

Что-то я не вкурил. case вроде используется для проверки значений в нескольких вариациях. Причём тут рандом?
Т.е. почти тоже самое, что куча if'ок, но более удобочитаемое (как в выходном коде будет хз, я в си не шарю).
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заточка wednesday Подполье Lineage 2 (0 уровень) 9 29.03.2024 17:04
алгоритм UTF-8 -> Win-1251 Глюконатор ASM/WinAPI 4 22.05.2009 22:08
[bugs] Убили? Не проблема! :) Zhyk Читы, баги и статьи по WoW 6 20.08.2008 19:08
[packets]Алгоритм подключения к логин серверу Vampir Rising Force Online 4 22.06.2008 21:32

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net