Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nieskończone przedmioty


Rekomendowane odpowiedzi

Opublikowano

Cześć, mam pytanie, mianowicie jak zrobić nieskończone przedmioty z tych:


 


- Magiczny kamień,


- Marmur błogosławieństwa,


-Potki,


-Strzały,


 


Wiem jak to zrobić, ale nie wiem jakie case ma poszczególny itemek, chciałem wywalić wszystkie item->SetCount(item->GetCount() - 1);


 


Ale nie wiem czy to dobry pomysł.


Opublikowano

Nie wywalasz a blokujesz w ten sposób " // "

 

Strzały

 

void CHARACTER::UseArrow(LPITEM pkArrow, DWORD dwArrowCount)
{
    int iCount = pkArrow->GetCount();
    DWORD dwVnum = pkArrow->GetVnum();
    iCount = iCount - MIN(iCount, dwArrowCount);
    pkArrow->SetCount(iCount);

 

zmieniasz na 

 

void CHARACTER::UseArrow(LPITEM pkArrow, DWORD dwArrowCount)

{
    int iCount = pkArrow->GetCount();
    DWORD dwVnum = pkArrow->GetVnum();
    iCount = iCount - MIN(iCount, dwArrowCount);
    //pkArrow->SetCount(iCount);

 

oraz 

 

int CHARACTER::GetArrowAndBow(LPITEM * ppkBow, LPITEM * ppkArrow, int iArrowCount/* = 1 */)

{
    LPITEM pkBow;

    if (!(pkBow = GetWear(WEAR_WEAPON)) || pkBow->GetProto()->bSubType != WEAPON_BOW)
    {
        return 0;
    }

    LPITEM pkArrow;

    if (!(pkArrow = GetWear(WEAR_ARROW)) || pkArrow->GetType() != ITEM_WEAPON ||
            pkArrow->GetProto()->bSubType != WEAPON_ARROW)
    {
        return 0;
    }

    iArrowCount = MIN(iArrowCount, pkArrow->GetCount());

    *ppkBow = pkBow;
    *ppkArrow = pkArrow;

    return iArrowCount;
} 

 

na

int CHARACTER::GetArrowAndBow(LPITEM * ppkBow, LPITEM * ppkArrow, int iArrowCount/* = 1 */)

{
    LPITEM pkBow;

    if (!(pkBow = GetWear(WEAR_WEAPON)) || pkBow->GetProto()->bSubType != WEAPON_BOW)
    {
        return 0;
    }

    LPITEM pkArrow;

    if (!(pkArrow = GetWear(WEAR_ARROW)) || pkArrow->GetType() != ITEM_WEAPON ||
            pkArrow->GetProto()->bSubType != WEAPON_ARROW)
    {
        return 0;
    }
    if (!pkArrow->GetCount()>0){
        return 0;
    }
    *ppkBow = pkBow;
    *ppkArrow = pkArrow;

    return iArrowCount;
}

 

resztę masz w temacie z kodem

Opublikowano

Nie wywalasz a blokujesz w ten sposób " // "

 

Strzały

 

void CHARACTER::UseArrow(LPITEM pkArrow, DWORD dwArrowCount)

{

    int iCount = pkArrow->GetCount();

    DWORD dwVnum = pkArrow->GetVnum();

    iCount = iCount - MIN(iCount, dwArrowCount);

    pkArrow->SetCount(iCount);

 

zmieniasz na 

 

void CHARACTER::UseArrow(LPITEM pkArrow, DWORD dwArrowCount)

{

    int iCount = pkArrow->GetCount();

    DWORD dwVnum = pkArrow->GetVnum();

    iCount = iCount - MIN(iCount, dwArrowCount);

    //pkArrow->SetCount(iCount);

 

oraz 

 

int CHARACTER::GetArrowAndBow(LPITEM * ppkBow, LPITEM * ppkArrow, int iArrowCount/* = 1 */)

{

    LPITEM pkBow;

 

    if (!(pkBow = GetWear(WEAR_WEAPON)) || pkBow->GetProto()->bSubType != WEAPON_BOW)

    {

        return 0;

    }

 

    LPITEM pkArrow;

 

    if (!(pkArrow = GetWear(WEAR_ARROW)) || pkArrow->GetType() != ITEM_WEAPON ||

            pkArrow->GetProto()->bSubType != WEAPON_ARROW)

    {

        return 0;

    }

 

    iArrowCount = MIN(iArrowCount, pkArrow->GetCount());

 

    *ppkBow = pkBow;

    *ppkArrow = pkArrow;

 

    return iArrowCount;

 

na

int CHARACTER::GetArrowAndBow(LPITEM * ppkBow, LPITEM * ppkArrow, int iArrowCount/* = 1 */)

{

    LPITEM pkBow;

 

    if (!(pkBow = GetWear(WEAR_WEAPON)) || pkBow->GetProto()->bSubType != WEAPON_BOW)

    {

        return 0;

    }

 

    LPITEM pkArrow;

 

    if (!(pkArrow = GetWear(WEAR_ARROW)) || pkArrow->GetType() != ITEM_WEAPON ||

            pkArrow->GetProto()->bSubType != WEAPON_ARROW)

    {

        return 0;

    }

    if (!pkArrow->GetCount()>0){

        return 0;

    }

    *ppkBow = pkBow;

    *ppkArrow = pkArrow;

 

    return iArrowCount;

}

 

resztę masz w temacie z kodem

Wywalanie linijek w ten sposób u mnie działa, jeżeli powiadasz, że znajdę w temacie, to już idę szukać.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...