[FilterScript] Basurero 2 personas
#1

Hola amigos. Realice un filterscript por pedido de un usuario.

Se trata de un trabajo de basurero para dos personas.

Caracterнsticas:
  • Debe de tener el Skin 50 para poder trabajar
  • Deben de estar en el mismo vehнculo (Basurero) para empezar el trabajo
  • Se marca un checkpoint a los dos jugador de la basura mas cercana a su posiciуn
  • Cuando termine de revisar una basura, se le marcara otro checkpoint de la basura mas cercana
  • Al revisar la basura, se le darб aleatoriamente una cantidad de dinero a los dos jugador (100$ mбximo)[Esta parte es rara, pero asн lo pidiу]
  • No tiene HQ ni vehiculos, tu tienes agregarlos por tu cuenta
  • Puedes aсadirle tus propias restricciones para que funcione con el sistema de trabajo que tenga tu gm.
Para agregar mas puntos de basura usa la funciуn que cree:
pawn Код:
CrearBasura(Float:X, Float:Y, Float:Z)
Donde X, Y, Z son las coordenadas de la basura, se tiene que agregar en OnFilterScriptInit()

Los ejemplos que coloque son estos:
pawn Код:
CrearBasura(411.3767, -1463.5654, 30.6637);
    CrearBasura(423.5184, -1568.1147, 27.5688);
    CrearBasura(435.6256, -1601.5014, 25.4765);
    CrearBasura(487.7834, -1645.3548, 23.7031);
    CrearBasura(515.1145, -1706.8461, 12.5314);
    CrearBasura(468.1481, -1729.4348, 10.6985);
    CrearBasura(350.2008, -1765.1225, 5.3103 );
    CrearBasura(339.8854, -1772.7329, 5.1661 );
    CrearBasura(303.0834, -1731.0209, 4.4575 );
Puedes borrarlos y crear unos nuevos.


Comandos:
  • /Basurero <ID> | Empieza a trabajar de basurero con un amigo
  • /SalirBasura | Deja de trabajar de basurero
  • /VerBasura | Revisa la basura en la que te encuentras
Para poder compilar este FS necesitas la librerнa de YSI, el include/plugin sscanf2 y el include/plugin streamer.

YSI(3.1): https://sampforum.blast.hk/showthread.php?tid=321092 (NO utilizar la 4.0 BETA)
sscanf2: https://sampforum.blast.hk/showthread.php?tid=120356
streamer: https://sampforum.blast.hk/showthread.php?tid=102865


Mini-Guнa: Pasar este FS a un GM
Esta mini-guнa os explicare como pasarlo a u gm cualquiera.

Primero, tenemos que colocar los includes y las definiciones junto con las variables al inicio del gm.
Claro esta que si el gm ya tiene un include puesto, no copiarlo.

pawn Код:
#include <YSI\y_commands>
#include <YSI\y_colors>
#include <YSI\y_va>
#include <sscanf2>
#include <streamer>

#define MAX_RUTAS 1
#define MAX_BASURAS 10

new Float:Basura[MAX_BASURAS][3];
new BasuraO[MAX_BASURAS][5];
new BasuraCP[MAX_BASURAS];
new EnCP[MAX_PLAYERS];
new BasuraID = 0;
new Amigo[MAX_PLAYERS];
new bool:Conductor[MAX_PLAYERS];
new bool:Pasajero[MAX_PLAYERS];
Despuйs, copiamos todo lo que este entre las lineas 20 y 169(FS sin modificaciones) y lo copiamos al final de nuestro gm.

