⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wox2.cpp

📁 国外网络游戏 《The Kingdom of the Winds》 的服务端源码C+编写 有兴趣的可以
💻 CPP
字号:
//+---------------------------------------+//
//|      Wox2 GameServer Second Ver       |//
//+---------------------------------------+//
//| CopyRight(c)2001 by Lucia,Mini        |//
//+---------------------------------------+//

// 捞 家胶狼 历累鼻篮 葛滴 固聪俊霸 乐栏哥
// 捞 家胶 棺 扼捞宏矾府 dll 阑 荤侩茄 橇肺弊伐,家胶绰 葛滴 固聪狼 家蜡涝聪促..

// WoxCrypt.dll 篮 漂荐 档侩规瘤 贸府啊 登绢乐栏哥 公窜 硅器,傈力甫 陛钦聪促..
// 固聪俊罢 WoxCrypt.dll 阑 荤侩窍咯 寸脚狼 阂过 历累拱阑 昏力且 鼻茄捞 乐嚼聪促.. 

#include "StdAfx.h"
#include "Wox2Head.h"

int nextslot(int s)
{
	for(int i = 0;i < 26;i++)
	{
		if(	chr[Gs->acc[s]].ItemBag[i][0] == 0)
			return i;
	}
	return -1;
}
int lit(unsigned long s,int mode)
{
	if(mode == 1)
		return (s>>24);
	if(mode == 2)
		return ((s>>16)%256);
	if(mode == 3)
		return ((s%65536)>>8);
	if(mode == 4)
		return (s%256);
	return 0;
}

void checkauto( void ) // Check automatic/timer controlled stuff (Like fighting and regeneration)
{
	Ti->GameTime = clock();
	WI32 Cur = Ti->GameTime - Ti->PrevGameTime;

	//霸烙 矫埃 诀单捞飘 风凭
	if(Cur > 60000)
	{
		Cw->_time++;
		Ti->PrevGameTime = Ti->GameTime;
		if(Cw->_time > 23) // 23矫焊促 奴版快 0矫肺 登倒赴促
			Cw->_time = 0;
	}
	
}

void main()
{
	printf("W32/FN 啊惑 皋葛府 且寸吝");
	/*LPVOID lpItemBag;
	BOOL lpItemBagPage;
	lpItemBag = VirtualAlloc((LPVOID)&mapitem,(65535*(sizeof(struct item_st))),MEM_TOP_DOWN,PAGE_READWRITE);
	lpItemBagPage = VirtualLock((LPVOID)&mapitem,(65535*(sizeof(struct item_st))));
	*/
	mapitem = new item_st [65535];
	
	printf("努贰胶 檬扁拳..\n");

	Fi = NULL;
	Gv = NULL;
	Sl = NULL;
	Ti = NULL;
	Ls = NULL;
	Cc = NULL;
	Xc = NULL;
	Cw = NULL;
	Gs = NULL;
	Cm = NULL;
	Ci = NULL;
	Ch = NULL;

	if(( Fi = new FileIO ) == NULL )		exit(1);
	if(( Gv = new GlobalVar ) == NULL )		exit(1);
	if(( Sl = new ServerList ) == NULL )	exit(1);
	if(( Ti = new Timer ) == NULL )			exit(1);
	if(( Ls = new LoginServer ) == NULL )	exit(1);
	if(( Cc = new cCharCtrl ) == NULL )		exit(1);
	if(( Xc = new xCrypt ) == NULL )		exit(1);
	if(( Cw = new cWorld ) == NULL )		exit(1);
	if(( Gs = new GameServer ) == NULL )	exit(1);
	if(( Cm = new cMapCtrl ) == NULL )		exit(1);
	if(( Ci = new cItemCtrl ) == NULL )		exit(1);
	if(( Ch = new cItemHandle ) == NULL )	exit(1);
	int x = 0;
	printf("甘 单捞鸥 海捞胶 父甸扁");
	m = NULL;
	m = new unsigned short *[Cm->mapcount];
	for(int i = 0;i < Cm->mapcount;i++)
	{
		m[i] = new unsigned short [map[i].map_x * map[i].map_y];
		printf(".");
	}
	for(int a = 0;a < Cm->mapcount;a++)
	{
		for(int x = 0;x < (map[a].map_x * map[a].map_y);x++)
			m[a][x] = '\x00';
	}
	printf("\n");

	printf("努贰胶 檬扁拳 肯丰\n");
	printf("Wox2.INI 佬绰吝\n");
	
	Gv->ReadINI();
	Cc->LoadAccounts();
	Cc->PreLoadChars();
	Ci->PreLoadItems();
	Ch->PreLoadBags();


	Ti->starttime = Ti->CurTime;

	//Print CopyRight
	printf("\nWox2 %s(Build:%s) [WIN32] 橇肺弊贰怪: %s\n", VER, BUILD, PROGRAMMERS );
	printf("Win32览侩橇肺弊伐\n\n");

	printf("(WINBARAM 滚傈 491阑 困秦 力累登菌嚼聪促..)\n");
	printf("Copyright (C) 2001 固聪 (socutemini@hanmail.net)\n");
	printf("捞 橇肺弊伐篮 公丰 家橇飘傀绢 捞哥, ");
	printf("硅器 棺 犁硅器啊 陛瘤登绢乐嚼聪促.\n");
	printf("捞 橇肺弊伐篮 措茄刮惫 历累鼻过 棺 惫力过俊 狼秦 焊龋邓聪促.\n");
	printf("(100%%)府浚瘤聪绢傅 橇肺弊伐..曼炼 : 家聪/Bleem掬 魄肥.\n");
	printf("哪颇老老矫 %s (%s)\n",__DATE__,__TIME__);
	printf("哪颇老茄荤恩 %s\n",NAME);
	printf("巩狼: socutemini@hanmail.net\n");
	
	printf("=====檬扁拳 肯丰=====\n");
	Ti->CurTime  = clock();
	Ti->GameTime = clock();
	while(Gv->ServerON)
	{
		Ti->checkkey();
		_sleep(Gv->delay);
		
	
		if(Ti->loopTimeCount >= 1000)
		{
			Ti->loopTimeCount = 0;
			Ti->loopTime = 0;
		}
		Ti->loopTimeCount++;
	
		StartMilliTimer(Ti->loopSecs, Ti->loopMilli);
		
		if(Ti->networkTimeCount >= 1000)
		{
			Ti->networkTimeCount = 0;
			Ti->networkTime = 0;
		}

		StartMilliTimer(Ti->tempSecs, Ti->tempMilli);
		if( Ti->NextCheckConn<=Ti->CurTime || Ti->overflow) // Cut lag on CheckConn by not doing it EVERY loop.
		{
			Sl->ConnReq();
			Ls->ConnReq();
			Gs->ConnReq1();
			Gs->ConnReq2();
			Ti->NextCheckConn = (unsigned int)( Ti->CurTime + ( double )( (1 * CLOCKS_PER_SEC)/2 ) );
		}
		///ended
		Sl->CheckMessage();
		Ls->CheckMessage();
		Gs->CheckMessage();
				
		Ti->tempTime = CheckMilliTimer(Ti->tempSecs, Ti->tempMilli);
		Ti->networkTime += Ti->tempTime;
		Ti->networkTimeCount++;
		
		if(Ti->timerTimeCount >= 1000)
		{
			Ti->timerTimeCount = 0;
			Ti->timerTime = 0;
		}
			
		StartMilliTimer(Ti->tempSecs, Ti->tempMilli);
		
		Ti->checktimers();
		Ti->CurTime=clock();
		Ti->tempTime = CheckMilliTimer(Ti->tempSecs, Ti->tempMilli);
		Ti->timerTime += Ti->tempTime;
		Ti->timerTimeCount++;
			
		if(Ti->autoTimeCount >= 1000)
		{
			Ti->autoTimeCount = 0;
			Ti->autoTime = 0;
		}
		
		StartMilliTimer(Ti->tempSecs, Ti->tempMilli);
			
		checkauto();
			
		Ti->tempTime = CheckMilliTimer(Ti->tempSecs, Ti->tempMilli);
		Ti->autoTime  += Ti->tempTime;
		Ti->autoTimeCount++;
		StartMilliTimer( Ti->tempSecs, Ti->tempMilli );
		
		Ti->tempTime = CheckMilliTimer( Ti->tempSecs, Ti->tempMilli );
		Ti->networkTime += Ti->tempTime;
		Ti->tempTime = CheckMilliTimer(Ti->loopSecs, Ti->loopMilli);
		Ti->loopTime += Ti->tempTime;
	}
	Cc->SaveAccount();
	Cc->SaveChars();
	Ci->SaveItems();
	Ch->SaveBags();

	Sl->SockClose();
	Ls->SockClose();

	delete Fi;
	delete Gv;
	delete Sl;
	delete Ti;
	delete Ls;
	delete Cc;
	delete Xc;
	
	delete [] mapitem;

	for(int xx = 0;i < Cm->mapcount;i++)
	{
		 delete [map[i].map_x * map[i].map_y] m;
	}
	delete [] m;

	WSACleanup();

	/*VirtualUnlock(lpItemBag,(65535*(sizeof(item_st)))); // 皋葛府 秦力
	VirtualFree(lpItemBag,(65535*(sizeof(item_st))),MEM_RELEASE); // 皋葛府 秦力*/

	return; // 掭 !! 汴 !! 它 !! 亳 !!
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -