📄 fw.js
字号:
if(u.children(1).style.display!="none"){
var aimu=eval(u.aimu)
dp.setv(this.getMinLen(u,aimu)[1])
this.setDir(u,dp)
this.setFight(u)
//if(aimu.task!="attack"){
// aimu.aimu=u.id
// aimu.task="attack"
//}
}
eval(u.aimu).chp-=0.2
}
}
if(u.task=="build"){
o=eval(u.aimu)
u.tmMove=parseInt(u.tmMove)+1
if(u.tmMove==10){
dp.setv(o.px==sp.x ? 0 : (o.px>sp.x ? 1 : -1),o.py==sp.y ? 0 : (o.py>sp.y ? 1 : -1))
this.setDir(u,dp)
this.setSpark(u)
}
o.bn=parseInt(o.bn)+1
var per=parseInt(0.3*o.bn/udf[o.name].btime)
o.children(0).children(1).children(0).style.width=per+"%"
if(per==50)
o.children(1).children(0).style.posLeft=-o.children(1).style.posWidth
if(per>=100){
o.children(1).children(0).style.posLeft=0
o.bn=-1
u.task=""
u.aimu=""
if(o.name=="0_academy"){
race[cRace].keyBuild+=o.name+","
if(menu_build.children(0).children.length==3){
menu_build.children(0).children(1).style.filter=""
menu_build.children(0).children(2).style.filter=""
}
}
if(o.name=="0_supply")
race[cRace].supply+=8
if(o.name=="0_barrack")
menu_work.children(0).children(3).style.filter=""
refVal()
u.children(2).innerHTML=""
if(o.name=="0_refinery")
o.children(2).innerHTML="<img src='block/ves_gas.gif' style=left:55;top:-20>"
}
}
if(u.aimPos!=""){
var a=u.aimPos.split(";"),ad,s
u.aimn=parseInt(u.aimn)
ad=a[u.aimn].split(",")
if(isNaN(ad[0])){
o=eval(ad[0])
if(u.task=="gasing"){
if(o.aimu=="")
o.aimu=u.id
if(o.aimu!=u.id){
dp.setv((parseInt(o.px)+1)==sp.x ? 0 : ((parseInt(o.px)+1)>sp.x ? 1 : -1),o.py==sp.y ? 0 : (o.py>sp.y ? 1 : -1))
this.setDir(u,dp)
return
}
}
u.tmMove=parseInt(u.tmMove)+1
if(u.tmMove==5){
if(u.task=="mining"){
dp.setv(o.px==sp.x ? 0 : (o.px>sp.x ? 1 : -1),o.py==sp.y ? 0 : (o.py>sp.y ? 1 : -1))
this.setDir(u,dp)
this.setSpark(u)
}
if(u.task=="gasing")
u.style.display="none"
}
if(u.tmMove<ad[1])
return
if(u.task=="gasing"){
u.style.display=""
o.aimu=""
}
u.children(2).innerHTML=""
}
else{
fw1.bList[2]=""
ep.setv(a[u.aimn])
u.path=this.getPath(sp,ep)
}
if(u.task=="mining"&&u.aimn==1)
u.children(1).children(0).style.posLeft=-u.cw
if(u.task=="gasing"&&u.aimn==1)
u.children(1).children(0).style.posLeft=-2*u.cw
if((u.task=="mining")&&u.aimn==2){
u.children(1).children(0).style.posLeft=0
race[cRace].mine+=8
refVal()
}
if((u.task=="gasing")&&u.aimn==2){
u.children(1).children(0).style.posLeft=0
race[cRace].ves+=8
refVal()
}
u.aimn=(u.aimn+1)%a.length
}
return
}
u.tmDir=(parseInt(u.tmDir)+1)%4
u.tmMove=(parseInt(u.tmMove)+1)%5
ep.setv(u.path.slice(0,(u.path+";").indexOf(";")))
ep.setv(ep.x*40-(u.cw-40)/2,ep.y*30-(u.cw-30)/2)
if(Math.abs(ep.x-u.style.posLeft)<u.speed)
u.style.posLeft=ep.x
if(Math.abs(ep.y-u.style.posTop)<u.speed)
u.style.posTop=ep.y
sp.setv(u.style.posLeft,u.style.posTop)
dp.setv(ep.x==sp.x ? 0 : (ep.x>sp.x ? 1 : -1),ep.y==sp.y ? 0 : (ep.y>sp.y ? 1 : -1))
if(u.task=="attack"){
var aimu=eval(u.aimu)
if(this.getMinLen(u,aimu)[0]<=udf[u.name].range&&Math.abs(u.px*40-(u.cw-40)/2-u.style.posLeft)<=u.speed&&Math.abs(u.py*30-(u.cw-30)/2-u.style.posTop)<=u.speed){
u.path=""
return
}
}
if(dp.v=="0,0"){
u.path=u.path.slice((u.path+";").indexOf(";")+1)
if(u.children(1).offsetWidth==u.offsetWidth*3)
u.children(1).scrollLeft=u.children(1).style.filter=="" ? 0 : 2*u.offsetWidth
if(u.path==""&&u.uType=="unit"){
this.searchEnemy()
}
return
}
this.setDir(u,dp)
if(dp.x*dp.y==0){
u.style.posLeft+=dp.x*u.speed
u.style.posTop+=dp.y*u.speed
}
else{
u.style.posLeft+=dp.x*(u.speed>2 ? u.speed-1 : u.speed)
if(u.tmDir!=0)
u.style.posTop+=dp.y*(u.speed>2 ? u.speed-1 : u.speed)
}
sp.setv(parseInt((u.style.posLeft+u.cw/2)/40),parseInt((u.style.posTop+u.cw/2)/30))
u.px=sp.x
u.py=sp.y
if(u.className=="unit_ground")
u.style.zIndex =sp.y
eval(u.id+"_mini").style.posLeft=sp.x*2
eval(u.id+"_mini").style.posTop=sp.y*2
}
this.searchEnemy=function(){
var n,u,aimu,a1=this.uList[3].split(","),a2=(this.uList[2]+","+this.uList[3]).split(",")
for(var i in a1){
u=eval(a1[i])
if(u.name!="0_scv"&&u.name!="0_medic"){
for(var j in a2){
aimu=eval(a2[j])
if(aimu.race!=u.race){
n=this.getMinLen(u,aimu)[0]
if(n<=6){
var sp=new pt(u.px,u.py),ep=new pt(aimu.px,aimu.py)
this.setUBlock(u)
this.bList[2]=""
u.path=this.getPath(sp,ep)
u.aimu=aimu.id
u.task="attack"
break
}
}
}
}
}
}
this.setDir=function(u,dp){
var n=2,f=""
if(dp.v=="1,1"||dp.v=="-1,1")
n=3
if(dp.v=="0,1")
n=4
if(dp.v=="-1,1")
f="fliph"
if(dp.v=="-1,0")
f="fliph"
if(dp.v=="-1,-1")
f="fliph"
if(dp.v=="0,-1")
n=0
if(dp.v=="1,-1"||dp.v=="-1,-1")
n=1
u.children(1).children(0).style.posTop=-n*u.children(1).style.posWidth
u.children(1).style.filter=f
u.face=n+f.slice(0,1)
if(u.mvstyle=="walk"&&u.tmMove==4){
u.pose=(parseInt(u.pose)+1)%4
n=u.pose<2 ? u.pose : (u.pose==2 ? 0 : 2)
u.children(1).scrollLeft=n*u.children(1).style.posWidth
}
}
this.inBlock=function(p){
return (";"+this.bList[0]+";"+this.bList[1]+";"+this.bList[2]+";").indexOf(";"+p.v+";")>-1 ? true : false
}
this.paint=function(p,c){
if(p.x>=0&&p.y>=0)
tbMap.rows(p.y).cells(p.x).bgColor=c
}
this.isPass=function(sp,ep){
var cp=new pt(sp.v),b=true
for(var ti=0;ti<500;ti++){
cp.setv(ep.x==cp.x ? cp.x : (ep.x>cp.x ? cp.x+1 : cp.x-1),ep.y==cp.y ? cp.y : (ep.y>cp.y ? cp.y+1 : cp.y-1))
if(this.inBlock(cp)){
b=false
break
}
if(cp.v==ep.v)
break
}
return b
}
this.getEndPos=function(ep,ut){
var rv=new Array("","")
var cp=new pt(),i,j,ol,o
var ad,a=new Array("0,0","1,0","1,1","0,1","-1,1","-1,0","-1,-1","0,-1","1,-1","2,0","2,1","2,2","1,2","0,2","-1,2","-2,2","-2,1","-2,0","-2,-1","-2,-2","-1,-2","0,-2","1,-2","2,-2","2,-1")
for(i=this.cEndPos;i<a.length;i++){
a[i]=a[i].split(",")
cp.setv(ep.x+parseInt(a[i][0]),ep.y+parseInt(a[i][1]))
if(ut=="airUnit"){
rv[0]=cp.v
break
}
else if(!this.inBlock(cp)&&cp.x>-1&&cp.y>-1){
if(ut=="mining"){
ad=this.uList[1].split(",")
for(j in ad){
o=eval(ad[j])
if(Math.abs(cp.x-o.px)+Math.abs(cp.y-o.py)==1){
rv[0]=cp.v
rv[1]=o.id
break
}
}
if(rv[0]!="")
break
}
else{
rv[0]=cp.v
break
}
}
}
this.cEndPos=i+1
return rv
}
this.getPath=function(sp,ep){
var cp=new pt(sp.v),op=new pt(),np=new pt()
var l="",s,f=0
while(cp.v!=ep.v){
np.setv(ep.x==cp.x ? cp.x : (ep.x>cp.x ? cp.x+1 : cp.x-1),ep.y==cp.y ? cp.y : (ep.y>cp.y ? cp.y+1 : cp.y-1))
if(this.inBlock(np)&&!this.inBlock(cp)&&f==0){
l+=cp.v+";"
op.setv(cp.v)
}
if(!this.inBlock(np)&&this.inBlock(cp)){
s=this.getSeg(op,np)
f=s=="" ? 1 : 0
l+=s
}
if(!this.inBlock(cp)&&f==0)
l+=cp.v+";"
cp.setv(np.v)
}
l=sp.v+";"+l
l=f==0 ? l+ep.v : l.slice(0,-1)
a=l.split(";")
l=""
var tp1=new pt(),tp2=new pt()
for(i=0;i<a.length-1;i++){
tp1.setv(a[i])
n=i
for(j=i+1;j<a.length;j++){
tp2.setv(a[j])
if(this.isPass(tp1,tp2)){
n=j
}
}
if(i!=0)
l+=tp1.v+";"
tp2.setv(a[n])
l+=tp2.v+";"
i=n
}
l=l.slice(0,-1)
return l
}
this.getSeg=function(sp,ep){
var bpt=new pt(),cpt=new pt(),bp1=new pt(),bp2=new pt(),cp1=new pt(sp.v),cp2=new pt(sp.v)
var l="",l1="",l2="",f,open1=true,open2=true
bp1.setv(ep.x==sp.x ? sp.x : (ep.x>sp.x ? sp.x+1 : sp.x-1),ep.y==sp.y ? sp.y : (ep.y>sp.y ? sp.y+1 : sp.y-1))
bp2.setv(bp1.v)
for(var ti=0;ti<100;ti++){
f=0
for(i=0;i<14;i++){
cpt.setv(cp1.x+this.adp[i][0],cp1.y+this.adp[i][1])
if(bp1.v==cpt.v)
f=1
if(f==1&&!this.inBlock(cpt)&&this.adp[i][0]*this.adp[i][1]==0)
break
if(this.inBlock(cpt))
bpt.setv(cpt.v)
}
bp1.setv(bpt.v)
cp1.setv(cpt.v)
l1+=cp1.v+";"
f=0
for(i=13;i>=0;i--){
cpt.setv(cp2.x+this.adp[i][0],cp2.y+this.adp[i][1])
if(bp2.v==cpt.v)
f=1
if(f==1&&!this.inBlock(cpt)&&this.adp[i][0]*this.adp[i][1]==0)
break
bpt.setv(cpt.v)
}
bp2.setv(bpt.v)
cp2.setv(cpt.v)
if(cp1.v==sp.v&&cp2.v==sp.v)
break
l2+=cp2.v+";"
if(cp1.x<0||cp1.y<0)
open1=false
if(cp2.x<0||cp2.y<0)
open2=false
if(!open1&&!open2)
break
if(cp1.v==ep.v&&open1){
l=l1
break
}
if(cp2.v==ep.v&&open2){
l=l2
break
}
}
return l
}
}
function pt(x,y){
this.setv=function(x,y){
if(y!=null){
this.x=parseInt(x)
this.y=parseInt(y)
}
else{
var a=x.split(",")
this.x=parseInt(a[0])
this.y=parseInt(a[1])
}
this.v=this.x+","+this.y
}
if(x!=null)
this.setv(x,y)
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -