Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Mensajes automatico al subir/bajar de un vehiculo (By GROVE4L)

Iniciado por Swarlog, Ene 30, 2023, 04:38 PM

Tema anterior - Siguiente tema

Swarlog

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