分享几个我常用的功能函数
魔兽地图编辑器吧
全部回复
仅看楼主
level 7
禾洛_ 楼主

2011年06月21日 02点06分 1
level 7
禾洛_ 楼主
function Angle4 takes real x1, real y1, real x2, real y2 returns real
     return bj_RADTODEG*Atan2(y2-y1, x2-x1)
endfunction
function Length4 takes real x1, real y1, real x2, real y2 returns real
     local real dx = x1-x2
     local real dy = y1-y2
     return SquareRoot(dx*dx + dy*dy)
endfunction
function SetX takes unit u, real x returns nothing
     set x = RMinBJ(x,GetRectMaxX(bj_mapInitialPlayableArea)+50)
     set x = RMaxBJ(x,GetRectMinX(bj_mapInitialPlayableArea)-50)
     call SetUnitX(u, x)
     set u = null
endfunction
function SetY takes unit u, real y returns nothing
     set y = RMinBJ(y,GetRectMaxY(bj_mapInitialPlayableArea)+50)
     set y = RMaxBJ(y,GetRectMinY(bj_mapInitialPlayableArea)-50)
     call SetUnitY(u, y)
     set u = null
endfunction
function SetPoint takes unit u, real x, real y returns nothing
     set x = RMinBJ(x,GetRectMaxX(bj_mapInitialPlayableArea)+50)
     set y = RMinBJ(y,GetRectMaxY(bj_mapInitialPlayableArea)+50)
     set x = RMaxBJ(x,GetRectMinX(bj_mapInitialPlayableArea)-50)
     set y = RMaxBJ(y,GetRectMinY(bj_mapInitialPlayableArea)-50)
     call SetUnitPosition(u, x, y)
     set u = null
endfunction
2011年06月21日 02点06分 2
level 10
J盲压力
2011年06月21日 02点06分 3
level 10
【卐】
[顶]
2011年06月21日 02点06分 4
level 7
禾洛_ 楼主
强烈建议YDWE把我的前2个函数封装进去,T里面只有求2点之间的角度和距离太蛋疼了。
2011年06月21日 02点06分 6
level 10
[汗]能看懂部分英文。我说J盲压力是说的RMinBJ这些不知道是什么……
2011年06月21日 02点06分 7
level 10
Real Min 实数两者最小值
2011年06月21日 02点06分 8
level 10
[汗]那么缩写所以说看不懂……J盲……
压力不在英文,在函数……
2011年06月21日 02点06分 9
level 10
2011年06月21日 02点06分 10
level 7
禾洛_ 楼主
我的边界检测函数就是从你这个帖子学来的,后来发现每次写的时候都要写
SetUnitX(u,SafeX(x))太麻烦了,就自己精简成我的那个了,以后只需要写
SetX(u,x)就行了。
2011年06月21日 02点06分 11
level 10
呵呵 学以致用 8错8错~
2011年06月21日 02点06分 12
level 11
[汗]一直用其他变量是记录一个变量 看到这个之后
知道用 Y=1+1 Y=Y+5
2011年06月21日 02点06分 13
level 13
已知2点坐标,求2点方向的...........表示还没学到......不懂..................
2011年06月21日 02点06分 14
吧务
level 14
自己觉得好用就行了,非要拿来说的话,还真是很难满足所有人的要求的。比如一般求角度和求距离都是要同时用的,所以那两次减法完全可以省去,然后不是每个人都需要角度而不是弧度,也不是每个人都是需要距离而不是距离的平方。又比如移动函数,很多时候都是像setunitx(getsafex(getunix(u)+d*cos(angle)))/setunity(getsafey(getuniy(u)+d*sin(angle))),所以这些都可以**到一个函数里,这样比你的还方便很多。再进一步,角度很多时候都是和单位面向角度一致的,所以连angle也可以省去了,比如这样moveunit(u,d)。所以,既然都用j了,这些就自己选择吧,没必要指望牵着别人的鼻子走,或者被别人牵着鼻子走
2011年06月21日 03点06分 15
1