skill_begin skill_name=[s_summon_friends1] /* [Summon Friend] */ skill_id=1403 level=1 operate_type=A1 magic_level=56 effect={{i_summon_pc;[summoning_crystal];1}} operate_cond={{op_not_territory;{{116970;13696;10080;10200};{112258;13696;10080;
10200};{112258;18425;10080;10200};{116970;18425;10080;10200}}};{op_not_territory
;
{{173588;111207;-7400;-7800};{181570;111207;-7400;-7800};{181570;118458;-7400;-7800};{173588;118458;-7400;-7800}}};{op_not_territory;{{216418;-118783;-1000;-1700};{209093;-118783;-1000;-1700};{209093;-110473;-1000;-1700};{216418;-110473;-1000;-1700}}};{op_not_territory;{{51500;213856;-4200;-2900};{57300;213856;-4200;-2900};{57300;221140;-4200;-2900};{51500;221140;-4200;-2900}}};{op_not_territory;{{172000;-90000;-5200;-4900};{176000;-90000;-5200;-4900};{176000;-74000;-5200;-4900};{172000;-74000;-5200;-4900}}}} operate_cond={{target_my_party}} is_magic=1 mp_consume1=36 mp_consume2=144 cast_range=-1 effective_range=-1 skill_hit_time=15 skill_cool_time=0 skill_hit_cancel_time=0.5 reuse_delay=450 attribute=attr_none effect_point=0 target_type=self affect_scope=single affect_limit={0;0} next_action=none [email="ride_state={
@ride_none"]ride_state={
@ride_none[/email]} skill_end
предупреждаю сразу, не у всех будет работать, зависит от сборки.
в любом случае, можно реализовать через аи.
смотрим как работает скилл по взову саммона, делаем саммона и в аи пишем ему реализацию скилла.
class 1 summon_friend : default_npc
{
handler:
EventHandler CREATED(c0, c1, party0, i0, i1, i2, i3, i4)
{
party0 = myself::GetParty(myself.master);
if((myself::IsNullParty(party0) == 0) && (myself.master.in_battlefield == 0))
{
c1 = myself::GetLeaderOfParty(party0);
i1 = myself::Party_GetCount(c1);
if(i1 != 0)
{
for(i0 = 0; i0 < i1; i0 = ( i0 + 1 ))
{
c0 = myself::Party_GetCreature(c1, i0);
if((c0.alive) && (myself::OwnItemCount(c0,
@summoning_crystal ) > 0) && (myself.master != c0))
{
if((c0.x > -66722) || (c0.y > -198404))
{
myself::DeleteItem1(c0,
@summoning_crystal, 1);
i2 = myself::FloatToInt(myself.sm.x) + gg::Rand(101) - 50;
i3 = myself::FloatToInt(myself.sm.y) + gg::Rand(101) - 50;
i4 = myself::FloatToInt(myself.sm.z);
myself::InstantTeleport(c0, i2, i3, i4);
}
}
}
}
}
myself::Despawn();
}
}