?? land_s.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 + -