Portal SAMP
[Ajuda] objeto não destroi - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] objeto não destroi (/showthread.php?tid=384)



objeto não destroi - LeleziiN - 25/11/2020

Bom quando atiro no objeto(veado) ele não se destroi e nem quando saiu da area de caça o objeto não se destroi, oq poderia ser?

codigo da area
Código:
if(X >= -1773.246093 && Y >= -2412.403564 && X <= -1501.246093 && Y <= -2100.403564) //Floresta LS
            {
                   if(GetPlayerInterior(I) == 0)
                {
                    //GameTextForPlayer(i,"~p~Area ~g~de ~r~Caca",500,4);
                    TextDrawSetString(TextdrawPostos[I], "~n~~y~~h~Area ~w~~h~de ~b~~h~~h~~h~Caca ~w~~h~- ~g~~h~~h~~h~/Cacar");
                    TextDrawShowForPlayer(I, TextdrawPostos[I]);
                    AreaCaca[I] = 1;
                }
            }
            else
            {
                AreaCaca[I] = 0;
                if(CacaInProgress[I] == 1)
                {
                    SendClientMessage(I, COR_ORKUT, "| INFO | Você abandonou sua caça...");
                    CacaInProgress[I] = 0;
                    DestroyDynamicObject(Veados[I]);
                    //Cacas[I] = 16;
                    //TempoCacaAtivado[I] = 0;
                    //KillTimer(TempoCaca[I]);
                }
            }

e o codigo do tiro
Código:
public OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z)
{
    for(new i; i != 17; i++)//10
    {
        if(objectid == Veados[i])
        {
               DestroyDynamicObject(Veados[i]);
               SendClientMessage(playerid, COR_MARA1, "| INFO | Você abateu um veado com sucesso!");
               DisablePlayerCheckpoint(playerid);
               Cacas[playerid] ++;
        }
    }
    return 1;
}
Poderiam mim ajudar pfvr


RE: objeto não destroi - Guscooby - 25/11/2020

Para saber se você está próximo de algum local é interessante usar o
Código:
IsPlayerInRangePoint

Já no problema do tiro no veado, você precisa enviar o código da criação do objeto. Talvez o problema esteja na criação do próprio objeto.


RE: objeto não destroi - LeleziiN - 26/11/2020

A parte de criar o objeto

Código:
if(strcmp(cmd, "/cacar", true) == 0)
    {
        if(Profissao[playerid] == Cacador || VerificarADM(playerid) == 1)
        {
            if(CacaInProgress[playerid] == 1)
            {
                  SendClientMessage(playerid, CORX1, "| ERRO | Você já está caçando!");
                return 1;
            }
            if(CacaInProgress[playerid] == 0)
            {
                  new Float:X, Float:Y, Float:Z;
                GetPlayerPos(playerid,X,Y,Z);
                if(AreaCaca[playerid] == 1)
                {
                    new indx = random(sizeof(VeadosCF));
                    Veados[0] = CreateDynamicObject(19315, VeadosCF[indx][0], VeadosCF[indx][1], VeadosCF[indx][2], 0, 0, 0);
                    SetPlayerCheckpoint(playerid, VeadosCF[indx][0], VeadosCF[indx][1], VeadosCF[indx][2], 1.0);
                    //SetPlayerMapIcon(playerid, 90, Float:X, Float:Y, Float:Z, 56, 0, MAPICON_GLOBAL_CHECKPOINT);
                    //PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0 );
                    SendClientMessage(playerid, COR_MARA1, "| INFO | Caça iniciada. Há informações de um animal a poucos metros de você, siga o icone amarelo no mapa para chegar ao local!");
                    CacaInProgress[playerid] = 1;
                    //return 1;
                }
                else
                {
                    SendClientMessage(playerid,CORX1,"| ERRO | Você não está na área de caça.");
                    return 1;
                }
            }
        }
        else
        {
            SendClientMessage(playerid,CORX1,"| ERRO | Você não tem permissão!");
            return 1;
        }
        return 1;
    }


A base que fiz o meu
Código:
#include <a_samp>
#include <streamer>
#include <zcmd>

new Veados[10];
new Cacas[MAX_PLAYERS];
new PodePegar[MAX_PLAYERS];

new Float: ViadosCF[9][3] =
{
    {-1719.8383,-2234.2600,50.4234}, // X Y Z coord 1
    {-1772.4163,-2231.8875,66.7393}, // X Y Z coord 2
    {-1804.1705,-2206.6208,75.7214},  // X Y Z coord 3
    {-1834.0166,-2185.7173,80.4917}, // X Y Z coord 4
    {-1861.4663,-2166.8967,82.6432}, // X Y Z coord 5
    {-1928.5894,-2141.1968,76.4992},  // X Y Z coord 6
    {-1962.7743,-2111.5525,78.2001}, // X Y Z coord 7
    {-2002.7104,-2027.5487,80.9751}, // X Y Z coord 8
    {-1997.5974,-2008.5566,85.7108} // X Y Z coord 9
};

