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

📄 base.gml

📁 在线游戏最新服务器端源代码
💻 GML
字号:
#ifndef PORT
#define PORT 6600
<sys setiepos=200,200,246,420>
<sys gamexsize=230,320>
#endif

<sys import=desktop,$.\..\..\common\socketc.gml>
<sys import=desktop,$.\..\..\common\list.gml>

#define PM <PlayerMy ownername=%1;name=%2;src=%1;index=%3>
#define PO <PlayerOther ownername=%1;name=%2;src=%1;index=%3>
#define M <man name=%1;index=%2;user=%3>

<style>
.gdesk{
	OnDown={<:$[me] eve=down,$[ep]>};
	OnUp={<:$[me] eve=up,$[ep]>};
	class=MyDesk;
}
.game:text{
	pos=10,20;
	OnCreate={<: src=$[name]>};
}
.ManList:list{
	pos=10,50;
	size=100,200;
//	OnSize={<: pos=(pid.width-80),9>};
//	bkimg=$.\img\dlgbk.gif#3,3
	bkimg=dotcolor();
	autosubpos=vert(15,3,1,1,20);
	rightscroll=1;
	class=MyManList;
}
.gman:div{
	pid=ManList;
	autopos=1;
	size=100,20;
	OnCreate={<text src=$[name]><text xpos=50;pid.mid=*id;src="空"><:$[id] eve=mode,$[mode],$[user]>};
	mode=0;
	user=0;
	OnMode={<: if=($[ep0]==0)?{user=0;mid.src="空"}:{user=$[ep1];mid.src=$[ep1]}>};
	OnClick={<: if=(mode==0)?{&desktop.eve=down,$[index]}:{&desktop.eve=up,$[index]};>};
	OnEnter={<: eve=mode,1,$[ep]>};
	OnLeave={<: eve=mode,0>};
}
.UserList:list{
	pos=120,50;
	size=100,200;
	bkimg=dotcolor();
	autosubpos=vert(15,3,1,1,20);
	rightscroll=1;
	class=MyUserList;
}
.playtext:text{
	pid=UserList;
	autopos=1;
	showstyle=3;
//	index=-1;
//	OnCreate#i={<img src=$.\images\eye.gif;size=16,16;pid.pimg=*id;pos=-20,0;clip=0;><: eve=state,$[index]>};
//	OnState={<: index=$[ep];if=(index>=0)?{pimg.show=0}:{pimg.show=1}>};
	OnCreate#s={<: src=$[ownername]>};
	index=-1;
	ifchged(index)={<: if=(index>=0)?{color=#FF8888}:{color=#FFFFFF};>};
	OnMode={<: index=$[ep]>};
}
.PlayerMy:playtext{
	color=R120G234B89;
	OnCreate={<:desktop myname=$[ownername];me=$[id]>};
	OnDown={<: neteventtos=enter,$[ep]>};
	OnUp={<: neteventtos=leave,$[ep]>};
	OnErr={<: switch(ep[0]){
		case 1:!有人在此;break;
		case 2:!已经在此;break;
		case 3:?换座位到$[ep1];break;
	}>};
	OnWaitbegin={<msg_wait src="等待其他玩家接受挑战..."></msg_wait>};
	OnFight={<:msgdlg del=1>};
	Oncanfight={<msg_in src="$[ep]想加入游戏挑战你\r\n接受么?"></msg_in>};
	Onyes={<: neteventTos=fyes>};
	Onnofight={<: neteventTos=fno>};
	Onquit={<: neteventTos=quit>};
	OnExit={top.close()};
	Onfquit={<:msgdlg del=1>};
	OnLost={<msg_over src="一局结束\r\n$[ep] 输了"></msg_over><:b1 stop=1;><:b2 stop=1>};
	Onnext={<: neteventTos=continue;>};
	Onwaito={<msg_wait src="等待其他人继续..."></msg_wait>};
}
.PlayerOther:playtext{
}
.mysocket:commsocket{
	Onconnected#chatsys={
		var def=""+location;
		if(document.gmllocation && document.gmllocation.indexOf("#")>0) def=document.gmllocation;
		def=def.split('#');
		if(def.length<2){
			def[1]="H"+((new Date()).getTime()%1000);
			def[2]="mytest";
		}
		document.MYNAME=def[1];
		$GX.Cmd("<:$[id] login="+def[1]+","+def[2]+">");
	};
	port=#(PORT);
	debug=#(NETDEBUG);
	OnNetErr={<:txt$[id] src=网络错误;show=1>};
	OnChatsys={<ChatTxt srcex='系统:$[chatmsgex]';color=R250G130B100>};
	OnChatself={<ChatTxt srcex='我:$[chatmsgex]';color=R250G230B150>};
	OnChatother={<ChatTxt srcex='$[chatfrom]:$[chatmsgex]';color=R150G230B250>};
}
.ChatTxt:text{
	pid=ChatList;
	autopos=1;
	showstyle=3;
	pos=0,-100;
}
.ChatList:list{
	rightscroll=1;
	autosubpos=vert(1,1,1,true,115);
	class=MyChatList;
}
.chatedit:Wedit{
	size=283,16;
	pos=152,462;
	OnEnter={<:mysocket sendChat='$[src]'><: src="">};
	class=MyChatEdit;
}
</style>

#ifndef COM
<ManList name=ManList></ManList>
<ChatList name=ChatList></ChatList>
<chatedit name=ChatEdit>
<UserList name=UserList></UserList>
#endif

<:desktop class=gdesk>
<mysocket name=mysocket>
<:desktop OnSize={<: enumsub={<: eve=size>}>};>

⌨️ 快捷键说明

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