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

  • Konuyu açan Konuyu açan Tengrist
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 318
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Tengrist

MT Üye
MT Üye
Mesaj
692
Çözümler
25
Beğeni
508
Puan
809
Ticaret Puanı
0
C++:
Genişlet Daralt Kopyala
            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++:
Genişlet Daralt Kopyala
            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++:
Genişlet Daralt Kopyala
            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++:
Genişlet Daralt Kopyala
            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++:
Genişlet Daralt Kopyala
            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;:
Genişlet Daralt Kopyala
{
    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;:
Genişlet Daralt Kopyala
{
    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++:
Genişlet Daralt Kopyala
            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:
Genişlet Daralt Kopyala
    if ((pkChr->GetX() >= 5162100 && pkChr->GetY() >= 5533300) &&
        (pkChr->GetX() <= 5168800 && pkChr->GetY() <= 5537900)) {
        return true;
    }
    return false;
}
 
Üst