Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 7 de 7

Tópico: Moss System

Visão do Encadeamento

  1. #1

    Avatar de [ADM]Night
    Data de Ingresso
    May 2010
    Localização
    Imperyus Games
    Idade
    28
    Posts
    114
    Agradecido
    2
    Agradeceu
    2
    Peso da Avaliação
    15

    Padrão Moss System

    Bom Não Vou dizer nada a respeito da source poi e super boa aprovo ^^
    se gosto agradeça ;D

    MossSystem.cpp
    Código PHP:
    bool MossSellItem(int aIndexunsigned charaRecv)
    {
        
    OBJECTSTRUCT *lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
                if(
    ObjTab[aIndex].TargetShopNumber==492)
                   {  

                     
    PMSG_BUYRESULT pResult;
                     
    pResult.h.c=0xC1;
                     
    pResult.h.headcode=0x32;
                     
    pResult.h.size=16;

                     
    pResult.Result=-1;

                     if ( 
    ObjTab[aIndex].Money Config.moss.Zen )
                     {
                        
    GCServerMsgStringSend("You are short of zen."aIndex1);
                        
    Log.outNormal("[Moss the Gambler] [%s][%s] Lacking zen."ObjTab[aIndex].AccountIDObjTab[aIndex].Name);
                        
    DataSend(aIndex, (LPBYTE)&pResultpResult.h.size);
                        return 
    true;
                     }
                     if ( !
    Config.moss.Enabled )
                     {
                         
    GCServerMsgStringSend("Moss merchant is disabled",aIndex,1);
                         
    DataSend(aIndex, (LPBYTE)&pResultpResult.h.size);
                         return 
    true;
                     }
                    
    CItem sitemsend;
                    
    CItem itemsend;
                    
    int ItemDropSkill 0;
                    
    int ItemDropLuck 0;
                    
    int ItemDropOption 0;
                    
    int Excellent 0;

                    if(
    aRecv[3]==0)
                    {
                        
    sitemsend.m_Type=3*512+11;
                    }
                    else if(
    aRecv[3]==2)
                    {
                        
    sitemsend.m_Type=5*512+33;
                    }
                    else if(
    aRecv[3]==4)
                    {
                        
    sitemsend.m_Type=4*512+24;
                    }
                    else if(
    aRecv[3]==6)
                    {
                        
    sitemsend.m_Type=5*512+34;
                    }
                    else if(
    aRecv[3]==24)
                    {
                        
    sitemsend.m_Type=2*512+18;
                    }
                    
                    
    sitemsend.m_Level=(rand()%(1300))/100;
                    
    sitemsend.m_serial=0;
                    
    sitemsend.m_Number=(unsigned long)gGetItemNumber;
                    
    sitemsend.m_SocketOption[0]=0xFF;
                    
    sitemsend.m_SocketOption[1]=0xFF;
                    
    sitemsend.m_SocketOption[2]=0xFF;
                    
    sitemsend.m_SocketOption[3]=0xFF;
                    
    sitemsend.m_SocketOption[4]=0xFF;
                       
    sitemsend.m_Option1=(rand()%(100))/50;
                    
    sitemsend.m_Option2=(rand()%(100))/30;
                    if(
    Config.moss.Skill == 0)
                    {
                        
    sitemsend.m_Option1 0;
                    }
                    if(
    Config.moss.Luck == 0)
                    {
                        
    sitemsend.m_Option2 0;
                    }
                    
    sitemsend.m_Option3=0;
                    if(
    Config.moss.Excellent != 0)
                    {
                        if((
    Excellent rand() % 100) >= 100 Config.moss.ExcRate)
                        {
                            
    sitemsend.m_NewOption=NewOptionRand(0);
                            
    PMSG_SERVERCMD pMsg;

                            
    PHeadSubSetB((LPBYTE)&pMsg,0xF3,0x40sizeof(pMsg));
                            
    pMsg.CmdType 0;

                            for ( 
    short i=0;i<15;++i)
                            {
                            
    pMsg.lpObj->X+(rand() % 5)*4;
                            
    pMsg.lpObj->Y+(rand() % 5)*4;
                            
    MsgSendV2(lpObj,(UCHAR*)&pMsgsizeof(pMsg));
                            
    DataSend(lpObj->m_Index ,(UCHAR*)&pMsgsizeof(pMsg));
                            }
                            
    GCServerMsgStringSend("Congratulations, you gambled a very nice excellent item!"aIndex0);
                             
                        }
                        else
                        {
                            
    sitemsend.m_NewOption=0;
                        }
                    }
                    
    sitemsend.m_SpecialNum=0;
                    
    sitemsend.m_SetOption=0x00;
                    
    sitemsend.m_bItemExist=0x01;
                    
    sitemsend.m_JewelOfHarmonyOption=0x00;
                    
    sitemsend.m_ItemOptionEx=0x00;

                    
    float durb =  ItemGetDurability(sitemsend.m_Type,sitemsend.m_Level,sitemsend.m_NewOption,0);
                    
    sitemsend.m_BaseDurability=durb;
                    
    sitemsend.m_Durability=durb;
                    
    sitemsend.m_DurabilitySmall=0;

                    
    itemsend=MossItemStruct(sitemsend);
                    if(
    itemsend.m_Type>0)
                    {
                        
    pResult.Result gObjShopBuyInventoryInsertItem(aIndexitemsend);
                        if ( 
    pResult.Result != 0xFF )
                        {
                        
    MossItemByteConvert((LPBYTE)&pResult.ItemInfo[0], itemsend);
                        
    pResult.ItemInfo[11]=0xFF;
                        
    pResult.ItemInfo[10]=0xFF;
                        
    pResult.ItemInfo[9]=0xFF;
                        
    pResult.ItemInfo[8]=0xFF;
                        
    pResult.ItemInfo[7]=0xFF;
                        
    ObjTab[aIndex].Money-=Config.moss.Zen;
                        }
                    }

              
                    
    DataSend(aIndex, (LPBYTE)&pResultpResult.h.size);
                    
    Log.outNormal("[Moss the Gambler][%s][%s] Gambled item: [%d] %d/%d/%d/%d/%d"ObjTab[aIndex].AccountIDObjTab[aIndex].Nameitemsend.m_Typeitemsend.m_Levelitemsend.m_Option1itemsend.m_Option2itemsend.m_Option3itemsend.m_NewOption);
                    
    GCMoneySend(aIndexObjTab[aIndex].Money);
                    return 
    true;
        
                    
                }
                    else
                    return 
    false;
    }

    CItem MossItemStruct(CItem item)  // pseudo convert 
    {
        
    int iChaosItem 0;

        if ( 
    item.m_Option1    != )
        {

                    
    item.m_Special[item.m_SpecialNum] = 1;
                    
    item.m_Option1 1;
                
            
        }

        if (
    item.m_Type == 1547// CRYSTAL SCYTHE
        
    {
            if(
    item.m_NewOption == 0// NOT EXCELLENT
            
    {
                
    item.m_AttackSpeed 40;
                
    item.m_DamageMin 0xBE;
                
    item.m_DamageMax 0xE2;
                
    item.m_DamageMinOrigin 0xBE;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;

            }
            else 
    // EXCELLENT
            
    {
                
    item.m_AttackSpeed 40;
                
    item.m_DamageMin 0xE3;
                
    item.m_DamageMax 0x107;
                
    item.m_DamageMinOrigin 0xE3;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            
    // WYMAGANIA KLAS
            
    item.m_RequireClass[0] = 0// sm
            
    item.m_RequireClass[1] = 2// bk
            
    item.m_RequireClass[2] = 0// me
            
    item.m_RequireClass[3] = 1// mg
            
    item.m_RequireClass[4] = 0// dl
            
    item.m_RequireClass[5] = 0// su
        
    }

        if(
    item.m_Type == 2072// AIR LYN BOW
        
    {
            if(
    item.m_NewOption == 0)
            {
                
    item.m_AttackSpeed 45;
                
    item.m_DamageMin 0xAA;
                
    item.m_DamageMax 0xC2;
                
    item.m_DamageMinOrigin 0xAA;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            else
            {
                
    item.m_AttackSpeed 45;
                
    item.m_DamageMin 0xCB;
                
    item.m_DamageMax 0xE3;
                
    item.m_DamageMinOrigin 0xCB;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            
    item.m_RequireClass[0] = 0// sm
            
    item.m_RequireClass[1] = 0// bk
            
    item.m_RequireClass[2] = 2// me
            
    item.m_RequireClass[3] = 0// mg
            
    item.m_RequireClass[4] = 0// dl
            
    item.m_RequireClass[5] = 0// su
        
    }

        if(
    item.m_Type == 0x412// STRIKER SCEPTER
        
    {
            if(
    item.m_NewOption == 0)
            {
                
    item.m_AttackSpeed 40;
                
    item.m_DamageMin 0x70;
                
    item.m_DamageMax 0x7C;
                
    item.m_DamageMinOrigin 0x70;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            else
            {
                
    item.m_AttackSpeed 40;
                
    item.m_DamageMin 0x88;
                
    item.m_DamageMax 0x94;
                
    item.m_DamageMinOrigin 0x88;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 0;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            
    item.m_RequireClass[0] = 0// sm
            
    item.m_RequireClass[1] = 0// bk
            
    item.m_RequireClass[2] = 0// me
            
    item.m_RequireClass[3] = 0// mg
            
    item.m_RequireClass[4] = 1// dl
            
    item.m_RequireClass[5] = 0// su
        
    }

        if(
    item.m_Type == 0xA21// CHROMATICK STAFF
        
    {
            if(
    item.m_NewOption == 0)
            {
                
    item.m_AttackSpeed 30;
                
    item.m_DamageMin 0x37;
                
    item.m_DamageMax 0x39;
                
    item.m_DamageMinOrigin 0x37;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 124;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            else
            {
                
    item.m_AttackSpeed 30;
                
    item.m_DamageMin 0x45;
                
    item.m_DamageMax 0x47;
                
    item.m_DamageMinOrigin 0x45;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 150;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            
    item.m_RequireClass[0] = 2// sm
            
    item.m_RequireClass[1] = 0// bk
            
    item.m_RequireClass[2] = 0// me
            
    item.m_RequireClass[3] = 1// mg
            
    item.m_RequireClass[4] = 0// dl
            
    item.m_RequireClass[5] = 0// su
        
    }
        if(
    item.m_Type == 0xA22// RAVEN STICK
        
    {
            if(
    item.m_NewOption == 0)
            {
                
    item.m_AttackSpeed 30;
                
    item.m_DamageMin 0x46;
                
    item.m_DamageMax 0x4E;
                
    item.m_DamageMinOrigin 0x46;            
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 130;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            else
            {
                
    item.m_AttackSpeed 30;
                
    item.m_DamageMin 0x56;
                
    item.m_DamageMax 0x5E;
                
    item.m_DamageMinOrigin 0x56;
                
    item.m_WalkSpeed 0;
                
    item.m_SuccessfulBlocking 0;
                
    item.m_Defense 0;
                
    item.m_MagicDefense 0;
                
    item.m_Magic 157;
                
    item.m_Speed 0;
                
    item.m_DefenseOrigin 0;
            }
            
    item.m_RequireClass[0] = 0// sm
            
    item.m_RequireClass[1] = 0// bk
            
    item.m_RequireClass[2] = 0// me
            
    item.m_RequireClass[3] = 0// mg
            
    item.m_RequireClass[4] = 0// dl
            
    item.m_RequireClass[5] = 2// su
        
    }
                
        
    item.m_SpecialNum++;
        if ( 
    item.m_Option2 != )
         {
            if ( 
    item.m_Type >= ITEMGET(0,0) && item.m_Type ITEMGET(12,0) )
            {
                
    item.m_Special[item.m_SpecialNum] = 84;
                
    item.m_Option2 1;
            }

            if ( 
    item.m_Type >= ITEMGET(12,0) && item.m_Type <= ITEMGET(12,6) )    
            {
                
    item.m_Special[item.m_SpecialNum] = 84;
                
    item.m_Option2 1;
            }

            if ( 
    item.m_Type == ITEMGET(13,30) )
            {
                
    item.m_Special[item.m_SpecialNum] = 84;
                
    item.m_Option2 1;
            }

            if ( 
    item.m_Type >= ITEMGET(12,36) && item.m_Type <= ITEMGET(12,40) )    
            {
                
    item.m_Special[item.m_SpecialNum] = 84;
                
    item.m_Option2 1;
            }
        }

        
    item.m_SpecialNum++;

        if ( 
    item.m_Option3 != )
        {
            if ( 
    item.m_Type >= ITEMGET(0,0) && item.m_Type ITEMGET(5,0) )
            {
                
    item.m_Special[item.m_SpecialNum] = 80;
                
    item.m_Option3 item.m_Option3;
                
    item.m_RequireStrength +=  item.m_Option3 4;
            }

            if ( 
    item.m_Type >= ITEMGET(5,0) && item.m_Type ITEMGET(6,0) )
            {
                
    item.m_Special[item.m_SpecialNum] = 81;
                
    item.m_Option3 item.m_Option3;
                
    item.m_RequireStrength +=  item.m_Option3 4;
            }
            
            if ( 
    item.m_Type >= ITEMGET(6,0) && item.m_Type ITEMGET(7,0) )
            {
                
    item.m_Special[item.m_SpecialNum] = 82;
                
    item.m_Option3 item.m_Option3;
                
    item.m_RequireStrength +=  item.m_Option3 4;
            }

            if ( 
    item.m_Type >= ITEMGET(7,0) && item.m_Type ITEMGET(12,0) )
            {
                
    item.m_Special[item.m_SpecialNum] = 83;
                
    item.m_Option3 item.m_Option3;
                
    item.m_RequireStrength +=  item.m_Option3 4;
            }
                }

                
    item.m_SpecialNum++;


        if ( (
    item.m_Type >=ITEMGET(6,0) && item.m_Type <ITEMGET(12,0) ) || ( item.m_Type >=ITEMGET(13,8) && item.m_Type <= ITEMGET(13,9)) || (item.m_Type>=ITEMGET(13,21) && item.m_Type <= ITEMGET(13,24) ) )
        {
            if ( ((
    item.m_NewOption>>5)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x56;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption>>4)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x57;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption>>3)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x58;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption>>2)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x59;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption>>1)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x5A;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x5B;
                
    item.m_SpecialNum++;
            }
        }

        if ( 
    item.m_DamageMax )
        {
            if ( 
    item.m_Level != )
            {
                
    item.m_DamageMax += item.m_Level 3;
                if ( 
    item.m_Level >= 10 )
                {
                    
    item.m_DamageMax += (item.m_Level 9) * (item.m_Level 8) / 2;
                }
            }
        }

        if ( 
    item.m_DamageMin )    
        {
            if ( 
    item.m_Level != )
            {
                
    item.m_DamageMin += item.m_Level 3;
                if(
    item.m_Level >= 10)
                {
                    
    item.m_DamageMin += (item.m_Level 9) *(item.m_Level 8) / 2;
                }
                
    item.m_DamageMinOrigin item.m_DamageMin;
            }
        }

        if ( 
    item.m_Magic )
        {
            if ( 
    item.m_Level != 0)
            {
                
    item.m_Magic += item.m_Level 3;
                if(
    item.m_Level >= 10)
                {
                    
    item.m_Magic += (item.m_Level 9) * (item.m_Level 8) / 2;
                }
            }
        }

        if ( (
    item.m_Type >=ITEMGET(0,0) && item.m_Type <ITEMGET(6,0) ) || ( item.m_Type >=ITEMGET(13,12) && item.m_Type <= ITEMGET(13,13)) || (item.m_Type>=ITEMGET(13,25) && item.m_Type <= ITEMGET(13,28) ) )
        {
            if ( ((
    item.m_NewOption>>5)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x5C;
                
    item.m_SpecialNum++;
            }
            if ( ((
    item.m_NewOption>>2)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x61;
                
    item.m_SpecialNum++;
                
    item.m_AttackSpeed += 7;
            }

            if ( (
    item.m_Type >=ITEMGET(5,0) && item.m_Type <ITEMGET(6,0) ) || (item.m_Type ==ITEMGET(13,12) ) || (item.m_Type == ITEMGET(13,25)) || (item.m_Type == ITEMGET(13,27) ) )
            {
                if ( ((
    item.m_NewOption>>4)&1) != )
                {
                    
    item.m_Special[item.m_SpecialNum] = 0x5F;
                    
    item.m_SpecialNum++;
                }
                if ( ((
    item.m_NewOption>>3)&1) != )
                {
                    
    item.m_Special[item.m_SpecialNum] = 0x60;
                    
    item.m_SpecialNum++;
                }
            }
            else
            {
                if ( ((
    item.m_NewOption>>4)&1) != )
                {
                    
    item.m_Special[item.m_SpecialNum] = 0x5D;
                    
    item.m_SpecialNum++;
                }
                if ( ((
    item.m_NewOption>>3)&1) != )
                {
                    
    item.m_Special[item.m_SpecialNum] = 0x5E;
                    
    item.m_SpecialNum++;
                }
            }

            if ( ((
    item.m_NewOption>>2)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x61;
                
    item.m_SpecialNum++;
                
    item.m_AttackSpeed += 7;
            }

            if ( ((
    item.m_NewOption>>1)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x62;
                
    item.m_SpecialNum++;
            }

            if ( ((
    item.m_NewOption)&1) != )
            {
                
    item.m_Special[item.m_SpecialNum] = 0x63;
                
    item.m_SpecialNum++;
            }

            if(
    item.m_Type == 1547 || item.m_Type == 2072)
            {
                
    item.m_TwoHand 1;
            }
            else
            {
                
    item.m_TwoHand 0;
            }
        }

        
    item.m_RequireStrength 0;
        
    item.m_RequireDexterity 0;
        
    item.m_RequireVitality 0;
        
    item.m_RequireEnergy 0;
        
    item.m_RequireLeaderShip 0;
        
    item.m_RequireLevel 0;
        
    item.m_Part 0;
        
    item.m_Class 0;
        
    item.m_Value 0;
        
    item.m_QuestItem 0;
        
    item.m_UknB9 0;

        return 
    item;
    }


    void MossItemByteConvert(unsigned charbufCItem item)
    {
        
    int n=0;

        
    memset(buf07);
        
    buf[n] = item.m_Type 0xFF;
        
    n++;
        
    buf[n] = 0;
        
    buf[n] |= item.m_Level 8;
        
    buf[n] |= item.m_Option1 128;
        
    buf[n] |= item.m_Option2 4;
        
    buf[n] |= item.m_Option3 3;
        
    n++;
        
    buf[n] = item.m_Durability;
        
    n++;
        
    buf[n] = 0;
        
    buf[n] |= ((item.m_Type 0x100) >> 1);

        if ( 
    item.m_Option3 )
        {
            
    buf[n] |= 0x40// item +16 option
        
    }

        
    buf[n] |= item.m_NewOption;
        
    n++;
        
    buf[n] = item.m_SetOption;
        
    n++;
        
    buf[n] |= (item.m_Type 0x1E00 ) >> 5;

        
    BYTE btItemEffectFor380 0;
        
    btItemEffectFor380 = (item.m_ItemOptionEx 0x80 ) >> 4;
        
    buf[n] |= btItemEffectFor380;
        
    n++;
        
    buf[n] = item.m_JewelOfHarmonyOption;

    MossSystem.h
    Código PHP:
    bool MossSellItem(int aIndexunsigned charaRecv);
    CItem MossItemStruct(CItem item);
    void MossItemByteConvert(unsigned charbufCItem item); 
    Item.h
    Código PHP:
    void MossItemByteConvert(unsigned charbufCItem item);
    CItem MossItemConvert(CItem item); 
    Creditos:
    [ADM]NighT
    KGames
    Última edição por [ADM]Night; 24-11-2010 às 04:55 PM.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Release| Mod PvP Hero system.
    Por UnderZone no fórum L2J -Mods
    Respostas: 0
    Último Post: 13-03-2012, 10:38 PM
  2. |Release| System Recompensa PVP / PK
    Por UnderZone no fórum L2J -Mods
    Respostas: 0
    Último Post: 13-03-2012, 10:32 PM
  3. |Release| MOD Away System
    Por Inspector no fórum L2J -Mods
    Respostas: 0
    Último Post: 01-08-2011, 03:04 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •