level 8
月下戰鬼L
楼主
脚本是从网上下载的...但是却没有效果而且是乱码。。。求助...
/*--------------------------------------------------------------------------
丂嫮媩丒嬤愙幩寕僗僋儕僾僩 嶌1-239
亂奣梫亃
嫮媩僗僉儖庢摼幰偼{wtype:3}偺晲婍偺嵟戝幩掱偑侾憹偊傑偡
嬤愙幩寕僗僉儖庢摼幰偼{wtype:3}偺晲婍偺嵟掅幩掱偑侾偵側傝傑偡
憰旛偟偰傞晲婍傛傝幩掱偑挿偄晲婍帩偭偰偰傕
憰旛偟偰傞晲婍偺幩掱偟偐峴摦斖埻偱昞帵偝傟側偄"巇條"傪廋惓
傢偞傢偞if暥偱暘婒偝偣偰傞偺傪尒傞偵僶僌偠傖側偄傫偩傛側偀乧
偙偺僗僋儕僾僩傪摫擖偡傞応崌
幩掱昞帵廋惓僗僋儕僾僩偼摫擖偟側偄偱偔偩偝偄
嫮媩僗僉儖偺僉乕儚乕僪仺'superbow'
嬤愙幩寕僗僉儖偺僉乕儚乕僪仺'Proximity_fire'
1/16 1050懳墳
4/21 嬤愙幩寕捛壛丂揋偑幩掱3峌寕傪偡傞傛偆偵丂偁偲斀寕
--------------------------------------------------------------------------*/
AttackChecker.getAttackIndexArray = function(unit, weapon, isSingleCheck) {
var i, index, x, y, targetUnit;
var indexArrayNew = [];
flag = 0;
var skill = SkillControl.getPossessionCustomSkill(unit,'superbow');
if(skill){flag += 1;}
var skill = SkillControl.getPossessionCustomSkill(unit,'Proximity_fire');
if(skill){flag += 10;}
if(flag !== 0){
var indexArray = IndexArray.createsuperbow(unit.getMapX(), unit.getMapY(), weapon, flag);}
else{
var indexArray = IndexArray.createIndexArray(unit.getMapX(), unit.getMapY(), weapon);}
var count = indexArray.length;
for (i = 0; i < count; i++) {
index = indexArray[i];
x = CurrentMap.getX(index);
y = CurrentMap.getY(index);
targetUnit = PosChecker.getUnitFromPos(x, y);
if (targetUnit !== null && unit !== targetUnit) {
if (FilterControl.isReverseUnitTypeAllowed(unit, targetUnit)) {
indexArrayNew.push(index);
if (isSingleCheck) {
return indexArrayNew;
}
}
}
}
return indexArrayNew;
}
IndexArray.createsuperbow = function(x, y, item, flag) {
var startRange = item.getStartRange();
var endRange = item.getEndRange();
if(flag == 11){
if(item.custom.wtype == 3){startRange = 1;endRange += 1;}}
if(flag == 10){
if(item.custom.wtype == 3){startRange = 1;}}
if(flag == 1){
if(item.custom.wtype == 3){endRange += 1;}}
return this.getBestIndexArray(x, y, startRange, endRange);
}
CombinationCollector.Weapon.collectCombination = function(misc) {
var i, weapon, filter, rangeMetrics;
var unit = misc.unit;
var itemCount = UnitItemControl.getPossessionItemCount(unit);
for (i = 0; i < itemCount; i++) {
weapon = UnitItemControl.getItem(unit, i);
if (weapon === null) {
continue;
}
// 晲婍偱側偄偐丄晲婍傪憰旛偱偒側偄応崌偼懕峴偟側偄
if (!weapon.isWeapon() || !this._isWeaponEnabled(unit, weapon, misc)) {
continue;
}
misc.item = weapon;
rangeMetrics = StructureBuilder.buildRangeMetrics();
rangeMetrics.startRange = weapon.getStartRange();
rangeMetrics.endRange = weapon.getEndRange();
var skill = SkillControl.getPossessionCustomSkill(unit,'superbow');
if(skill){
if(item.custom.wtype == 3){rangeMetrics.endRange += 1;}}
var skill = SkillControl.getPossessionCustomSkill(unit,'Proximity_fire');
if(skill){
if(item.custom.wtype == 3){rangeMetrics.startRange = 1;}}
filter = this._getWeaponFilter(unit);
this._setUnitRangeCombination(misc, filter, rangeMetrics);
}
}
AttackChecker.isCounterattack = function(unit, targetUnit) {
var weapon, indexArray, flag;
if (!root.getUserExtension().isCounterattackAllowed()) {
return false;
}
weapon = ItemControl.getEquippedWeapon(unit);
if (weapon !== null && weapon.isOneSide()) {
// 峌寕偡傞懁偑乽堦曽岦乿偺晲婍傪憰旛偟偰偄傞応崌偼丄斀寕偼敪惗偟側偄
return false;
}
// 峌寕傪庴偗傞懁偺憰旛晲婍傪庢摼
weapon = ItemControl.getEquippedWeapon(targetUnit);
// 晲婍傪憰旛偟偰偄側偄応崌偼丄斀寕偱偒側偄
if (weapon === null) {return false;}
// 乽堦曽岦乿偺晲婍偼斀寕偱側偄
if (weapon.isOneSide()) {return false;}
flag = 0;
var skill = SkillControl.getPossessionCustomSkill(targetUnit,'superbow');
if(skill){flag += 1;}
var skill = SkillControl.getPossessionCustomSkill(targetUnit,'Proximity_fire');
if(skill){flag += 10;}
if(flag !== 0){
var indexArray = IndexArray.createsuperbow(targetUnit.getMapX(), targetUnit.getMapY(), weapon, flag);}
else{
var indexArray = IndexArray.createIndexArray(targetUnit.getMapX(), targetUnit.getMapY(), weapon);}
return IndexArray.findUnit(indexArray, unit);
}
UnitRangePanel._setRangeData = function() {
var i, item, count;
var startRange = 99;
var endRange = 0;
var isWeapon = false;
var mov = ParamBonus.getMov(this._unit);
// 帺孯偱側偄応崌偼丄嵟傕幩掱偑偁傞晲婍傪嶲徠偡傞
count = UnitItemControl.getPossessionItemCount(this._unit);
for (i = 0; i < count; i++) {
item = UnitItemControl.getItem(this._unit, i);
if (ItemControl.isWeaponAvailable(this._unit, item)) {
if (item.getStartRange() < startRange) {
startRange = item.getStartRange();
var skill = SkillControl.getPossessionCustomSkill(this._unit,'Proximity_fire');
if(skill){if(item.custom.wtype == 3){startRange = 1;}}}
if (item.getEndRange() > endRange) {
endRange = item.getEndRange();
var skill = SkillControl.getPossessionCustomSkill(this._unit,'superbow');
if(skill){if(item.custom.wtype == 3){endRange += 1;}}}
isWeapon = true;
}
}
if (isWeapon) {
this._simulator.startSimulationWeapon(this._unit, mov, startRange, endRange);
}
else {
this._simulator.startSimulation(this._unit, mov);
}
this._setLight(isWeapon);
}
2020年12月21日 15点12分
1
/*--------------------------------------------------------------------------
丂嫮媩丒嬤愙幩寕僗僋儕僾僩 嶌1-239
亂奣梫亃
嫮媩僗僉儖庢摼幰偼{wtype:3}偺晲婍偺嵟戝幩掱偑侾憹偊傑偡
嬤愙幩寕僗僉儖庢摼幰偼{wtype:3}偺晲婍偺嵟掅幩掱偑侾偵側傝傑偡
憰旛偟偰傞晲婍傛傝幩掱偑挿偄晲婍帩偭偰偰傕
憰旛偟偰傞晲婍偺幩掱偟偐峴摦斖埻偱昞帵偝傟側偄"巇條"傪廋惓
傢偞傢偞if暥偱暘婒偝偣偰傞偺傪尒傞偵僶僌偠傖側偄傫偩傛側偀乧
偙偺僗僋儕僾僩傪摫擖偡傞応崌
幩掱昞帵廋惓僗僋儕僾僩偼摫擖偟側偄偱偔偩偝偄
嫮媩僗僉儖偺僉乕儚乕僪仺'superbow'
嬤愙幩寕僗僉儖偺僉乕儚乕僪仺'Proximity_fire'
1/16 1050懳墳
4/21 嬤愙幩寕捛壛丂揋偑幩掱3峌寕傪偡傞傛偆偵丂偁偲斀寕
--------------------------------------------------------------------------*/
AttackChecker.getAttackIndexArray = function(unit, weapon, isSingleCheck) {
var i, index, x, y, targetUnit;
var indexArrayNew = [];
flag = 0;
var skill = SkillControl.getPossessionCustomSkill(unit,'superbow');
if(skill){flag += 1;}
var skill = SkillControl.getPossessionCustomSkill(unit,'Proximity_fire');
if(skill){flag += 10;}
if(flag !== 0){
var indexArray = IndexArray.createsuperbow(unit.getMapX(), unit.getMapY(), weapon, flag);}
else{
var indexArray = IndexArray.createIndexArray(unit.getMapX(), unit.getMapY(), weapon);}
var count = indexArray.length;
for (i = 0; i < count; i++) {
index = indexArray[i];
x = CurrentMap.getX(index);
y = CurrentMap.getY(index);
targetUnit = PosChecker.getUnitFromPos(x, y);
if (targetUnit !== null && unit !== targetUnit) {
if (FilterControl.isReverseUnitTypeAllowed(unit, targetUnit)) {
indexArrayNew.push(index);
if (isSingleCheck) {
return indexArrayNew;
}
}
}
}
return indexArrayNew;
}
IndexArray.createsuperbow = function(x, y, item, flag) {
var startRange = item.getStartRange();
var endRange = item.getEndRange();
if(flag == 11){
if(item.custom.wtype == 3){startRange = 1;endRange += 1;}}
if(flag == 10){
if(item.custom.wtype == 3){startRange = 1;}}
if(flag == 1){
if(item.custom.wtype == 3){endRange += 1;}}
return this.getBestIndexArray(x, y, startRange, endRange);
}
CombinationCollector.Weapon.collectCombination = function(misc) {
var i, weapon, filter, rangeMetrics;
var unit = misc.unit;
var itemCount = UnitItemControl.getPossessionItemCount(unit);
for (i = 0; i < itemCount; i++) {
weapon = UnitItemControl.getItem(unit, i);
if (weapon === null) {
continue;
}
// 晲婍偱側偄偐丄晲婍傪憰旛偱偒側偄応崌偼懕峴偟側偄
if (!weapon.isWeapon() || !this._isWeaponEnabled(unit, weapon, misc)) {
continue;
}
misc.item = weapon;
rangeMetrics = StructureBuilder.buildRangeMetrics();
rangeMetrics.startRange = weapon.getStartRange();
rangeMetrics.endRange = weapon.getEndRange();
var skill = SkillControl.getPossessionCustomSkill(unit,'superbow');
if(skill){
if(item.custom.wtype == 3){rangeMetrics.endRange += 1;}}
var skill = SkillControl.getPossessionCustomSkill(unit,'Proximity_fire');
if(skill){
if(item.custom.wtype == 3){rangeMetrics.startRange = 1;}}
filter = this._getWeaponFilter(unit);
this._setUnitRangeCombination(misc, filter, rangeMetrics);
}
}
AttackChecker.isCounterattack = function(unit, targetUnit) {
var weapon, indexArray, flag;
if (!root.getUserExtension().isCounterattackAllowed()) {
return false;
}
weapon = ItemControl.getEquippedWeapon(unit);
if (weapon !== null && weapon.isOneSide()) {
// 峌寕偡傞懁偑乽堦曽岦乿偺晲婍傪憰旛偟偰偄傞応崌偼丄斀寕偼敪惗偟側偄
return false;
}
// 峌寕傪庴偗傞懁偺憰旛晲婍傪庢摼
weapon = ItemControl.getEquippedWeapon(targetUnit);
// 晲婍傪憰旛偟偰偄側偄応崌偼丄斀寕偱偒側偄
if (weapon === null) {return false;}
// 乽堦曽岦乿偺晲婍偼斀寕偱側偄
if (weapon.isOneSide()) {return false;}
flag = 0;
var skill = SkillControl.getPossessionCustomSkill(targetUnit,'superbow');
if(skill){flag += 1;}
var skill = SkillControl.getPossessionCustomSkill(targetUnit,'Proximity_fire');
if(skill){flag += 10;}
if(flag !== 0){
var indexArray = IndexArray.createsuperbow(targetUnit.getMapX(), targetUnit.getMapY(), weapon, flag);}
else{
var indexArray = IndexArray.createIndexArray(targetUnit.getMapX(), targetUnit.getMapY(), weapon);}
return IndexArray.findUnit(indexArray, unit);
}
UnitRangePanel._setRangeData = function() {
var i, item, count;
var startRange = 99;
var endRange = 0;
var isWeapon = false;
var mov = ParamBonus.getMov(this._unit);
// 帺孯偱側偄応崌偼丄嵟傕幩掱偑偁傞晲婍傪嶲徠偡傞
count = UnitItemControl.getPossessionItemCount(this._unit);
for (i = 0; i < count; i++) {
item = UnitItemControl.getItem(this._unit, i);
if (ItemControl.isWeaponAvailable(this._unit, item)) {
if (item.getStartRange() < startRange) {
startRange = item.getStartRange();
var skill = SkillControl.getPossessionCustomSkill(this._unit,'Proximity_fire');
if(skill){if(item.custom.wtype == 3){startRange = 1;}}}
if (item.getEndRange() > endRange) {
endRange = item.getEndRange();
var skill = SkillControl.getPossessionCustomSkill(this._unit,'superbow');
if(skill){if(item.custom.wtype == 3){endRange += 1;}}}
isWeapon = true;
}
}
if (isWeapon) {
this._simulator.startSimulationWeapon(this._unit, mov, startRange, endRange);
}
else {
this._simulator.startSimulation(this._unit, mov);
}
this._setLight(isWeapon);
}