[ajuda] explosгo
#1

pawn Код:
SetTimer("ttiro", 5000, true);
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if ((newkeys & (KEY_FIRE | KEY_SPRINT)) == (KEY_FIRE | KEY_SPRINT) && (oldkeys & (KEY_FIRE | KEY_SPRINT)) != (KEY_FIRE | KEY_SPRINT) || newkeys == KEY_FIRE)
    {
        for(new v = 0; v <= MAX_VEHICLES; v++)
        {
            if(IsPlayerInAnyVehicle(v))
            {
                if(!tiro[playerid])
                {
                    new Float:x, Float:y, Float:z;
                    GetVehiclePos(v, x, y, z);
                    CreateExplosion(x, y + 25, z, 3, 5.0);
                    CreateExplosion(x, y + 30, z, 3, 5.0);
                    CreateExplosion(x, y + 35, z, 3, 5.0);
                    CreateExplosion(x, y + 40, z, 3, 5.0);
                    CreateExplosion(x, y + 45, z, 3, 5.0);
                    CreateExplosion(x, y + 50, z, 3, 5.0);
                    tiro[playerid] = true;
                    return 1;
                }
                else return SendClientMessage(playerid, -1, "Espere 5 segundos para sua arma recarregar!");
            }
        }
    }
    return 1;
}
pawn Код:
forward ttiro(playerid);
public ttiro(playerid)
{
    if(tiro[playerid])
    {
        tiro[playerid] = false;
    }
    return 1;
}
Toda vez que aperto o botгo KEY_FIRE aparece a mensagem "Espere 5 segundos atй sua arma recarregar" e nunca explode nada... alguйm sabe por quк ?
Reply
#2

Tenta isso.

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if ((newkeys & (KEY_FIRE | KEY_SPRINT)) == (KEY_FIRE | KEY_SPRINT) && (oldkeys & (KEY_FIRE | KEY_SPRINT)) != (KEY_FIRE | KEY_SPRINT) || newkeys == KEY_FIRE)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            if(!tiro[playerid])
            {
                new Float:x, Float:y, Float:z;
                GetVehiclePos(v, x, y, z);
                CreateExplosion(x, y + 25, z, 3, 5.0);
                CreateExplosion(x, y + 30, z, 3, 5.0);
                CreateExplosion(x, y + 35, z, 3, 5.0);
                CreateExplosion(x, y + 40, z, 3, 5.0);
                CreateExplosion(x, y + 45, z, 3, 5.0);
                CreateExplosion(x, y + 50, z, 3, 5.0);
                tiro[playerid] = true;
                return 1;
            }
            else return SendClientMessage(playerid, -1, "Espere 5 segundos para sua arma recarregar!");
        }
    }
    return 1;
}
Reply
#3

LOL, agora que vi ... era pra usar IsPlayerInVehicle nгo InAnyVehicle... tava tгo distraнdo fazendo a forward que nem percebi...
Reply
#4

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if ((newkeys & (KEY_FIRE | KEY_SPRINT)) == (KEY_FIRE | KEY_SPRINT) && (oldkeys & (KEY_FIRE | KEY_SPRINT)) != (KEY_FIRE | KEY_SPRINT) || newkeys == KEY_FIRE)
    {
        for(new v = 0; v <= MAX_VEHICLES; v++)
        {
            if(IsPlayerInAnyVehicle(playerid))
            {
                if(!tiro[playerid])
                {
                    new Float:x, Float:y, Float:z;
                    GetVehiclePos(v, x, y, z);
                    CreateExplosion(x, y + 25, z, 3, 5.0);
                    CreateExplosion(x, y + 30, z, 3, 5.0);
                    CreateExplosion(x, y + 35, z, 3, 5.0);
                    CreateExplosion(x, y + 40, z, 3, 5.0);
                    CreateExplosion(x, y + 45, z, 3, 5.0);
                    CreateExplosion(x, y + 50, z, 3, 5.0);
                    tiro[playerid] = true;
                    return 1;
                }
                else return SendClientMessage(playerid, -1, "Espere 5 segundos para sua arma recarregar!");
            }
        }
    }
    return 1;
}
Eu acho que assim seria o mais apropriado. Mais nгo creio que o problema seja esse...
Reply
#5

sу uma duvida, tem como explodir na direзгo que o carro estб indo ao invйs da float X + 25 (exemplo) ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)