SA-MP Forums Archive
Ayuda con este codigo - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Ayuda con este codigo (/showthread.php?tid=475983)



Ayuda con este codigo - alexsf - 16.11.2013

hola, aqui otra vez acudo a los expertos, bueno tengo un problema con un codigo creo que no esta cumpliendo su funcion o lo que deberia hacer, lo que sucede es que tengo un gamemode el cual tiene sistema de fuel y oil, cuando pongo demasiado fuel o demasiado oil el server se cuelga y se cierra, no se porque sea pero les dejo el codigo el cual creo yo que especifica que al llegar al 100 de fuel, ya no se ponga mas.

Код:
if(!strcmp(ItemName,"Fuel",true))
    {
        static vehid;
        vehid = -1;
        vehid = GetClosestVehicle(playerid,4.0);
        if(vehid == -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
        if(Fuel[vehid] >= 100) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehicleid),Fuel[vehid] = 100;
        RemoveItem(playerid,"Fuel",1);
        format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
        SendNearMessage(playerid,white,string,20);
		if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
		else Fuel[vehid]+=7;
		if(Fuel[vehid] > 100) Fuel[vehid] = 100;
		UpdateVehicleFuelAndOil(vehid);
    }
no entiendo mucho el codigo, pero creo que este codigo no funciona correctamente y hace que cuando carge demasiado el fuel o la gasolina el server se me cierre, si necesitan mas datos solo pidanlo

gracias y saludos.. ha esas personas que responden preguntas como esta.


Respuesta: Ayuda con este codigo - Jejox - 16.11.2013

Intenta ahora

EDITADO:

pawn Код:
#define             MAX_FUEL                (100)

if(!strcmp(ItemName,"Fuel",true))
    {
        static vehid;
        vehid = -1;
        vehid = GetClosestVehicle(playerid,4.0);
        if(vehid == -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
        if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehicleid),Fuel[vehid] = 100;
        RemoveItem(playerid,"Fuel",1);
        format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
        SendNearMessage(playerid,white,string,20);
        if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
        else Fuel[vehid]+=7;
        if(Fuel[vehid] > 100) Fuel[vehid] = 100;
        UpdateVehicleFuelAndOil(vehid);
    }



Respuesta: Ayuda con este codigo - alexsf - 16.11.2013

Quote:
Originally Posted by Jejox
Посмотреть сообщение
Intenta ahora

EDITADO:

pawn Код:
#define             MAX_FUEL                (100)

if(!strcmp(ItemName,"Fuel",true))
    {
        static vehid;
        vehid = -1;
        vehid = GetClosestVehicle(playerid,4.0);
        if(vehid == -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
        if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehicleid),Fuel[vehid] = 100;
        RemoveItem(playerid,"Fuel",1);
        format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
        SendNearMessage(playerid,white,string,20);
        if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
        else Fuel[vehid]+=7;
        if(Fuel[vehid] > 100) Fuel[vehid] = 100;
        UpdateVehicleFuelAndOil(vehid);
    }
me salen estos errores
Код:
(4825) : error 017: undefined symbol "vehicleid"
(4834) : warning 217: loose indentation
adjunto la linea 4825
Код:
if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehicleid),Fuel[vehid] = 100;
adjunto la linea 4834
Код:
  if(!strcmp(ItemName,"Oil",true))
saludos...


Respuesta: Ayuda con este codigo - Swedky - 16.11.2013

pawn Код:
#define             MAX_FUEL                (100)

    if(!strcmp(ItemName, "Fuel", true))
    {
        static vehid;
        vehid = -1;
        vehid = GetClosestVehicle(playerid,4.0);
        if(vehid == -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
        if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehid),Fuel[vehid] = 100;
        RemoveItem(playerid,"Fuel",1);
        format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
        SendNearMessage(playerid,white,string,20);
        if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
        else Fuel[vehid]+=7;
        if(Fuel[vehid] > 100) Fuel[vehid] = 100;
        UpdateVehicleFuelAndOil(vehid);
    }



Respuesta: Ayuda con este codigo - alexsf - 16.11.2013

si pude compilar, pero al entrar al server y ponerle fuel en exceso se me cerro el samp-server.exe, no se porque sucede esto, talvez algun bug de mi game mode...


Respuesta: Ayuda con este codigo - OTACON - 16.11.2013

pawn Код:
#define MAX_FUEL (100)

if(!strcmp(ItemName, "Fuel", true))
{
    new vehid, string[128];
    vehid = GetClosestVehicle(playerid,4.0);
    if(vehid <= -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
    if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehid),Fuel[vehid] = 100;
    RemoveItem(playerid,"Fuel",1);
    format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
    SendNearMessage(playerid,white,string,20);
    if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
    else Fuel[vehid]+=7;
    if(Fuel[vehid] > 100) Fuel[vehid] = 100;
    UpdateVehicleFuelAndOil(vehid);
    return true;
}
EDIT: no se si l ohaz modificado al GetClosestVehicle, pero lo ke encontre yo no es asi .. O_o
utiliza el GetClosestVehicleForPlayer para eso..


Respuesta: Ayuda con este codigo - alexsf - 16.11.2013

Quote:
Originally Posted by OTACON
Посмотреть сообщение
pawn Код:
#define MAX_FUEL (100)

if(!strcmp(ItemName, "Fuel", true))
{
    new vehid, string[128];
    vehid = GetClosestVehicle(playerid,4.0);
    if(vehid <= -1) return SendClientMessage(playerid,red,"» You aren't near a vehicle!");
    if(Fuel[vehid] >= MAX_FUEL) return SendClientMessage(playerid,white,"» "cred"This %s does not need anymore fuel."),GetVehicleName(vehid),Fuel[vehid] = 100;
    RemoveItem(playerid,"Fuel",1);
    format(string,sizeof string,""cjam"%s(%i) has added some fuel to his vehicle.",GetPName(playerid),playerid);
    SendNearMessage(playerid,white,string,20);
    if(PInfo[playerid][SPerk] == 2) Fuel[vehid]+=12;
    else Fuel[vehid]+=7;
    if(Fuel[vehid] > 100) Fuel[vehid] = 100;
    UpdateVehicleFuelAndOil(vehid);
    return true;
}
EDIT: no se si l ohaz modificado al GetClosestVehicle, pero lo ke encontre yo no es asi .. O_o
utiliza el GetClosestVehicleForPlayer para eso..
gracias voy a probarlo, otra cosa tu crees que eso podria causar el cierre automatico del samp-server.exe?
es que cuando le pongo mucho fuel a un auto el server se cierra,
gracias probrare haber que tal...