[AJUDA] /fumaca
#1

Olб galera eu tenho esse comando aqui que foi atй o Pharrel que fez:

pawn Код:
new smoke[MAX_VEHICLES];
    new Fumaceado[MAX_VEHICLES];

if (strcmp(cmdtext, "/fumaca", true) == 0)
    {
        new vehid = GetPlayerVehicleID(playerid);
        new carid = GetVehicleModel(vehid);
        if(carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460)
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(Fumaceado[vehid] == 0)
                {
                    smoke[vehid] = CreateObject(2780,0,0,0,0,0,50000);
                    AttachObjectToVehicle(smoke[vehid], vehid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
                    SendClientMessage(playerid, COLOR_WHITE, "Fumaca ligada.");
                    Fumaceado[vehid] = 1;
                }
                else
                {
                    DestroyObject(smoke[vehid]);
                    SendClientMessage(playerid, COLOR_WHITE, "Fumaca desligada.");
                    Fumaceado[vehid] = 0;
                }
            }
        }
        return 1;
    }
Sу que tipo quando digita /fumaca novamente ela nao desliga, ou seja o objeto nao й destruido e nao й dado a mensagem "Fumaca desligada.". E tambem ela ta criando pra todos veiculos. Tipo quando o player sair do veiculo a fumaзa deve ser desligada tambem e tipo, somente pra quele player que ela deve ser deligada ou ligada quando ele usar /fumaca. O que acontece й que eu fui testar, e quando eu entrei em outro aviao ele tinha tambem.

Como resolver tudo isso?
Reply
#2

pawn Код:
//variaveis global
new smoke[MAX_VEHICLES];
new vehid = GetPlayerVehicleID(playerid);
new carid = GetVehicleModel(vehid);
new Fumaceado[MAX_VEHICLES];

if (strcmp(cmdtext, "/fumaca", true) == 0)
{
    if(carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460) {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
            if(Fumaceado[vehid] == 0) {
                smoke[vehid] = CreateObject(2780,0,0,0,0,0,50000);
                AttachObjectToVehicle(smoke[vehid], vehid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
                SendClientMessage(playerid, COR_AZUL, "Fumaca ligada.");
                Fumaceado[vehid] = 1;
            }
        }
    }
    return 1;
}


if (strcmp(cmdtext, "/fumacadesligar", true) == 0)
{
    DestroyObject(smoke[vehid]);
    SendClientMessage(playerid, COR_AZUL, "Fumaca desligada.");
    Fumaceado[vehid] = 0;
    return 1;
}
Reply
#3

pawn Код:
new smoke[MAX_VEHICLES];

    if (!strcmp(cmdtext, "/fumaca", true))
    {
        new vehid = GetPlayerVehicleID(playerid);
        new carid = GetVehicleModel(vehid);
        if(carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460)
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(smoke[vehid] == 0xFFFF)
                {
                    smoke[vehid] = CreateObject(2780,0,0,0,0,0,50000);
                    AttachObjectToVehicle(smoke[vehid], vehid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
                    return SendClientMessage(playerid, COLOR_WHITE, "Fumaca ligada.");
                }
                else
                {
                    DestroyObject(smoke[vehid]);
                    return SendClientMessage(playerid, COLOR_WHITE, "Fumaca desligada.");
                }
            }
            else return SendClientMessage(playerid, -1, "Vocк nгo estб dirigindo a aeronave!");
        }
        else return SendClientMessage(playerid, -1, "Vocк nгo estб em uma aeronave!");
    }
Tenta assim, deleta a variavel fumace n sei oq...
Reply
#4

Agora ele sу bota: Fumaзa desligada...

Ele nao ta chegando nem ligar ela...

E tipo o bug que eu tinah falado sobre ta criando em outros veiculos falei merda, ta com esse bug nao... sу com o bug de nao desligar e tals... e queria que quando o cara saisse do veiculo o objeto fosse destruido tambem...


EDIT: Ah e megatron eu quero um unico comando... Nгo esqeunta...
Reply
#5

pawn Код:
new smoke[MAX_VEHICLES];

if (!strcmp(cmdtext, "/fumaca", true))
{
    new vehid = GetPlayerVehicleID(playerid);
    new carid = GetVehicleModel(vehid);
    if(carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460) {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
            if(smoke[vehid] == 0xFFFF) {
                smoke[vehid] = CreateObject(2780,0,0,0,0,0,50000);
                AttachObjectToVehicle(smoke[vehid], vehid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
                return SendClientMessage(playerid, -1, "Fumaca ligada.");
            }
            else {
                DestroyObject(smoke[vehid]);
                return SendClientMessage(playerid, -1, "Fumaca desligada.");
            }
        }
    }
    else {
        SendClientMessage(playerid, -1, "Vocк nгo estб dirigindo a aeronave!");
    }
}


else
{
    SendClientMessage(playerid, -1, "Vocк nгo estб em uma aeronave!");
}
Reply
#6

pawn Код:
new smoke[MAX_VEHICLES];
new LastVehicle[MAX_PLAYERS];
new bool:smoking[MAX_VEHICLES] = false; // todas devem ser variaveis globais

    if (!strcmp(cmdtext, "/fumaca", true))
    {
        new vehid = GetPlayerVehicleID(playerid);
        new carid = GetVehicleModel(vehid);
        if(carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460)
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(!smoking[vehid])
                {
                    smoke[vehid] = CreateObject(2780,0,0,0,0,0,50000);
                    AttachObjectToVehicle(smoke[vehid], vehid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
                    smoking[vehid] = true;
                    return SendClientMessage(playerid, COLOR_WHITE, "Fumaca ligada.");
                }
                else
                {
                    DestroyObject(smoke[vehid]);
                    smoking[vehid] = false;
                    return SendClientMessage(playerid, COLOR_WHITE, "Fumaca desligada.");
                }
            }
            else return SendClientMessage(playerid, -1, "Vocк nгo estб dirigindo a aeronave!");
        }
        else return SendClientMessage(playerid, -1, "Vocк nгo estб em uma aeronave!");
    }


    //public onplayerstatechange
    if(newstate == PLAYER_STATE_DRIVER)
        LastVehicle[playerid] = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        if(smoking[LastVehicle[playerid]])
            DestroyObject(LastVehicle[playerid]);
        LastVehicle[playerid] = 0;
    }
Estranho, n vejo motivo pra dar problema no codigo....
Reply
#7

Deu certinho pharrel o comando /fumaca... sу que o:

pawn Код:
public OnPlayerStateChange(playerid,newstate,oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
        LastVehicle[playerid] = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        if(smoking[LastVehicle[playerid]])
            DestroyObject(LastVehicle[playerid]);
        LastVehicle[playerid] = 0;
    }
    return 1;
}
deu nao
Reply
#8

Nossa que erro idiota, sу acha a linha
pawn Код:
DestroyObject(LastVehicle[playerid]);
E substitui por
pawn Код:
DestroyObject(smoke[LastVehicle[playerid]]);
Reply
#9

pharrel deu certinho aqui agora brigadгo! Mas tem mais uma coisa:

Quando por exemplo eu uso /fumaca no aviao, ai eu saio dele. Bom a fumaca й desativada certinho... Ai eu volto pro aviao e digito /fumaca, ai aparece "Fumaca desligada", ai eu tenho que usar de novo /fumaca pra ligar... sendo qu quando eu sai do veiculo a fumaca ja desligou...
Reply
#10

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    smoking[vehid] = false;
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)