Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. #ifdef __FAMILIER_CLASSEX
  2. void CDPSrvr::OnPetTamerClasseX( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
  3. {
  4. #ifdef __SEC_SYSSTART
  5.     try{
  6. #endif
  7.     DWORD dwId;
  8.    
  9.     CUser* pUser    =   g_UserMng.GetUser( dpidCache, dpidUser );
  10.     if( IsValidObj( pUser ) )
  11.     {
  12.  
  13.         ar >> dwId;
  14.         CItemElem* pItemElem    = (CItemElem*)pUser->GetItemId( dwId );
  15.         if( pItemElem && pItemElem->m_dwItemId == II_SYS_SYS_SCR_PARCHOFAMILIERX ) // m_dwItemId
  16.         {
  17.             CPet* pPet  = pUser->GetPet();
  18.             CItemElem* pPetItem = pUser->GetPetItem();
  19.             if( pPet && pPetItem )
  20.             {
  21.                 // if( pPetItem->m_dwItemId == II_PET_REBIRTH01 )
  22.                 // {
  23.                     // pUser->AddText( "Vous ne pouvez passer Emma en Classe X !" );
  24.                     // return;                     
  25.                 // }
  26.                     int nLevel = pPet->GetLevel();
  27.                     int levelPet = 0;
  28.                     BYTE bLevel;       
  29.  
  30.                     for(int i=PL_D; i<=nLevel; i++)
  31.                     {
  32.                         bLevel = pPet->GetAvailLevel(i);
  33.                         levelPet += bLevel;
  34.                     }                  
  35.                        
  36.                     if( levelPet == 25  )
  37.                     {
  38.                         if( pPetItem->m_dwFamilierClasse < 1 )
  39.                         {
  40.                             pPet->SetAvailLevel( pPet->GetLevel(), 0 );
  41.                             pPet->SetLevel( 1 );
  42.                             pPet->SetExp( 0 );
  43.  
  44.                             if( pUser->HasPet() )
  45.                                 pUser->RemovePet();    
  46.                             pUser->UpdateItem( (BYTE)( pPetItem->m_dwObjId ), UI_CLASSEX, 1 );                 
  47.                             pUser->AddPet( pPet, PF_PET_LEVEL_DOWN );   // ??
  48.                             g_UserMng.AddPetLevelup( pUser, MAKELONG( (WORD)pPet->GetIndex(), (WORD)pPet->GetLevel() ) );   // ??
  49.                             pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
  50.                             pUser->AddText( "Votre familier a obtenu la classe X" );
  51.                             g_UserMng.AddCreateSfxObj( pUser, XI_SKILL_ELE_ELECTRICITY_ELETRICSHOCK01, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z );
  52.                         }
  53.                         else
  54.                         {
  55.                             pUser->AddText( "Votre familier est d\xE9j?e Classe X" );
  56.                             return;
  57.                         }
  58.                     }
  59.                     else
  60.                     {
  61.                         pUser->AddText( "Votre familier n'est pas 1/3/5/7/9 !" );
  62.                         return;
  63.                     }
  64.             }
  65.             else
  66.             {
  67.                 pUser->AddDefinedText( TID_GAME_PET_NOT_FOUND );
  68.             }
  69.         }
  70.         else
  71.         {
  72.             // error
  73.         }
  74.     }
  75. #ifdef __SEC_SYSSTART
  76.     }catch(...){    Error("Error on Line %d in %s",__LINE__,__FILE__);}
  77. #endif
  78. }
  79. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement