All pastes #933803 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-03-08 14:06 UTC
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;
}