Basurero 2 personas -
Nicolas_Castillo - 30.06.2014
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]
Respuesta: Basurero 2 personas -
juandiegox - 30.06.2014
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
Respuesta: Basurero 2 personas -
Nicolas_Castillo - 30.06.2014
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
Respuesta: Basurero 2 personas -
juandiegox - 30.06.2014
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.
Respuesta: Basurero 2 personas -
Nicolas_Castillo - 30.06.2014
Por fin me salio el vнdeo.
https://www.youtube.com/watch?v=4UGPKivJ-co
Respuesta: Basurero 2 personas -
juandiegox - 01.07.2014
Te quedo bueno el script felicidades :S esperemos que lo pongan en todos los svs :/ +rep
Re: Basurero 2 personas -
lucotaku1 - 01.07.2014
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
|
Me gusto mucho
Lo are para mi dm jaja para los que quieran trollear trabajando xD
PDTA: si puedo te doy rep
Respuesta: Basurero 2 personas -
Nicolas_Castillo - 01.07.2014
Gracias

Esa funciуn (CrearBasura) no seria posible sin una guнa de OTACON que tiene aquн mismo.
Respuesta: Basurero 2 personas -
Shura - 01.07.2014
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)
Respuesta: Basurero 2 personas -
Nicolas_Castillo - 01.07.2014
No se por que me sale eso. їTienes la versiуn actual de YSI? La 3.1 me refiero