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

📄 main.gml

📁 在线游戏最新服务器端源代码
💻 GML
字号:
<style>
.showtext:text{
	showstyle=3;
	color=white;
	pos=0,5;
	align=center;
	zorder=1;
	clip=0;
}
.RtsPlay{
	show=1;
	walkquik=0;
	anikind=stand;
	OnGo={<: paramCtrl=null;walk=path(#(SPEED),25,$[ep])>};
}
.RtsLook{
	show=0;
//	pid.viewfollow=mouse;
	pos=-100,-100;
}
.ManNormal{
	class=RtsPlay;
	health=125;
	weapon="snowball";
	OnSendfight={<: ParamCtrl#ws=null><$[weapon] fly=line($[xpos]+$[dx],$[ypos]+$[dy],$[objpos],speed,2)>};
	OnEndfight={<: autoanicmd=0;anikind=stand>};
	OnFired={<: walk=null;anikind=fight;autoanicmd=1;forwordto=*ep;objpos=$[ep0],$[ep1];
		paramCtrl=loopt(1,anisteps,0,4,1,70,endfight)>};
	paramCtrl#begin=loopt(1,alpha,0,255,10,10);
	paramCtrl#in=loopcmd(1,50,1,{<: playsnd=$.\sound\many.gsm>};);
	OnTurn={<: anikind=snow>};
	OnTurnend={<: anikind=stand>};
	OnDeath={<: anikind=death>};
	OnBump={<: walk=!$[ep],400,25,20,bump>};
	OnBumped={<: pos=$[ep]>};
}
.ManDie{
	OnGo=null;
	walk=null;
	anikind=death;
	health=0;
	OnFired=null;
	OnSendfight=null;
	OnEndfight=null;
	paramCtrl=loopt(1,anisteps,0,6,1,170,CanRestart);
}
.UserMan:human{
	mutisrc=stand($.\..\imgs\ani\m_sn_r.ale,8)walk($.\..\imgs\ani\m_sn_r.ale,8)fight($.\..\imgs\ani\m_sn_f.ale,8)death($.\..\imgs\ani\m_sn_d.ale,4)snow($.\..\imgs\ani\m_sn_s.ale,8)bump($.\..\imgs\ani\m_sn_b.ale,8);
	OnDestroy={<: playsnd=$.\..\quake\sound\world\teleout.gsm>};
//	OnDie#m={<:infobar eve=kill,$[ownername],$[kill]>};
	puser=*pid;
	pid.pman=*id;
	pid=*pid.pid.pid.pid.map;
	anishow=1;
	autozorder=1;
	class=RtsLook;
	class=ManNormal;
//	mutisrc=stand($.\..\imgs\ani\m_sn_r.ale,8)walk($.\..\imgs\ani\m_sn_r.ale,8)fight($.\..\imgs\ani\m_sn_f.ale,8)death($.\..\imgs\ani\m_sn_d.ale,4)snow($.\..\imgs\ani\m_sn_s.ale,8)bump($.\..\imgs\ani\m_sn_b.ale,8);
	OnCreate={<showtext src=$[man]>};
	OnSide={<: switch(ep){
		case 0:palette=null;class=RtsLook;break;
		case 1:palette=redpal;class=RtsPlay;break;
		case 2:palette=bluepal;class=RtsPlay;break;
		case 3:palette=null;class=RtsPlay;break;
		};
	>};
	OnStand={<: ParamCtrl#ws=null;walk=null;pos=$[ep]>};
	OnWalkend={<: ParamCtrl#ws=null;pid.viewfollow=mouse>};
}
.UserManM:UserMan{
	draw#health=9:{wv();rect(-16,-52,16,-48,0);bar(-15,-51,-15+health*3/20,-49,red);TextOut(-20,-50,'$[fen]',0)};
	OnDie={<: playsnd=$.\sound\die.adm;class=ManDie>};

	ifchg(health)={<: if=($[health]>$[_new_health])?{paramCtrl#flash=loopt(1,alpha,20,255,40,0);playsnd=$.\sound\hit.gsm}>};
	OnLButtonDown={};
	OnGo#s={<: pid.viewfollow=*id;ParamCtrl#ws=loopcmd(-1,300,500,{<: playsnd=$.\sound\walkstep.gsm>})>};
	OnFired#m={<: pid.viewfollow=*id;ParamCtrl#ws=null>};
	OnWait={<: pid.viewfollow=*id;paramCtrl#w=loopcmd(1,$[ep],1000,{<: pid.viewfollow=*id>});>};
	OnCanRestart={<: puser.eve=CanRestart>};
	OnRestart={<: class=ManNormal;pos=$[ep];pid.viewfollow=*id>};
}
.UserManO:UserMan{
	draw#health=9:{wv();rect(-16,-52,16,-48,0);bar(-15,-51,-15+health*3/20,-49,red);TextOut(-20,-50,'$[fen]',0)};
	OnDie={<: kill=$[ep];playsnd=$.\sound\die.adm;class=ManDie>};
	ifchg(health)={<: if=($[health]>$[_new_health])?{paramCtrl#flash=loopt(1,alpha,0,255,10,0);playsnd=$.\sound\hit2.gsm}>};
	OnRestart={<: class=ManNormal;pos=$[ep]>};
}
.lifemake:div{
	rect=-50,-50,50,50;
	anishow=1;
	autozorder=1;
	pid=mymap;
	draw={wv();ellipse(0,0,rd,3,#efefef,0);
			ellipse(0,0,3,rd,#efefef,0);
			torus(0,0,rd/2+2,3,R50G15B30);}
	ParamCtrl#s=loopt(1,rd,50,1,2,10,del);
}
.lifedel:img{
	pid=mymap;
	src=$.\..\imgs\misc\lifebut.gif;
	automask=1;
	rect=-30,-30,30,30;
	anishow=1;
	zorder=top;
	draw={wv();ellipse(7,12,rd*2,rd,#5f1f1f,0);}
	ParamCtrl#s=loopt(2,rd,8,30,2,1,del);
	ParamCtrl#a=loopt(1,alpha,125,1,6,1);
	path=goto(0,-30,2);
}
.item{
	pid=mymap;
	size=16,16;
	anishow=1;
	autozorder=1;
	ParamCtrl#s=loop(rd,15,20,1,100);
	OnCreate#s={<: ParamCtrl#p=loop(ypos,ypos,ypos-3,1,100)><lifemake pos=$[pos]>};
	OnDestroy#s={<lifedel pos=$[pos]>};
}
.health:img{
	automask=1;
	src=$.\imgs\misc\health.ale;
	class=item;
	ParamCtrl#f=loops(frame,0,4,1,100);
	cc="#66FF00,#FFFF00,#FF0000,#3333FF";
	p=0;
	OnCreate={<: c=*cc[p];eve=cc><palette src=$.\imgs\misc\h$[p].act;pid.palette=*id>};
//	Oncc={<: draw=-1:{wv();CircleLight(0,0,rd,$[c])}>};
	OnDestroy={<: playsnd=$.\..\quake\sound\items\n_health.gsm>};
}
.weapon:img{
	pid=mymap;
	anishow=1;
	autozorder=1;
	size=1,1;
	alpha=170;
	speed=2000;
	far=200;
	delay=1000;
//	&mymap.bf=0;
//	OnCreate={<:mymap paramCtrl#w=loopcmd(1,$[delay],10,{<: bf=1;paramCtrl#w=null>})>};
}
.snowball:weapon{
	zorder=top;
	OnCreate#s={<: playsnd=$.\sound\tou.gsm>};
	automask=1;
	src=$.\imgs\misc\snow.gif;
	size=12,12;
	speed=3000;
	delay=50;
	onflyend={<: paramCtrl=loopt(1,alpha,250,10,30,1,del)>};
}
.info:div{
	size=800,20;
	zorder=top;
	clip=0;
	OnCreate={<text pos=30,4;src="姓名:">
		<text pos=60,4;src="man";pid.name_t=*id>
		<text pos=290,4;src="得分:">
		<text pos=320,4;src="0";pid.fen=*id>
		<text pos=360,4;src="网速:">
		<text pos=390,4;src="88";pid.ping=*id;>
		<text pos=470,4;src="在线人数:">
		<text pos=530,4;src="1";pid.mans_t=*id;>
	};
	OnSize={<: pos=0,pid.height-height;width=pid.width>};

	lifesx=220;
	draw#h=8{bar(120,2,lifesx,18,R$[lifer]G$[lifeg]B0);};
	draw#b={bar(0,0,width,height,#003F6F);line(0,17,width,17,R129G120B178);}

	OnHealth={<: lifesx=(120+ep*100/200);
		if=(ep>100)?{lifer=((200-ep)*255/200)}:{lifer=255};
		if=(ep>100)?{lifeg=255}:{lifeg=(ep*255/200)}>};
	OnFen={<: fen.src=*ep>};
	OnName={<: name_t.src=*ep>};
	OnPing={<: if=(ep<100)?{ping.src=优秀($[ep])}:{if=(ep<400)?{ping.src=良好($[ep])}:{if=(ping<800)?{ping.src=中等($[ep])}:{<: ping.src=差($[ep])><:mysocket eve=info,网速太慢!,5000>}}}>};
	ifchged(mans)={<: mans_t.src=*mans>};
	eve=size;
}
</style>

//<info name=info></info>

#define HL <health name=%1;pos=%2,%3;p=%4>

#define SB <snowball name=%1;pos=%2,%3;p=%4>

//#define RS <RtsOther ownername=%1;name=%2;eve=MyCreate;fen=%3;kill=%4;score=%5;bekill=%6;anikind=snow>

//<sys import=,$.\..\rts_c.gml>

//<:help eve=info,"鼠标右键行走,左键开火\r\n各色血球可以补血\r\n需要走过去碰一下\r\n回车键可开关聊天功能">

//<sys import=,$.\selectside.gml>
//<:mymap ParamCtrl#autorestart=loopcmd(-1,15000,5000,{<: eve=rbuttondown;>});>

⌨️ 快捷键说明

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