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

📄 user.gml

📁 在线游戏最新服务器端源代码
💻 GML
字号:
#define F <:%1 eve=fired,%2,%3>
#define G <:%1 eve=go,%2,%3>
#define R <:%1 eve=runto,%2,%3>

<sys import=,$.\main.gml>

<sys sethotkey=1,{<: myid.eve=gun,0>}>
<sys sethotkey=2,{<: myid.eve=gun,1>}>
<sys sethotkey=3,{<: myid.eve=gun,2>}>
<sys sethotkey=4,{<: myid.eve=gun,3>}>
<sys sethotkey=5,{<: myid.eve=gun,4>}>
<sys sethotkey=6,{<: myid.eve=gun,5>}>
<sys sethotkey=7,{<: myid.eve=gun,6>}>
<sys sethotkey=8,{<: myid.eve=gun,7>}>
<sys sethotkey=9,{<: myid.eve=gun,8>}>

<style>
.user_play{
	OnWgo={<: socket.send=#e,run,$[ep]>};
	OnFire={<: socket.send=#e,fire,$[ep]>};
	OnReset={<: neteventToS=remake>};
}
.user_look{
	OnWgo=null;
	OnFire=null;
}
.user_dead{
//	paramCtrl=loopt(1,anisteps,0,6,1,170,CanRestart);
}
.UserAll{
	fen=0;
	kill=0;
	score=0;
	bekill=0;
	health=125;
	weapons="melee,machinegun,shotgun,grenade,rocket,lightning,railgun,plusma,bfg";
	ammos="0,100,10,0,0,0,0,0,0";
	curw=2;armour=0;
	weapon=*weapons[curw];
	ammo=*ammos[curw];
	ammob=1;
	ifchged(kill)={<: eve=Showdata>};
	ifchged(score)={<: eve=Showdata>};
	ifchged(bekill)={<: eve=Showdata>};
	OnShowdata={<: pdata.src=$[fen],$[kill],$[score],$[bekill]>};
	OnHl={<: health=$[ep];pman.health=$[ep]>};
	OnFen={<: fen=$[ep];pman.fen=$[ep];eve=Showdata>};
	OnReset={<: neteventToS=remake>};
	OnStand={<: pman.pos=$[ep]>};
	OnAmmo={<: am_k=*ep[0];am_c=*ep[1];ammos[am_k]=*am_c;if=(curw==am_k)?{ammo=*am_c;if=(ammo>0)?{ammob=1}:{ammob=0;pman.ammob=0}}>};
	OnWeapon={<: if=(curw!=ep)?{curw=*ep}>};
	ifchged(curw)={<: weapon=*weapons[curw];ammo=*ammos[curw];pman.eve=Weapon,(weapon)>};
	OnNoammo={<: ammos[curw]=0;ammo=0;ammob=0;pman.eve=noammo,$[ep]>};
	curw=2;
	armor=0;

	OnUser={<: u=$[ep0];fen=$[ep1];kill=$[ep2];score=$[ep3];bekill=$[ep4];
		switch(u){case 0:break;
		case 1:pman.eve=go,$[ep5];break;
		case 2:pman.eve=turn;break;
		case 3:pman.eve=death;break;
		};u=null>};
	OnPos={<: pman.pos=$[ep]>};
	OnDestroy#m={<: pman.del=1>};
	OnFired={<: ammo=*ep[2];ammos[curw]=*ammo;pman.eve=fired,$[ep]>};
	Onfireout={<: ammo=(ammo-1);ammos[curw]=*ammo>};
	OnGo={<: pman.eve=go,$[ep]>};
	OnRunTo={<: pman.eve=run,$[ep]>};
	OnSide={<: neteventtos=side,$[ep]>};
	OnSided={<: side=$[ep0];health=$[ep3];score=$[ep4];bekill=$[ep5];fen=0;kill=0;
		pman.health=$[ep3];pman.fen=0;eve=pos,$[ep1],$[ep2];
		switch(side){
		case 0:class=user_look;pmode.src="旁观";pmode.color=#88EE88;break;
		case 1:class=user_play;pmode.src="红方";pmode.color=#FF8888;break;
		case 2:class=user_play;pmode.src="蓝方";pmode.color=#8888FF;break;
		case 3:class=user_play;pmode.src="战斗";pmode.color=#FFFF88;break;
		};
		pman.eve=side,$[ep0];
	>};
	OnMode={<: pmode.src=$[ep]>};
	OnData={<: pdata.src=$[ep]>};
	onChat={<flychattxt pid=$[map];src=$[ep];chatfrom=$[pman];>};
}
.UserMe{
//	OnPos#m={<: map.viewfollow=*pman>};
	OnCreate#m={<UserManM man='我'><: socket.eve=HideInfo;map.pid.pseldlg.show=1>};
	OnSided#m={<: switch(side){
		case 0:map.eve=dead;break;
		case 1:map.eve=life,$[pman];break;
		case 2:map.eve=life,$[pman];break;
		case 3:map.eve=life,$[pman];break;
		};
	>};
	OnCanRestart={<: socket.eve=showinfo,("你死了!按鼠标键继续");map.eve=canreset>};
	OnRestart={<: socket.eve=HideInfo;class=user_play;pman.eve=restart,$[ep];map.eve=life,$[pman]>};
	OnDie={<: kill=$[ep];map.eve=dead;class=user_dead;pman.eve=die>};
	OnGun={<: if=(curw!=ep)?{neteventtos=weapon,$[ep]}>};
	OnNoammo#s={<: playsnd=$.\sound\weapons\noammo.gsm;socket.eve=Info,"没弹药啦!",2000>};
	ifchged(health)={<: topid.phud.eve=health,(health)>};
	ifchged(weapon)={<: topid.phud.eve=weapon,(curw)>};
	ifchged(ammo)={<: topid.phud.eve=ammo,(ammo)>};
	ifchged(armor)={<: topid.phud.eve=armor,(armor)>};
}
.UserOther{
	OnCreate#m={<UserManO man=$[ownername];pos=$[x],$[y]>};
	OnRestart={<: class=user_play;pman.eve=restart,$[ep]>};
	OnDie={<: kill=$[ep];class=user_dead;pman.eve=die>};
	OnNoammo#s={<: socket.eve=Info,"$[ownername]没弹药啦!",2000>};
}
.RtsMapN{
	bgo=1;
	bf=1;
	viewfollow=*man;
	OnLButtonDown={<: eve=LbDown>};
	OnLButtonUp={<: eve=LbUp>};
	OnRButtonDown={<: eve=RbDown>};
	OnRButtonUp={<: eve=RbUp>};
}
.RtsMapD1{
	bgo=0;
	bf=0;
	viewfollow=mouse;
	OnLButtonDown=null;
	OnLButtonUp=null;
	OnRButtonDown=null;
	OnRButtonUp=null;
}
.RtsMapD2{
	OnLButtonDown={<: eve=reset>}
	OnRbuttonDown={<: eve=reset>};
}
.MyMap{
//	pid.map=*id;
	cache=1;
	pathfinder=0;
	movestep=10;
	size=pid.width,pid.height;
	OnSize={<: size=pid.width,pid.height>};
	OnLbDown={<: if=(bf==1)?{<: pid.myid.eve=fire,$[mousepos]>}>};
//	OnLbUp={<: if=(bf==1)?{<: pid.myid.eve=firend,$[mousepos]>}>};
	OnRbDown={<: if=(bgo==1)?{<: pid.myid.eve=wgo,$[mousepos]>}>};
//	OnRbUp={<: if=(bgo==1)?{<: pid.myid.eve=wgoend,$[mousepos]>}>};
	OnLife={<: man=$[ep];class=RtsMapN>};
	OnDead={<: class=RtsMapD1>};
	OnCanReset={<: class=RtsMapD2>};
	OnReset={<: pid.myid.eve=reset>};
//	OnIJOIN=null;
	&mymapbk.lightmask=$.\..\..\maps\mapimg\lightmask.jpg;
	class=RtsMapD1;
}
.MyUserBar{
}
.MyChatBar{
}
.MyChatEdit{
}
.MyFun{
	OnCreate={<SMap>};
}
.game:text{
	show=0;
}
</style>

//<:mymap class=MyMap>
<: map.class=MyMap>

<sys import=,$.\selectside.gml>
<: onselectside={<: myid.eve=side,$[ep];pseldlg.show=0>}>

<sys sethotkey=Esc,{<: if=(pseldlg.show==1)?{pseldlg.show=0}:{pseldlg.show=1}>}>

//<: location[0]=(rand(1000))>

⌨️ 快捷键说明

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