mirror of
https://github.com/Ragora/T2-ACCM.git
synced 2026-03-06 05:50:25 +00:00
Initial commit.
This commit is contained in:
commit
f5a6cfce9b
262 changed files with 128936 additions and 0 deletions
77
Scripts/SpecOpsFeatures.cs
Normal file
77
Scripts/SpecOpsFeatures.cs
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
$NightVisionValue = 0.2;
|
||||
|
||||
function NightVisionLoop(%client){
|
||||
if(!isObject(%client.player))
|
||||
return;
|
||||
%client.player.setWhiteOut($NightVisionValue);
|
||||
%client.player.nightvision = schedule(50, 0, "NightVisionLoop", %client);
|
||||
}
|
||||
|
||||
function serverCmdDoGrab(%client){
|
||||
%obj = %client.player;
|
||||
if(!isObject(%obj))
|
||||
return;
|
||||
if(%obj.grabbing != 1){
|
||||
%pos = %obj.getMuzzlePoint($WeaponSlot);
|
||||
%vec = %obj.getMuzzleVector($WeaponSlot);
|
||||
%targetpos = vectoradd(%pos,vectorscale(%vec,5));
|
||||
%Tobj = containerraycast(%pos, %targetpos, $typemasks::PlayerObjectType | $typemasks::CorpseObjectType, %obj);
|
||||
%Tobj = getword(%Tobj,0);
|
||||
if(%Tobj.client.team == %client.team && !$TeamDamage)
|
||||
return; // Can't pickup teammates now.
|
||||
if(isObject(%Tobj)){
|
||||
if(vectorDist(%obj.getForwardVector(),%Tobj.getForwardVector()) > 1.6)
|
||||
return;
|
||||
%armortype = %obj.getdatablock().getname();
|
||||
if(!(%armortype $= "SpecOpsMaleHumanArmor" || %armortype $= "SpecOpsFemaleHumanArmor" || %armortype $= "SpecOpsMaleBiodermArmor"))
|
||||
return;
|
||||
if(%Tobj.grabbing == 1)
|
||||
%Tobj.grabbing = 0;
|
||||
if(%Tobj.grabbed == 1)
|
||||
return;
|
||||
%dataBlock = %Tobj.getDataBlock();
|
||||
%mass = %dataBlock.mass;
|
||||
if(%mass >= 150){
|
||||
return;
|
||||
}
|
||||
%Tobj.grabbed = 1;
|
||||
%Tobj.setMoveState(true);
|
||||
%obj.grabbing = 1;
|
||||
schedule(100, 0, "GrabLoop", %obj, %Tobj);
|
||||
}
|
||||
}
|
||||
else
|
||||
%obj.grabbing = 0;
|
||||
}
|
||||
|
||||
function GrabLoop(%obj, %Tobj){
|
||||
if(!(isObject(%obj) && isObject(%Tobj)))
|
||||
return;
|
||||
if(%obj.getstate() $= "dead"){
|
||||
%Tobj.setMoveState(false);
|
||||
%Tobj.grabbed = 0;
|
||||
return;
|
||||
}
|
||||
if(%obj.grabbing != 1){
|
||||
%Tobj.setMoveState(false);
|
||||
%Tobj.grabbed = 1;
|
||||
if(%Tobj.getState() !$= "Dead")
|
||||
%Tobj.getDataBlock().damageObject(%Tobj, %obj, %Tobj.getPosition(), 10, $DamageType::blah, "0 0 1", %obj.getControllingClient(), %obj);
|
||||
return;
|
||||
}
|
||||
if(%Tobj.getMountedImage($weaponslot) !$= "")
|
||||
%Tobj.throwWeapon();
|
||||
if(%Tobj.getMountedImage($Backpackslot) !$= "")
|
||||
%Tobj.throwPack();
|
||||
if(%obj.getMountedImage($weaponslot) !$= "")
|
||||
%obj.unmountImage($weaponslot);
|
||||
|
||||
%pos = %obj.getPosition();
|
||||
%rot = %obj.getRotation();
|
||||
%vel = vectoradd(%obj.getvelocity(), "0 0 1");
|
||||
%vec = vectorScale(%obj.getForwardVector(),3);
|
||||
%vec = vectorAdd(%vec, "0 0 0.5");
|
||||
%Tobj.setTransform(vectorAdd(%pos, %vec)@" "@%rot);
|
||||
%Tobj.setvelocity(%vel);
|
||||
schedule(100, 0, "GrabLoop", %obj, %Tobj);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue