Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DWORD dwId1, dwId2, dwId3, dwId4;
- ar >> dwId1; // Baruna Weapon
- ar >> dwId2; // Baruna Rune
- ar >> dwId3; // Baruna Pprotect
- ar >> dwId4; // Baruna Piercing Rate
- CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
- if( IsValidObj( pUser ) )
- {
- CItemElem* pItemElem0 = pUser->m_Inventory.GetAtId( dwId1 );
- CItemElem* pItemElem1 = pUser->m_Inventory.GetAtId( dwId2 );
- CItemElem* pItemElem2 = pUser->m_Inventory.GetAtId( dwId3 );
- CItemElem* pItemElem3 = pUser->m_Inventory.GetAtId( dwId4 );
- if( IsUsableItem( pItemElem0 ) == FALSE || IsUsableItem( pItemElem1 ) == FALSE )
- return;
- if( pUser->m_vtInfo.GetOther() )
- return;
- if( pUser->m_vtInfo.VendorIsVendor() )
- return;
- if( pUser->m_Inventory.IsEquip( pItemElem0->m_dwObjId ) )
- return;
- if( pItemElem0->GetProp()->dwReferStat1 != BARUNA_D ||
- ( pItemElem0->GetProp()->dwItemKind2 != IK2_WEAPON_DIRECT && pItemElem0->GetProp()->dwItemKind2 != IK2_WEAPON_MAGIC ) )
- return;
- if( pItemElem0->GetPiercingSize() >= MAX_PIERCING_BARUNA )
- return;
- if( pItemElem1->GetProp()->dwItemKind3 != IK3_BARUNAWEA_PIERCE_RUNE )
- return;
- if( IsUsableItem( pItemElem2 ) && pItemElem2->m_dwItemId != II_SYS_SYS_SCR_BARUNAPRPROTECT )
- return;
- if( IsUsableItem( pItemElem3 ) && pItemElem3->m_dwItemId != II_SYS_SYS_SCR_BARUNAPRRATE )
- return;
- int nProb = 0;
- nProb = pItemElem1->GetProp()->nEffectValue;
- if( pItemElem3 != NULL )
- nProb += pItemElem3->GetProp()->nEffectValue;
- if( xRandom( 10000 ) > (DWORD)nProb )
- {
- pUser->AddPlaySound( SND_INF_UPGRADEFAIL );
- g_UserMng.AddCreateSfxObj((CMover *)pUser, XI_INT_FAIL, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
- if( pItemElem2 == NULL )
- {
- pUser->RemoveItem( (BYTE)dwId2, (short)1 );
- pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_2 , "" );
- }
- else
- pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_3 , "" );
- }
- else
- {
- pUser->UpdateItem( (BYTE)pItemElem0->m_dwObjId, UI_PIERCING_SIZE, pItemElem0->GetPiercingSize() + 1 );
- pUser->AddPlaySound( SND_INF_UPGRADESUCCESS );
- g_UserMng.AddCreateSfxObj((CMover *)pUser, XI_INT_SUCCESS, pUser->GetPos().x, pUser->GetPos().y, pUser->GetPos().z);
- pUser->AddDefinedText( TID_BW_PEARCING_CONFIRM_MSG_1 , "" );
- pUser->Pierce( pItemElem0, pItemElem1->m_dwItemId );
- pUser->RemoveItem( (BYTE)dwId2, (short)1 );
- }
- if( pItemElem2 != NULL )
- pUser->RemoveItem( (BYTE)dwId3, (short)1 );
- if( pItemElem3 != NULL )
- pUser->RemoveItem( (BYTE)dwId4, (short)1 );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement