01.01.2013, 15:12
pawn Код:
#include <a_samp>
#include <Zcmd>
#define Red 0xFFFFFF00
new SpeedoStr[256],PlayerText3D:Speedo[MAX_PLAYERS];
new Lock[MAX_PLAYERS];
new Boost[MAX_PLAYERS];//ontopof your script
public OnPlayerConnect(playerid)
{
Boost[playerid] = 1;
Lock[playerid] = 0;
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
CMD:lock(playerid,params)
{
if(Lock[playerid] == 0)
{
LockVehicle(playerid, GetPlayerVehicleID(playerid));
Lock[playerid] = 1;
}
else
{
UnlockVehicle(GetPlayerVehicleID(playerid));
Lock[playerid]=0;
}
return 1;
}
CMD:boost(playerid,parmas[])
{
if(IsPlayerAdmin(playerid))
{
if(Boost[playerid] == 0)
{
Boost[playerid] = 1;
SendClientMessage(playerid,0xCCFF00FF,"Boost ON!");
}
else
{
Boost[playerid] = 0;
SendClientMessage(playerid,0xCCFF00FF,"Boost OFF");
}
return 1;
}
else return SendClientMessage(playerid,Red,"{FF0000}ERROR:You are not at high enough level to use this command.");
}
public OnPlayerUpdate(playerid)
{
new Float:Health;
GetVehicleHealth(GetPlayerVehicleID(playerid),Health);
new vspeed;
vspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid));
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(Lock[playerid] == 1)
{
if(Boost[playerid] == 1)
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:Online\nSecurity:locked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
else
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:{FF0000}Offline\nSecurity:Locked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
else
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:{FF0000}Offline\nSecurity:Unlocked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
return 1;
}
return 1;
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
DeletePlayer3DTextLabel(playerid,Speedo[playerid]);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new Float:Health;
GetVehicleHealth(GetPlayerVehicleID(playerid),Health);
new vspeed;
vspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid));
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(Lock[playerid] == 1)
{
if(Boost[playerid] == 1)
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:Online\nSecurity:locked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
else
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:{FF0000}Offline\nSecurity:Locked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
else
{
format(SpeedoStr, sizeof(SpeedoStr), "{05BDFA}Speed: %d km/hr%s\n{05BDFA}Health:[%s{05BDFA}]\nBoost:{FF0000}Offline\nSecurity:Unlocked\nUse /vehctrl", vspeed,UpdateLabelOfSpeed(playerid),UpdateString(playerid));
UpdatePlayer3DTextLabelText(playerid,Speedo[playerid],0xFF0000FF,SpeedoStr);
}
return 1;
}
return 1;
}
return 1;
}
stock GetVehicleSpeed(vehicleid)
{
new
Float:vel[3],
Float:tempspeed;
GetVehicleVelocity(vehicleid, vel[0], vel[1], vel[2]);
tempspeed = floatsqroot((vel[0] * vel[0]) + (vel[1] * vel[1]) + (vel[2] * vel[2])) * 136.666667;
return floatround(tempspeed, floatround_round);
}
stock UpdateString(playerid)
{
new Float:HP;
new vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid,HP);
new str[30];
if(HP == 1000)format(str,sizeof(str),"{00ff00}••••••••••");
else if(HP >= 900)format(str,sizeof(str),"{00ff00}•••••••••{ffffff}•");
else if(HP >= 800)format(str,sizeof(str),"{00ff00}••••••••{ffffff}••");
else if(HP >= 700)format(str,sizeof(str),"{00ff00}•••••••{ffffff}•••");
else if(HP >= 600)format(str,sizeof(str),"{00ff00}••••••{ffffff}••••");
else if(HP >= 500)format(str,sizeof(str),"{00ff00}•••••{ffffff}•••••");
else if(HP >= 400)format(str,sizeof(str),"{00ff00}••••{ffffff}••••••");
else if(HP >= 300)format(str,sizeof(str),"{00ff00}•••{ffffff}•••••••");
else if(HP >= 250)format(str,sizeof(str),"{00ff00}••{ffffff}••••••••");
else format(str,sizeof(str),"{ff0000}••••••••••");
return str;
}
stock UpdateLabelOfSpeed(playerid)
{
new string[256];
new vehicleid = GetPlayerVehicleID(playerid);
if(GetVehicleSpeed(vehicleid) < 1)
{
format(string, sizeof(string),"[Zero Speed!]\n {05BDFA}R {FFFFFF}N {05BDFA}D");
}
if(GetVehicleSpeed(vehicleid) > 1)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}l{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 10)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}ll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 20)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}ll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 30)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 40)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 50)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 60)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 70)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 80)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 90)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}1");
}
if(GetVehicleSpeed(vehicleid) > 120)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}2");
}
if(GetVehicleSpeed(vehicleid) > 125)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}2");
}
if(GetVehicleSpeed(vehicleid) > 150)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}3");
}
if(GetVehicleSpeed(vehicleid) > 155)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}3");
}
if(GetVehicleSpeed(vehicleid) > 180)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}4");
}
if(GetVehicleSpeed(vehicleid) > 190)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}4");
}
if(GetVehicleSpeed(vehicleid) > 210)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}5");
}
if(GetVehicleSpeed(vehicleid) > 220)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}lllllllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}5");
}
if(GetVehicleSpeed(vehicleid) > 225)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllllllllll{05BDFA} ]\n {05BDFA}R N {FFFFFF}D {05BDFA}6");
}
if(GetVehicleSpeed(vehicleid) > 300)
{
format(string, sizeof(string), "{05BDFA}[{FFFFFF}llllllllllllllll{05BDFA}]\n {05BDFA}R N {FFFFFF}D {05BDFA}6");
}
return string;
}
stock LockVehicle(playerid, vehicleid)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i) && i != playerid)
{
Lock[vehicleid] = 1;
SetVehicleParamsForPlayer(vehicleid,i,0,1);
}
}
}
stock UnlockVehicle(vehicleid)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
Lock[vehicleid] = 0;
SetVehicleParamsForPlayer(vehicleid,i,0,0);
}
}
}