• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Codigo] Loot Channel

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1[Codigo] Loot Channel Empty [Codigo] Loot Channel Lun Mar 13, 2023 11:12 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    hola usuarios de tibiaface


    Aqui les traigo los cambios que hay que realizar en la fuentes para poder integrar un loot channel en su servidor

    [Codigo] Loot Channel Image_24

    cambios para OTX 2.1+ 8.60

    buscamos en configmanager.cpp

    Código:
    m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1);

    agregamos:

    Código:

    m_confNumber[LOOT_CHANNEL] = getGlobalNumber("lootChannelId", 11);

    ahora en configmanager.h buscamos

    Código:
    START_LEVEL,

    agregamos

    Código:

    LOOT_CHANNEL,

    ahora en party.cpp buscamos

    Código:

    void Party::broadcastMessage(MessageClasses messageClass, const std::string& text, bool sendToInvitations/* = false*/)
    {
     PlayerVector::iterator it;
     if(!memberList.empty())
     {
     for(it = memberList.begin(); it != memberList.end(); ++it)
     (*it)->sendTextMessage(messageClass, text);
     }

     leader->sendTextMessage(messageClass, text);
     if(!sendToInvitations || inviteList.empty())
     return;

     for(it = inviteList.begin(); it != inviteList.end(); ++it)
     (*it)->sendTextMessage(messageClass, text);
    }

    abajo de aquello agregamos

    Código:

    void Party::broadcastPartyLoot(MessageClasses messageClass, const std::string& loot)
    {
     std::string nick;
     PlayerVector::iterator it;
        leader->sendChannelMessage(nick, loot, messageClass, g_config.getNumber(ConfigManager::LOOT_CHANNEL));
        for(it = memberList.begin(); it != memberList.end(); ++it)
     {
            (*it)->sendChannelMessage(nick, loot, messageClass, g_config.getNumber(ConfigManager::LOOT_CHANNEL));
        }
    }

    en party.h buscamos

    Código:

    void broadcastMessage(MessageClasses messageClass, const std::string& text, bool sendToInvitations = false);


    abajo agregamos

    Código:

    void broadcastPartyLoot(MessageClasses messageClass, const std::string& loot);


    ahora en monsters.cpp buscamos

    Código:

    #include "game.h"

    abajo agregamos

    Código:

    #include "chat.h"

    en el mismo archivo buscamos

    Código:

    extern Game g_game;

    abajo agregamos

    Código:
    extern Chat g_chat;


    buscamos en el mismo archivo

    Código:

    std::ostringstream ss;
     ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << ".";
     if(owner->getParty() && message > LOOTMSG_PLAYER)
     owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());
     else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
     owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());

    y lo reemplazamos por

    Código:

    std::stringstream ss;
        std::string nick;
     ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << ".";
     if(owner->getParty() && message > LOOTMSG_PLAYER)
     owner->getParty()->broadcastPartyLoot((MessageClasses)MSG_CHANNEL, ss.str());
     else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
     if(!g_chat.getChannel(owner, g_config.getNumber(ConfigManager::LOOT_CHANNEL))->hasUser(owner))
     owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());
     else
     owner->sendChannelMessage(nick, ss.str(), (MessageClasses)MSG_CHANNEL, g_config.getNumber(ConfigManager::LOOT_CHANNEL));


    en data/XML busque e archivo channels.xml y agregue un nuevo chat

    Código:
    <channel id="11" name="Loot" logged="yes" active="0" enable="0"/>

    el id del channel usted lo puede modificar en config.lua

    Código:
    lootChannelId = 11

    AHORA PARA TFS 0.3.6] 8.54 ~ 8.60

    en configmanager.cpp buscamos

    Código:

    m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1);

    y agregamos

    Código:

    m_confNumber[LOOT_CHANNEL] = getGlobalNumber("lootChannelId", 12);

    en configmanager.h buscamos

    Código:
    START_LEVEL,

    y agregamos

    Código:
    LOOT_CHANNEL,

    en party.cpp buscamos

    Código:

    void Party::broadcastMessage(MessageClasses messageClass, const std::string& text, bool sendToInvitations/* = false*/)
    {
     PlayerVector::iterator it;
     if(!memberList.empty())
     {
     for(it = memberList.begin(); it != memberList.end(); ++it)
     (*it)->sendTextMessage(messageClass, text);
     }

     leader->sendTextMessage(messageClass, text);
     if(!sendToInvitations || inviteList.empty())
     return;

     for(it = inviteList.begin(); it != inviteList.end(); ++it)
     (*it)->sendTextMessage(messageClass, text);
    }

    abajo agregamos

    Código:

    void Party::broadcastPartyLoot(SpeakClasses type, const std::string& loot)
    {
     std::string nick;
     PlayerVector::iterator it;
        leader->sendChannelMessage(nick, loot, type, g_config.getNumber(ConfigManager::LOOT_CHANNEL));
        for(it = memberList.begin(); it != memberList.end(); ++it)
     {
            (*it)->sendChannelMessage(nick, loot, type, g_config.getNumber(ConfigManager::LOOT_CHANNEL));
        }
    }

    ahora en party.h buscamos

    Código:

    void broadcastMessage(MessageClasses messageClass, const std::string& text, bool sendToInvitations = false);

    abajo agregamos

    Código:
    void broadcastPartyLoot(SpeakClasses type, const std::string& loot);

    en monsters.cpp buscamos

    Código:

    std::ostringstream ss;
     ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << ".";
     if(owner->getParty() && message > LOOTMSG_PLAYER)
     owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());
     else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
     owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str());

    lo reemplzamos por esto

    Código:

    std::stringstream ss;
        std::string nick;
     ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << ".";
     if(owner->getParty() && message > LOOTMSG_PLAYER)
     owner->getParty()->broadcastPartyLoot((SpeakClasses)SPEAK_CHANNEL_W, ss.str());
     else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH)
     owner->sendChannelMessage(nick, ss.str(), (SpeakClasses)SPEAK_CHANNEL_W, g_config.getNumber(ConfigManager::LOOT_CHANNEL));

    en  data/XML buscamos channels.xml y agregamos un nuevo chat

    Código:
    <channel id="12" name="Loot" logged="yes" active="0"/>

    Créditos: ~Mathias Kenfi



    [Codigo] Loot Channel YNU5B25
    http://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).