BlackFullMoon 1
BlackFullMoon
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
Hikaye Ekle

[C++] Üzerinden Global Chat Yapımı

  • Konuyu başlatan Konuyu başlatan SwordRex
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 3K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

To make the Global Chat work for all kingdoms you need to open the file:

add under
#include "threeway_war.h" or under includes this:

C++:
extern bool global_chat;

and search for this:

C++:
struct FuncShout

and search for this:

C++:
if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
            return;

with this:


C++:
if(global_chat)
        {
            if (!d->GetCharacter())
                return;
        }else {
            if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
                return;
        }

Screen:

3680ba5dd6.png


abd13fe02d.png

search this


C++:
ch->SetLastShoutPulse(thecore_heart->pulse);

and add this:


C++:
if(global_chat)
        {
            char buf[256];
            char chatbuf_global[CHAT_MAX_LEN + 1];
            const BYTE char_empire = ch->GetEmpire();
            if(char_empire == 1)
            {
                strlcpy(buf, LC_TEXT("Shinsoo"), sizeof(buf));
                std::string kingdom_red = "|cFFff0000|H|h[";
                kingdom_red += buf;
                kingdom_red += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_red.c_str(), chatbuf);
            } else if (char_empire == 2) {
                strlcpy(buf, LC_TEXT("Chunjo"), sizeof(buf));
                std::string kingdom_yel = "|cFFFFFF00|H|h[";
                kingdom_yel += buf;
                kingdom_yel += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_yel.c_str(), chatbuf);
            } else if (char_empire == 3) {
                strlcpy(buf, LC_TEXT("Jinno"), sizeof(buf));
                std::string kingdom_blue = "|cFF0080FF|H|h[";
                kingdom_blue += buf;
                kingdom_blue += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_blue.c_str(), chatbuf);
            }
            
            
            TPacketGGShout p;

            p.bHeader = HEADER_GG_SHOUT;
            p.bEmpire = char_empire;
            strlcpy(p.szText, chatbuf_global, sizeof(p.szText));

            P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));

            SendShout(chatbuf_global, ch->GetEmpire());

            return (iExtraLen);
        }

Screen:

e83a092bfb.png

search this:

int gPlayerMaxLevel = 99;



and add this



bool global_chat = false;



after search this

C++:
TOKEN("max_level")
        {
            str_to_number(gPlayerMaxLevel, value_string);

            gPlayerMaxLevel = MINMAX(1, gPlayerMaxLevel, PLAYER_MAX_LEVEL_CONST);

            fprintf(stderr, "PLAYER_MAX_LEVEL: %dn", gPlayerMaxLevel);
        }

and add this


C++:
        TOKEN("global_chat")
        {
            int flag = 0;

            str_to_number(flag, value_string);

            if (1 == flag)
            {
                global_chat = true;
                fprintf(stderr, "GLOBAL_CHAT: %in", flag);
            }
        }

Screen:


ba4f457a61.png

search this



extern int gPlayerMaxLevel;



and add this



extern bool global_chat;



Screen:

d0eb2d4d7f.png

add this in locale_string.txt in share/locale/your country/

C++:
"Jinno";
"Jinno";

"Chunjo";
"Chunjo";

"Shinsoo";
"Shinsoo";

You can change Jinno, Shinsoo and Chunjo over locale_sting.txt


C++:
"Jinno";
"Blue Empire";

"Chunjo";
"Yellow Empire";

"Shinsoo";
"Red Empire";

655986c431.jpg


Yabancı Forum Alıntı
 
To make the Global Chat work for all kingdoms you need to open the file:

add under
#include "threeway_war.h" or under includes this:

C++:
extern bool global_chat;

and search for this:

C++:
struct FuncShout

and search for this:

C++:
if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
            return;

with this:


C++:
if(global_chat)
        {
            if (!d->GetCharacter())
                return;
        }else {
            if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
                return;
        }

Screen:

3680ba5dd6.png


abd13fe02d.png

search this


C++:
ch->SetLastShoutPulse(thecore_heart->pulse);

and add this:


C++:
if(global_chat)
        {
            char buf[256];
            char chatbuf_global[CHAT_MAX_LEN + 1];
            const BYTE char_empire = ch->GetEmpire();
            if(char_empire == 1)
            {
                strlcpy(buf, LC_TEXT("Shinsoo"), sizeof(buf));
                std::string kingdom_red = "|cFFff0000|H|h[";
                kingdom_red += buf;
                kingdom_red += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_red.c_str(), chatbuf);
            } else if (char_empire == 2) {
                strlcpy(buf, LC_TEXT("Chunjo"), sizeof(buf));
                std::string kingdom_yel = "|cFFFFFF00|H|h[";
                kingdom_yel += buf;
                kingdom_yel += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_yel.c_str(), chatbuf);
            } else if (char_empire == 3) {
                strlcpy(buf, LC_TEXT("Jinno"), sizeof(buf));
                std::string kingdom_blue = "|cFF0080FF|H|h[";
                kingdom_blue += buf;
                kingdom_blue += "]|cFFA7FFD4|H|h";
                sprintf(chatbuf_global, "%s %s", kingdom_blue.c_str(), chatbuf);
            }
           
           
            TPacketGGShout p;

            p.bHeader = HEADER_GG_SHOUT;
            p.bEmpire = char_empire;
            strlcpy(p.szText, chatbuf_global, sizeof(p.szText));

            P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));

            SendShout(chatbuf_global, ch->GetEmpire());

            return (iExtraLen);
        }

Screen:

e83a092bfb.png

search this:

int gPlayerMaxLevel = 99;



and add this



bool global_chat = false;



after search this

C++:
TOKEN("max_level")
        {
            str_to_number(gPlayerMaxLevel, value_string);

            gPlayerMaxLevel = MINMAX(1, gPlayerMaxLevel, PLAYER_MAX_LEVEL_CONST);

            fprintf(stderr, "PLAYER_MAX_LEVEL: %dn", gPlayerMaxLevel);
        }

and add this


C++:
        TOKEN("global_chat")
        {
            int flag = 0;

            str_to_number(flag, value_string);

            if (1 == flag)
            {
                global_chat = true;
                fprintf(stderr, "GLOBAL_CHAT: %in", flag);
            }
        }

Screen:


ba4f457a61.png

search this



extern int gPlayerMaxLevel;



and add this



extern bool global_chat;



Screen:

d0eb2d4d7f.png

add this in locale_string.txt in share/locale/your country/

C++:
"Jinno";
"Jinno";

"Chunjo";
"Chunjo";

"Shinsoo";
"Shinsoo";

You can change Jinno, Shinsoo and Chunjo over locale_sting.txt


C++:
"Jinno";
"Blue Empire";

"Chunjo";
"Yellow Empire";

"Shinsoo";
"Red Empire";

655986c431.jpg


Yabancı Forum Alıntı
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst