Page 1 of 2

[C++] Sistem Transfer Bonusuri.

Posted: Wed Jun 15, 2016 12:36 pm
by [MOD]Mistic
Image

Config.cpp

Code: Select all

int    CostumeTransferBonusItemVnum = 71084;
Config.h

Code: Select all

extern int CostumeTransferBonusItemVnum;
char.h

Code: Select all

void CHARACTER::CostumeBonusTransfer(DWORD cell1, DWORD cell2){
    if ((GetExchange() || IsOpenSafebox() || GetShopOwner()) || IsCubeOpen() || IsDead()){
        ChatPacket(CHAT_TYPE_INFO, "Nie mozesz teraz wykonac tej operacji!");
        return;
    }


    LPITEM costume1 = GetInventoryItem(cell1);
    if (!costume1){
        ChatPacket(CHAT_TYPE_INFO, "Nie odnaleziono pierwszego kostiumu.");
        return;
    }
    
    if (costume1->GetType() != ITEM_COSTUME || costume1->GetType() == ITEM_COSTUME && costume1->GetSubType() != COSTUME_BODY){
        ChatPacket(CHAT_TYPE_INFO, "Pierwszy przedmiot nie jest kostiumem!");
        return;
    }
    
    if (costume1->IsEquipped()){
        ChatPacket(CHAT_TYPE_INFO, "Kullanılamaz kostüm.");
        return;
    }
    
    LPITEM costume2 = GetInventoryItem(cell2);
    if (!costume2){
        ChatPacket(CHAT_TYPE_INFO, "Slotta kostüm yok.");
        return;
    }
    
    if (costume2->GetType() != ITEM_COSTUME || costume2->GetType() == ITEM_COSTUME && costume2->GetSubType() != COSTUME_BODY){
        ChatPacket(CHAT_TYPE_INFO, "Malesef bunula yapamazsın");
        return;
    }
    
    if (costume2->IsEquipped()){
        ChatPacket(CHAT_TYPE_INFO, "Böyle bir kostüm kullanamazsın");
        return;
    }
    
    if (CountSpecifyItem(CostumeTransferBonusItemVnum) < 1){
        ChatPacket(CHAT_TYPE_INFO, "Bonus yok Neyi aktaracaksın.");
        return;
    }
    
    if (costume2->GetAttributeCount() < 1){
        ChatPacket(CHAT_TYPE_INFO, "İkinci Slota İyi bak!");
        return;
    }
    
    
    RemoveSpecifyItem(CostumeTransferBonusItemVnum, 1);
    costume1->ClearAttribute();
    for (int i = 0; i < costume2->GetAttributeCount(); i++){
        costume1->SetForceAttribute(i, costume2->GetAttributeType(i), costume2->GetAttributeValue(i));
    }
    
    costume2->RemoveFromCharacter();
    
    ChatPacket(CHAT_TYPE_INFO, "Başarılı bir şekilde Transfer Edildi!");

}
char.h

Code: Select all

void            CostumeBonusTransfer(DWORD cell1, DWORD cell2);
cmd.cpp

Code: Select all

ACMD(do_costume_transfer_bonus);
---
{ "kostum_degis_bonus",do_costume_transfer_bonus,0,POS_DEAD,GM_PLAYER},
Cmd_general.cpp

Code: Select all

ACMD(do_costume_transfer_bonus){
    char arg1[256], arg2[256];
    DWORD cell1, cell2;
    two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));


    if (!*arg1 || !*arg2)
        return;
    str_to_number(cell1, arg1);
    str_to_number(cell2, arg2);


    if (cell1 < 0 || cell1 > INVENTORY_MAX_NUM || cell2 < 0 || cell2 > INVENTORY_MAX_NUM || cell1 == cell2)
        return;


    ch->CostumeBonusTransfer(cell1, cell2);

}
Deschidere:
/kostum_degis_bonus slot1 slot2


Sursa: eu + turkmmo. Am pus tab-urile corecte, toate modificarile se fac un sursa.

Re: [C++] Sistem Transfer Bonusuri.

Posted: Wed Jun 15, 2016 1:59 pm
by [GM]Lexx
Excelent!

BIG PRO! :mrgreen:

Re: [C++] Sistem Transfer Bonusuri.

Posted: Wed Jun 15, 2016 7:08 pm
by [MOD]Lorena
prouț.

Re: [C++] Sistem Transfer Bonusuri.

Posted: Wed Jun 15, 2016 10:13 pm
by Myriam
pro

Re: [C++] Sistem Transfer Bonusuri.

Posted: Thu Jun 16, 2016 3:14 am
by [VIP]Maxuu
Image

Re: [C++] Sistem Transfer Bonusuri.

Posted: Thu Jun 23, 2016 3:53 pm
by [GM]Lexx
UP!

Re: [C++] Sistem Transfer Bonusuri.

Posted: Mon Feb 20, 2017 3:13 am
by [VIP]Taylor
si aici sus

Re: [C++] Sistem Transfer Bonusuri.

Posted: Tue Feb 21, 2017 4:54 pm
by valli1
sus

Re: [C++] Sistem Transfer Bonusuri.

Posted: Tue Feb 21, 2017 6:43 pm
by .UpBaBY
Se pot schimba mesajele alea sa fie in romana si in + continutul voidurilor pe care le apelezi in conditii unde sunt ?

Re: [C++] Sistem Transfer Bonusuri.

Posted: Tue Feb 21, 2017 6:44 pm
by [S]Red
Pro.