?? main2.gml
字號:
<style>
.ManNormal{
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;
curw=2;
armor=0;
//由Ani中的UserStr發出
OnSendfight={<: if=(ammob>0)?{<$[weapon] me=$[me];fly=line($[xpos]+$[dx],$[ypos]+$[dy],$[objpos],speed,0)></$[weapon]>
}:{<: if=(me==1)?{playsnd=$.\sound\weapons\noammo.gsm;&mysocket.eve=Info,"沒彈藥啦!",2000}:{&mysocket.eve=Info,"$[ownername]沒彈藥啦!",2000}}>};
OnEndfight={<: autoanicmd=0;anikind=stand>};
//同步射擊
OnFired={<: walk=null;pos=$[ep0],$[ep1];anikind=fight;autoanicmd=1;forwordto=$[ep2],$[ep3];objpos=$[ep2],$[ep3];
if=(ammo>0)?{ammob=1}:{ammob=0};ammo=*ep[4];ammos[curw]=*ammo;paramCtrl=loopt(1,anisteps,0,4,1,70,endfight)>};
OnFireend={<: >};
// OnTele={<: pos=*ep;playsnd=$.\sound\world\telein.gsm;eve=Teleing>};
OnTeled={<: pos=*ep;playsnd=$.\sound\world\teleout.gsm;eve=Teleing>};
OnTeleing={<teleing pos=$[pos]></teleing>};
//clear
paramCtrl#begin=loopt(1,alpha,0,255,10,10);
paramCtrl#in=loopcmd(1,50,1,{<: playsnd=$.\sound\world\telein.gsm>};);
}
.ManDie{
health=0;
OnFired=null;
OnSendfight=null;
OnEndfight=null;
paramCtrl=loopt(1,anisteps,0,5,1,170,CanRestart);
}
.Man{
mutisrc=stand($.\..\imgs\ani\m_qk_f.ale,8)walk($.\..\imgs\ani\m_qk_r.ale,8)fight($.\..\imgs\ani\m_qk_f.ale,8)death($.\..\imgs\ani\m_qk_d.ale,4);
OnDestroy={<: playsnd=$.\sound\world\teleout.gsm>};//<:info mannum=(mannum-1)>
OnWeapon={<: if=(curw!=ep)?{<: curw=*ep><sys playsnd=$.\sound\weapons\change.gsm>}>};
ifchged(curw)={<: weapon=*weapons[curw];ammo=*ammos[curw]>};
ifchged(weapon)={<: &info.eve=weapon,(curw)>};
ifchged(ammo)={<: &info.eve=ammo,(ammo)>};
ifchged(armor)={<: &info.eve=armor,(armor)>};
curw=2;
armor=0;
}
.ManUser{
draw#main={wv();ellipse(0,0,22,12,R230G220B100,0);};
draw#health=9:{wv();rect(-16,-52,16,-48,0);bar(-15,-51,-15+health*3/20,-49,red);TextOut(-20,-50,$[fen],#FFFFFF)};
OnCreate#user={<: &mysocket.eve=HideInfo;&info.manname=*ownername;&info.mainmanid=*id;pid.man=*id;pid.pid.man=*id;pid.eve=life;
OnChar#w={<: eve=weapon,*ep>};
OnChar#end={<: if=(focus==0)?{<:charedit eve=can,1>}>};
>};
me=1;
OnDie={<: kill=$[ep];playsnd=$.\..\sound\die1.adm;&mymap.eve=dead;class=RtsDie>};
OnCanRestart={<:mysocket eve=showinfo,"你死了!按鼠標鍵繼續";&mymap.eve=canreset>};
ifchg(health)={<: if=($[health]>$[_new_health])?{paramCtrl#flash=loopt(1,alpha,20,255,40,0)}>};
ifchged(health)={<: &info.eve=health,(health)>};
OnLButtonDown={};
OnGun={<: neteventToS=weapon,$[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}}>};
}
.ManOther{
health=125;
fen=0;
me=0;
draw#health=9:{wv();rect(-16,-52,16,-48,0);bar(-15,-51,-15+health*3/20,-49,red);TextOut(-20,-50,$[fen],#FFFFFF)};
OnDie={<: kill=$[ep];playsnd=$.\..\sound\die.adm;class=RtsDie>};
ifchg(health)={<: if=($[health]>$[_new_health])?{paramCtrl#flash=loopt(1,alpha,0,255,10,0)}>};
}
.firelight:img{
pid=mymap;
autozorder=1;
anishow=1;
size=20,30;
src=$.\imgs\misc\fire.gif#8,1;
showmode=light;
s=(rand(1000));
paramCtrl=timer(s,fire);
Onfire={<: paramCtrl=loops(frame,0,7,1,100);draw=-1:{wv();CircleLight(10,20,rd,#FF3300)};>};
ParamCtrl#s=loop(rd,10,20,2,50);
}
.fire:img{
pid=mymap;
autozorder=1;
src=$.\..\maps\mapimg\house\quake\fire.ale;
OnCreate={<firelight pos=($[xpos]-10),($[ypos]-68)>};
}
.firew:img{
pid=mymap;
autozorder=1;
src=$.\..\maps\mapimg\house\quake\firewood.ale;
OnCreate={<firelight pos=($[xpos]-10),($[ypos]-42)>};
}
.teleing:div{
rect=-50,-50,50,50;
anishow=1;
autozorder=1;
pid=mymap;
draw={wv();ellipse(0,0,rd,6,#efefef,0);
ellipse(0,0,6,rd,#efefef,0);
torus(0,0,rd/2+2,3,R50G15B30);}
ParamCtrl=loopt(1,rd,1,50,2,10,del);
}
.tele:img{
pid=mymap;
anishow=1;
autozorder=1;
size=20,20;
src=$.\mapimg\house\quake\door.ale;
ParamCtrl=loops(frame,0,4,1,60);
}
.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#mask;
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{
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=$.\sound\items\n_health.gsm>};
}
.ammo:img{
class=item;
src=$.\imgs\misc\ammo.ale;
OnCreate={<: frame=(p-1);draw=-1:{wv();CircleLight(0,0,rd,#FF0000)};>};
OnDestroy={<: playsnd=$.\sound\misc\am_pkup.gsm>};
}
.armor:img{
class=item;
src=$.\imgs\misc\armor.ale;
OnCreate={<: frame=*p;draw=-1:{wv();CircleLight(0,0,rd,#66FF00)}>};
OnDestroy={<: playsnd=$.\sound\misc\ar2_pkup.gsm>};
}
.gun:img{
class=item;
src=$.\imgs\misc\guns.ale;
OnCreate={<: frame=*p;draw=-1:{wv();CircleLight(0,0,rd,#CC00FF)}>};
OnDestroy={<: playsnd=$.\sound\misc\w_pkup.gsm>};
}
.weapon:div{
pid=mymap;
anishow=1;
zorder=top;
size=1,1;
alpha=170;
speed=2000;
far=200;
delay=1000;
me=0;
OnCreate={<: if=(me==1)?{<:mymap bf=0;paramCtrl#w=loopcmd(1,$[delay],10,{<: bf=1;paramCtrl#w=null>})>}>};
}
.melee:weapon{
far=10;
}
.machinegun:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\machinegun\machgf1b.gsm>};
speed=8000;
delay=100;
}
.shotgun:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\shotgun\sshotf1b.gsm>};
speed=6000;
delay=1000;
draw={wv();linemax(0,0,flysx-xpos,flysy-ypos,#CC6600,3);
lightline(0,0,flysx-xpos,flysy-ypos,#DFDFDF,alpha);
CircleLight(0,0,flash,R120G70B0);
ellipse(0,0,2,flash,#ef2fef,0);
lightline(3,3,flysx-xpos+3,flysy-ypos+3,#DFDFDF,alpha);
CircleLight(3,3,flash,R120G70B0);
ellipse(3,3,2,flash,#ef2fef,0);
};
paramctrl#f=loop(flash,1,12,3,10);
OnFlyend={<: paramctrl#s=null;paramctrl=loopt(1,alpha,170,50,20,50,del)>};
}
.grenade:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\grenade\grenlf1a.gsm>};
speed=2000;
delay=1000;
draw={wv();lightline(0,0,flysx-xpos,flysy-ypos,#FF0000,alpha);
CircleLight(0,0,flash,#FF0000);
};
paramctrl#f=loop(flash,2,10,2,10);
OnFlyend={<: paramctrl#s=null;paramctrl=loopt(1,alpha,250,20,20,50,del);draw={wv();CircleLight(0,0,alpha/20,#FF0000);}>};
}
.explode1:img{
pid=mymap;
anishow=1;
zorder=top;
src=$.\..\imgs\misc\bomb00.ale;
OnCreate={<: paramctrl=loopt(1,frame,-1,2,1,60,del);>};
}
.explode2:img{
pid=mymap;
anishow=1;
autozorder=1;
src=$.\..\imgs\misc\bomb01.ale;
OnCreate={<: paramctrl=loopt(1,frame,-1,6,1,50,del);>};
paramctrl=loop(r,60,200,40,10);
draw={wv();CircleLight(0,0,r,#CC0000);};
}
.rocket:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\rocket\rocklf1a.gsm>};
delay=1000;
draw={wv();linemax(0,0,flysx-xpos,flysy-ypos,R220G180B120,3);
lightline(0,0,flysx-xpos,flysy-ypos,#DFDFDF,alpha);
CircleLight(0,0,flash,#FF9966);
};
paramctrl#f=loop(flash,10,30,10,10);
paramctrl#s=loopcmd(-1,0,200,{<: playsnd=$.\sound\weapons\rocket\rockfly.gsm>});
OnFlyend={<: paramctrl#s=null;paramctrl=timer(100,del)><explode2 pos=$[pos]><: playsnd=$.\sound\weapons\rocket\rocklx1a.gsm>};
}
.lightning:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\lightning\lg_fire.gsm>};
speed=6000;
delay=1000;
draw={wv();lightline(0,0,flysx-xpos,flysy-ypos,#0000FF,alpha);CircleLight(0,0,flash,#0000FF)};
paramctrl#f=loop(flash,2,10,2,10);
OnFlyend={<: paramctrl#s=null;paramctrl=loopt(1,alpha,250,20,20,50,del);draw={wv();CircleLight(0,0,alpha/20,#00FFFF);}>};
}
.railgun:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\railgun\railgf1a.gsm>};
speed=10000;
delay=1200;
hit=100;
draw={wv();lightline(0,0,flysx-xpos,flysy-ypos,#00FFFF,alpha);CircleLight(0,0,flash,#00FFFF)};
paramctrl#f=loop(flash,2,10,4,10);
OnFlyend={<: paramctrl#s=null;paramCtrl#r=null;paramctrl=loopt(1,alpha,250,20,20,50,del);draw={wv();CircleLight(0,0,alpha/20,#33FFFF);}>};
}
.plusma:weapon{
OnCreate#s={<: playsnd=$.\sound\weapons\plusma\hyprbf1a.gsm>};
speed=5000;
delay=100;
draw={wv();lightline(0,0,flysx-xpos,flysy-ypos,#00FFFF,alpha);
CircleLight(0,0,flash,#00FFFF);
};
paramctrl#f=loop(flash,10,30,10,10);
OnFlyend={<: paramctrl#s=null;paramctrl=loopt(1,alpha,250,20,20,50,del);draw={wv();CircleLight(0,0,alpha/5,#00FFFF);}>};
}
.bfg:weapon{
speed=5000;
delay=200;
hit=50;
}
//----顯示信息
.info_txt:text{
anti=1;
font=Impact,36;
color=#FFCC00;
}
.am_i:img{
size=40,40;
src=$.\imgs\misc\ammo.gif#mask,8,1;
}
.gun_i:img{
size=80,80;
src=$.\imgs\misc\guns.gif#mask,9,1;
}
.ar_i:img{
size=49,39;
src=$.\imgs\misc\armor.gif#mask;
}
.man_i:img{
size=70,70;
src=$.\imgs\misc\header.gif#mask,3,1;
}
.info:div{
size=710,80;
pos=0,pid.height-height;width=pid.width;
zorder=top;
clip=0;
mid=0;
mname="";
amnum=30;
health=100;
ar=20;
OnCreate={<am_i pos=30,30;pid.am_i=*id><info_txt pos=100,30;pid.am_t=*id;src="10"><gun_i pos=170,10;pid.gun_i=*id>
<man_i pos=(pid.width-width)/2,10;pid.hi_i=*id><info_txt pos=pid.width/2+40,30;pid.life_t=*id;src="125">
<ar_i pos=pid.width-150,30;pid.ar_i=*id><info_txt pos=pid.width-80,30;pid.ar_t=*id;src="0">};
OnSize={<: pos=0,pid.height-height;width=pid.width;
hi_i.xpos=(width-hi_i.width)/2;life_t.xpos=pid.width/2+40;
ar_i.xpos=pid.width-150;ar_t.xpos=pid.width-80;>};
Onammo={<: am=*ep;am_t.src=*am>};
OnWeapon={<: if=(ep==0)?{am_i.show=0;}:{am_i.show=1;am_i.frame=(ep-1);};gun_i.frame=*ep>};
OnHealth={<: health=*ep;if=(health<25)?{life_t.color=#FF0000}:{life_t.color=#FFCC00};life_t.src=*health>};
Onarmor={<: ar=*ep;ar_t.src=*ar>};
// ifchged(ping)={<:info_ping if=($[ping]<100)?{src=優秀($[ping])}:{if=($[ping]<400)?{src=良好($[ping])}:{if=($[ping]<800)?{src=中等($[ping])}:{<: src=差($[ping])><:mysocket event=info,網速太慢!,5000>}}}>};
}
.info_ammo:img{
src=$.\imgs\misc\guns.ale;
// rect=-7,-8,8,5;
no=1;num=0;
numc=#666666;
OnCreate={<: frame=*no;pos=35*(no-1),12;pid.a$[no]=*id;>};
ParamCtrl#s=loop(rd,10,30,2,50);
draw=-1:{wv();
CircleLight(0,0,10+rd/4,#3366FF);
textout(-6,6,$[num],$[numc]);
}
OnClick={<: num=(num+5);eve=num,*num>};
OnSel={<: draw#s=-1:{wv();torus(0,0,rd/3+2,3,#009900);}>};
OnGet={<: draw#s=-1:{wv();ellipse(0,0,6,rd,#FF0000,0);ellipse(0,0,30-rd,6,#FF0000,0);}>};
OnNum={<: num=$[ep];if=(num>0)?{if=(num<10)?{numc=#FF6666}:{numc=#66FF66}}:{numc=#666666};>};
}
.hud:div{
size=640,30;
pos=0,0;
bkimg=dark(4);
width=pid.width;
OnSize={<: width=pid.width;enumsub={<: eve=size>}>};
OnCreate={<divammo pid.ammo=*id;pos=pid.width-300,2></divammo>};
}
.divammo:div{
size=300,pid.height;
OnSize={<: pos=pid.width-width,2>};
OnCreate={<info_ammo no=1>
<info_ammo no=2>
<info_ammo no=3>
<info_ammo no=4>
<info_ammo no=5>
<info_ammo no=6>
<info_ammo no=7>
<info_ammo no=8>};
}
</style>
//<hud name=title></hud>
<info name=info></info>
<sys sethotkey=1,{<: man.eve=gun,0>}>
<sys sethotkey=2,{<: man.eve=gun,1>}>
<sys sethotkey=3,{<: man.eve=gun,2>}>
<sys sethotkey=4,{<: man.eve=gun,3>}>
<sys sethotkey=5,{<: man.eve=gun,4>}>
<sys sethotkey=6,{<: man.eve=gun,5>}>
<sys sethotkey=7,{<: man.eve=gun,6>}>
<sys sethotkey=8,{<: man.eve=gun,7>}>
<sys sethotkey=9,{<: man.eve=gun,8>}>
#define HL <health name=%1;pos=%2,%3;p=%4>
#define AM <ammo name=%1;pos=%2,%3;p=%4>
#define AR <armor name=%1;pos=%2,%3;p=%4>
#define GN <gun name=%1;pos=%2,%3;p=%4>
#define MG <machinegun name=%1;pos=%2,%3;p=%4>
#define SG <shotgun name=%1;pos=%2,%3;p=%4>
#define GL <grenade name=%1;pos=%2,%3;p=%4>
#define RL <rocket name=%1;pos=%2,%3;p=%4>
#define LG <lightting name=%1;pos=%2,%3;p=%4>
#define RG <railgun name=%1;pos=%2,%3;p=%4>
#define PG <plusma name=%1;pos=%2,%3;p=%4>
#define BG <bfg name=%1;pos=%2,%3;p=%4>
<: include=$.\..\rts_c.gml>
<:help eve=info,"鼠標右鍵行走,左鍵開火\r\n數字鍵換槍,有1-9號槍可以換\r\n各色血球可以補血\r\n各種彈藥可以補充\r\n各種武器可以揀\r\n需要走過去碰一下\r\n回車鍵可開關聊天功能">
<:mymap &mymapbk.lightmask=$.\..\..\maps\mapimg\lightmask.jpg>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -