[Ajuda] Bloquear comandos em areas de DM
#1

Bom,procurei tutos na net,tentei aqui,mas nгo consegui,dб alguns erros e enfim...
Tenho 4 teleportes de DeathMatch,e gostaria de bloquear todos outros comandos,e deixar sу um,que seira o /sairdm.
Que sai do Deathmatch...alguйm pode dar um help?
Reply
#2

Adicione isto na primeira linha de sua OnPlayerCommandText:

pawn Код:
new string[256];
if (strcmp(cmdtext,"/Sairdm",true) != 0 && GetPlayerVirtualWorld(playerid)!= 0)
    {
    GameTextForPlayer(playerid, "~g~Para Sair Do Dm Use: ~r~/Sairdm", 2500, 5);
    return 1;
    }
if (strcmp("/Sairdm", cmdtext, true, 10) == 0)
        {
                    new pname[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
                    format(string, sizeof(string), "{FF0000}%s {1E90FF}Correu de uma das Arenas de DM! {FF0000}( /SairDM )", pname);
                    SendClientMessageToAll(COLOR_YELLOW, string);
                    SpawnPlayer(playerid);
                    return 1;
                    }
E em cada teleporte que vc quizer bloquear basta colocar esta linha no comando:

pawn Код:
SetPlayerVirtualWorld(playerid, 1);
Espero ter ajudado
Reply
#3

pawn Код:
//Topo
new EmDm[MAX_PLAYERS] = 0;

//OnPlayerCommandText
//Topo da public onplayercommandtext:

if(EmDm[playerid] == 1) return SendClientMessage(playerid, -1,"SERVER: Use: /sairdm primeiro");

//Em baixo:

if(strcmp(cmd, "/sairdm", true) == 0)
{
    GameTextForPlayer(playerid, "~g~Para Sair Do Dm Use: ~r~/Sairdm", 2500, 5);
    EmDm[playerid] = 0;
    return 1;
}
Reply
#4

Gustavo,a sua,eu usei,ele sai do DM,mas ai tu digita outro comando apуs sair do dm,e ele nгo permite,e manda /sairdm novamente,e nгo sai..
TheZeroC0ll,a sua achei muito complicada,e nгo testei..
Reply
#5

Eu queria assim:
Entrou no dm /minigun : ganhou vida, colete e minigun. Ok,isso eu jб tenho.
Agora o player quer digitar /armas,mas aparece uma mensagem,Vocк nгo pode usar comandos em uma Arena Deathmatch. Use /sairdm para sair da arena.
O Player digita /sairdm,e ele da spawn no local inicial do servidor,sem a minigun,sem colete,sу com vida.
Reply
#6

Quote:
Originally Posted by fojo_
Посмотреть сообщение
Gustavo,a sua,eu usei,ele sai do DM,mas ai tu digita outro comando apуs sair do dm,e ele nгo permite,e manda /sairdm novamente,e nгo sai..
TheZeroC0ll,a sua achei muito complicada,e nгo testei..
Vc colocou aquilo que eu mandei no codigo pawno primeiro, no topo da public OnPlayerCommandText ?
Verifique, pode ser isto o problema.
Reply
#7

A New String? Eu jб tinha ela,sу coloquei isso

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])

if (strcmp(cmdtext,"/Sairdm",true) != 0 && GetPlayerVirtualWorld(playerid)!= 0)
    {
    GameTextForPlayer(playerid, "~g~Para Sair Do Dm Use: ~r~/Sairdm", 2500, 5);
    return 1;
    }
if (strcmp("/Sairdm", cmdtext, true, 10) == 0)
        {
                    new pname[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
                    format(string, sizeof(string), "{FF0000}%s {1E90FF}Correu de uma das Arenas de DM! {FF0000}( /SairDM )", pname);
                    SendClientMessageToAll(COLOR_YELLOW, string);
                    SpawnPlayer(playerid);
                    return 1;
                    }

 //////////e Isso no comando que eu tenho de /minigun

SetPlayerVirtualWorld(playerid, 1);
Reply
#8

Quote:
Originally Posted by fojo_
Посмотреть сообщение
Eu queria assim:
Entrou no dm /minigun : ganhou vida, colete e minigun. Ok,isso eu jб tenho.
Agora o player quer digitar /armas,mas aparece uma mensagem,Vocк nгo pode usar comandos em uma Arena Deathmatch. Use /sairdm para sair da arena.
O Player digita /sairdm,e ele da spawn no local inicial do servidor,sem a minigun,sem colete,sу com vida.
Cara й so vc definir a new la em cima e colocar o ' /sairdm ' na public onplayercommandtext e o

if(EmDm[playerid] == 1) return SendClientMessage(playerid, -1,"SERVER: Use: /sairdm primeiro");

Na Public OnPlayerCOmmandtext Tambem ex:

pawn Код:
#include <a_samp>

new EmDm[MAX_PLAYERS] = 0;

public OnFilterScriptInit()
{
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(EmDm[playerid] == 1) return SendClientMessage(playerid, -1,"SERVER: Use: /sairdm primeiro");
    if(strcmp(cmd, "/sairdm", true) == 0)
    {
        GameTextForPlayer(playerid, "~g~Para Sair Do Dm Use: ~r~/Sairdm", 2500, 5);
        EmDm[playerid] = 0;
        return 1;
    }
    return 0;
}
E esse comando do Gustavo_z estб todo errado, isso provavelmente vai bugar seu gamemode
Reply
#9

pawn Код:
#include zcmd  
new blockdm;
pawn Код:
CMD:minegun(playerid, params[])
{
  blockdm[playerid] = 1;
  //resto da funзгo
 return 1;
}
pawn Код:
CMD:armas(playerid, params[])
{
   if(blockdm[playerid] == 1) return SendClientMessage(playerid, -1,"SERVER: Use: /sairdm primeiro");
    //Resto da funзгo
    return 1;
}
pawn Код:
CMD:sairdm(playerid, params[]
{
    SpawnPlayer(playerid);
    GameTextForPlayer(playerid, "~g~Vocк saiu do DM", 2500, 5);
    blockdm[playerid] = 0;
    return 1;
}
Reply
#10

pawn Код:
//inicio
new bool:tem [ MAX_PLAYERS ] ;

//no cmd minigum
tem [ playerid ] = true ;

//no cmd armas

if ( tem [ playerid ] == true )
   return SendClientMessage ( playerid , -1 , "Vocк nгo pode usar comandos em uma Arena Deathmatch. Use /sairdm para sair da arena" ) ;

//no cmd /sairdm

SpawnPlayer ( playerid ) ;
SetPlayerArmour ( playerid , 0 ) ;
ResetPlayerWeapons ( playerid ) ;
tem [ playerid ] = false;
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)