Question About Rebirth/Platinum System?

Results 1 to 5 of 5
  1. #1
    Enthusiast Jhonas Garcia is offline
    MemberRank
    Mar 2013 Join Date
    45Posts

    Question About Rebirth/Platinum System?

    anyone knows or how to add rewards on Platinum System like Red Chips Every Rebirth/Platinum + 1

    P.S: In my Server Platinum 20 Gives a Custom Pet "Spider" that gives all Stat+100


    DPSrvr.cpp:


    Spoiler:

    #ifdef __REBIRTH
    void CDPSrvr::OnDoReb( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
    {
    #ifdef __SYSSECURITY
    try{
    #endif
    //Error(" Packet ist angekommen. ");
    OBJID idScroll;
    CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
    if( IsValidObj( pUser ) )
    {
    ar >> idScroll;
    CItemElem* pItemElem = pUser->m_Inventory.GetAtId( idScroll );
    if( pItemElem )
    {
    if( pItemElem->GetProp()->dwID == II_SYS_REB_SCROLL && pUser->GetLevel() == 150 && pUser->GetExpPercent() == 9999 )
    {
    if( pUser->m_nReb >= 30 )
    {
    pUser->AddText("You've reached the maximum number of Rebirth level's.");
    return;
    }
    if( pUser->m_Inventory.GetEmptyCount() > 9 ) // wurstbrotqt 14-06-14
    {
    CItemElem* pEQ;
    //if( pUser->CreateItem( &newItem ) )
    {
    for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
    {
    switch( i )
    {
    case PARTS_UPPER_BODY: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_CAP: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_HAND: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_FOOT: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_LWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_RWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    case PARTS_SHIELD: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
    }
    }

    if( pUser->GetWeaponItem( PARTS_RWEAPON ) )
    return;


    pUser->InitLevel( JOB_VAGRANT, 1 );
    // wurstbrotqt 14-06-14
    //pUser->m_nReb++;
    if( ++pUser->m_nReb == 20 )
    {
    CItemElem itemElem;
    itemElem.m_pPet = new CPet();
    itemElem.m_pPet->SetKind(PK_SPIDER);
    itemElem.m_pPet->SetLevel(PL_S);
    itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
    itemElem.m_pPet->SetLife(99);
    itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
    itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
    int nLevel, i;
    for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
    {
    itemElem.m_pPet->SetAvailLevel(i,nLevel);
    }
    itemElem.SetSerialNumber();
    itemElem.m_nItemNum = 1;
    pUser->CreateItem(&itemElem);
    }
    //pUser->AddText("Deinem Inventar wurde ein Item für das Platin Level hinzugefügt.");
    pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
    g_UserMng.UpdateUser( pUser, 2 );
    }
    }
    else
    //pUser->AddText("Du brauchst mehr als 8 Slots im Inventar frei um die Scroll zu aktivieren.");
    pUser->AddText("You need more than 9 slots in your Inventory for activating the Scroll."); // wurstbrotqt 14-06-14
    }else{

    pUser->AddText("You have to reach lvl 150 & 99.99% exp first to do a Rebirth");
    return;
    }
    }
    }
    #ifdef __SYSSECURITY
    }
    catch(...)
    {
    Error("Error on Line %d in %s",__LINE__,__FILE__);
    }
    #endif
    }
    #endif // __REBIRTH



    Thanks in advance


  2. #2
    Apprentice pechurc is offline
    MemberRank
    Nov 2010 Join Date
    16Posts

    Re: Question About Rebirth/Platinum System?

    you could add it easy, just need know this piece of code and make the function after //pUser->m_nReb++;

    CItemElem itemElem;
    itemElem.m_dwItemId = ItemId;
    itemElem.m_nItemNum = ItemQuantity;
    itemElem.m_nHitPoint = -1;
    pUser->CreateItem( &itemElem );

  3. #3
    Enthusiast Jhonas Garcia is offline
    MemberRank
    Mar 2013 Join Date
    45Posts

    Re: Question About Rebirth/Platinum System?

    I want to Add Reward Every 1 Rebirth what function may i use for that?

    Code:
    						//pUser->m_nReb++;
    						if( ++pUser->m_nReb < 30 )
    						{
    							CItemElem itemElem;
    							itemElem.m_dwItemId	= 26460; //Red Chips
    							itemElem.m_nItemNum	= 5000;
    							itemElem.m_nHitPoint	= -1;
    							pUser->CreateItem( &itemElem );
    						}
    						else if( ++pUser->m_nReb == 30 )
    						{
    							CItemElem itemElem;
    							itemElem.m_pPet = new CPet();
    							itemElem.m_pPet->SetKind(PK_SPIDER);
    							itemElem.m_pPet->SetLevel(PL_S);
    							itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
    							itemElem.m_pPet->SetLife(99);
    							itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
    							itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
    							int nLevel, i;
    							for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
    							{
    								itemElem.m_pPet->SetAvailLevel(i,nLevel);
    							}
    							itemElem.SetSerialNumber();
    							itemElem.m_nItemNum = 1;
    							pUser->CreateItem(&itemElem);
    						}
    Last edited by Jhonas Garcia; 16-04-16 at 12:43 PM.

  4. #4
    Apprentice pechurc is offline
    MemberRank
    Nov 2010 Join Date
    16Posts

    Re: Question About Rebirth/Platinum System?

    It should work, but you will not get the reward on rebirth +30, change "if( ++pUser->m_nReb < 30 )" to "if( ++pUser->m_nReb != 30 )"

  5. #5
    Enthusiast Jhonas Garcia is offline
    MemberRank
    Mar 2013 Join Date
    45Posts

    Re: Question About Rebirth/Platinum System?

    Fixed on event.lua Thanks to all



Advertisement