main()
{
    print("\n----------------------------------");
    print("By Juliano Carrinho");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Caça");
    AddPlayerClass(18, -1633.5469, -2233.8367, 31.4766, 0, 0, 0, 0, 0, 0);

    //System Caçador By Juliano Carrinho
    //
    CreatePickup(358, 23, -1633.5469, -2233.8367, 31.4766, -1);
    Create3DTextLabel("Pegue Seu Rifle de Caca Aqui\n/rifle\nBoa Caca!!", -1, -1633.5469, -2233.8367, 31.4766, 40.0, 0, -1);
    //
    CreatePickup(19315, 23, -1628.9717,-2239.3115,31.4766, -1);
    Create3DTextLabel("Aperte 'F' Para Ver As Instrucoes!!", -1, -1628.9717,-2239.3115,31.4766, 40.0, 0, -1);
    //
    AddStaticVehicle(471,-1646.0482,-2247.6357,30.6148,91.9894,77,82); // Quad 1
    AddStaticVehicle(471,-1645.7937,-2245.8611,30.4259,89.7857,77,82); // Quad 2
    //
    new Cacador = CreateActor (18, -1632.7811, -2247.2131, 31.4766, 2.5765);
    ApplyActorAnimation(Cacador, "ped","IDLE_chat", 4.1,1,0,0,1,0);
    Create3DTextLabel("Venda Suas Cacas Aqui\n/vendercaca", -1, -1632.7811,-2247.2131,31.4766, 40.0, 0, -1);
    //
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, -1633.5469, -2233.8367, 31.4766);
    SetPlayerCameraPos(playerid, -1633.5469, -2233.8367, 31.4766);
    SetPlayerCameraLookAt(playerid, -1633.5469, -2233.8367, 31.4766);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SetPlayerPos(playerid, -1633.5469, -2233.8367, 31.4766);
   
    for(new i; i < 100; i++)
    {
        SendClientMessage(playerid ,-1, " ");
    }
    PodePegar[playerid] = 0;
    return 1;
}

public OnPlayerDeath(playerid)
{
    PodePegar[playerid] = 0;
    return 1;
}

CMD:rifle(playerid)
{
    if(PodePegar[playerid] == 1) return SendClientMessage(playerid, -1, "| ERRO | Voce Ja Pegou um Rifle");
    GivePlayerWeapon(playerid, 34, 9999);
    SendClientMessage(playerid, -1, "| INFO | Voce Pegou Seu Rifle de Caca, Leia As Instrucoes, Boa Caca!!");
    PodePegar[playerid] = 1;
    return 1;
}

CMD:cacarv(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 1000.0, -1633.5469, -2233.8367, 31.4766))
    {
        new indx = random(sizeof(ViadosCF));
        Veados[0] = CreateDynamicObject(19315, ViadosCF[indx][0], ViadosCF[indx][1], ViadosCF[indx][2], 0, 0, 0);
        SetPlayerCheckpoint(playerid, ViadosCF[indx][0], ViadosCF[indx][1], ViadosCF[indx][2], 1.0);
    }
    else SendClientMessage(playerid, -1, "| ERRO | Voce Nao Esta na Area de Caca");
    return 1;
}

CMD:vendercacav(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 2.0, -1632.7811,-2247.2131,31.4766))
    {
        if(Cacas[playerid] < 3) return SendClientMessage(playerid, -1, "| ERRO | Voce Nao Tem Casas Suficiente!!");
        new GranaExp = randomEx(50, 100), Str[55];
        format(Str, 55, "| INFO | Voce recebeu R$ %i,00 Pela Caca!", GranaExp);
        SendClientMessage(playerid, 0x33AA33AA, Str);
        GivePlayerMoney(playerid, GranaExp);
    }
    else SendClientMessage(playerid, -1, "| ERRO | Voce Nao Esta na Area de Caca");
    return 1;
}
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, -1628.9717,-2239.3115,31.4766))
        {
            SendClientMessage(playerid, -1, "| INFO | Voce Comecou a Casa, Procure Os Veados Pela Area e Mate-os!!");
            SendClientMessage(playerid, -1, "| INFO | Cada Vez Que Voce Matar Um Veado, Voce Ganha 1Kg De Carne, Depois e So Vender");
            SendClientMessage(playerid, -1, "| INFO | Use o Quad Para Se Movimentar Melhor Pela Area.. E /cacar Para Cacar");
        }
    }
    return 1;
}

public OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z)
{
    for(new i; i != 10; i++)
    {
        if(objectid == Veados[i])
        {
            DestroyDynamicObject(Veados[i]);
            SendClientMessage(playerid, -1, "| CACA | Voce Acertou Um Veado");
            DisablePlayerCheckpoint(playerid);
            Cacas[playerid] ++;
        }
    }
    return 1;
}

stock randomEx(min, max)
    return random(max - min) + min;



RE: objeto não destroi - LeleziiN - 27/11/2020

Pderiam mim ajudar


RE: objeto não destroi - LeleziiN - 30/12/2020

Resolvido, sistema próprio criado