Hikayeler

Reklam vermek için turkmmo@gmail.com

Pm bilgi sistemi

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

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. 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:
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));
[/CODE]

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)

Kod:
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))
whisperdialog.py
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


[/FONT]


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?
 
Paylaşım için teşekkürler Berke, test ederim bir kaç güne.
 
Tşk başka şeylerde eklenebilir
 
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 : 1, Üye: 0, Misafir: 1)

Geri
Üst