Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!
Server/src/
char.h aç ve arat
void SetGMLevel();
altına ekle
Kod:int GetChannel() const;
char.cpp arat
quest::CQuestManager::instance().LevelUp(GetPlayerID());
altına ekle
Kod:// UpdateP2P TPacketGGLogin p; p.bHeader = HEADER_GG_LOGIN; strlcpy(p.szName, GetName(), sizeof(p.szName)); p.dwPID = GetPlayerID(); p.bEmpire = GetEmpire(); p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY()); p.bChannel = g_bChannel; p.iLevel = GetLevel(); P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
arat
BYTE CHARACTER::GetGMLevel() const
altına ekle
Kod:int CHARACTER::GetChannel() const{ return g_bChannel; }
arat
TPacketGGLogin p;
p.bHeader = HEADER_GG_LOGIN;
strlcpy(p.szName, GetName(), sizeof(p.szName));
p.dwPID = GetPlayerID();
p.bEmpire = GetEmpire();
p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY());
p.bChannel = g_bChannel;
P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
değiştir
Kod:TPacketGGLogin p; p.bHeader = HEADER_GG_LOGIN; strlcpy(p.szName, GetName(), sizeof(p.szName)); p.dwPID = GetPlayerID(); p.bEmpire = GetEmpire(); p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(GetX(), GetY()); p.bChannel = g_bChannel; p.iLevel = GetLevel(); P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
input_db.cpp
Arat:
TPacketGGLogin p;
p.bHeader = HEADER_GG_LOGIN;
strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
p.dwPID = ch->GetPlayerID();
p.bEmpire = ch->GetEmpire();
p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
p.bChannel = g_bChannel;
P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
Kod:Değiştir: TPacketGGLogin p; p.bHeader = HEADER_GG_LOGIN; strlcpy(p.szName, ch->GetName(), sizeof(p.szName)); p.dwPID = ch->GetPlayerID(); p.bEmpire = ch->GetEmpire(); p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY()); p.bChannel = g_bChannel; p.iLevel = ch->GetLevel(); P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGLogin));
packet.h
arat
typedef struct SPacketGGLogin
{
BYTE bHeader;
char szName[CHARACTER_NAME_MAX_LEN + 1];
DWORD dwPID;
BYTE bEmpire;
long lMapIndex;
BYTE bChannel;
} TPacketGGLogin;
Kod:Değiştir:typedef struct SPacketGGLogin { BYTE bHeader; char szName[CHARACTER_NAME_MAX_LEN + 1]; DWORD dwPID; BYTE bEmpire; long lMapIndex; BYTE bChannel; int iLevel; } TPacketGGLogin;
p2p.cpp
Arat (void P2P_MANAGER::Boot(LPDESC d)):
p.bHeader = HEADER_GG_LOGIN;
strlcpy(p.szName, ch->GetName(), sizeof(p.szName));
p.dwPID = ch->GetPlayerID();
p.bEmpire = ch->GetEmpire();
p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY());
p.bChannel = g_bChannel;
d->Packet(&p, sizeof(p));
Değiştir:[/CODE]Kod:p.bHeader = HEADER_GG_LOGIN; strlcpy(p.szName, ch->GetName(), sizeof(p.szName)); p.dwPID = ch->GetPlayerID(); p.bEmpire = ch->GetEmpire(); p.lMapIndex = SECTREE_MANAGER::instance().GetMapIndex(ch->GetX(), ch->GetY()); p.bChannel = g_bChannel; p.iLevel = ch->GetLevel(); d->Packet(&p, sizeof(p));
Arat (void P2P_MANAGER::Login(LPDESC d, const TPacketGGLogin * p)):
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);
Kod:Değiştir: pkCCI->lMapIndex = p->lMapIndex; pkCCI->pkDesc = d; pkCCI->bChannel = p->bChannel; pkCCI->iLevel = p->iLevel; sys_log(0, "P2P: Login %s", pkCCI->szName); CGuildManager::instance().P2PLoginMember(pkCCI->dwPID); CPartyManager::instance().P2PLogin(pkCCI->dwPID, pkCCI->szName);
p2p.h
Arat:
typedef struct _CCI
{
char szName[CHARACTER_NAME_MAX_LEN + 1];
DWORD dwPID;
BYTE bEmpire;
long lMapIndex;
BYTE bChannel;
LPDESC pkDesc;
} CCI;
Kod:Değiştir: typedef struct _CCI { char szName[CHARACTER_NAME_MAX_LEN + 1]; DWORD dwPID; BYTE bEmpire; long lMapIndex; BYTE bChannel; LPDESC pkDesc; int iLevel; } CCI;
cmd_general.cpp
müsait biryere ekleyin
Kod:ACMD(do_bilgial){ char arg1[256]; one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) return; int iTargetEmpire = 0; int iTargetLevel = 0; int iTargetChannel = 0; LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg1); if (tch) { iTargetEmpire = (int)tch->GetEmpire(); iTargetLevel = tch->GetLevel(); iTargetChannel = tch->GetChannel(); } else { CCI * pkCCI = P2P_MANAGER::instance().Find(arg1); if (pkCCI) { iTargetEmpire = (int)pkCCI->bEmpire; iTargetLevel = pkCCI->iLevel; iTargetChannel = (int)pkCCI->bChannel; } else { ch->ChatPacket(CHAT_TYPE_INFO, "Hedef oyuncu: %s suan offline", arg1); return; } } ch->ChatPacket(CHAT_TYPE_COMMAND, "bilgiver %s %d %d %d", arg1, iTargetEmpire, iTargetLevel, iTargetChannel); } Client/userinterface/pythonnetworkstreamcommand.cpp arat else if (!strcmpi(szCmd, "mobile_auth")) { PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnMobileAuthority", Py_BuildValue("()")); } [CODE]Ekle: else if (!strcmpi(szCmd, "bilgiver")) { if (5 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %d", c_szCommand, TokenVector.size()); return; } const std::string & c_rstrName = TokenVector[1].c_str(); int iEmpire = atoi(TokenVector[2].c_str()); int iLevel = atoi(TokenVector[3].c_str()); int iChannel = atoi(TokenVector[4].c_str()); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_BilgiIsle", Py_BuildValue("(siii)", c_rstrName.c_str(), iEmpire, iLevel, iChannel)); }
/root
game.py
Arat:
def BINARY_UpdateLovePoint(self, lovePoint):
if self.interface.wndMessenger:
self.interface.wndMessenger.OnUpdateLovePoint(lovePoint)
if self.affectShower:
self.affectShower.OnUpdateLovePoint(lovePoint)
Kod:Ekle: def BINARY_BilgiIsle(self, targetName, targetEmpire, targetLevel, targetChannel): self.interface.BilgileriEkle(targetName, targetEmpire, targetLevel, targetChannel)
interfaceModule.py
Arat:
def MinimizeWhisperDialog(self, name):
if 0 != name:
self.__MakeWhisperButton(name)
self.CloseWhisperDialog(name)
whisperdialog.pyKod:Altına ekle: def BilgileriEkle(self, name, empire, level, channel): try: dlgWhisper = self.whisperDialogDict[name] dlgWhisper.SetToolTipForBilgi(name, empire, level, channel) except: import dbg, sys (type, msg, tb)=sys.exc_info() dbg.TraceError("interface.BilgileriEkle - Failed to find key | %s:%s" % (type, msg))
Arat:
{
"name" : "titlename",
"type" : "text",
"x" : 3,
"y" : 3,
"text" : uiScriptLocale.WHISPER_NAME,
},
Kod:Üstüne ekle: { "name" : "hiddenbutton", "type" : "button", "x" : 0, "y" : 0, "text" : "", "default_image" : "d:/ymir work/ui/public/hidden.tga", "over_image" : "d:/ymir work/ui/public/hidden.tga", "down_image" : "d:/ymir work/ui/public/hidden.tga", },
uiwhisper.py
Kod:importların altına ekle:import uiToolTip empireList = ["NULL", "Shinsoo", "Chunjo", "Jinno"]
Arat:
self.titleName = GetObject("titlename")
Kod:Altına ekle: self.titleHiddenButton = GetObject("hiddenbutton")
Arat:
def OpenWithTarget(self, targetName):
chat.CreateWhisper(targetName)
chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
self.chatLine.SetFocus()
self.titleName.SetText(targetName)
self.targetName = targetName
self.textRenderer.SetTargetName(targetName)
self.titleNameEdit.Hide()
self.ignoreButton.Show()
self.reportButton.Show()
self.acceptButton.Hide()
self.gamemasterMark.Hide()
self.minimizeButton.Show()
Kod:Altına ekle: self.SetToolTipForBilgi(targetName, 0, 0, 0) net.SendChatPacket("/bilgial %s" % targetName)
Arat:
def OpenWithoutTarget(self, event):
self.eventAcceptTarget = event
self.titleName.SetText("")
self.titleNameEdit.SetText("")
self.titleNameEdit.SetFocus()
self.targetName = 0
self.titleNameEdit.Show()
self.ignoreButton.Hide()
self.reportViolentWhisperButton.Hide()
self.acceptButton.Show()
self.minimizeButton.Hide()
Kod:Altına ekle: self.titleHiddenButton.Hide()
Arat:
def AcceptTarget(self):
name = self.titleNameEdit.GetText()
if len(name) <= 0:
self.Close()
return
if None != self.eventAcceptTarget:
self.titleNameEdit.KillFocus()
self.eventAcceptTarget(name)
Kod:Değiştir: def AcceptTarget(self): name = self.titleNameEdit.GetText() if len(name) <= 0: self.Close() return if None != self.eventAcceptTarget: self.titleNameEdit.KillFocus() self.eventAcceptTarget(name) if not self.titleHiddenButton.IsShow(): self.titleHiddenButton.Show() self.SetToolTipForBilgi(name, 0, 0, 0) net.SendChatPacket("/bilgial %s" % name)
Arat:
def Close(self):
Kod:Üstüne ekle: def __CreateGameTypeToolTip(self, name, empire, level, channel): tooltipItem = uiToolTip.ToolTip() tooltipItem.ClearToolTip() if not empire and not level and not channel: tooltipItem.AppendTextLine("Oyuncu %s'in bilgileri henuz hazir degil." % name) else: tooltipItem.AppendTextLine("Krallik: %s Kralligi" % empireList[empire]) tooltipItem.AppendTextLine("Seviye: %d" % level) tooltipItem.AppendTextLine("Kanal: %d" % channel) return tooltipItem def SetToolTipForBilgi(self, name, empire, level, channel): self.titleHiddenButton.SetToolTipWindow(self.__CreateGameTypeToolTip(name, empire, level, channel))
anlatımda blok ve hata gibi bir problem varsa rardan indirip ekleyebilirsiniz
[FONT=source_sans_proregular]https://mega.nz/#!e49xFCRI[/FONT][FONT=source_sans_proregular]!bRlQd8z1vHDUzGLz2rv_KbYzwn9DwGaxrzf71tZba8A
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
[/FONT]Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Yararlı paylaşım. Teşekkürler.
Fakat sanki /bilgial işlevi var ama cmd.cpp eklenmesi gerekiyor gibi geldi. Oyuna eklenince PM attıktan sonra "Bu düzenleme mevcut değil" atmasın hocam? Ya da yanlış mı biliyorum?
Yararlı paylaşım. Teşekkürler.
Fakat sanki /bilgial işlevi var ama cmd.cpp eklenmesi gerekiyor gibi geldi. Oyuna eklenince PM attıktan sonra "Bu düzenleme mevcut değil" atmasın hocam? Ya da yanlış mı biliyorum?
Güncelledim sağolasın
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 302
- Cevaplar
- 6
- Görüntüleme
- 307
- Cevaplar
- 9
- Görüntüleme
- 502
- Cevaplar
- 8
- Görüntüleme
- 409

