Exemple #1
0
void UploadInfoPage::onResume()
{
	if (!m_pItemInfo && GetUserCore() && !GetUserCore()->isAdmin())
	{	
		Close();
		return;
	}

	m_tbItemFile->SetLabel(Managers::GetString(L"#UDF_RESUMEDIR"));

	m_butUpload->Enable(false);
	m_tbItemFile->Enable(false);
	m_butFile->Enable(false);

	m_bResume = true;

	safe_delete(m_pUpInfo);
	m_pUpInfo = gcRefPtr<WebCore::Misc::ResumeUploadInfo>::create();

	if (GetThreadManager())
	{
		m_pResumeThread = GetThreadManager()->newUploadResumeThread(getItemId(), m_szKey.c_str(), m_pUpInfo);

		m_pResumeThread->getErrorEvent() += guiDelegate(this, &UploadInfoPage::onError);
		m_pResumeThread->getCompleteStringEvent() += guiDelegate(this, &UploadInfoPage::onResumeCompleteCB);

		m_pResumeThread->start();
	}

	Show();
	Raise();
}
Exemple #2
0
void		FishAI::StopAI(bool showMsg)
{
	if(showMsg)
		GetThreadManager()->AddGUIMessage(GBText("你的有效时间已到, 请续费!"));
	m_IsStop = 1;
	PauseAI();
}
bool            AuthServerListener::Start(int listenPort, int listenThreadCount)
{
    m_ListenSocket = socket(AF_INET,SOCK_STREAM,0);//创建了可识别套接字
    m_ListenPort = listenPort;
    m_ListenThreadCount = listenThreadCount;
    
    //需要绑定的参数
    SOCKADDR_IN addr;
    addr.sin_family=AF_INET;
    addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//ip地址
    addr.sin_port=htons(m_ListenPort);//绑定端口
    if(bind(m_ListenSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR)) == SOCKET_ERROR)
    {
        GetLog()->Warn("Bind Error:%s", SysErrorMessage(WSAGetLastError()));
        return false;
    }
    //其中第二个参数代表能够接收的最多的连接数
    if(listen(m_ListenSocket,m_ListenThreadCount) == SOCKET_ERROR)
    {
        GetLog()->Warn("Listen Error:%s", SysErrorMessage(WSAGetLastError()));
        return false;
    }
    
	GetThreadManager()->ManagerCreateThread("ListenThread", ListenThread, false);
	return true;
}
bool			AuthClientUser::SendLogMessage(AnsiString msg)
{
	String warnMsg = FormatStr("%s(%s) : %s", m_UserName, m_ClientIP, String(msg));
	GetLog()->Warn(warnMsg);
	GetThreadManager()->AddGUIMessage(warnMsg);

	AnsiString sendMsg = msg;
	sendMsg.Unique();
	if(!this->SocketSendBYTE(PT_MSG))
		return false;

	if(!this->SocketSendWORD(sendMsg.Length()))
		return false;

	if(!this->SocketSendBuff(sendMsg.c_str(), sendMsg.Length()))
		return false;

	if(m_ADOQuery)
	{
		m_ADOQuery->SQL->Text = FormatStr("INSERT user_error_msg (accid, cur_time, build, ip, msg) VALUES ('%s', '%s', %d, '%s', '%s')",
										m_UserName, DateTimeToStr(Now()), m_Build, m_ClientIP, String(msg));
		ExecSQL(m_ADOQuery);
	}
//	Sleep(1000);
	return true;
}
Exemple #5
0
void __fastcall TWOWFisherMain::Timer1Timer(TObject *Sender)
{

	GetPackageContainerManager()->PopQueue(GetWOWProxyManager()->GetAllQueue());

    GetPackageContainerManager()->ProcessClientMessage();

	GetFiberManager()->Process();

	PackageContainer * curPackageContainer = GetPackageContainerManager()->GetWorldPackageContainer();
	if(curPackageContainer)
	{
		#ifdef _DEBUG
		int removeNum = 10000;
		#else
		int removeNum = 100;
		#endif
		if(removeNum != 0 && curPackageContainer->GetAll()->Count() > removeNum)
		{
			GetPackageContainerManager()->ClearAllPackage();
		}
	}

	GetWOWProxyManager()->ProcessRemoveProxyList();
	GetThreadManager()->ProcessDeletedThread();
	GetGameWorld()->CheckWOWClosedRefresh();

	String result;
	while(GetThreadManager()->GetGUIMessageCount())
	{
		if(!GetThreadManager()->PopGUIMessage(&result))
		{
			continue;
		}
		if(result == "REQ_CHARGE")
		{
			//弹出注册页面
			frmChargeFrm->ShowFrm();
			continue;
		}
		LogMsg(result);
		frmChargeFrm->AddLog(result);
	}
}
Exemple #6
0
//---------------------------------------------------------------------------
void __fastcall TWOWFisherMain::FormDestroy(TObject *Sender)
{
    GetLog()->Warn("TWOWFisherMain::FormDestroy");
    GetLog()->SetEnableLog(false);

    for(int i=0; i<GetWOWProxyPool()->GetProxyCount(); i++)
    {
        GetWOWProxyPool()->GetProxy(i)->Close();
    }

	GetThreadManager()->FreeAll();
}
Exemple #7
0
//---------------------------------------------------------------------------
void __fastcall TWOWFisherMain::FormCreate(TObject *Sender)
{
	if(!IsWin2k())
	{
		ShowMessage(GBText("你的操作系统版本过低, 需要win2000及以后的操作系统"));
		Application->Terminate();
		return;
	}
	PageControl1->ActivePageIndex = 0;
	ExtractDllFromExe();
	#ifndef _DEBUG
	tsDebug->TabVisible = false;
	#endif
	GetLog()->SetEnableLog(true);
	GetSharedMemInfo()->CreateMapping();
	String filePath = ExtractFilePath(Application->ExeName) + "Log\\";
    GetLog()->SetPath(filePath);
	GetLog()->SetFileName(filePath + "WOWFisher.log");
    GetLog()->SetGUIWindow(this->Handle);
    GetLog()->Warn("Proc Init");
	GetLog()->Info("Current ThreadID = %d", GetCurrentThreadId());
	int  listenPort = HOST_PORT;
	WOWHookViewInfo * view = GetSharedMemInfo()->CreateEmpty(listenPort);
	if(!view)
	{
		ShowMessage("FULL!");
		return;
	}
	listenPort = view->HostPortNumber;
	String dllName = GetGameWorld()->GetDllFileName();
	if(dllName == "")
	{
		dllName = ExtractFilePath(Application->ExeName) + "wowgo.dll";
	}
	GetGameWorld()->InjectDll(dllName, typeid(*this).name());
	if(!GetWOWProxyManager()->Start(listenPort))
	{
		return;
	}

	GetWOWProxyManager()->fpOnUserAuthPacket = OnUserAuthPacket;
	GetThreadManager()->StartAll();
	GetGameWorld()->InitFiberProcesser();
	GetGameWorld()->LoadItemNameData();
	GetGameWorld()->LoadFishData();

	GetFiberManager()->Process();
	#ifdef _DEBUG
	GetFiberManager()->Awake(FWC_REACTION_START);
	InitDebugFrms();
	#endif
}
Exemple #8
0
void UploadInfoPage::initUpload(const char* path)
{
	if (m_pUpInfo)
	{
		fileValidation(path);
	}
	else
	{
		m_pPrepThread = GetThreadManager()->newUploadPrepThread(getItemId(), path);

		*m_pPrepThread->getErrorEvent() += guiDelegate(this, &UploadInfoPage::onError);
		*m_pPrepThread->getCompleteStringEvent() += guiDelegate(this, &UploadInfoPage::onComplete);

		m_pPrepThread->start();
	}
}
void CreateProgPage::run()
{
	if (!getItemInfo() && !GetUserCore()->isAdmin())
		return;

	Show(true);
	Raise();

	if (m_pThread)
		return;

	m_pThread = GetThreadManager()->newCreateMCFThread(getItemId(), m_szFolderPath.c_str());

	*m_pThread->getMcfProgressEvent() += guiDelegate(this, &CreateProgPage::onProgress);
	*m_pThread->getErrorEvent() += guiDelegate(this, &CreateProgPage::onError);
	*m_pThread->getCompleteStringEvent() += guiDelegate(this, &CreateProgPage::onComplete);

	m_pThread->start();
}
Exemple #10
0
void        FishAI::OnProcess()
{
	int ret = 0;
	if(!this->WaitFor(FWC_FISH_AI_START, "FWC_FISH_AI_START", 0))
	{
		//如果是用户触发钓鱼的话, 不发出第一个钓鱼封包
		ret = this->GetErrorCode();
	}
	if(!m_IsStop)
	{
		GetThreadManager()->AddGUIMessage(GBText("开始自动钓鱼!"));
	}
	else
	{
		return;
	}
    m_ActiveTick = GetTickCount();
    this->SetActive(1);
	int failTime = 0;
    while(this->GetActive())
	{
		if(ret != FEC_USER_USE_SKILL)
		{
			SendStartFish();
		}
		ret = 0;
		if(!this->WaitFor(FWC_FISH_HOOK, "FWC_FISH_HOOK"))
		{
			if(failTime > 3)
			{
				//3次失败强制中断
				this->SetActive(0);
			}
			if(this->GetErrorCode() == FEC_SPELL_FAIL)
			{
				this->FiberSleep(2000);
				failTime++;
			}
			continue;
		}
		failTime = 0;
        uint64 guid = GetGameWorld()->GetDataGUID("self/fish/fishobjl", "self/fish/fishobjh");
        GetGameWorld()->GetPackSender()->SendUseGameObject(guid);
        GetGameWorld()->GetPackSender()->SendReportUseGameObject(guid);
        if(!this->WaitFor(FWC_WAIT_LOOT, "FWC_WAIT_LOOT"))
            continue;
        for(int i=0; i<GetGameWorld()->GetDataInt("self/loot/count"); i++)
        {
            int itemid = GetGameWorld()->GetDataInt(FormatStr("self/loot/items/%d/itemid", i));
			int itemcount = GetGameWorld()->GetDataInt(FormatStr("self/loot/items/%d/count", i));
			int itemIndex = GetGameWorld()->GetDataInt(FormatStr("self/loot/items/%d/index", i));
//            String name = GetGameWorld()->GetItemNameByID(itemid);
            if(GetGameWorld()->FindItemInPickupList(itemid))
			{
    	        String key = FormatStr("fish_no_pick/%d", itemid);
				GetGameWorld()->SetData(key, GetGameWorld()->GetDataInt(key) + itemcount);
                continue;
            }

			String key = FormatStr("fish_results/%d", itemid);
            GetGameWorld()->SetData(key, GetGameWorld()->GetDataInt(key) + itemcount);
            GetGameWorld()->GetPackSender()->SendAutoStoreLootItem(itemIndex);
        }
		GetGameWorld()->RefreshFishResult();
//        this->WaitFor(FWC_WAIT_LOOT_PICK, "FWC_WAIT_LOOT_PICK");
	}
	if(!m_IsStop)
	{
		GetThreadManager()->AddGUIMessage(GBText("结束自动钓鱼!"));
	}
}
void            AuthClientUser::Start(SOCKET client, SOCKADDR_IN clientAddr)
{
	SocketClientUser::Init(client, clientAddr);
	GetThreadManager()->ManagerCreateThread("ClientProcessThread", ClientProcessThread, false);
}