mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Reklam vermek için turkmmo@gmail.com

[C++] '/reload q' Crash Fix

  • Konuyu başlatan Konuyu başlatan RENARD
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 13
  • Görüntüleme Görüntüleme 7K

Sorun ;



İyi Forumlar.




questmanager.h


Arat


Kod:
PC * GetPCForce(unsigned int pc);


Altına


Kod:
void        StopAllRunningQuests();


questmanager.cpp


Arat


Kod:
    void CQuestManager::DisconnectPC(LPCHARACTER ch)
    {
        m_mapPC.erase(ch->GetPlayerID());
    }


Altına


Kod:
    void CQuestManager::StopAllRunningQuests()
    {
        for (PCMap::iterator it = m_mapPC.begin(); it != m_mapPC.end(); it++)
        {
            it->second.CancelRunning();
            LPCHARACTER pkChr = CHARACTER_MANAGER::instance().FindByPID(it->first);
            if (!pkChr || !(pkChr->GetDesc()))
                continue;
            struct ::packet_script packet_script;


            packet_script.header = HEADER_GC_SCRIPT;
            packet_script.skin = QUEST_SKIN_NOWINDOW;
            string data = "[DESTROY_ALL]";
            packet_script.src_size = data.size();
            packet_script.size = packet_script.src_size + sizeof(struct packet_script);


            TEMP_BUFFER buf;
            buf.write(&packet_script, sizeof(struct packet_script));
            buf.write(&data[0], data.size());


            pkChr->GetDesc()->Packet(buf.read_peek(), buf.size());
        }
    }


Arat


Kod:
    void CQuestManager::Reload()
    {


Altına


Kod:
StopAllRunningQuests();


ClintSource//PythonNetworkStream.h


Arat


Kod:
void OnScriptEventStart(int iSkin, int iIndex);


Altına


Kod:
void HideQuestWindows();


PythonNetworkStream.cpp


Sona Ekle


Kod:
void CPythonNetworkStream::HideQuestWindows()
{
    PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "HideAllQuestWindow", Py_BuildValue("()"));
}


PythonNetworkStreamPhaseGame.cpp


Kod:
bool CPythonNetworkStream::RecvScriptPacket()


İçinde Arat


Kod:
str[str.size()-1] = '\0';


Altına


Kod:
    if (str.compare(0, 13, "[DESTROY_ALL]") == 0)
    {
        CPythonNetworkStream::Instance().HideQuestWindows(  );
        return true;
    }


Client / interfacemodule.py


ARAT


Kod:
def RemoveQuestDialog(self, key):


ALTINA


Kod:
    def HideAllQuestWindow(self):
        tempList = []
        for i,v in self.wndQuestWindow.iteritems():
            tempList.append(v)


        for i in tempList:
            i.OnCancel()


game.py


ARAT


Kod:
def OpenQuestWindow(self, skin, idx):
        self.interface.OpenQuestWindow(skin, idx)


ALTINA


Kod:
    def HideAllQuestWindow(self):
        self.interface.HideAllQuestWindow()
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar


Sorun ;



İyi Forumlar.




questmanager.h


Arat


Kod:
PC * GetPCForce(unsigned int pc);


Altına


Kod:
void        StopAllRunningQuests();


questmanager.cpp


Arat


Kod:
    void CQuestManager::DisconnectPC(LPCHARACTER ch)
    {
        m_mapPC.erase(ch->GetPlayerID());
    }


Altına


Kod:
    void CQuestManager::StopAllRunningQuests()
    {
        for (PCMap::iterator it = m_mapPC.begin(); it != m_mapPC.end(); it++)
        {
            it->second.CancelRunning();
            LPCHARACTER pkChr = CHARACTER_MANAGER::instance().FindByPID(it->first);
            if (!pkChr || !(pkChr->GetDesc()))
                continue;
            struct ::packet_script packet_script;


            packet_script.header = HEADER_GC_SCRIPT;
            packet_script.skin = QUEST_SKIN_NOWINDOW;
            string data = "[DESTROY_ALL]";
            packet_script.src_size = data.size();
            packet_script.size = packet_script.src_size + sizeof(struct packet_script);


            TEMP_BUFFER buf;
            buf.write(&packet_script, sizeof(struct packet_script));
            buf.write(&data[0], data.size());


            pkChr->GetDesc()->Packet(buf.read_peek(), buf.size());
        }
    }


Arat


Kod:
    void CQuestManager::Reload()
    {


Altına


Kod:
StopAllRunningQuests();


ClintSource//PythonNetworkStream.h


Arat


Kod:
void OnScriptEventStart(int iSkin, int iIndex);


Altına


Kod:
void HideQuestWindows();


PythonNetworkStream.cpp


Sona Ekle


Kod:
void CPythonNetworkStream::HideQuestWindows()
{
    PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "HideAllQuestWindow", Py_BuildValue("()"));
}


PythonNetworkStreamPhaseGame.cpp


Kod:
bool CPythonNetworkStream::RecvScriptPacket()


İçinde Arat


Kod:
str[str.size()-1] = '\0';


Altına


Kod:
    if (str.compare(0, 13, "[DESTROY_ALL]") == 0)
    {
        CPythonNetworkStream::Instance().HideQuestWindows(  );
        return true;
    }


Client / interfacemodule.py


ARAT


Kod:
def RemoveQuestDialog(self, key):


ALTINA


Kod:
    def HideAllQuestWindow(self):
        tempList = []
        for i,v in self.wndQuestWindow.iteritems():
            tempList.append(v)


        for i in tempList:
            i.OnCancel()


game.py


ARAT


Kod:
def OpenQuestWindow(self, skin, idx):
        self.interface.OpenQuestWindow(skin, idx)


ALTINA


Kod:
    def HideAllQuestWindow(self):
        self.interface.HideAllQuestWindow()


teşekkürler.
 
Uzun zamandır metin2dev de vardı sağol yinede. bizim millet türk paylaşmazsa nedir diye bakmazlar bile :)
 
1f601.png
 

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

Geri
Üst