Yardım Belirli Bir Kordinatta İnsanların Birbirine serbestçe saldırmasını sağlamak

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Tengrist

MT Üye
MT Üye
Mesaj
479
Çözümler
12
Beğeni
339
Puan
809
Ticaret Puanı
0
C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900))
            {
                return true;
            }

yukarı kod bloğunu pvp.cpp dosyamda
bool CPVPManager::CanAttack(LPCHARACTER pkChr, LPCHARACTER pkVictim)
şu fonksiyona ekledim fakat karakterler birbirine vurmuyor pkVictim içinde mi if sorgusu yapmam gerekiyor birbirlerine saldırabilmeleri için? fikri olan var mı?

EDİT1:
C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900) && (pkVictim->GetX() >= 5162100 &&  pkVictim->GetY() >= 5533300) && (pkVictim->GetX() <= 5168800 &&  pkVictim->GetY() <= 5537900))
            {
                return true;
            }

Victim ı da ekledim ama yemedi başka bir olay daha var galiba

Edit2:: çalışmadı yine
C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900) && (pkVictim->GetX() >= 5162100 &&  pkVictim->GetY() >= 5533300) && (pkVictim->GetX() <= 5168800 &&  pkVictim->GetY() <= 5537900))
            {
               
                return true;
                pkChr->SetPKMode(PK_MODE_FREE);
            }

edit3::: çalışmadı bu da
C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900) && (pkVictim->GetX() >= 5162100 &&  pkVictim->GetY() >= 5533300) && (pkVictim->GetX() <= 5168800 &&  pkVictim->GetY() <= 5537900))
            {
                pkChr->SetPKMode(PK_MODE_FREE);
                return true;
            }
 
Son düzenleme:
return ifadesinden sonra yazdığın hiç bir kod çalışmaz, fonksiyon/koşul biter. Son kodu düzenleyip tekrar dene istersen.
 
return ifadesinden sonra yazdığın hiç bir kod çalışmaz, fonksiyon/koşul biter. Son kodu düzenleyip tekrar dene istersen.

C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900) && (pkVictim->GetX() >= 5162100 &&  pkVictim->GetY() >= 5533300) && (pkVictim->GetX() <= 5168800 &&  pkVictim->GetY() <= 5537900))
            {
                pkChr->SetPKMode(PK_MODE_FREE);
                return true;

            }

hocam bu şekilde değiştim fakat bir şey değişmedi, başka yapabileceğim bir tür var mı aklınıza gelen
py tabanlı bile olur verdiğim kordinatlara geçince serbeste geçmeli
 
Merhabalar, return ifadesi, fonksiyonun çağrıldığı yere bir değer döndürür ve fonksiyonun kalanını yürürtmez return true; satırından sonra pkChr->SetPKMode(PK_MODE_FREE); eklemişsiniz, ancak return ifadesi fonksiyonu durdrup engellediği için bu kod çalışmayacaktır. Bu satırın üstüne taşımalısınız.

Emin değilim ancak bunu deneyin isterseniz;:
{
    if ((pkChr->GetX() >= 5162100 && pkChr->GetY() >= 5533300) &&
        (pkChr->GetX() <= 5168800 && pkChr->GetY() <= 5537900) &&
        (pkVictim->GetX() >= 5162100 && pkVictim->GetY() >= 5533300) &&
        (pkVictim->GetX() <= 5168800 && pkVictim->GetY() <= 5537900))
    {
        pkChr->SetPKMode(PK_MODE_FREE);
        return true;
    }
    return false;
}
 
Merhabalar, return ifadesi, fonksiyonun çağrıldığı yere bir değer döndürür ve fonksiyonun kalanını yürürtmez return true; satırından sonra pkChr->SetPKMode(PK_MODE_FREE); eklemişsiniz, ancak return ifadesi fonksiyonu durdrup engellediği için bu kod çalışmayacaktır. Bu satırın üstüne taşımalısınız.

Emin değilim ancak bunu deneyin isterseniz;:
{
    if ((pkChr->GetX() >= 5162100 && pkChr->GetY() >= 5533300) &&
        (pkChr->GetX() <= 5168800 && pkChr->GetY() <= 5537900) &&
        (pkVictim->GetX() >= 5162100 && pkVictim->GetY() >= 5533300) &&
        (pkVictim->GetX() <= 5168800 && pkVictim->GetY() <= 5537900))
    {
        pkChr->SetPKMode(PK_MODE_FREE);
        return true;
    }
    return false;
}
C++:
            if ((pkChr->GetX() >= 5162100 &&  pkChr->GetY() >= 5533300) && (pkChr->GetX() <= 5168800 &&  pkChr->GetY() <= 5537900) && (pkVictim->GetX() >= 5162100 &&  pkVictim->GetY() >= 5533300) && (pkVictim->GetX() <= 5168800 &&  pkVictim->GetY() <= 5537900))
            {
                pkChr->SetPKMode(PK_MODE_FREE);
                return true;

            }

hocam bi üstteki mesajda taşımıştım fakat yine olmadı karakterler korumasız alan olmasına rağmen vurabilir hale gelmiyor,, kendim elle serbest yaptığımda ise vurabiliyorlar
 
2:
    if ((pkChr->GetX() >= 5162100 && pkChr->GetY() >= 5533300) &&
        (pkChr->GetX() <= 5168800 && pkChr->GetY() <= 5537900)) {
        return true;
    }
    return false;
}
 
Geri
Üst