[PEDIDO] Comando /Algemar
#1

Boa noite.

Bom, pesquisei no fуrum, e achei um comando de /algemar, porйm, o mesmo nгo deu certo.

Alguйm pode me 'emprestar' / ensinar a fazer um comando desse? De preferкncia que o jogador ficasse algemado por 30s, ou que viesse com o comando /desalgemar. :X

Obrigado,
._.
Reply
#2

Se quando vocк diz algemado vocк quer que o player fique congelado, use TogglePlayerControllable com SetTimerEx.
Reply
#3

Como que й esse comando /algemar?
O player vai la digita /algemar ai acontece oque?
Reply
#4

Quando o jogador digita /Algemar [ID], ele Algema - congela - o jogador.

O player sу fica congelado. '~'

@EDIT

Detalhe, a parte de fazer o comando /Algemar й fбcil, seguindo o TogglePlayerControllable. O problema, й fazer com que, para algemar, o jogador tenha que estar perto.
Reply
#5

Fiz um bem simples pra vc... sу arrumar do jeito que vocк quiser

PHP код:
    if (strcmp(cmd,"/algemar",true) == 0)
    {
        new 
player2;
        
tmp strtok(cmdtext,idx);
        
player2 strval(tmp);
        if (!
strlen(tmp)) return SendClientMessage(playerid,-1,"Digite: /algemar [ID do Jogador]");
        
TogglePlayerControllable(player2,false); // vai congelar o player2 
        
return true;
    }
    if (
strcmp(cmd,"/desalgemar",true) == 0)
    {
        new 
player2;
        
tmp strtok(cmdtext,idx);
        
player2 strval(tmp);
        if (!
strlen(tmp)) return SendClientMessage(playerid,-1,"Digite: /desalgemar [ID do Jogador]");
        
TogglePlayerControllable(player2,true); // vai descongelar o player2
        
return true;
    } 
Reply
#6

Entгo, Dark, eu fiz quase igual a isso, sу que tinha um negуcio de DistanceBetweenPlayers ( eu tinha pego do outro tуpico que eu tinha visto ), e aquele negуcio (DistanceBetweenPlayers) era o ъnico que estava fazendo dar o ЪNICO erro. :S

@EDIT

Olha o cуdigo:

PHP код:
forward Algemar2(playerid); 
pawn Код:
if(strcmp(cmd, "/algemar", true) == 0) {
   if(PROFISSХES OU ORGANIZAЗХES QUE PODERГO USAR O COMANDO){
      new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
      new string[128];
      new tmp[256];
        new plid;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)){
          SendClientMessage(playerid, 0xF52D0AAA, "/algemar [id]");
            return 1;
            }
            plid = strval(tmp);
            if(!IsPlayerConnected(plid)){
              SendClientMessage(playerid, 0xF52D0AAA, "[ERRO] O jogador nгo estб conectado");
            return 1;
            } else {
              if(GetDistanceBetweenPlayers(plid,playerid) < 21){
                SendClientMessage(playerid, 0x5CAE51AA, "[INFO] Algemado com sucesso!");
          format(string, sizeof(string), "[INFO] Vocк foi algemado por %s ", name);
          SendClientMessage(plid, 0xF8DA07AA, string);
          TogglePlayerControllable(playerid,0);
          SetTimerEx("Algemar2",15000,false,"i",playerid);
                return 1;
                } else {
                  SendClientMessage(playerid,0xF52D0AAA,"[ERRO] Chegue mais perto para poder algemar!");
                return 1;
                }
            }
        } else {
          SendClientMessage(playerid,0xF52D0AAA,"[ERRO] Vocк nгo tem permissгo!");
        return 1;
        }
    }


PHP код:
public Algemar2(playerid) {
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid,0x5CAE51AA,"[INFO] Liberado, jб pode andar.");
return 
1;

Reply
#7

vo usa o do cara ai de cima e passa a func de o jogador perto.

pawn Код:
if (strcmp(cmd,"/algemar",true) == 0)
    {
        new player2;
        tmp = strtok(cmdtext,idx);
        player2 = strval(tmp);
        if (!strlen(tmp)) return SendClientMessage(playerid,-1,"Digite: /algemar [ID do Jogador]");
        else if(!JogadorPerto(playerid, player2, 5.0)) return SendClientMessage(playerid, COR, "Favor se aproxime mais do jogador.");
        else
        {

        TogglePlayerControllable(player2,false); // vai congelar o player2  
        return true;
    }

    if (strcmp(cmd,"/desalgemar",true) == 0)
    {
        new player2;
        tmp = strtok(cmdtext,idx);
        player2 = strval(tmp);
        if (!strlen(tmp)) return SendClientMessage(playerid,-1,"Digite: /desalgemar [ID do Jogador]");
        else if(!JogadorPerto(playerid, player2, 5.0)) return SendClientMessage(playerid, COR, "Favor se aproxime mais do jogador.");

        TogglePlayerControllable(player2,true); // vai descongelar o player2
        return true;
    }

no final do seu mode poe:

pawn Код:
stock JogadorPerto(playerid, playerid2, Float:raio)
{
    new
        Float:x,
        Float:y,
        Float:z;
    GetPlayerPos(playerid2, x, y, z);
    return IsPlayerInRangeOfPoint(playerid, raio, x, y, z);
}
Reply
#8

Eu uso assim pra fazer esse tipo de comando...
PHP код:
    if (strcmp(cmd,"/algemar",true) == 0)
    {
        new 
player2;
        
tmp strtok(cmdtext,idx);
        
player2 strval(tmp);
        if (!
strlen(tmp)) return SendClientMessage(playerid,-1,"Digite: /algemar [ID do Jogador]");
        new 
Float:Pos[3];
        
GetPlayerPos(player2,Pos[0],Pos[1],Pos[2]);
        if(
IsPlayerInRangeOfPoint(playerid,15.0,Pos[0],Pos[1],Pos[2])) // Altera pro tanto que desejar
        
{
                
TogglePlayerControllable(player2,false); // vai congelar o player2
        
}
        else return 
SendClientMessage(playerid,-1,"Vocк deve estar a menos de 15 metros para usar o comando");
        return 
true;
    } 
Reply
#9

й a mesma coisa que eu fiz dark, so que eu fiz em stock pra nao fica muita coisa no comando.
Reply
#10

Pdc ... mais eu nem tinha visto que vocк posto kkk malz
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)