- AdminCP
- #1
- MG Yaşı
- 2 Ay 1 Gün
- Katılım
- 2 Şub 2026
- Konular
- 224
- Mesajlar
- 363
- Tepkime puanı
- 54
- Puan
- 53
- Konum
- İstanbul
Selamlar,
Optimizasyon durumumu test etmek için oldukça fazla metin çağırdım fakat bir noktadan sonra işin içinden çıkılmaz hâle geldiğini fark ettim. Bunun üzerine biraz araştırma yaptım. İlginç olan şu ki, bu konuyla ilgili bizim forumda da herhangi bir paylaşım yokmuş. Artık var diyebiliriz.
Kullanıma hayırlı olsun.
Npc definesini kapattığınızda yalnızca pet, pazar ve bineklerin içinden geçilebilir. Eğer npc definesi açık bırakılırsa, oyundaki tüm nesnelerin içinden geçme durumu aktif olur.
IsStone kontrolünü ayrıca ben ekledim, çünkü metinlerin içinden geçilemiyordu. Eğer metinlerin içinden geçilmesini istemezseniz, IsStone kontrolünü de manuel olarak devre dışı bırakabilirsiniz.
ActorInstanceCollisionDetection:
Optimizasyon durumumu test etmek için oldukça fazla metin çağırdım fakat bir noktadan sonra işin içinden çıkılmaz hâle geldiğini fark ettim. Bunun üzerine biraz araştırma yaptım. İlginç olan şu ki, bu konuyla ilgili bizim forumda da herhangi bir paylaşım yokmuş. Artık var diyebiliriz.
Kullanıma hayırlı olsun.
Npc definesini kapattığınızda yalnızca pet, pazar ve bineklerin içinden geçilebilir. Eğer npc definesi açık bırakılırsa, oyundaki tüm nesnelerin içinden geçme durumu aktif olur.
IsStone kontrolünü ayrıca ben ekledim, çünkü metinlerin içinden geçilemiyordu. Eğer metinlerin içinden geçilmesini istemezseniz, IsStone kontrolünü de manuel olarak devre dışı bırakabilirsiniz.
ActorInstanceCollisionDetection:
Kod:
#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