Para continuar, tenemos que copiar el contenidos de nuestro callbacks (public) y pasarlos a los callbacks de tu gm. Por ejemplo:

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(Conductor[playerid] != false)
    {
        Conductor[playerid] = false;
        Pasajero[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    if(Pasajero[playerid] != false)
    {
        Pasajero[playerid] = false;
        Conductor[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    return 1;
}
Como verбn, tenemos que copiar desde if(Conductor[playerid] != false) hasta una linea antes del ultimo return 1; es decir, esto:
pawn Код:
if(Conductor[playerid] != false)
    {
        Conductor[playerid] = false;
        Pasajero[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    if(Pasajero[playerid] != false)
    {
        Pasajero[playerid] = false;
        Conductor[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
Repetir este mismo proceso para el resto de callbakc.

PD: Si no encuentras el callback (por ejemplo OnPlayerLeaveDynamicCP) tendras que copiarlo desde el public hasta la ultima llave }

PD.2: El contenido de OnFilterScriptExit() y OnFilterScriptInit() va dentro de OnGameModeExit() y OnGameModeInit() respectivamente.



Solo aclaro dudas sobre el fs, bugs y demбs en este tema.
Este fs esta creado para que funcione en cualquier gamemode que no inhabilite ninguna de las funciones del mismo.

Por favor, no suban este FS a otro gestor de descargas.

Por favor, no publicar otras versiones de este mismo FS

Si encuentran algъn bug o tienen alguna recomendaciуn, no duden en decнrmela


[ame]www.youtube.com/watch?v=4UGPKivJ-co[/ame]
Vнdeo de como hice el filterscript
https://www.youtube.com/watch?v=hm1p4Lm17lY <- Este no le interesa a nadie
Reply
#2

No es por nada pero, preferis hacer un video de como haces este FS que hacer un video de como es el job? imagenes? etc? sin ofender pero, para que mierda nos importa como hiciste el FS? D: yo creo que la gente si no ve fotos o no ve un video de como es el fs no lo decargaran D: saludos
Reply
#3

Oww, es que aъn no lo grabo por problemas tecnicos... Pero podrнas mirar el .pwn. Muy pronto hare un video de su funcionamiento
Reply
#4

Quote:
Originally Posted by Nicolas_Castillo
Посмотреть сообщение
Oww, es que aъn no lo grabo por problemas tecnicos... Pero podrнas mirar el .pwn. Muy pronto hare un video de su funcionamiento
Se que puedo mirar el .pwn pero ten en cuenta los que no saben mucho, siempre piden imagenes D: saludos, gracias por aportar.
Reply
#5

Por fin me salio el vнdeo. https://www.youtube.com/watch?v=4UGPKivJ-co
Reply
#6

Te quedo bueno el script felicidades :S esperemos que lo pongan en todos los svs :/ +rep
Reply
#7

Quote:
Originally Posted by Nicolas_Castillo
Посмотреть сообщение
Hola amigos. Realice un filterscript por pedido de un usuario.

Se trata de un trabajo de basurero para dos personas.

Caracterнsticas:
  • Debe de tener el Skin 50 para poder trabajar
  • Deben de estar en el mismo vehнculo (Basurero) para empezar el trabajo
  • Se marca un checkpoint a los dos jugador de la basura mas cercana a su posiciуn
  • Cuando termine de revisar una basura, se le marcara otro checkpoint de la basura mas cercana
  • Al revisar la basura, se le darб aleatoriamente una cantidad de dinero a los dos jugador (100$ mбximo)[Esta parte es rara, pero asн lo pidiу]
  • No tiene HQ ni vehiculos, tu tienes agregarlos por tu cuenta
  • Puedes aсadirle tus propias restricciones para que funcione con el sistema de trabajo que tenga tu gm.
Para agregar mas puntos de basura usa la funciуn que cree:
pawn Код:
CrearBasura(Float:X, Float:Y, Float:Z)
Donde X, Y, Z son las coordenadas de la basura, se tiene que agregar en OnFilterScriptInit()

Los ejemplos que coloque son estos:
pawn Код:
CrearBasura(411.3767, -1463.5654, 30.6637);
    CrearBasura(423.5184, -1568.1147, 27.5688);
    CrearBasura(435.6256, -1601.5014, 25.4765);
    CrearBasura(487.7834, -1645.3548, 23.7031);
    CrearBasura(515.1145, -1706.8461, 12.5314);
    CrearBasura(468.1481, -1729.4348, 10.6985);
    CrearBasura(350.2008, -1765.1225, 5.3103 );
    CrearBasura(339.8854, -1772.7329, 5.1661 );
    CrearBasura(303.0834, -1731.0209, 4.4575 );
Puedes borrarlos y crear unos nuevos.


Comandos:
  • /Basurero <ID> | Empieza a trabajar de basurero con un amigo
  • /SalirBasura | Deja de trabajar de basurero
  • /VerBasura | Revisa la basura en la que te encuentras
Para poder compilar este FS necesitas la librerнa de YSI, el include/plugin sscanf2 y el include/plugin streamer.

YSI(3.1): https://sampforum.blast.hk/showthread.php?tid=321092 (NO utilizar la 4.0 BETA)
sscanf2: https://sampforum.blast.hk/showthread.php?tid=120356
streamer: https://sampforum.blast.hk/showthread.php?tid=102865


Mini-Guнa: Pasar este FS a un GM
Esta mini-guнa os explicare como pasarlo a u gm cualquiera.

Primero, tenemos que colocar los includes y las definiciones junto con las variables al inicio del gm.
Claro esta que si el gm ya tiene un include puesto, no copiarlo.

pawn Код:
#include <YSI\y_commands>
#include <YSI\y_colors>
#include <YSI\y_va>
#include <sscanf2>
#include <streamer>

#define MAX_RUTAS 1
#define MAX_BASURAS 10

new Float:Basura[MAX_BASURAS][3];
new BasuraO[MAX_BASURAS][5];
new BasuraCP[MAX_BASURAS];
new EnCP[MAX_PLAYERS];
new BasuraID = 0;
new Amigo[MAX_PLAYERS];
new bool:Conductor[MAX_PLAYERS];
new bool:Pasajero[MAX_PLAYERS];
Despuйs, copiamos todo lo que este entre las lineas 20 y 169(FS sin modificaciones) y lo copiamos al final de nuestro gm.

Para continuar, tenemos que copiar el contenidos de nuestro callbacks (public) y pasarlos a los callbacks de tu gm. Por ejemplo:

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(Conductor[playerid] != false)
    {
        Conductor[playerid] = false;
        Pasajero[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    if(Pasajero[playerid] != false)
    {
        Pasajero[playerid] = false;
        Conductor[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    return 1;
}
Como verбn, tenemos que copiar desde if(Conductor[playerid] != false) hasta una linea antes del ultimo return 1; es decir, esto:
pawn Код:
if(Conductor[playerid] != false)
    {
        Conductor[playerid] = false;
        Pasajero[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
    if(Pasajero[playerid] != false)
    {
        Pasajero[playerid] = false;
        Conductor[Amigo[playerid]] = false;
        Msg(Amigo[playerid], X11_GRAY, "Tu amigo(%d) se ha desconectado", playerid);
        for(new x = 0; x < BasuraID; x++)
        {
            TogglePlayerDynamicCP(playerid, BasuraCP[x], false);
            TogglePlayerDynamicCP(Amigo[playerid], BasuraCP[x], false);
        }
        Amigo[Amigo[playerid]] = -1;
        Amigo[playerid] = -1;
    }
Repetir este mismo proceso para el resto de callbakc.

PD: Si no encuentras el callback (por ejemplo OnPlayerLeaveDynamicCP) tendras que copiarlo desde el public hasta la ultima llave }

PD.2: El contenido de OnFilterScriptExit() y OnFilterScriptInit() va dentro de OnGameModeExit() y OnGameModeInit() respectivamente.



Solo aclaro dudas sobre el fs, bugs y demбs en este tema.
Este fs esta creado para que funcione en cualquier gamemode que no inhabilite ninguna de las funciones del mismo.

Por favor, no suban este FS a otro gestor de descargas.

Por favor, no publicar otras versiones de este mismo FS

Si encuentran algъn bug o tienen alguna recomendaciуn, no duden en decнrmela


www.youtube.com/watch?v=4UGPKivJ-co
Vнdeo de como hice el filterscript
https://www.youtube.com/watch?v=hm1p4Lm17lY <- Este no le interesa a nadie
Me gusto mucho

Код:
Crearbasura(X,Y,Z)
Lo are para mi dm jaja para los que quieran trollear trabajando xD
PDTA: si puedo te doy rep
Reply
#8

Gracias Esa funciуn (CrearBasura) no seria posible sin una guнa de OTACON que tiene aquн mismo.
Reply
#9

Nicolбs, genial, pero me ayudas con esto?

Код:
stock Msg(playerid, colour, const format[], va_args<>)
{
	new str[145];
	va_format(str, sizeof (str), format, va_start<3>);
	return SendClientMessage(playerid, colour, str);
}
La linea "va_format(str, sizeof (str), format, va_start<3>);" me tira el siguiente error:

Код:
error 035: argument type mismatch (argument 3)
Reply
#10

No se por que me sale eso. їTienes la versiуn actual de YSI? La 3.1 me refiero
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)