Mobların, Petlerin, Pazarların, Metinlerin İçinden Geçme

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 201

hasanmacit

discord: hasanmacit
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
3.843
Çözümler
135
Beğeni
3.124
Puan
1.840
Ticaret Puanı
3
Selamlar. Optimizasyonum nasıl diye çok metin çağırdım ama baktım içlerinden geçilmiyor. Araştırdım. Bizim forumda da yokmuş. Artık var. Hayırlı kullanımlar. Npc definesini kapatırsanız eğer sadece pet, pazar ve bineklerin içinden geçecektir. Eğer npc definesi açıksa her şeyin içinden geçecektir. IsStone kontrolünü ben ekledim çünkü metinlerin içinden geçmiyordu. Metinlerin içinden geçmesini kapatmak istiyorsanız IsStone kontrolünü de manuel kapatın.

ActorInstanceCollisionDetection:
Genişlet Daralt Kopyala
#define ENABLE_NPC_WITHOUT_COLLISIONS
#ifndef ENABLE_NPC_WITHOUT_COLLISIONS
#define ENABLE_PETS_WITHOUT_COLLISIONS
#define ENABLE_SHOPS_WITHOUT_COLLISIONS
#define ENABLE_MOUNTS_WITHOUT_COLLISIONS
#endif
BOOL CActorInstance::TestActorCollision(CActorInstance& rVictim)
{
    if (rVictim.IsDead())
        return FALSE;

    if (rVictim.IsStone())
        return FALSE;

#ifdef ENABLE_NPC_WITHOUT_COLLISIONS
    if (rVictim.IsNPC())
        return FALSE;
#endif

#ifdef ENABLE_PETS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 34001 && rVictim.GetRace() <= 34099)
        return FALSE;
#endif

#ifdef ENABLE_SHOPS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 30000 && rVictim.GetRace() <= 30001)
        return FALSE;
#endif

#ifdef ENABLE_MOUNTS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 20101 && rVictim.GetRace() <= 20299)
        return FALSE;
#endif
 
rica ederim hayırlı kullanımlar

slm aleykum abi,
ben birseyi anlamiyorum, benim aktuel kod böyle gözüküyor:
Kod:
Genişlet Daralt Kopyala
DOSYANIN EN ÜSTÜNE BUNU ATTIM:

#define ENABLE_NPC_WITHOUT_COLLISIONS
#ifndef ENABLE_NPC_WITHOUT_COLLISIONS
#define ENABLE_PETS_WITHOUT_COLLISIONS
#define ENABLE_SHOPS_WITHOUT_COLLISIONS
#define ENABLE_MOUNTS_WITHOUT_COLLISIONS
#endif

ONDAN SONRA BUNU DEGISTIRDIM BÖYLE SENIN YOLLADIGIN GIBI YAZDIM; FAKAT ISSTONE SILDIMKI; METINLERDEN GECMESIN DIYE;
FAKAT METINLERDEN HALEN GECMESINE IMKANI VAR. AYRIYETTEN ILK DEFINI SILDIM MESELA; NPCLERDEN GECMESIN DIYE;
AYNISI; YINE NPCLERDEN GECIYOR.. NEDEN ACEBA?

BOOL CActorInstance::TestActorCollision(CActorInstance& rVictim)
{
    if (rVictim.IsDead())
        return FALSE;

#ifdef ENABLE_NPC_WITHOUT_COLLISIONS
    if (rVictim.IsNPC())
        return FALSE;
#endif

#ifdef ENABLE_PETS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 34001 && rVictim.GetRace() <= 34099)
        return FALSE;
#endif

#ifdef ENABLE_SHOPS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 30000 && rVictim.GetRace() <= 30001)
        return FALSE;
#endif

#ifdef ENABLE_MOUNTS_WITHOUT_COLLISIONS
    if (rVictim.GetRace() >= 20101 && rVictim.GetRace() <= 20299)
        return FALSE;
#endif
}

Kusura bakma, kodun icinde büyük yazdimki, gör diye abi
 
Üst