global func FxIntHalfVehicleFadeJumpTimer(object target, proplist effect, int time) { if (DeepEqual(target->GetPosition(), effect.origpos)) return FX_OK; for (var i = GetLength(effect.collideverts); i-->0;) { if (target->GetMaterial(target->GetVertex(effect.collideverts[i], VTX_X), target->GetVertex(effect.collideverts[i], VTX_Y)) == Material("HalfVehicle")) return FX_OK; } return FX_Execute_Kill; }
global func FxIntHalfVehicleFadeJumpStart(object target, proplist effect, int temp) { if (temp) return FX_OK; if (!target) { return FX_Start_Deny; } effect.collideverts = CreateArray(); for (var i = target->GetVertexNum(); i-->0;) if(!(target->GetVertex(i, VTX_CNAT) & CNAT_PhaseHalfVehicle)) { PushBack(effect.collideverts, i); target->SetVertexCNAT(i, CNAT_PhaseHalfVehicle, true); } effect.origpos = target->GetPosition(); return FX_OK; }