[PEDIDO] spectate para qualquer player
#1

eu tenho um server de drift
queria boar o comando /ver [id]
ai quando a pessoa quizesse voltar /ver off

algem pode me passar ? obrigado !
Reply
#2

No sa-mp nos filterscripts que vem no server, tem um com esse comando, nгo me lembro o nome dele.
Reply
#3

sim e o adminspec mais e so se o player for admin vou tentar editar o filter script e passar pro game mode
Reply
#4

pawn Код:
CMD:spec(playerid,params[])
{
    new playr;

    if(!IsPlayerAdmin(playerid)) return 0;

    if(strfind(params,"off",false) != -1) {
    TogglePlayerSpectating(playerid,false);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,0xFFFFFFAA,"[INFO] Spec desligado.");
    return 1;
    }

    if(sscanf(params,"d",playr)) return SendClientMessage(playerid,0xFF4040AA,"[INFO] Use /spec [id] ou /spec off");

    if(!IsPlayerConnected(playr)) return SendClientMessage(playerid,0xFF4040AA,"[INFO] O Jogador estб desconectado.");

    TogglePlayerSpectating(playerid,true);

    if(IsPlayerInAnyVehicle(playr)) return PlayerSpectateVehicle(playerid,GetPlayerVehicleID(playr));
    else {
    PlayerSpectatePlayer(playerid,playr);
    return 1;
    }
}
Reply
#5

aaaaaaaaaa
Reply
#6

Cara, da pra vocк usar o AdminSpec. Se vocк quer que qualquer player espie qualquer jogador, basta retirar IsPlayerAdmin(playerid))
Um cуdigo completo logo abaixo! (Retirado do AdminSpec)
pawn Код:
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];

//------------------------------------------------------------------------------------------------------

public OnFilterScriptInit()
{
}

//------------------------------------------------------------------------------------------------------

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    // IF ANYONE IS SPECTATING THIS PLAYER, WE'LL ALSO HAVE
    // TO CHANGE THEIR INTERIOR ID TO MATCH
    new x = 0;
    while(x!=MAX_PLAYERS) {
        if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
            gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_PLAYER )
        {
            SetPlayerInterior(x,newinteriorid);
        }
        x++;
    }
}

//------------------------------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256];
    new specplayerid, idx;

    // WE ONLY DEAL WITH COMMANDS FROM ADMINS IN THIS FILTERSCRIPT

    cmd = strtok(cmdtext, idx);

    // SPECTATE A PLAYER
    if(strcmp(cmd, "/specplayer", true) == 0) {
        new tmp[256];
        tmp = strtok(cmdtext, idx);

        if(!strlen(tmp)) {
            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]");
            return 1;
        }
        specplayerid = strval(tmp);
       
        if(!IsPlayerConnected(specplayerid)) {
            SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active.");
            return 1;
        }
       
        TogglePlayerSpectating(playerid, 1);
        PlayerSpectatePlayer(playerid, specplayerid);
        SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
        gSpectateID[playerid] = specplayerid;
        gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
       
        return 1;
        }

    // STOP SPECTATING
    if(strcmp(cmd, "/specoff", true) == 0) {
        TogglePlayerSpectating(playerid, 0);
        gSpectateID[playerid] = INVALID_PLAYER_ID;
        gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
        return 1;
    }

    return 0;
}
Agora й com vocк. Sу mudar os comandos e passar pro GM do jeito que vocк falou.
Reply
#7

vlw asdf jaja eu vou testar ...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)