Sziasztok!
Bocsi az új topic-ért de sehol nem találtam olyan topicot ahol ilyesmi le lenne írva.
Nos és szeretnék egy .vip parancsot létre hozni!
Próbálkoztam azzal is hogy lemásolom a .gm off,on parancsot ésátírom benne a dolgokat de valamiért a c++-om visszadobja.
Itt a forráskódom:
//Enable\Dissable VIP Mode
bool ChatHandler::HandleVIPCommand(const char* args)
{
if (!*args)
{
if (m_session->GetPlayer()->isvip())
m_session->SendNotification(LANG_vip_ON);
else
m_session->SendNotification(LANG_vip_OFF);
return true;
}
std::string argstr = (char*)args;
if (argstr == "on")
{
m_session->GetPlayer()->Setvip(true);
m_session->SendNotification(LANG_vip_ON);
m_session->GetPlayer()->UpdateTriggerVisibility();
#ifdef _DEBUG_VMAPS
VMAP::IVMapManager *vMapManager = VMAP::VMapFactory::createOrGetVMapManager();
vMapManager->processCommand("stoplog");
#endif
return true;
}
if (argstr == "off")
{
m_session->GetPlayer()->Setvip(false);
m_session->SendNotification(LANG_vip_OFF);
m_session->GetPlayer()->UpdateTriggerVisibility();
#ifdef _DEBUG_VMAPS
VMAP::IVMapManager *vMapManager = VMAP::VMapFactory::createOrGetVMapManager();
vMapManager->processCommand("startlog");
#endif
return true;
}
SendSysMessage(LANG_USE_BOL);
SetSentErrorMessage(true);
return false;
}
chat-nél már megoldottam de csak itt ennél dob vissza sajnos...:S
valaki tudna nekem segíteni??
Szerintem ilyen fv. nincs, hogy isvip();
Meg egy
háát igazából azt szerettem volna csinálni hogy a vip tag is tudjon egy módba belépni mint a gm hogy .gm on
csaka vip-nél meg .vip on
vagy ha ezt nem tudom megcsinálni akkor maximum még annyit estleg meg tudnék csinálni hogy belép és akkor a chat.ben tud vip előtaggal írni?? vagy nem tudom csak mert lesznek vendorok amik phase maszkal fognak ott ácsorogni és azokat ugyye bár 1-es szntű jogon lehet látni.Ahhoz meg kell a .gm on.
Csak kicsit rossz hogy a VIP-nek ott van a GM előtag a neve előtt is!
szerintem
Hello!
Ha jól értelmezem a vip-es vendorok egy bizonyos phasemask-al rendelkeznek és hogy a vip-ek is lássák őket egy parancsot szeretnél rá írni.
Ez esetben szerintem elég ha a parancs beírására beállít egy phasemak-ot a játékosra.
Persze ezzel nem árt vigyázni. Mindenképp egyedi phasemask-al lásd el a vendorokat különben csúnyán visszaélnek majd vele.
Feltételezem ha idáig el jutottál elég lenne maga a kód. De hátha más is szeretné használni leírom részletesen.
Először is maga a parancs. Én Level1.cpp-be raktam, de jogosultságtól függően akárhol elhelyezhető.
Idézbool ChatHandler::HandleVIPCommand(const char* args)
{
m_session->GetPlayer()->SetPhaseMask(FÁZIS, true);
return true;
}
A 'FÁZIS' helyére természetesen az a szám kerül amit a vip-es vendoroknak is beállítottál.
Chat.h ChatHandler osztály protected részében elhelyezzük ezt:
Idézbool HandleVIPCommand(const char *args);
Majd a Chat.cpp file getCommandTable függvényének vége felé mondjuk a playall parancs után elhelyezzük a következőt:
Idéz{ "vip", SEC_MODERATOR, false, &ChatHandler::HandleVIPCommand, "", NULL },
És kész is.
.vip beírására láthatóvá vállnak a vendorok.
Üdv:
Kagebunshin
Ez szép :)
Köszönöm, ezt lehet én is használni fogom 8)