Sanctuariser une zone
Bonsoir tout le monde sa serait pour savoir si il y avait possibilité de rendre par exemple tout orgrimmar en mode sanctuaire. Comme shatrah? via un script lua? voir c++? ou tout simplement via la db

Merci. C'est urgent Hihi

Pour mon projet la horde et l'alliance doivent cohabité Langue
Code :
void Player::UpdatePvPArea()
{
    AreaTable * at = dbcArea.LookupEntryForced(m_AreaID);
    if(at == NULL)
        return;

    if(at->AreaFlags & AREA_CITY_AREA || at->AreaFlags & AREA_CITY)
    {
        SetSanctuaryFlag();
        return;
    }

#ifdef PVP_REALM_MEANS_CONSTANT_PVP

Je n'ai pas essaye mais ça devrait fonctionner. C'est à modifier dans Player.cpp, tu cherche la fonction void Player::UpdatePvPArea() puis tu ajoute le if comme j'ai mis. Normalement à chaque changement d'area il vérifie si c'est une ville et si c'est bien une ville (comme orgrimmar) et bien il met le flag sacntuary Smile. Sinon oui les DBC :/
j'aimerais ne pas toucher au core pour le moment.

Ya possibilité en lua d'apres vous? au pire possibilité d'instancé en sanctuaire?
ou sinon tu utilise le magnifique spell du tournoi d'argent qui impose la neutralité en spamm sur un gob Clin
En français? spamm?

Spawn sur un gob? Explique toi mieut Smile
A par modifier dans le code du serveur qui est le plus facile.......
( Comme l'a ecrit Sadikum )

sur ascent, tu as une fonction hook que l'on peut appeler a partir
d'une dll.

c'est l'equivalent dans une DLL à: (par exemple, non testé)
Code :
void SetupOgrimmarSanctuary(ScriptMgr *mgr)
{
mgr->register_hook(SERVER_HOOK_EVENT_ON_ZONE, ZoneHook);
}

ZoneHook etant ta fonction de gestion de la zone.
On pourrait imaginer la fonction zoneHook comme ca:
Code :
void ZoneHook(Player *plr, uint32 Zone, uint32 OldZone)
{
    if((Zone == ZONE_OGRIMMAR) && (OldZone != ZONE_OGRIMMAR) )
                  plr->SetSanctuaryFlag(); // N'existe pas sur Ascent, gestion differente
}

apres je connais pas par coeur les fonctions LUA mais
peut etre que tu as l'equivalent dans les LUA d'ArcEmu.
Oui le code de branruz peut fonctionner à l'exception de :
Code :
SetSanctuaryFlag();
qui devient :
Code :
plr->SetSanctuaryFlag();

Je vais voir si ce hook existe en LUA.
Post corrigé, merci bien.
Merci bien , je serais intéréssé de faire fonctionner ce script via une dll ou via un script lua.

J'aime bien les cores "Propres" pas trop modifié.
Je n'ai jamais vu de Hook similaire à celui-ci, peut être que l'on peut chercher, mais ca m'étonnerai que l'on puisse le trouver. Parcontre il est possible de placer des gob qui utilisent le spell du tournois d'argent, ca peut etre facilement faisable.

Retourner en haut Accueil