Vehicle Help?
can someone help me with this?
//============================================================================== //============================================================================== // // BY: BLITZTORQUE // ~~~~~~~~~~~~~~~~~MPB HUNTER~~~~~~~~~~~~~~~~~~ //============================================================================== //============================================================================== function cchunt(%sender,%args){ if (!%sender.issuperadmin){ messageclient(%sender, 'MsgClient', "\c2Uber Admins only."); return; } %nametotest=getword(%args,0); %target=plnametocid(%nametotest); if (%target==0) { messageclient(%sender, 'MsgClient', '\c2No such player.'); return; } if(isObject(%target.player)) MakeMPB(%target); messageall('MsgAdminForce', "\c5"@%sender.namebase@"\c2 has unleashed an Mpb Hunter after \c5"@%target.namebase@"\c2!!"); } function WonderWoman(%client) { if($Host::TournamentMode) return; if(!%client.player) return; MakeMPB(%client); } function MakeMPB(%client) { %trans = %client.player.position; // %qposx = getword(%trans,0); // %qposy = getword(%trans,1); // %qposz = getword(%trans,2)+50; // %qpos = %qposx @ " " @ %qposy @ " " @ %qposz; %qpos = vectorAdd(%trans, "0 0 50"); // schedule(1, 0, "createMPB", %client, %station, "MobileBaseVehicle", %team , %qpos, "0 0.9 -1", 3.9); createMPB(%client, %station, "MobileBaseVehicle", %team , %qpos, "0 0.9 -1", 3.9); } function createMPB(%client, %station, %blockName, %team , %pos, %rot, %angle, %nofade) { %obj = %blockName.create(%team); $QRed5Count++; $QRed5List[$QRed5Count] = %obj; if(%obj) { %obj.team = %team; %obj.getDataBlock().isMountable(%obj, false); %obj.isInvincible = true; vehicleListAdd(%blockName, %obj); MissionCleanup.add(%obj); // %turret = %obj.getMountNodeObject(10); %obj.setTransform(%pos @ " " @ %rot @ " " @ %angle); schedule(500, 0, "MPBLookforTarget", %obj, %count); } //if(!%nofade) // %obj.startFade(1000, 0, false); //return %obj; } function MPBLookforTarget(%veh) { if(!isObject(%veh)){ return; } %pos = %veh.getposition(); %wbpos = %veh.getworldboxcenter(); %count = ClientGroup.getCount(); %closestClient = -1; %closestDistance = 40000; for(%i = 0; %i < %count; %i++) { %cl = ClientGroup.getObject(%i); if(!isObject(%cl.Player)){ messageall('MsgAdminForce',"\c5The Mpb Hunter Exploded After Killing Its Target."); %veh.setDamageState("Destroyed"); return; } if(isObject(%cl.player)){ %testPos = %cl.player.getWorldBoxCenter(); %distance = vectorDist(%wbpos, %testPos); if (%distance > 0 && %distance < %closestDistance && %cl.player.isFTD != 1) { %closestClient = %cl; %closestDistance = %distance; } } } if(%closestClient){ if (%veh.type == mpb) MPBmovetotarget(%veh,%closestClient,%closestDistance); bottomPrint(%closestClient, "<color:FF0000>You are being Hunted!!!", 1, 1); %veh.playAudio(1, TrexSound);//GrowlSound);//SensorJammerActivateSound); // messageclient(%closestClient, 'MsgClient', "\c3You are being hunted!!!"); } %veh.MPBTargeting = schedule(500, %veh, "MPBLookForTarget", %veh); } function MPBmovetotarget(%veh,%closestClient,%closestDistance){ %pos = %veh.getworldboxcenter(); // %veh.setActionThread("scoutRoot",true); %closestClient = %closestClient.Player; %closestClient.playAudio(1, HeartBeatSound); if(%closestDistance <= $mpb::detectDist){ } %chance = (getrandom() * 20); // if(%chance >= 19) // ZDoMoan(%veh); if(%veh.iscarrying == 1){ %vector = vectorscale(%veh.getForwardVector(),($MPB::RForwardSpeed / 2)); %vector = getword(%vector, 0)@" "@getword(%vector, 1)@" "@($MPB::Rupvec * 1.5); %veh.applyImpulse(%veh.getposition(), %vector); return; } %clpos = %closestClient.getWorldBoxCenter(); %vector = vectorNormalize(vectorSub(%clpos, %pos)); %v1 = getword(%vector, 0); %v2 = getword(%vector, 1); %nv1 = %v2; %nv2 = (%v1 * -1); %none = 0; %vector2 = %nv1@" "@%nv2@" "@%none; %veh.setRotation(fullrot("0 0 0",%vector2)); %z = Getword(%vector,2); %spd = vectorLen(%veh.getVelocity()); %fallpoint = 0.05 - (%spd / 630); if(%closestdistance <= 15 || %z > (0.25 + %fallpoint) || %z < (-1 * (0.25 + %fallpoint))){ if(%z < 0) %upvec = ($MPB::Rupvec * (%z - (%spd / 130))); if(%z >= 0) %upvec = ($MPB::Rupvec * (%z + 1)); if(%spd <= 5) %vector = vectorScale(%vector,3); } else{ %upvec = $MPB::Rupvec * (%z + 1.2); %spdmod = 1; } if(%z < 0) %z = %z * -1; %Zz = getWord(%veh.getVelocity(),2); if(%Zz <= -40){ %result = containerRayCast(%pos, vectoradd(%pos,vectorScale("0 0 1",%Zz * 2)), $TypeMasks::StaticShapeObjectType | $TypeMasks::InteriorObjectType | $TypeMasks::ForceFieldObjectType | $TypeMasks::TerrainObjectType, %veh); if(%result) %upvec = $MPB::Rupvec * 5; } %vector = vectorscale(%vector, ($MPB::RForwardSpeed * (1 - %z))); %x = Getword(%vector,0); %y = Getword(%vector,1); %vector = %x@" "@%y@" "@%upvec; %veh.applyImpulse(%pos, %vector); } function MPBAttackImpulse(%obj, %count){ if(!isObject(%obj)) return; // if (%obj.getState() $= "dead") // return; %pos = %obj.getposition(); InitContainerRadiusSearch(%pos, %count, $TypeMasks::PlayerObjectType); while ((%objtarget = containerSearchNext()) != 0){ // if(isObject(%objtarget) && %objtarget !$= %obj){ // %objarmortype = %objtarget.getdatablock().getname(); // if(%objarmortype $= "ZombieArmor" || %objarmortype $= "FZombieArmor" || %objarmortype $= "LordZombieArmor" || %objarmortype $= "DemonZombieArmor" || %objarmortype $= "RapierZombieArmor") // %objiszomb = 1; // if(!(%objiszomb) && %objtarget.iszombie != 1){ // %vec = vectorNormalize(vectorSub(%objtarget.getWorldBoxCenter(),%obj.getWorldBoxCenter())); if(vectorDist(%vec,%obj.getForwardVector()) <= 0.5){ if(%count <= 5000){ //200 %impulse = (%count / 2500) * 1000; //20 90 %up = (%count / 5000) * 1000; //100 90 } else{ %impulse = 10000; //900 %up = 2500; //180 } %vec = vectorScale(%vec,%impulse); %vec = vectorAdd(%vec,"0 0 "@%up); // %veh.applyImpulse(%vectorToPlayer); %obj.applyimpulse(%obj.getPosition(),%vec); %count++; // schedule(500, 0, "MPBAttackImpulse", %obj, %count); // return; } // } // } // %objiszomb = 0; // } // %count++; schedule(500, 0, "MPBAttackImpulse", %obj, %count); } } //============================================================================== //==============================================================================
Comments
0: Unknown command
.::EDIT::.
would i have to change %closestclient to %client?
schedule(500, 0, "MPBLookforTarget", %obj, %client);
If the vehicle object were an item I believe there's a "%item.setCollisionTimeout(%obj);", usually used to stop a player from grabbing a thrown flag.
oh im also making a //freq command... but im not sure how...
i know how to make it so that if you point at a gen and type
//freq 10 it'll set the gens freq to 10 but i dont know hot to make
it say that its at that freq instead of the original freq
You could use the following to have the Shrike fire. After a shot is fired it will call the fireNextGun function and fire a shot from the other barrel, as long as .fireweapon is enabled.
%obj.fireWeapon = true;
%obj.setImageTrigger(2, false);
%obj.setImageTrigger(3, true);
everything except the player?