rendered paste body#include <a_samp>
#define MAX_SPRUNK 100 //Just change this if you are going ot use more than 100 sprunk machines
#define SPRUNK_PRICE 1 //how much does a can of sprunk cost?
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z, Float:RotX, Float:RotY, Float:RotZ);
forward Sprunkend(playerid);
new sprunk[MAX_SPRUNK], Float:Rot[6][MAX_SPRUNK];
public OnFilterScriptInit() {
print("\n----------------------------------");
print("CZ:RP Objekty a Towing by b00m");
print("----------------------------------\n");
}
public OnFilterScriptExit() {
print("\n----------------------------------");
print("CZ:RP Objekty a Towing by b00m");
print("----------------------------------\n");
}
public OnGameModeInit()
{
AddStaticSprunk(0,852.053,-1899.893,12.270,0,0,-90.000); // sprunt-piti
return 1;
}
// TOWING by b00m
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
// HIDEN CODE //
for(new i = 0; i < MAX_SPRUNK; i++) // SPRUNK
{
if(PlayerToPoint(1.2,playerid,Rot[1][i],Rot[2][i],Rot[3][i],Rot[4][i],Rot[5][i],Rot[6][i])) // HERE IS PROBLEM NUMBER 1 (line 108)
{
if(newkeys == 16 && GetPlayerState(playerid == PLAYER_STATE_ONFOOT))
{
if(GetPlayerMoney(playerid) >= SPRUNK_PRICE)
{
SetPlayerPos(playerid,Rot[1][i]+0.2,Rot[2][i]-1,Rot[3][i]);
TogglePlayerControllable(playerid,0);
ApplyAnimation(playerid,"VENDING","VEND_Use",3.0,0,0,0,0,0); //sprunk machine animation
PlayerPlaySound(playerid,42600,0,0,0); //sprunk machine noise - NOT SUPPORTED IN SA:MP
SetTimerEx("Sprunkend",3000,0,"i",playerid);
new cash = GetPlayerMoney(playerid);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,cash-SPRUNK_PRICE);
}
else
{
PlayerPlaySound(playerid,1053,0,0,0); //rejected money sound - works!
}
}
}
}
return true;
}
GetVehicleWithinDistance(playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh){
for(new i = 1; i < MAX_VEHICLES; i++){
if(GetVehicleModel(i) > 0){
if(GetPlayerVehicleID(playerid) != i ){
new Float:x, Float:y, Float:z;
new Float:x2, Float:y2, Float:z2;
GetVehiclePos(i, x, y, z);
x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
new Float:vDist = (x2*x2+y2*y2+z2*z2);
if( vDist < dist){
veh = i;
}
}
}
}
}
// SPRUNT MACHINE by GROVE
stock AddStaticSprunk(id,Float:X,Float:Y,Float:Z,Float:RotX,Float:RotY,Float:RotZ)
{
sprunk[id] = CreateObject(955,X,Y,Z,RotX,RotY,RotZ);
GetObjectPos(sprunk[id],Rot[1][id],Rot[2][id],Rot[3][id]);
GetObjectRot(sprunk[id],Rot[4][id],Rot[5][id],Rot[6][id]); // HERE IS PROBLEM NUMBER TWO (line 157)
return id;
}
public Sprunkend(playerid)
{
ApplyAnimation(playerid,"VENDING","VEND_Drink_P",3.0,0,0,0,0,0);
TogglePlayerControllable(playerid,1);
new Float:health;
GetPlayerHealth(playerid,health);
SetPlayerHealth(playerid,health+10);
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z, Float:RotX, Float:RotY, Float:RotZ)
{
new Float:oldposx, Float:oldposy, Float:oldposz, Float:oldposrotx, Float:oldposroty, Float:oldposrotz;
new Float:tempposx, Float:tempposy, Float:tempposz, Float:tempposrotx, Float:tempposroty, Float:tempposrotz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
GetObjectRot(playerid, oldposrotx, oldposroty, oldposrotz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
tempposrotx = (oldposrotx -RotX);
tempposroty = (oldposroty -RotY);
tempposrotz = (oldposrotz -RotZ);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi) && (tempposrotx < radi) && (tempposrotx > -radi)) && ((tempposroty < radi) && (tempposroty > -radi)) && ((tempposrotz < radi) && (tempposrotz > -radi)))
{
return 1;
}
return 0;
}