[AJUDA] cmd /procurar
#1

Bom no gm que eu uso tem /procurar para localizar alguem e ficar seguindo um checkpoint, mas aconteceu 1 poblemгo
um deles e quando eu uso o /procurar tal id e relogo no server apos eu logar o checkpoint fica marcado na pessoa sem eu usar o cmd.O outro Bug e que quando uso o comando /procurar e chego no [ID] que marquei o checkpoint nao desativa vou postar o cmd abaixo:


Код:
	}
    if(strcmp(cmd, "/procurar", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pEmprego] != 1 && !IsACop(playerid) && !IsAHit(playerid))
            {
                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 1 Minuto!");
                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 = 35; }
                    else if(level >= 51 && level <= 100)
                    { points = 40; }
                    else if(level >= 101 && level <= 200)
                    { points = 45; }
                    else if(level >= 201 && level <= 400)
                    { points = 50; }
                    else if(level >= 401)
                    { points = 55; }
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    KillTimer(GetPVarInt(playerid,"TimerProcura"));
                    DisablePlayerCheckpoint(playerid);
                    DeletePVar(playerid,"TimerProcura");
                    new TimerProcura;
                    TimerProcura = SetTimerEx("GivePlayerIDCheckpoint", 1000, true, "di", playerid, giveplayerid);
                    SetPVarInt(playerid,"TimerProcura",TimerProcura);
                    FindTime[playerid] = 1;
                    FindTimePoints[playerid] = points;
                    PlayerInfo[playerid][pDetSkill] ++;
                    UsedFind[playerid] = 1;
                    if(PlayerInfo[playerid][pDetSkill] == 50)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nivel de detetive agora й 2, Vocк pode procurar mais rapido e encontrar mais rapido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 100)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nivel de detetive agora й 3, Vocк pode procurar mais rapido e encontrar mais rapido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 200)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nivel de detetive agora й 4, Vocк pode procurar mais rapido e encontrar mais rapido."); }
                    else if(PlayerInfo[playerid][pDetSkill] == 400)
                    { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nivel de detetive agora й 5, Vocк pode procurar mais rapido e encontrar mais rapido."); }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   Invalido NICK/ID !");
            }
        }
        return 1;
    }

===================================================================================
	}
    if(IsPlayerInRangeOfPoint(playerid,10.0,GetPVarFloat(playerid,"FocoX"), GetPVarFloat(playerid,"FocoY"), GetPVarFloat(playerid,"FocoZ")))
    {
        DisablePlayerCheckpoint(playerid);
        DeletePVar(playerid,"FocoX");
        DeletePVar(playerid,"FocoY");
        DeletePVar(playerid,"FocoZ");
        KillTimer(GetPVarInt(playerid,"TimerProcura"));
    }

===================================================================================
			    }
			}
			if(FindTime[i] > 0)
			{
			    if(FindTime[i] == FindTimePoints[i]) { FindTime[i] = 0; FindTimePoints[i] = 0; DisablePlayerCheckpoint(i); DeletePVar(i,"TimerProcura");  PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); GameTextForPlayer(i, "~r~Checkpoin Desativado", 2500, 1); }
			    else
				{
				    new string[256];
				    format(string, sizeof(string), "%d", FindTimePoints[i] - FindTime[i]);
					GameTextForPlayer(i, string, 1500, 6);
					FindTime[i] += 1;
				}
			}
Reply
#2

Pelo que vi o cmd parece estar certo, deve ser em outra coisa q pode estar atralhando o /procurar
Reply
#3

Pra desativar o checkpoint seria algo no OnPlayerCheckPoint.
Sobre o bug do relogar, coloque algo no OnPlayerDisconnect.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)