Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include "gen/foreach.pwn"
- public OnFilterScriptInit() {
- print("Rustler Test");
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
- if (newkeys & KEY_FIRE) {
- new iPlayerVehicle = GetPlayerVehicleID(playerid);
- if (iPlayerVehicle) {
- antiRustler(iPlayerVehicle);
- }
- }
- return 1;
- }
- antiRustler(iVehicle) {
- new
- Float:vehicleX,
- Float:vehicleY,
- Float:vehicleZ,
- Float:velocityX,
- Float:velocityY,
- Float:velocityZ,
- Float:velocityLen;
- GetVehiclePos(iVehicle, vehicleX, vehicleY, vehicleZ);
- GetVehicleVelocity(iVehicle, velocityX, velocityY, velocityZ);
- #define SQU(%0) ((%0)*(%0))
- velocityLen = floatsqroot(SQU(velocityX) + SQU(velocityY) + SQU(velocityZ));
- #undef SQU
- velocityX /= velocityLen; velocityY /= velocityLen; velocityZ /= velocityLen;
- printf("velocity\r\n\tX: %f\r\n\tY: %f\r\n\tZ: %f\r\n\tlen: %f", velocityX, velocityY, velocityZ, velocityLen);
- foreach(Player, i) {
- if (IsVehicleStreamedIn(iVehicle, i)) {
- new
- Float:playerX,
- Float:playerY,
- Float:playerZ,
- Float:projectedX,
- Float:projectedY,
- Float:projectedZ,
- Float:distance;
- GetPlayerPos(i, playerX, playerY, playerZ);
- #define SQU(%0) ((%0)*(%0))
- distance = floatsqroot(SQU(vehicleX - playerX) + SQU(vehicleY - playerY) + SQU(vehicleZ - playerZ));
- #undef SQU
- projectedX = vehicleX + (velocityX * distance);
- projectedY = vehicleY + (velocityY * distance);
- projectedZ = vehicleZ + (velocityZ * distance);
- if (IsPlayerInRangeOfPoint(i, 3.0, projectedX, projectedY, projectedZ)) {
- SetVehicleVelocity(iVehicle, velocityX, velocityY, velocityZ + 2.5); SendClientMessage(i, -1, "[debug] You were shooting at someone in vehicle");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement