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

C++ Fix na niewidzialność GM'a


Rekomendowane odpowiedzi

Opublikowano


Cześć !

 

Jak wszyscy wiecie na gm'ie po warpowaniu się przez bardzo krotki okres czasu,

widać postać gm'a potem dopiero znika ( oczywiście mówie tu o inv )


ACMD(do_invisibility)

{

if (ch->IsObserverMode()) {

ch->SetObserverMode(false);

ch->SetQuestFlag("_gm.invisibility", 0);

ch->RemoveAffect(AFFECT_INVISIBILITY);

} else {

ch->SetObserverMode(true);

ch->SetQuestFlag("_gm.invisibility", 1);

ch->AddAffect(AFFECT_INVISIBILITY, POINT_NONE, 0, AFF_INVISIBILITY, INFINITE_AFFECT_DURATION, 0, true);

}

}


bool CHARACTER::Show(long lMapIndex, long x, long y, long z, bool bShowSpawnMotion/* = false */)

{

// @FIX: /invisible command bug

if (IsPC() && IsGM()) {

if (GetQuestFlag("_gm.invisibility") == 1) {

SetObserverMode(true);

}

}

 

// INVISIBLE ON OX EVENT MAP

if (lMapIndex == 113 && !IsGM())

{

SetObserverMode(true);

}

// END INVISIBLE ON OX EVENT MAP

 

LPSECTREE sectree = SECTREE_MANAGER::instance().Get(lMapIndex, x, y);

 

if (!sectree)

{

sys_log(0, "cannot find sectree by %dx%d mapindex %d", x, y, lMapIndex);

return false;

}

 

SetMapIndex(lMapIndex);

 

bool bChangeTree = false;

 

if (!GetSectree() || GetSectree() != sectree)

bChangeTree = true;

 

if (bChangeTree)

{

if (GetSectree())

GetSectree()->RemoveEntity(this);

 

ViewCleanup();

}

 

if (!IsNPC())

{

sys_log(0, "SHOW: %s %dx%dx%d", GetName(), x, y, z);

if (GetStamina() < GetMaxStamina())

StartAffectEvent();

}

else if (m_pkMobData)

{

m_pkMobInst->m_posLastAttacked.x = x;

m_pkMobInst->m_posLastAttacked.y = y;

m_pkMobInst->m_posLastAttacked.z = z;

}

 

if (bShowSpawnMotion)

{

SET_BIT(m_bAddChrState, ADD_CHARACTER_STATE_SPAWN);

m_afAffectFlag.Set(AFF_SPAWN);

}

 

SetXYZ(x, y, z);

 

m_posDest.x = x;

m_posDest.y = y;

m_posDest.z = z;

 

m_posStart.x = x;

m_posStart.y = y;

m_posStart.z = z;

 

if (bChangeTree)

{

EncodeInsertPacket(this);

sectree->InsertEntity(this);

 

UpdateSectree();

}

else

{

ViewReencode();

sys_log(0, " in same sectree");

}

 

REMOVE_BIT(m_bAddChrState, ADD_CHARACTER_STATE_SPAWN);

 

SetValidComboInterval(0);

return true;

}



http://wklej.to/SbF1S


http://wklej.to/OHQqU

 

5206314859733321403620.gif

  • 1 miesiąc temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...