|
发表于 2011-6-21 13:39:22
|
显示全部楼层
引用第14楼uoer于2011-06-21 05:19发表的 :
我想说其实这个技能应该是我主刀修改的。。
换位测试2.w3x
(18 KB, 下载次数: 4)
个人比较喜欢 那个简单版的.
所以动手修改了下.
感觉你用了一些多余的变量....我给删除了.
另外.s beg和s 里面的动作让我感到不太能理解..
除了单位组和整数外.其它的可以用参数替代....
表示自己的VJ学的太烂..一直在想怎么用结构来写.然后突然发现
不用等待的话.多人使用应该不存在神马冲突吧...真是感觉自己笨死了..
之前又想用结构.又想用HT.最后想到这个..感觉自己真是脑残..
[jass]//! zinc
library cs{
constant integer ABILITY_ID = 'A000';
group group_cs[];
real px;
real py;
//hashtable HT;
function g1 (){
if (IsUnitInGroup(GetEnumUnit(),group_cs[2]) == true )GroupAddUnit(group_cs[0], GetFilterUnit());
}
function g2 ()
{
GroupRemoveUnit( group_cs[1], GetEnumUnit() );
GroupRemoveUnit( group_cs[2], GetEnumUnit() );
}
function g3 ()
{ SetUnitX( GetEnumUnit(), ( GetUnitX(GetEnumUnit()) - px ) );
SetUnitY( GetEnumUnit(), ( GetUnitY(GetEnumUnit()) - py ) );
}
function g4 ()
{ SetUnitX( GetEnumUnit(), ( GetUnitX(GetEnumUnit()) + px ) );
SetUnitY( GetEnumUnit(), ( GetUnitY(GetEnumUnit()) + py ) );
}
function cs_ac (unit u ,location sl, location tl,integer x)
{
GroupClear( group_cs[0] );
GroupClear( group_cs[1] );
GroupClear( group_cs[2] );
BJDebugMsg("ZINC\\r补完");
CreateUnitAtLoc(GetOwningPlayer(u), 'h000', tl, 0);
CreateUnitAtLoc(GetOwningPlayer(u), 'h000', sl, 0);
BJDebugMsg("因为是负数生命.创建的单位会自己挂掉.死亡时间改成0.系统就会立即删除了.");
group_cs[1] = GetUnitsInRangeOfLocAll(300.00, tl);
group_cs[2] = GetUnitsInRangeOfLocAll(300.00, sl);
ForGroupBJ( group_cs[1], function g1 );
ForGroupBJ( group_cs[0], function g2 );
px = ( GetLocationX(tl) - GetLocationX(sl) );
py = ( GetLocationY(tl) - GetLocationY(sl) );
ForGroupBJ( group_cs[1], function g3 );
ForGroupBJ( group_cs[2], function g4 );
for( 0<=x<3)
{
GroupClear( group_cs[x] );
BJDebugMsg( I2S(x)+"单位组清除" );
}
GroupClear( group_cs[1] );
GroupClear( group_cs[2] );
}
function cs_cd ()-> boolean
{if (GetSpellAbilityId() ==ABILITY_ID)cs_ac(GetTriggerUnit(),GetSpellTargetLoc(),GetUnitLoc(GetTriggerUnit()),1);
return false;
}
function onInit () {
trigger cs = CreateTrigger();
TriggerRegisterAnyUnitEventBJ( cs, EVENT_PLAYER_UNIT_SPELL_EFFECT );
TriggerAddCondition(cs, Condition(function cs_cd));
cs = null;
FogEnable( false );
FogMaskEnableOff( );
}
}
//! endzinc
[/jass] |
|