Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Core/Mag Modifikációk => A témát indította: Dark Dátum 2010 július 25, 10:56:30 DÉLUTÁN

Cím: .vip on parancs
Írta: Dark Dátum 2010 július 25, 10:56:30 DÉLUTÁN
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??
Cím: Re:.vip on parancs
Írta: DoomKiller Dátum 2010 július 25, 10:59:27 DÉLUTÁN
Szerintem ilyen fv. nincs, hogy isvip();

Meg egy
Cím: Re:.vip on parancs
Írta: Dark Dátum 2010 július 25, 11:28:09 DÉLUTÁN
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!
Cím: Re:.vip on parancs
Írta: $0undX Dátum 2010 július 26, 09:42:00 DÉLELŐTT
szerintem
Cím: Re:.vip on parancs
Írta: kagebunshin Dátum 2010 július 26, 04:17:32 DÉLUTÁN

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
Cím: Re:.vip on parancs
Írta: Bluerák Dátum 2010 július 27, 01:03:23 DÉLELŐTT
Ez szép  :)
Köszönöm, ezt lehet én is használni fogom  8)