Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka ap167k6jj dodana przez Gość, 28.09.2024 21:15
Typ:



Kolor
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
char.cpp:
 
void CHARACTER::SendGuildName(CGuild* pGuild)
{
    if (NULL == pGuild) return;
    DESC* desc = GetDesc();
    if (NULL == desc) return;
    if (m_known_guild.find(pGuild->GetID()) != m_known_guild.end()) return;
 
    m_known_guild.insert(pGuild->GetID());
    TPacketGCGuildName pack;
    memset(&pack, 0x00, sizeof(pack));
    pack.header = HEADER_GC_GUILD;
    pack.subheader = GUILD_SUBHEADER_GC_GUILD_NAME;
    pack.size = sizeof(TPacketGCGuildName);
    pack.guildID = pGuild->GetID();
    memcpy(pack.guildName, pGuild->GetName(), GUILD_NAME_MAX_LEN);
 
    pack.guildLevel = pGuild->GetLevel();
 
    desc->Packet(&pack, sizeof(pack));
}
 
packet.h:
 
typedef struct packet_guild_name_t
{
    BYTE header;
    WORD size;
    BYTE subheader;
    DWORD guildID;
    char guildName[GUILD_NAME_MAX_LEN];
 
    int guildLevel;
 
} TPacketGCGuildName;
 
PythonGuild.h:
 
struct GuildNameLevel
{
    std::string name; 
    int level;        
};
 
typedef std::map<DWORD, GuildNameLevel> TGuildNameMap;
 
void RegisterGuildName(DWORD dwID, const char * c_szName, int level);
 
 
PythonGuild.cpp:
 
void CPythonGuild::RegisterGuildName(DWORD dwID, const char * c_szName, int level)
{
    GuildNameLevel gnr;
    gnr.name = std::string(c_szName);
 
    gnr.level = level;  
    m_GuildNameMap.insert(make_pair(dwID, gnr));
}
 
bool CPythonGuild::GetGuildName(DWORD dwID, std::string * pstrGuildName)
{
    if (m_GuildNameMap.end() == m_GuildNameMap.find(dwID))
        return false;
 
    int guildLevel = m_GuildNameMap[dwID].level; 
 
    if (guildLevel >= 10)
    {
        *pstrGuildName = "|cffFFC125" + m_GuildNameMap[dwID].name + "|r"; 
    }
    else if (guildLevel >= 5)
    {
        *pstrGuildName = "|cff888888" + m_GuildNameMap[dwID].name + "|r"; 
    }
    else if (guildLevel > 0)
    {
        *pstrGuildName = "|cffCD661D" + m_GuildNameMap[dwID].name + "|r"; 
    }
    else
    {
        *pstrGuildName = m_GuildNameMap[dwID].name; 
    }
 
    return true;
}
 
PythonNetworkStreamPhaseGame.cpp :
 
case GUILD_SUBHEADER_GC_GUILD_NAME:
{
    DWORD dwID;
    char szGuildName[GUILD_NAME_MAX_LEN + 1];
    int guildLevel; 
 
    int iPacketSize = int(GuildPacket.size) - sizeof(GuildPacket);
    int nItemSize = sizeof(dwID) + GUILD_NAME_MAX_LEN + sizeof(guildLevel);
    assert(iPacketSize % nItemSize == 0 && "GUILD_SUBHEADER_GC_GUILD_NAME");
 
    for (; iPacketSize > 0;)
    {
        if (!Recv(sizeof(dwID), &dwID))
            return false;
 
        if (!Recv(GUILD_NAME_MAX_LEN, &szGuildName))
            return false;
 
        if (!Recv(sizeof(guildLevel), &guildLevel)) 
            return false;
 
        szGuildName[GUILD_NAME_MAX_LEN] = 0;
        CPythonGuild::Instance().RegisterGuildName(dwID, szGuildName, guildLevel);
        iPacketSize -= nItemSize;
    }
    break;
}

Dodanych wklejek: 11179
Powered By (Pav32) Pastebin © 2011