[ajuda] Nгo consigo resolver o BUG do /veh
#1

Pessoal, sou novato em PAWN como ja havia dito em outro forum, mas estou editando a GM LAC e ja estou conseguindo criar portoes, editar ORGs, criar teleportes, interiores etc. Acho q ja consigo ate criar ORGs e consegui tudo isso pesquisando aqui, mas agora apareceu um problema q nao sei como resolver e na ferramenta de pesquisa nгo encontrei nada do tipo.
Aqui na minha GM (LAC) parecia estar tudo bom ate agora, quando apareceu um BUG q eu nгo consigo resolver. Toda vez que eu vou criar um veiculo, que no caso o comando й /veh como todos vcs sabem, alguns veiculos que sгo criados para mim vem trancados, tornando impossivel de utiliza-los (Pois nгo tem como entrar nй xD).
Entao eu queria saber se algum de vocкs podem me ajudar a resolver esse BUG.
Aqui esta o comando:
Код:
	if(strcmp(cmd, "/veh", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if (PlayerInfo[playerid][pAdmin] < 1337)
			{
			    SendClientMessage(playerid, COLOR_GRAD1, "  Voce nao tem permissao para usar esse comando!");
			    return 1;
			}
			if(PoderosoInfo[playerid][pTrampo] < 1)
			{
				SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/profadmin)");
				return 1;
			}
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
				return 1;
			}
			new car;
			car = strval(tmp);
			if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "   ID de veiculo minimo 400 maximo 611!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
				return 1;
			}
			new color1;
			color1 = strval(tmp);
			if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "   Numero da cor minima 0 maxima 126!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
				return 1;
			}
			new color2;
			color2 = strval(tmp);
			if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "   Numero da cor minima 0 maxima 126!"); return 1; }
			new Float:X,Float:Y,Float:Z;
			GetPlayerPos(playerid, X,Y,Z);
			new carid = AddStaticVehicle(car, X,Y,Z, 0.0, color1, color2);
			CreatedCars[CreatedCar] = carid;
			CreatedCar ++;
			format(string, sizeof(string), "   Veiculo numero %d Criado.", carid);
			SendClientMessage(playerid, COLOR_GREY, string);
		}
		return 1;
	}
Reply
#2

Tenta este
pawn Код:
if(strcmp(cmd, "/veiculo", true) == 0)
    {
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, 0xFF0000AA, "USO: /veiculo [ID] [COR 1] [COR 2]");
            return 1;
        }
        new ID;
        ID = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, 0xFF0000AA, "USO: /veiculo [ID] [COR 1] [COR 2]");
            return 1;
        }
        new Cor1;
        Cor1 = strval(cmd);
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, 0xFF0000AA, "USO: /veiculo [ID] [COR 1] [COR 2]");
            return 1;
        }
        new Cor2;
        Cor2 = strval(cmd);
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        CreateVehicle(ID, X+2, Y, Z, 0.0, Cor1, Cor2, 60000);
        return SendClientMessage(playerid, 0x00FF00AA, "Veiculo Criado");
    }
Reply
#3

Deve ter uma variбvel que й usada para verificar se o veнculo estб trancado ou nгo.

Ex:
pawn Код:
Trancado[vehicleid] = 1; //trancado
Trancado[vehicleid] = 0; //destrancado
Procure qual й, e destranque o veнculo apуs sua criaзгo.
Reply
#4

Aparece 1 erro e alguns warning's.
Aqui estao eles:
Код:
LAC.pwn(32766) : warning 219: local variable "ID" shadows a variable at a preceding level
LAC.pwn(32767) : error 022: must be lvalue (non-constant)
LAC.pwn(32786) : warning 213: tag mismatch
LAC.pwn(32766) : warning 203: symbol is never used: "ID"
LAC.pwn(49001) : warning 203: symbol is never used: "CreatedCar"
Reply
#5

Encontrei uma public onde contem as variaveis que define se o veiculo esta fechado ou nгo.
Aqui esta:
Код:
public OnVehicleStreamIn(vehicleid, forplayerid)
{
	if(Trancado[vehicleid] >= 1) { SetVehicleParamsForPlayer(vehicleid,forplayerid,0,1); }
	if(Trancado[vehicleid] <= 0) { SetVehicleParamsForPlayer(vehicleid,forplayerid,0,0); }
	return 1;
}
Reply
#6

Manda a linha de nъmero 32767
Reply
#7

Ai esta a linha:
Код:
        ID = strval(cmd);
Reply
#8

Tenta AE!
pawn Код:
if(strcmp(cmd, "/veh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if (PlayerInfo[playerid][pAdmin] < 1337)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "  Voce nao tem permissao para usar esse comando!");
                return 1;
            }
            if(PoderosoInfo[playerid][pTrampo] < 1)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/profadmin)");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
                return 1;
            }
            new car;
            car = strval(tmp);
            if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "   ID de veiculo minimo 400 maximo 611!"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
                return 1;
            }
            new color1;
            color1 = strval(tmp);
            if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, "   Numero da cor minima 0 maxima 126!"); return 1; }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /veh [ID do Carro] [Cor 1] [Cor 2]");
                return 1;
            }
            new color2;
            color2 = strval(tmp);
            if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, "   Numero da cor minima 0 maxima 126!"); return 1; }
            new Float:X,Float:Y,Float:Z;
            GetPlayerPos(playerid, X,Y,Z);
            new carid = AddStaticVehicle(car, X,Y,Z, 0.0, color1, color2);
            CreatedCars[CreatedCar] = carid;
            CreatedCar ++;
            format(string, sizeof(string), "   Veiculo numero %d Criado.", carid);
            SendClientMessage(playerid, COLOR_GREY, string);
            Trancado[carid] = 0;
        }
        return 1;
    }
Reply
#9

Nossa, funcionou perfeito , nгo sei nem como agradecer pela ajuda que vocкs me deram, se precisar da minha ajuda й so falar!
Reply
#10

LOL, nem tinha visto sua responsta marcelo mostrando a linha, eu tava codando...

Malz a demora!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)