Need help with Vehicle Missiles.
#1

Hey guys,
I am trying to make a Missile that will be shoot from a vehicle by clicking the "KEY_FIRE" key.
So I want to ask if there is any way to create like a hunter missile that will explode when hitting a car or a wall...
(Like the exploding barrel)
BTW I saw this tread https://sampforum.blast.hk/showthread.php?tid=229111 and I need something else... because as far as I know, this script will explode by a timer.

Thanks again guys =)
Reply
#2

Bump + if an objects explode on a player and kill him, that's making the object id equal to the killerid?
Reply
#3

Bump.
I did this, and for some reason its not working.
PHP код:
                GetVehiclePos(GetPlayerVehicleID(playerid), OldMoveCor[playerid][0], OldMoveCor[playerid][1], OldMoveCor[playerid][2]);
                
GetVehicleZAngle(GetPlayerVehicleID(playerid), OldMoveCor[playerid][3]);
                
//1225
                
MissileID[playerid] = CreateObject(354,OldMoveCor[playerid][0],OldMoveCor[playerid][1],OldMoveCor[playerid][2],0.0000000,90.0000000,OldMoveCor[playerid][3]); 
Код HTML:
			    //========================================[North West]======================================//
			    if(floatcmp(OldMoveCor[playerid][3], 0.0) == 1 && floatcmp(OldMoveCor[playerid][3], 90.0) == -1) // -x, +y
   			 	{
   			 	    NewMoveCor[playerid][0] = OldMoveCor[playerid][0] - 500.0; // X щмймй
            		OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
					NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);
					
					if(NewMoveCor[playerid][1] > 0.0)
                        NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
					else
					    NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
					    
					if(OldMoveCor[playerid][1] > 0.0)
					    NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
	    			else
	    			    NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
					
                    MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
			    }
			    else
        			//========================================[South West]======================================//
				    if(floatcmp(OldMoveCor[playerid][3], 90.0) == 1 && floatcmp(OldMoveCor[playerid][3], 180.0) == -1) // -x, -y
				    {
	   			 	    NewMoveCor[playerid][0] = OldMoveCor[playerid][0] - 500.0; // X щмймй
	            		OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
						NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);

						if(NewMoveCor[playerid][1] > 0.0)
	                        NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
						else
						    NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);

						if(OldMoveCor[playerid][1] > 0.0)
						    NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
		    			else
		    			    NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);

	                    MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
				    }
				    else
				    	//========================================[South East]======================================//
					    if(floatcmp(OldMoveCor[playerid][3], 180.0) == 1 && floatcmp(OldMoveCor[playerid][3], 270.0) == -1) // +x, -y
					    {
		   			 	    NewMoveCor[playerid][0] = OldMoveCor[playerid][0] + 500.0; // X щмймй
		            		OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
							NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);

							if(NewMoveCor[playerid][1] > 0.0)
		                        NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
							else
							    NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);

							if(OldMoveCor[playerid][1] > 0.0)
							    NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
			    			else
			    			    NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);

		                    MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
					    }
					    else
					        //========================================[North East]======================================//
						    if(floatcmp(OldMoveCor[playerid][3], 270.0) == 1 && floatcmp(OldMoveCor[playerid][3], 360.0) == -1) // +x, +y
						    {
			   			 	    NewMoveCor[playerid][0] = OldMoveCor[playerid][0] + 500.0; // X щмймй
			            		OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
								NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);

								if(NewMoveCor[playerid][1] > 0.0)
			                        NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
								else
								    NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);

								if(OldMoveCor[playerid][1] > 0.0)
								    NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
				    			else
				    			    NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);

			                    MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
						    }
The missile is flying in the wrong direction.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)