|
- crossDummy: function (x,y,range) {
- var unit,
- unitList = [], // 扫描到的障碍物
- containers = ["crate", "chest", "barrel", "largeurn", "urn", "explodingchest"]; // 障碍物类型
- if (!range) { // 障碍物与参照物的距离
- range = 10;
- }
- unit = getUnit(2); // 获得所有物品
- if (unit) {
- do {
- if (unit.name && unit.mode === 0 && getDistance(x, y, unit.x, unit.y) <= range && getDistance(me.x, me.y, unit.x, unit.y) <= range && containers.indexOf(unit.name.toLowerCase()) > -1) {
- // 筛选 距离传送点与角色间指定距离有交集的,未破坏的,在设定类型中的障碍物
- // say( unit.name + ': ' + ' x: ' + unit.x + ' y: ' + unit.y + ' rangme: ' + getDistance(me.x, me.y, unit.x, unit.y) + ' rangwp: ' + getDistance(x, y, unit.x, unit.y) );
- var has = 0; // 过滤掉重叠在一起的障碍物
- for (var i = 0; i < unitList.length; i++) {
- if( unitList[i].x == unit.x && unitList[i].y == unit.y ) {
- has = 1;
- }
- };
- if( !has ){
- unitList.push(copyUnit(unit));
- }
- }
- } while (unit.getNext());
- }
- if( unitList.length > 2 ){ // 如果有多个只取2个
- unitList = unitList.slice(0,2);
- }
- while (unitList.length > 0) { // 破坏障碍物
- unitList.sort(Sort.units);
- unit = unitList.shift();
- if (unit && (Pather.useTeleport || !checkCollision(me, unit, 0x4)) && unit.mode === 0) { //Misc.openChest(unit)
- Pather.moveToUnit( unit );
- Misc.click( 0, 0, unit );
- }
- }
- return true;
- }
复制代码 有40%的几率走不到传送, 有没好的解决方法?
|
|