[Ayuda] Trabajo cartero -
Casvill - 07.01.2014
Hola!
Quiero hacer un trabajo de cartero, pero tengo un problema con los vehнculos, quiero que cuando el player obtenga el trabajo entonces pueda usar los vehнculos de dicho trabajo, de lo contrario no.
Ya he intentado de varias formas pero nada.
Hice una variable
la cual es modificada al tomar el trabajo de cartero
Код:
if (strcmp("/cartero", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,1.5,1743.01, -1863.90, 13.38) == 1)
{
if(cart == 1)SendClientMessage(playerid,BLANCO,"Ya tienes este trabajo.");
else SendClientMessage(playerid,BLANCO,"Felicidades!! Haz conseguido el trabajo de cartero.");cart = 1;
}
else SendClientMessage(playerid,BLANCO,"No estбs en el lugar donde se consigue este trabajo.");
return 1;
}
Si toma el trabajo de cartero la variable cart cambia a 1.
Lo que quiero hacer es que cuando cart sea igual a 1, los vehнculos se puedan usar, de lo contrario no.
entonces entrу una nueva variable
[code]VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100); // prueba para bloquear autos
Y la sentencia para bloquear el vehнculo o desbloquearlo:
Код:
public OnVehicleStreamIn(vehicleid, forplayerid)
{
if (cart == 0)
{
if(vehicleid == VehiCart)
{
SetVehicleParamsForPlayer(VehiCart,forplayerid,0,1);
}
}
else
{
if(vehicleid == VehiCart)
{
SetVehicleParamsForPlayer(VehiCart, forplayerid, 0, 0); // marker can be visible only if the vehicle streamed for player
}
}
return 1;
}
}
Pero no me funciona, intentй creando un callback
Pero tampoco funcionу.
No sй que hacer
Espero que me puedan ayudar.
Soy nuevo en esto perdуnen mi ignorancia.
Gracias de antemano.
Respuesta: [Ayuda] Trabajo cartero -
Porta0123 - 07.01.2014
nose si funcionarб pero prueba aсadiendo esto
pawn Код:
//------------------------
new VehiCart;
new cart;
//------------------------
//cuando spawnees el vehнculo pon esto:
public OnGameModeInit()
{
VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == VehiCart && cart == 0)
{
SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
//aquн haz algo para que saque al usuario del vehнculo
return 0;
}
else
{
if(vehicleid == VehiCart && cart == 1)
{
//any
}
}
return 1;
}
yo almenos lo harнa asн
Respuesta: [Ayuda] Trabajo cartero -
Casvill - 08.01.2014
Quote:
Originally Posted by Porta0123
nose si funcionarб pero prueba aсadiendo esto
pawn Код:
//------------------------ new VehiCart; new cart; //------------------------
//cuando spawnees el vehнculo pon esto: public OnGameModeInit() { VehiCart= CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100); return 1; }
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if(vehicleid == VehiCart && cart == 0) { SendClientMessage(playerid, red, "No tienes el oficio de Cartero"); //aquн haz algo para que saque al usuario del vehнculo return 0; } else { if(vehicleid == VehiCart && cart == 1) { //any } } return 1; }
|
Gracias por responder!
Lo intentй, y de varias formas, asн como me dijiste, y nada
Usй
Код:
SetVehicleParamsForPlayer(vehicleid,playerid,0,1);
para que no pudiera entrar y
Код:
SetVehicleParamsForPlayer(vehicleid,playerid,0,0);
para que pudiera entrar, sinceramente no sй porque no funciona, si se supone que deberнa funcionar, no sй cual es el error.
T_T
Respuesta: [Ayuda] Trabajo cartero -
Zume - 08.01.2014
pawn Код:
new VehiCart;
new cart[MAX_PLAYERS];
public OnGameModeInit()
{
VehiCart = CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(vehicleid == VehiCart && cart[playerid] != 0)
{
return 1;
}
else
{
SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SendClientMessage(playerid, red, "No tienes el oficio de Cartero");
}
return 1;
}
Respuesta: [Ayuda] Trabajo cartero -
OTACON - 08.01.2014
pawn Код:
#include <a_samp>
new VehiCart,
bool:cart[MAX_PLAYERS];
public OnGameModeInit(){
VehiCart = AddStaticVehicleEx(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100);
return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate){
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER){
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid == VehiCart && cart[playerid] != false){
//TU FUNCION
}else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");}
}
return true;
}
https://sampwiki.blast.hk/wiki/OnPlayerEnterVehicle
https://sampwiki.blast.hk/wiki/OnPlayerStateChange
Respuesta: [Ayuda] Trabajo cartero -
CrossOv3r - 08.01.2014
vehicart[MAX_VEHICLES] 77.
Sorry ando en mi movil
Respuesta: [Ayuda] Trabajo cartero -
Casvill - 08.01.2014
Quote:
Originally Posted by Zume-Zero
pawn Код:
new VehiCart; new cart[MAX_PLAYERS]; public OnGameModeInit() { VehiCart = CreateVehicle(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100); return 1; }
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { new Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); if(vehicleid == VehiCart && cart[playerid] != 0) { return 1; } else { SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); SendClientMessage(playerid, red, "No tienes el oficio de Cartero"); } return 1; }
|
Hey! gracias por respoder!
Probй el cуdigo y me dio estos errores
Код:
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(157) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(158) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(168) : error 033: array must be indexed (variable "cart")
C:\Users\LENOVO\Desktop\Dan\Todo gta San Andreas\Server\gamemodes\ProbandoFunciones.pwn(168) : error 033: array must be indexed (variable "cart")
Es en el comando para tomar el trabajo, probй cambiando cart = 1; por cart[playerid] = 1;
Me quitу los errores pero en el juego, a la hora de montarme a la bici (sin tener el trabajo) me sale un letrero que dice "Stay whitin Boundrie World" algo asн, y me pausa el juego, empiza a ir super lento y el brillo empieza a aclararse a tal punto que todo se ve blanco
Quote:
Originally Posted by OTACON
pawn Код:
#include <a_samp>
new VehiCart, bool:cart[MAX_PLAYERS];
public OnGameModeInit(){ VehiCart = AddStaticVehicleEx(509, 1805.5453, -1902.0564, 12.8976, 84.0000, -1, -1, 100); return true; } public OnPlayerStateChange(playerid, newstate, oldstate){ if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER){ new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == VehiCart && cart[playerid] != false){ //TU FUNCION }else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");} } return true; }
https://sampwiki.blast.hk/wiki/OnPlayerEnterVehicle
https://sampwiki.blast.hk/wiki/OnPlayerStateChange
|
Gracias por responder!!
Tambiйn me sale el error las lнneas del comando /cartero
Lo cambiй tambiйn a cart[playerid] = 1;
Pero a la hora de entrar al juego no me funciona.
dices que aqui va la funciуn para que no pueda subir a la bici?:
pawn Код:
if(vehicleid == VehiCart && cart[playerid] != false){
//TU FUNCION aqui?
}else{SendClientMessage(playerid, red, "No tienes el oficio de Cartero");//yo pensarнa que es aqui}
Bueno intentй pondiendo SetVehicleParamsForPlayer(vehicleid,playerid,0,1); en donde dijiste, no hizo nada, e intentй como yo pensй que era:
pawn Код:
if(vehicleid == VehiCart && cart[playerid] != false){
SetVehicleParamsForPlayer(vehicleid,playerid,0,0);
}else{SetVehicleParamsForPlayer(vehicleid,playerid,0,1); SendClientMessage(playerid, BLANCO, "No tienes el oficio de Cartero");}
Y tampoco funcionу
Si me quieren ayudar mejor, les puedo mandar el archivo .pwn para que lo vean todo.
PD:
CrossOv3r no entendн xD
Respuesta: [Ayuda] Trabajo cartero -
Zume - 08.01.2014
Disculpa, olvidй que era un float. Intenta poniendo esto en vez del new local en el cуdigo que te pasй.