Ayuda con este codigo
#1

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.
Reply
#2

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);
    }
Reply
#3

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...
Reply
#4

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);
    }
Reply
#5

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...
Reply
#6

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..
Reply
#7

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...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)