Intram in sursa game in fisierul: questmanager.h
In el cautam:
Cod: Selectaţi tot
PC * GetPCForce(unsigned int pc);Cod: Selectaţi tot
void StopAllRunningQuests();Cod: Selectaţi tot
void CQuestManager::DisconnectPC(LPCHARACTER ch)
{
m_mapPC.erase(ch->GetPlayerID());
}Cod: Selectaţi tot
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());
}
}Cod: Selectaţi tot
void CQuestManager::Reload()
{Cod: Selectaţi tot
StopAllRunningQuests();Cod: Selectaţi tot
void OnScriptEventStart(int iSkin, int iIndex);Cod: Selectaţi tot
void HideQuestWindows();Cod: Selectaţi tot
void CPythonNetworkStream::HideQuestWindows()
{
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "HideAllQuestWindow", Py_BuildValue("()"));
}
Intrati in PythonNetworkStreamPhaseGame.cpp si la bool CPythonNetworkStream::RecvScriptPacket(), dupa str[str.size()-1] = '\0';
Adaugati:
if (str.compare(0, 13, "[DESTROY_ALL]") == 0)
{
CPythonNetworkStream::Instance().HideQuestWindows();
return true;
}Cautam:
Cod: Selectaţi tot
def RemoveQuestDialog(self, key):Cod: Selectaţi tot
def HideAllQuestWindow(self):
tempList = []
for i,v in self.wndQuestWindow.iteritems():
tempList.append(v)
for i in tempList:
i.OnCancel()Cod: Selectaţi tot
def OpenQuestWindow(self, skin, idx):
self.interface.OpenQuestWindow(skin, idx)Cod: Selectaţi tot
def HideAllQuestWindow(self):
self.interface.HideAllQuestWindow()




daca te-am ajutat.
