getclosest player again..<.>
#2

Not tested (im using strtok xD)
pawn Код:
stock GetClosestPlayer(playerid)
{
    new Float:P[3];
    GetPlayerPos(playerid,P[0],P[1],P[2]);
    for(new i,MaxP=GetMaxPlayers(); i < MaxP; i++)
        if(IsPlayerConnected(i) && !IsPlayerNPC(i))
            if(i != playerid)
                if(IsPlayerInRangeOfPoint(i, 30.0, P[0],P[1],P[2]))
                    return i;
    return INVALID_PLAYER_ID;
}
CMD:arrest(playerid, cmdtext[])
{
    new string[128],giveplayerid,tmp[256],idx;
    if(!IsSpawned[playerid]) return SendClientMessage(playerid, red, "You are dead. You cannot use this command");
    if(gTeam[playerid] != TEAM_COPS) return SendClientMessage(playerid,red,"You are not a Law Enforcement officer ");
    tmp = strtok(cmdtext, idx);
    //if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /ar (id)");
    if(!strlen(tmp)) giveplayerid = GetClosestPlayer(playerid);
    else{
        if(!IsNumeric(tmp)) return SendClientMessage(playerid, red, "USAGE: /ar (id) ID Must be a number");
        giveplayerid = strval(tmp);
    }
    if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "No players in range of point");
    if(!IsPlayerConnected(giveplayerid))
    {
        format(string, sizeof(string), "ID (%d) Is Not On The Server", giveplayerid);
        return SendClientMessage(playerid, red, string);
    }
    new copname[24],arrested[24];
    GetPlayerName(playerid,copname, 24);
    GetPlayerName(giveplayerid, arrested, 24);
    if(GetPlayerWantedLevel(giveplayerid) <= 3)
    {
        format(string, sizeof(string), "%s(%d) Does Not Have A Warrant Please Use /TK [playerid]",arrested,giveplayerid);
        return SendClientMessage(playerid,red,string);
    }
    if(GetDistanceBetweenPlayers(playerid,giveplayerid) > 10)
    {
        format(string, sizeof(string), "%s(%d) Is too far away. You Cannot Arrest Him/Her",arrested,giveplayerid);
        return SendClientMessage(playerid,red,string);
    }
    if(!IsSpawned[giveplayerid])
    {
        format(string, sizeof(string), "%s(%d) Is Not Alive. He/She Is Dead.",arrested,giveplayerid);
        return SendClientMessage(playerid,red,string);
    }
    SetPlayerVirtualWorld(giveplayerid,0);
    if(giveplayerid == playerid) return SendClientMessage(playerid,red,"You Can't Arrest Yourself Fucking Idiot");
    new spawn = random(sizeof(PrisonSpawn)), Float:health;
    GetPlayerHealth(giveplayerid, health);
    SendClientMessage(giveplayerid), BLUE, "|____ Los Santos Police Dept. ____|");
    format(string, sizeof(string), "Offier %s Has Arrested You.", copname);
    SendClientMessage(giveplayerid, TEAL, string);
    ResetPlayerWeapons(giveplayerid);
    SetPlayerPos(giveplayerid, PrisonSpawn[spawn][0], PrisonSpawn[spawn][1], PrisonSpawn[spawn][2]);
    SetPlayerFacingAngle(giveplayerid, PrisonSpawn[spawn][3]);
    SetCameraBehindPlayer(giveplayerid);
    switch(GetPlayerWantedLevel(giveplayerid)) {
        case 4,5: {
            PrisonTime[giveplayerid] = 80;
            GivePlayerMoney2(giveplayerid,-200);
            GivePlayerMoney2(playerid,3000);
            SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
        }
        case 6..8: {
            PrisonTime[giveplayerid] = 120;
            GivePlayerMoney2(giveplayerid,-200);
            GivePlayerMoney2(playerid,3500);
            SetPlayerScore(playerid,GetPlayerScore(playerid)+1);
        }
        case 9..11: {
            PrisonTime[giveplayerid] = 180;
            GivePlayerMoney2(giveplayerid,-200);
            GivePlayerMoney2(playerid,4000);
            SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
        }
        case 12..14: {
            PrisonTime[giveplayerid] = 240;
            GivePlayerMoney2(giveplayerid,-200);
            GivePlayerMoney2(playerid,4500);
            SetPlayerScore(playerid,GetPlayerScore(playerid)+2);
        }
        case 15..50: {
            PrisonTime[giveplayerid] = 300;
            GivePlayerMoney2(giveplayerid,-200);
            GivePlayerMoney2(playerid,5000);
            SetPlayerScore(playerid,GetPlayerScore(playerid)+3);
        }
    }
    SetPlayerWantedLevel(giveplayerid, 0);
    SetPlayerInterior(giveplayerid,3);
    SetPlayerHealth(giveplayerid,99999);
    TogglePlayerControllable(giveplayerid, true);
    SetPlayerJailed(giveplayerid, true);
    format(string, sizeof(string), "Officer %s[%d] Has Arrested %s[%d].", copname, playerid, arrested, giveplayerid);
    SendClientMessageToAll(TEAL,string);
    if(health <= 90) {
        SendClientMessage(giveplayerid, GREY, "|____ Los Santos Police Dept. ____|");
        SendClientMessage(giveplayerid, WHITE, "LSPD has given you some food.");
        SetPlayerHealth(giveplayerid, health+10);
        OnePlayAnim(giveplayerid, "FOOD", "EAT_Burger", 4.0, 0, 0, 0, 0, 0);
    }
    return 1;
}
Reply


Messages In This Thread
getclosest player again..<.> - by Kar - 22.07.2010, 23:59
Re: getclosest player again..<.> - by Jefff - 23.07.2010, 01:26
Re: getclosest player again..<.> - by XPlatform - 23.07.2010, 01:39
Re: getclosest player again..<.> - by Kar - 23.07.2010, 01:46

Forum Jump:


Users browsing this thread: 1 Guest(s)