I. Client Sources>UseInterface>
PythonNetworkStreamCommand.cpp
Caută:
Cod: Selectaţi tot
else if (!strcmpi(szCmd, "gift"))
{
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "Gift_Show", Py_BuildValue("()"));
}
Adaguă sub:
Cod: Selectaţi tot
// ONLINE PLAYERS
else if (!strcmpi(szCmd, "black"))
{
UINT black = atoi(TokenVector[1].c_str());
UINT sari = atoi(TokenVector[2].c_str());
UINT kirmizi = atoi(TokenVector[3].c_str());
UINT mavi = atoi(TokenVector[4].c_str());
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "oyuncu_black", Py_BuildValue("(iiii)", black, sari, kirmizi, mavi));
}
II. Server Sources: usr/src/Sursa_ta/game/src/
desc_manager.cpp
Caut:
Cod: Selectaţi tot
class FuncWho
{
public:
int iTotalCount;
int aiEmpireUserCount[EMPIRE_MAX_NUM];
FuncWho()
{
iTotalCount = 0;
memset(aiEmpireUserCount, 0, sizeof(aiEmpireUserCount));
}
void operator() (LPDESC d)
{
if (d->GetCharacter())
{
++iTotalCount;
++aiEmpireUserCount[d->GetEmpire()];
}
}
};
Inlocuieste cu:
Cod: Selectaţi tot
class FuncWho
{
public:
int iTotalCount;
int aiEmpireUserCount[EMPIRE_MAX_NUM];
int toplam;
int * Bayrak;
int asdasdas;
FuncWho()
{
iTotalCount = 0;
memset(aiEmpireUserCount, 0, sizeof(aiEmpireUserCount));
}
void operator() (LPDESC d)
{
if (d->GetCharacter())
{
++iTotalCount;
++aiEmpireUserCount[d->GetEmpire()];
DESC_MANAGER::instance().GetUserCount(toplam, &Bayrak, asdasdas);
d->ChatPacket(CHAT_TYPE_COMMAND, "black %d %d %d %d", toplam, Bayrak[2], Bayrak[1], Bayrak[3]);
}
}
};
class FuncWho
{
public:
int iTotalCount;
int aiEmpireUserCount[EMPIRE_MAX_NUM];
int toplam;
int * Bayrak;
int asdasdas;
FuncWho()
{
iTotalCount = 0;
memset(aiEmpireUserCount, 0, sizeof(aiEmpireUserCount));
}
void operator() (LPDESC d)
{
if (d->GetCharacter())
{
++iTotalCount;
++aiEmpireUserCount[d->GetEmpire()];
DESC_MANAGER::instance().GetUserCount(toplam, &Bayrak, asdasdas);
d->ChatPacket(CHAT_TYPE_COMMAND, "black %d %d %d %d", toplam, Bayrak[2], Bayrak[1], Bayrak[3]);
}
}
};
II. Server Sources: usr/src/Sursa_ta/game/src/
p2p.cpp
Cauta:
Cod: Selectaţi tot
void P2P_MANAGER::Login(LPDESC d, const TPacketGGLogin * p)
{
CCI* pkCCI = Find(p->szName);
bool UpdateP2P = false;
if (NULL == pkCCI)
{
UpdateP2P = true;
pkCCI = M2_NEW CCI;
if (false == LC_IsBrazil())
strlcpy(pkCCI->szName, p->szName, sizeof(pkCCI->szName));
else
trim_and_lower(p->szName, pkCCI->szName, sizeof(pkCCI->szName));
pkCCI->dwPID = p->dwPID;
pkCCI->bEmpire = p->bEmpire;
if (p->bChannel == g_bChannel)
{
if (pkCCI->bEmpire < EMPIRE_MAX_NUM)
{
++m_aiEmpireUserCount[pkCCI->bEmpire];
}
else
{
sys_err("LOGIN_EMPIRE_ERROR: %d >= MAX(%d)", pkCCI->bEmpire, EMPIRE_MAX_NUM);
}
}
m_map_pkCCI.insert(std::make_pair(pkCCI->szName, pkCCI));
m_map_dwPID_pkCCI.insert(std::make_pair(pkCCI->dwPID, pkCCI));
}
pkCCI->lMapIndex = p->lMapIndex;
pkCCI->pkDesc = d;
pkCCI->bChannel = p->bChannel;
sys_log(0, "P2P: Login %s", pkCCI->szName);
CGuildManager::instance().P2PLoginMember(pkCCI->dwPID);
CPartyManager::instance().P2PLogin(pkCCI->dwPID, pkCCI->szName);
// CCI°¡ »ý¼º½Ã¿¡¸¸ ¸Þ½ÅÀú¸¦ ¾÷µ¥ÀÌÆ®ÇÏ¸é µÈ´Ù.
if (UpdateP2P) {
std::string name(pkCCI->szName);
MessengerManager::instance().P2PLogin(name);
}
}
Inlocuieste cu:
Cod: Selectaţi tot
void P2P_MANAGER::Login(LPDESC d, const TPacketGGLogin * p)
{
CCI* pkCCI = Find(p->szName);
bool UpdateP2P = false;
if (NULL == pkCCI)
{
UpdateP2P = true;
pkCCI = M2_NEW CCI;
if (false == LC_IsBrazil())
strlcpy(pkCCI->szName, p->szName, sizeof(pkCCI->szName));
else
trim_and_lower(p->szName, pkCCI->szName, sizeof(pkCCI->szName));
pkCCI->dwPID = p->dwPID;
pkCCI->bEmpire = p->bEmpire;
if (pkCCI->bEmpire < EMPIRE_MAX_NUM)
{
LPCHARACTER ch;
++m_aiEmpireUserCount[pkCCI->bEmpire];
}
else
{
sys_err("LOGIN_EMPIRE_ERROR: %d >= MAX(%d)", pkCCI->bEmpire, EMPIRE_MAX_NUM);
}
m_map_pkCCI.insert(std::make_pair(pkCCI->szName, pkCCI));
m_map_dwPID_pkCCI.insert(std::make_pair(pkCCI->dwPID, pkCCI));
}
pkCCI->lMapIndex = p->lMapIndex;
pkCCI->pkDesc = d;
pkCCI->bChannel = p->bChannel;
sys_log(0, "P2P: Login %s", pkCCI->szName);
CGuildManager::instance().P2PLoginMember(pkCCI->dwPID);
CPartyManager::instance().P2PLogin(pkCCI->dwPID, pkCCI->szName);
// CCI가 생성시에만 메신저를 업데이트하면 된다.
if (UpdateP2P) {
std::string name(pkCCI->szName);
MessengerManager::instance().P2PLogin(name);
}
}
Tot aici cauta:
Cod: Selectaţi tot
void P2P_MANAGER::Logout(CCI * pkCCI)
{
if (pkCCI->bChannel == g_bChannel)
{
if (pkCCI->bEmpire < EMPIRE_MAX_NUM)
{
--m_aiEmpireUserCount[pkCCI->bEmpire];
if (m_aiEmpireUserCount[pkCCI->bEmpire] < 0)
{
sys_err("m_aiEmpireUserCount[%d] < 0", pkCCI->bEmpire);
}
}
else
{
sys_err("LOGOUT_EMPIRE_ERROR: %d >= MAX(%d)", pkCCI->bEmpire, EMPIRE_MAX_NUM);
}
}
Inlocuieste cu:
Cod: Selectaţi tot
void P2P_MANAGER::Logout(CCI * pkCCI)
{
if (pkCCI->bEmpire < EMPIRE_MAX_NUM)
{
LPCHARACTER ch;
--m_aiEmpireUserCount[pkCCI->bEmpire];
if (m_aiEmpireUserCount[pkCCI->bEmpire] < 0)
{
sys_err("m_aiEmpireUserCount[%d] < 0", pkCCI->bEmpire);
}
}
else
{
sys_err("LOGOUT_EMPIRE_ERROR: %d >= MAX(%d)", pkCCI->bEmpire, EMPIRE_MAX_NUM);
}
std::string name(pkCCI->szName);
CGuildManager::instance().P2PLogoutMember(pkCCI->dwPID);
CPartyManager::instance().P2PLogout(pkCCI->dwPID);
MessengerManager::instance().P2PLogout(name);
marriage::CManager::instance().Logout(pkCCI->dwPID);
m_map_pkCCI.erase(name);
m_map_dwPID_pkCCI.erase(pkCCI->dwPID);
M2_DELETE(pkCCI);
}
II. Server Sources: usr/src/Sursa_ta/game/src/
main.cpp
Cauta:
Cod: Selectaţi tot
if (!(pulse % (passes_per_sec * 5 + 2)))
{
ITEM_MANAGER::instance().Update();
DESC_MANAGER::instance().UpdateLocalUserCount();
}
Inlocuieste cu:
Cod: Selectaţi tot
if (!(pulse % (passes_per_sec + 1)))
{
ITEM_MANAGER::instance().Update();
DESC_MANAGER::instance().UpdateLocalUserCount();
}
III. Python/Clientul_tau/pack/locale/
locale_game.txt
Adaugati:
Cod: Selectaţi tot
BLACK_ONLINE |cff00CC00|Hemp|hJucatori Online:|h|r
BLACK_SARI |cffFDD017|H|hChunjo:|h|r
BLACK_KIRMIZI |cffff0000|Hemp|hShinsoo:|h|r
III. Python/Clientul_tau/pack/root/
game.py
Cauta:
Cod: Selectaţi tot
def BINARY_Cube_UpdateInfo(self, gold, itemVnum, count):
self.interface.UpdateCubeInfo(gold, itemVnum, count)
Adauga sub:
Cod: Selectaţi tot
def oyuncu_black(self, black, sari, kirmizi, mavi):
#blackdragonx61
self.interface.wndMiniMap.online_cok_hojdir_ama_benane(black, sari, kirmizi, mavi)
III. Python/Clientul_tau/pack/root/
uiminimap.py
Cauta:
Adauga sub:
Cod: Selectaţi tot
self.mali = self.GetChild("Toplam")
self.sari = self.GetChild("sari")
self.kirmizi = self.GetChild("kirmizi")
self.mavi = self.GetChild("mavi")
Cauta:
Cod: Selectaţi tot
def UpdateObserverCount(self, observerCount):
if observerCount>0:
self.observerCount.Show()
elif observerCount<=0:
self.observerCount.Hide()
self.observerCount.SetText(localeInfo.MINIMAP_OBSERVER_COUNT % observerCount)
Adauga sub:
Cod: Selectaţi tot
def online_cok_hojdir_ama_benane(self, black, sari, kirmizi, mavi):
#blackdragonx61
self.mali.Show()
self.sari.Show()
self.kirmizi.Show()
self.mavi.Show()
self.mali.SetText(localeInfo.BLACK_ONLINE + str(black))#Toplam
self.sari.SetText(localeInfo.BLACK_SARI + str(sari))
self.kirmizi.SetText(localeInfo.BLACK_KIRMIZI + str(kirmizi))
self.mavi.SetText("|cff00ccffJinno:|h|r" + str(mavi))
III. Python/Clientul_tau/pack/uiscript/
minimap.py
Cauta:
Cod: Selectaţi tot
## ServerInfo
{
"name" : "ServerInfo",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 67,
"y" : 165,
"text" : "",
},
Adauga sub:
Cod: Selectaţi tot
## Online Players
{
"name" : "Toplam",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 195,
"text" : "",
},
{
"name" : "sari",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 210,
"text" : "",
},
{
"name" : "kirmizi",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 225,
"text" : "",
},
{
"name" : "mavi",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 240,
"text" : "",
},
Asta e tot:)