[Pedido] base de um /procurar
#1

Galera queria sу uma base de um /procurar [id] que fique acompanhando o player onde ele for, acho q isso seria o Chekpoint dele ficasse atualizando a cada 3 segundos ou mais.
Vlw
Reply
#2

Vocк diz /espiar id?
Reply
#3

pawn Код:
#include <a_samp>
#include <a_zones>
#include <zcmd>

new Timer[MAX_PLAYERS];
forward Localizador(playerid, otherid);

public Localizador(playerid, otherid)
{
    if(!IsPlayerConnected(otherid)) return KillTimer(Timer[playerid]);
    new Float:x, Float:y, Float:z, Float:o_Distance, a[128], zone[MAX_ZONE_NAME];
    GetPlayerPos(otherid, x, y, z);
    o_Distance = GetPlayerDistanceFromPoint(playerid, x, y, z),
    format(a, sizeof(a), "%s~n~Distвncia: %0.2f metros~n~Local: %s", PlayerName(otherid), o_Distance, GetPlayer2DZone(otherid, zone, MAX_ZONE_NAME));
    GameTextForPlayer(playerid, a, 3000, 5);
    return 1;
}

CMD:procurar(playerid, params[])
{
    if(isnull(params)) return false;
    new otherid = strval(params);
    if(!IsPlayerConnected(otherid)) return false;
    Timer[playerid] = SetTimerEx("Localizador", 1500, true, "dd", playerid, otherid);
    return 1;
}

CMD:parar(playerid, params[])
{
    #pragma unused params
    KillTimer(Timer[playerid]);
    return 1;
}

stock PlayerName(playerid)
{
    new a[MAX_PLAYER_NAME];
    GetPlayerName(playerid, a, MAX_PLAYER_NAME);
    return a;
}
Crйditos: DrTHE
Tуpico: https://sampforum.blast.hk/showthread.php?tid=375945
Reply
#4

esse aki й o q eu uso:
pawn Код:
if(strcmp(cmd, "/procurar", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pEmprego] != 1)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo й Detetive !");
                return 1;
            }
            if(UsedFind[playerid] != 0 && PlayerInfo[playerid][pDetSkill] < 401)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк sу pode procurar novamente, daqui a 2 Minutos !");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /procurar [id]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se procurar!"); return 1; }
                    new points;
                    new level = PlayerInfo[playerid][pDetSkill];
                    if(level >= 0 && level <= 50)
                    { points = 4; }
                    else if(level >= 51 && level <= 100)
                    { points = 6; }
                    else if(level >= 101 && level <= 200)
                    { points = 8; }
                    else if(level >= 201 && level <= 400)
                    { points = 10; }
                    else if(level >= 401)
                    { points = 12; }
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    new Float:X,Float:Y,Float:Z;
                    GetPlayerPos(giveplayerid, X,Y,Z);
                    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
                    FindTime[playerid] = 1;
                    FindTimePoints[playerid] = points;
                    PlayerInfo[playerid][pDetSkill] ++;
                    UsedFind[playerid] = 1;
                    if(PlayerInfo[playerid][pDetSkill] == 50)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de detetive agora й 2, Vocк pode procurar mais rбpido e encontrar mais rбpido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 100)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de detetive agora й 3, Vocк pode procurar mais rбpido e encontrar mais rбpido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 200)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de detetive agora й 4, Vocк pode procurar mais rбpido e encontrar mais rбpido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 400)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de detetive agora й 5, Vocк pode procurar mais rбpido e encontrar mais rбpido."); }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   Esse nгo й um jogador ativo !");
            }
        }
        return 1;
    }
Mas o ChekPoint fika sу por 3 segundos, e ele с fika atualizando, ele marca aonde o player tava aquela hora quando vc digitou, mas o chekpoint с segue o player;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)