[Ajuda] /vida
#1

Esse comando da org dos medicos estar bugado, ele consegue usar o comando estando longe do player e sem ele aceitar quem pode ajudar. quebrei muita cabeзa ja.

pawn Код:
if(strcmp(cmd, "/vida", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new location = PlayerInfo[playerid][pLocal];
            if(!strlen(tmp))
            {
                if(location != 255)
                {
                    if(location < 99)
                    {
                        if(HouseInfo[location][hArm] == 1 && IsACop(playerid))
                        {
                            format(string, sizeof(string), "* %s pega seu colete.", sendername);
                            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                            TogglePlayerControllable(playerid, 0);
                            GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
                            Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
                            Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
                            SetPlayerPos(playerid,1527.5,-12.1,1002.0);
                            PlayerInfo[playerid][pLocal] = 255;
                            SetPlayerInterior(playerid,99);
                            Spectate[playerid] = 257;
                        }
                        else if(HouseInfo[location][hHel] == 1)
                        {
                            SetPlayerHealth(playerid,100.0);
                            PlayerInfo[playerid][pDoenca] = 0;
                            SetPlayerDrunkLevel (playerid, 0);
                            PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
                            SendClientMessage(playerid, COLOR_LIGHTBLUE,"Vocк foi curado.");
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY,"Este lugar nao tem lugar de se curar.");
                        }
                        return 1;
                    }
                    else if(location == 101)//Restaurant
                    {
                        SetPlayerHealth(playerid,100.0);
                        SetPlayerArmour(playerid,100.0);
                        PlayerInfo[playerid][pDoenca] = 0;
                        SetPlayerDrunkLevel (playerid, 0);
                        PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE,"Vocк foi curado.");
                    }
                    else if(location == 102 && IsACop(playerid))//Police Armorry
                    {
                        SetPlayerHealth(playerid,100.0);
                        format(string, sizeof(string), "* %s Foi Curado.", sendername);
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        TogglePlayerControllable(playerid, 0);
                        GetPlayerPos(playerid, Unspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
                        Unspec[playerid][sPint] = PlayerInfo[playerid][pInt];
                        Unspec[playerid][sLocal] = PlayerInfo[playerid][pLocal];
                        SetPlayerPos(playerid,1527.5,-12.1,1002.0);
                        PlayerInfo[playerid][pLocal] = 255;
                        SetPlayerInterior(playerid,99);
                        Spectate[playerid] = 257;
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [preзo]");
                    return 1;
                }
            }
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /vida [id] [price]");
                return 1;
            }
            moneys = strval(tmp);
            if(moneys < 1 || moneys > 5000) { SendClientMessage(playerid, COLOR_GREY, "   O Preзo nгo pode passar de 5000 !"); return 1; }
            if (giveplayerid == playerid)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo pode se curar!");
                return 1;
            }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    if(gTeam[playerid] == TEAM_CYAN||PlayerInfo[playerid][pMembro]==4||PlayerInfo[playerid][pLider]==4)//model
                    {
                        new Veh = GetPlayerVehicleID(playerid);
                        if(IsAnAmbulanceCar(Veh))
                        {
                            format(string, sizeof(string), "~y~Voce foi curado ~n~~w~%s~n~~g~R$%d", giveplayer,moneys);
                            GameTextForPlayer(playerid, string, 5000, 1);
                            GivePlayerMoney(playerid,moneys);
                            GivePlayerMoney(giveplayerid,-moneys);
                            new hp = 0;
                            if(PlayerInfo[playerid][pPainPerk] > 0)
                            {
                                hp = 20 * PlayerInfo[playerid][pPainPerk]; hp += 100;
                                SetPlayerHealth(giveplayerid, hp);
                            }
                            else
                            {
                                hp = 100;
                                SetPlayerHealth(giveplayerid, 100);
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                            }
                            new colete = 0;
                            if(PlayerInfo[playerid][pPainPerk] > 0)
                            {
                                colete = 0 * PlayerInfo[playerid][pPainPerk]; colete += 100;
                                SetPlayerArmour(giveplayerid, colete);
                            }
                            else
                            {
                                colete = 100;
                                SetPlayerArmour(giveplayerid, 100);
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                            }
                            PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
                            PlayerPlaySound(giveplayerid, 1150, 0.0, 0.0, 0.0);
                            format(string, sizeof(string), "Vocк foi curado, %d de saude e %d de colete por -R$%d",hp,colete,moneys);
                            SendClientMessage(giveplayerid, COLOR_LIGHTBLUE,string);
                            if(PlayerInfo[giveplayerid][pDoenca] > 0)
                            {
                                PlayerInfo[giveplayerid][pDoenca] = 0;
                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Vocк nгo estб infectado com nenhuma doenзa, por causa de cuidados medicos!");
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GRAD1, "  Vocкs dois precisam estar no veнculo!");
                            return 1;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб autorizado a usar o comando!");
                        return 1;
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, " Esse jogador estб offline");
            }
        }
        return 1;
    }
Reply
#2

Tenta por isso:
pawn Код:
IsPlayerInRangeOfPoint
@edit
Aliais, viajei.. nгo li seu tуpico todo :F
@Edit2
Bota isso aqui:
pawn Код:
ProxDetector(30.0, playerid, string);
Reply
#3

Porque nao usa GetDistanceBetweenPlayers?
pawn Код:
stock GetDistanceBetweenPlayers(playerid,playerid2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    new Float:tmpdis;
    GetPlayerPos(playerid,x1,y1,z1);
    GetPlayerPos(playerid2,x2,y2,z2);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    return floatround(tmpdis);
}
Reply
#4

pawn Код:
else if(location == 102 && IsACop(playerid))//Police Armorry
                    {
                        SetPlayerHealth(playerid,100.0);
                        format(string, sizeof(string), "* %s Foi Curado.", sendername);
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
o proxdetector ja tem /\. e sobre o GetDistanceBetweenPlayers. seria uma boa mais queria que o cara aceitace a cura do medico
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)