● Información Adicional:
Ideal para servidores de roll, con este script cuando un jugador se monta o baja de un vehiculo se anuncia de forma automática en el chat. Además, dispone de un sistema de distancia, para que solo los jugadores que se encuentran cerca de dicho vehiculo puedan leer ese mensaje automático.
● Código:
// By GROVE4L
#include <a_samp>
#define FILTERSCRIPT
#define COLOR 0xC2A2DAAA
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
new String[256];
new Nombre[24];
new Si[MAX_PLAYERS];
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
GetPlayerName(playerid,Nombre,sizeof(Nombre));
format(String, sizeof(String), "* %s Se sube a su vehiculo", Nombre);
ProxDetector(30.0, playerid, String, COLOR,COLOR,COLOR,COLOR,COLOR);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
GetPlayerName(playerid,Nombre,sizeof(Nombre));
format(String, sizeof(String), "* %s Se baja del Vehiculo", Nombre);
ProxDetector(30.0, playerid, String, COLOR,COLOR,COLOR,COLOR,COLOR);
return 1;
}
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
if(!Si[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}
return 1;
}
// By GROVE4L