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

📄 land_s.gml

📁 在线游戏最新服务器端源代码
💻 GML
字号:
<sys nameformat=W>

<style>
.Man_Normal{
	hit_kind=255;
	healthone="5,25,50,100";
	health=125;
	weapons="melee,sword,firesword";
	weaponb="1,1,1";
	weaponone="0,10,10";
	ammos="0,10,10";
	ammomax="0,30,30";
	ammoone="0,10,10";
	armor=0;
	armormax=200;
	armorone="50,100";
	curw=1;
	weapon=*weapons[curw];
	ammo=*ammos[curw];
	ifchged(curw)={<: weapon=*weapons[curw];ammo=*ammos[curw]>};
	OnWeapon={<: curw=*ep;neteventToG=wgroup,weapon,$[ep]>};

	OnSendfight={<: if=(ammos[curw]>0)?{<: ammos[curw]=(ammos[curw]-1);ammo=(ammo-1);eve=ammoed,(curw,ammo)>
		<$[weapon] user=$[id];fly=line($[xpos]+$[dx],$[ypos]+$[dy],$[objpos],speed,2)></$[weapon]>}>};
	OnFire={<: netcreatecmd=netcmdbase;walk=null;bGo=0;anikind=fight;autoanicmd=1;forwordto=$[ep];
		objpos=*pid.nearcangopoint($[pos],$[ep],18);
		paramCtrl#tr=loopt(1,anisteps,0,7,1,70,Endfight);
		neteventToG=wgroup,fire,(objpos,ammo)>};
	OnHit={<: hit1=*eventfrom.hit1;hit2=*eventfrom.hit2;
		if=(hit2<armor)?{armor=(armor-hit2);hit2=0}:{hit2=(hit2-armor);armor=0};hit1=(hit1+hit2);
		health=(health-hit1);eventfrom.eve=hited;if=(health<1)?{eventfrom.eve=win,$[id];eve=dead}>};

	OnGun={<: w_k=*eventfrom.p;w_o=*weaponone[w_k];w_b=*weaponb[w_k];am_c=*ammos[w_k];am_m=*ammomax[w_k];
		if=(w_b==0)?{weaponb[w_k]=1};if=(am_c<am_m)?{if=(am_c<w_o)?{am_c=w_o}:{am_c=(am_c+1)};ammos[w_k]=*am_c;eve=Ammoed,*w_k,*am_c;;eventfrom.eve=hited}>};
	OnHealth={<: h_k=*eventfrom.p;h_o=*healthone[h_k];if=(health<200)?{health=(health+h_o);if=(health>200)?{health=200};eventfrom.eve=hited}>};
	OnAmmo={<: am_k=*eventfrom.p;am_c=*ammos[am_k];am_m=*ammomax[am_k];am_o=*ammoone[am_k];
		if=(am_c<am_m)?{am_c=(am_c+am_o);if=(am_c>am_m)?{am_c=*am_m};ammos[am_k]=*am_c;if=(am_k==curw)?{ammo=*am_c};eventfrom.eve=hited;eve=ammoed,(am_k,am_c)}>};
	OnAmmoed={<: neteventToG=wgroup,ammo,$[ep]>};
	OnArmor={<: ar_k=*eventfrom.p;ar_c=*armor;ar_m=200;ar_o=*armorone[ar_k];
		if=(ar_c<ar_m)?{ar_c=(ar_c+ar_o);if=(ar_c>ar_m)?{ar_c=*ar_m};armor=*ar_c;eventfrom.eve=hited}>};
	OnTele={<: neteventToG=wgroup,tele,$[pos];to=*eventfrom.to;pos=*to;eve=teled>};
	OnTeled={<: neteventToG=wgroup,teled,$[pos]>}:
}
.Man_Dead{
	hit_kind=0;
	OnRun=null;
	OnFire=null;
	OnHit=null;
	OnSendfight=null;
	OnEndfight=null;
	paramCtrl=loopt(1,anisteps,0,7,1,170,waitrestart);
	OnReMake={<: eve=pos;eve=reset>};
}
.Man{
	fen=0;
	mutisrc=stand($.\..\imgs\ani\m_ln_f.ale,8)walk($.\..\imgs\ani\m_ln_r.ale,8)fight($.\..\imgs\ani\m_ln_f.ale,8)death($.\..\imgs\ani\m_ln_d.ale,4)snarl($.\..\imgs\ani\m_ln_o.ale,4);
	NetParam=health,fen,weapon,armor;
	OnCreate={<: ownername.man=*id>};
	OnPos={<: pos=$[&mymapbk.randpoint(4,"草地","花草地")]>};
	OnWin={<: switch(ep){case $[id]:fen=(fen-1);break;default:fen=(fen+1);}>};
}
.weapon:div{
	pid=mymap;
	anishow=1;
	zorder=top;
	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>})>};
	OnFlyend#h={<: HitTest=mutipoint(hit_kind,255,point(0,0),hitok,hit);paramctrl=loopt(1,alpha,170,50,20,50,del)>};
	OnHited={<: del=1>};
	Onwin={<: user.eve=win,$[ep];del=1>};
	OnFlyend={<: paramctrl#s=null;paramctrl=timer(100,del)>};
}
.melee:weapon{
	delay=10;
	hit1=25;
	hit2=25;
}
.sword:weapon{
	speed=8000;
	delay=400;
	hit1=30;
	hit2=50;
}
.firesword:weapon{
	speed=8000;
	delay=600;
	hit1=40;
	hit2=70;
}
.item{
	pid=mymap;
	size=16,16;
	anishow=1;
	autozorder=1;
	p=0;
	OnCreate={<:cpu $[kind]=($[kind]+1)>};
	OnDestroy={<:cpu $[kind]=($[kind]-1)>};
	paramCtrl=timer(120000,del);

	WebObj=wgroup,player;
	NetParam=pos,p;
	ownername="";
	netcreatecmd="#($[net],$[name],$[pos],$[p])";

	HitTest=mutipoint(eat_kind,255,point(0,0),hitit,$[kind]);
	Onhitit={};
	OnHited={<: del=1>};
}
.health:img{
	kind=health;
	net=HL;
	src=$.\imgs\misc\health.ale;
	class=item;
	HitTest=mutipoint(eat_kind,255,point(0,0),hitit,health);
}
.ammo:img{
	kind=ammo;
	net=AM;
	src=$.\imgs\misc\ammo.ale;
	class=item;
	HitTest=mutipoint(eat_kind,255,point(0,0),hitit,ammo);
}
.armor:img{
	kind=armor;
	net=AR;
	src=$.\imgs\misc\armor.ale;
	class=item;
	HitTest=mutipoint(eat_kind,255,point(0,0),hitit,armor);
}
.Wolf:human{
	pid=mymap;
	anishow=1;
	autozorder=1;
	mutisrc=stand($.\..\imgs\ani\a_wolf_r.ale,8)walk($.\..\imgs\ani\a_wolf_r.ale,8)fight($.\..\imgs\ani\a_wolf_f.ale,8)death($.\..\imgs\ani\a_wolf_d.ale,4);
	OnCreate={<: walk=gotopos(xpos+10,ypos+10)><:mywarmake wolf_num=(wolf_num+1)>};
	OnDestroy={<:mywarmake wolf_num=(wolf_num-1)>};
//	OnWalkend={<: walk=goto(rand(400)-200,rand(400)-200);neteventToG=wgroup,go,rand(400)-200,rand(400)-200>};
	OnWalkend={<: goposx=(xpos+rand(400)-200);goposy=(ypos+rand(400)-200);paramCtrl=Timer(1500,mgo);>};
	Onmgo={<: walk=gotopos(goposx,goposy,50,12);neteventToG=wgroup,go,$[goposx],$[goposy]>};
	paramCtrl#T=Timer(20000,del);

	hit_kind=255;
	life=400;
	OnHit={<: life=(life-220);if=(life<10)?{<: class=WolfHitDie;>}:{neteventToG=wgroup,hit}>};
	NetParam=pos;
	ownername="";
	WebObj=wgroup,player;
	goposx=(xpos+rand(400)-200);
	goposy=(ypos+rand(400)-200);
	netcreatecmd='<Wolf name=$[name];pos=$[pos];walk=gotopos($[goposx],$[goposy],50,12);>';
}
.WolfHitDie{
	walk=null;
	onHit=null;
	neteventToG=wgroup,die;
	paramCtrl=Timer(1000,del);
	OnDestroy#2={<: if=(rand(3)>1)?{<quiver pos=$[xpos]-6,$[ypos]-18>}:{<bottle pos=$[xpos]-6,$[ypos]-16>}>}
}
.cpu{
	health=0;
	ammo=0;
	armor=0;
	draw=7:{TextOut(0,0,health=$[health],#FFFFFF);
		TextOut(0,20,ammo=$[ammo],#FFFFFF);
		TextOut(0,40,armor=$[armor],#FFFFFF)};
	paramCtrl#bottle=loopcmd(-1,100,6000,{<: if=(health<6)?{<: eve=health>}});
	Onhealth={<health pos=$[&mymapbk.randpoint(4,"草地","花草地")];p=(rand(4));c=*color[kind]>};
	paramCtrl#ammo=loopcmd(-1,1000,6000,{<: if=(ammo<3)?{<: eve=ammo>}});
	Onammo={<ammo pos=$[&mymapbk.randpoint(4,"草地","花草地")];p=1>};
	paramCtrl#armor=loopcmd(-1,1000,6000,{<: if=(armor<3)?{<: eve=armor>}});
	Onarmor={<armor pos=$[&mymapbk.randpoint(4,"草地","花草地")];p=(rand(2))>};
}
</style>

<sys import=desktop,$.\..\rts\rts_s.gml>

⌨️ 快捷键说明

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