[AJUDA] eventos no server
#1

Meu amigo e eu decidimos fazer um sistema de evento para colocar como FS, (estamos criando um Blog com os nossos prуprios FS e scripts), pegou direitinho num gm que eu testei, mais porem.., vou mostrar o erro:


Код:
new dm1bloq[MAX_PLAYERS]; // topo do gm

//-------- em public OnPlayerCommandText
if(strcmp(cmd, "/irdm", true) == 0)
	{
		        if(IsPlayerConnected(playerid))
	            {
                if(dm1bloq[playerid] == 1)
                {
                SendClientMessage(playerid, COLOR_RED, "Evento DM nгo estб liberado.");
                return 1;
                }
  	            if(PlayerInfo[playerid][pAdmin] >= 0)
			    {
			    if(admtrampando[playerid] < 0)
				{
				SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб trabalhando! (/profadmin)");
				return 1;
				}
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 1592.1980,-1222.6543,277.8721);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerPos(playerid, 1592.1980,-1222.6543,277.8721);
				}
				SendClientMessage(playerid, COLOR_GRAD1, "Evento DM!");
				SetPlayerInterior(playerid,0);
				PlayerInfo[playerid][pInt] = 0;
			    }
			    else
			    {
				SendClientMessage(playerid, COLOR_GRAD1, "Voce nгo estб autorizado a usar o comando!");
			}
		}
		return 1;
	}

//-----------------------BLOQUEANDO E DESBLOQUEANDO------------

//--------------------bloqueio-----------------------
if(strcmp(cmd,"/bloqdm",true) == 0 || strcmp(cmd,"/bloqdm1",true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pAdmin] < 3000)
			{
				SendClientMessage(playerid, COLOR_GRAD2, "   Vocк nгo esta autorizado a usar esse comando!");
				return 1;
			}
dm1bloq[playerid] = 1;
            SendClientMessageToAll(COLOR_WHITE, "|__________Anъncio eventos__________|");
			format(string, sizeof(string), "O evento DM foi fechado",sendername,PlayerInfo[playerid][pPnumber],playerid);
			SendClientMessageToAll(0x00FF00AA, string);
			}

}
return 1;
}

//------------Desbloqueio-----------------
if(strcmp(cmd,"/desbloqdm",true) == 0 || strcmp(cmd,"/desbloqdm1",true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[playerid][pAdmin] < 3000)
			{
				SendClientMessage(playerid, COLOR_GRAD2, "   Vocк nгo esta autorizado a usar esse comando!");
				return 1;
			}
dm1bloq[playerid] = 0;
            SendClientMessageToAll(COLOR_WHITE, "|__________Anъncio eventos__________|");
			format(string, sizeof(string), "O evento DM foi aberto, para participar digite /irdm",sendername,PlayerInfo[playerid][pPnumber],playerid);
			SendClientMessageToAll(0x00FF00AA, string);
}
}
return 1;
}
O problema й que quando digita /bloqdm e /desbloqdm aparece a msg duas vezes:
Код:
/desbloqdm >> aparece a msg no sv:

|__________Anъncio eventos__________|"
O evento DM foi aberto, para participar digite /irdm

|__________Anъncio eventos__________|"
O evento DM foi aberto, para participar digite /irdm



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



/bloqdm > aparese a msg no sv:

|__________Anъncio eventos__________|"
O evento DM foi fechado

|__________Anъncio eventos__________|"
O evento DM foi fechado
e sу bloqueia o evento pra mim, pros outros eles conseguem entrar, alguйm pode me ajudaR? agradeзo .
Reply
#2

a soluзao estг obvia em seu codigo!

pawn Код:
dm1bloq[playerid] = 1;
tire o playerid, ou melhor, caso queira otimizar isso, use variavel boleana, seria muito emlhor!
Reply
#3

Ficou assim:
Код:
dm1bloq = 1;
mais uma pequena dъvida se nгo for incomodo, aonde eu coloco no comando /irdm para dar armas e se tele-portar junto? desde jб agradeзo й que sou iniciante em pwn, estou aprendendo ainda.
Reply
#4

pawn Код:
new dm1bloq; // topo do gm

//-------- em public OnPlayerCommandText
if(strcmp(cmd, "/irdm", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(dm1bloq == 1)
        {
            return SendClientMessage(playerid, COLOR_RED, "Evento DM nгo estб liberado.");
        }
        if(PlayerInfo[playerid][pAdmin] >= 0)
        {
            if(admtrampando[playerid] < 0)
            {
                return SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб trabalhando! (/profadmin)");
            }
            if GetPlayerState(playerid) == 2)
            {
                new tmpcar = GetPlayerVehicleID(playerid);
                SetVehiclePos(tmpcar, 1592.1980,-1222.6543,277.8721);
                TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
            }
            else
            {
                SetPlayerPos(playerid, 1592.1980,-1222.6543,277.8721);
            }
            SendClientMessage(playerid, COLOR_GRAD1, "Evento DM!");
            SetPlayerInterior(playerid,0);
            PlayerInfo[playerid][pInt] = 0;
        }
        else
        {
            return SendClientMessage(playerid, COLOR_GRAD1, "Voce nгo estб autorizado a usar o comando!");
        }
    }
    return 1;
}

//-----------------------BLOQUEANDO E DESBLOQUEANDO------------

//--------------------bloqueio-----------------------
if(strcmp(cmd,"/bloqdm",true) == 0 || strcmp(cmd,"/bloqdm1",true) == 0)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[playerid][pAdmin] > 3000)
            {
                dm1bloq = 1;
                SendClientMessageToAll(COLOR_WHITE, "|__________Anъncio eventos__________|");
                format(string, sizeof(string), "O evento DM foi fechado",sendername,PlayerInfo[playerid][pPnumber],playerid);
                SendClientMessageToAll(0x00FF00AA, string);
                return 1;
            }
            else
            {
                return SendClientMessage(playerid, COLOR_GRAD2, "   Vocк nгo esta autorizado a usar esse comando!");
            }
        }
    }
}

//------------Desbloqueio-----------------
if(strcmp(cmd,"/desbloqdm",true) == 0 || strcmp(cmd,"/desbloqdm1",true) == 0)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[playerid][pAdmin] > 3000)
            {
                dm1bloq = 0;
                SendClientMessageToAll(COLOR_WHITE, "|__________Anъncio eventos__________|");
                format(string, sizeof(string), "O evento DM foi aberto, para participar digite /irdm",sendername,PlayerInfo[playerid][pPnumber],playerid);
                SendClientMessageToAll(0x00FF00AA, string);
                return 1;
            }
            else
            {
                return SendClientMessage(playerid, COLOR_GRAD2, "   Vocк nгo esta autorizado a usar esse comando!");
            }
        }
    }
}
Reply
#5

seu comando nгo funcionou, deu 3 erros, eu vou testar o comando arrumado e falo se funcionou.

@[EdiT]: Pegou perfeitamente o comando,minha dъvida й como implantar no comando /irdm para quando o player digitar o comando se teleportar e ganhar armas ao mesmo tempo?
Reply
#6

Coloca GivePlayerWeapon(playerid,id da arma);
Reply
#7

Uso Coreto :
pawn Код:
GivePlayerWeapon(playerid,id da arma,muniзгo);
Reply
#8

Eu coloquei assim:

Код:
	if(strcmp(cmd, "/irdm", true) == 0)
	{
		        if(IsPlayerConnected(playerid))
                {
				if(dm1bloq == 0)
                {
                SendClientMessage(playerid, COLOR_RED, "Evento DM nгo estб liberado.");
                return 1;
                }
                {
				GivePlayerWeapon(playerid,24,8999);
                GivePlayerWeapon(playerid,29,8999);
                GivePlayerWeapon(playerid,31,8999);
                GivePlayerAmmor(playerid,100);
				}
		        if(PlayerInfo[playerid][pAdmin] >= 0)
			    {
			    if(admtrampando[playerid] < 0)
				{
				SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб trabalhando! (/profadmin)");
				return 1;
				}
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 1592.1980,-1222.6543,277.8721);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerPos(playerid, 1592.1980,-1222.6543,277.8721);
				}
				SendClientMessage(playerid, COLOR_GRAD1, "Evento DM!");
				SetPlayerInterior(playerid,0);
				PlayerInfo[playerid][pInt] = 0;
			    }
			    else
			    {
				SendClientMessage(playerid, COLOR_GRAD1, "Voce nгo estб autorizado a usar o comando!");
			}
		}
		return 1;
	}
deu sу 1 erro, que й o GivePlayerAmmor, obrigado a todos e valeu por tudo, vou testar aqui e edito o post pra ver no que deu.
Reply
#9

Tetna assim
sou novato xD
pawn Код:
if(strcmp(cmd, "/irdm", true) == 0)
    {
                if(IsPlayerConnected(playerid))
                {
                if(dm1bloq == 0)
                {
                SendClientMessage(playerid, COLOR_RED, "Evento DM nгo estб liberado.");
                return 1;
                }
                if(PlayerInfo[playerid][pAdmin] >= 0)
                {
                if(admtrampando[playerid] < 0)
                {
                SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб trabalhando! (/profadmin)");
                return 1;
                }
                if (GetPlayerState(playerid) == 2)
                {
                    new tmpcar = GetPlayerVehicleID(playerid);
                    SetVehiclePos(tmpcar, 1592.1980,-1222.6543,277.8721);
                    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
GivePlayerWeapon(playerid,24,999);
                GivePlayerWeapon(playerid,29,999);
                GivePlayerWeapon(playerid,31,999);
                GivePlayerArmour(playerid,100)
                }
                else
                {
                    SetPlayerPos(playerid, 1592.1980,-1222.6543,277.8721);
                GivePlayerWeapon(playerid,24,999);
                GivePlayerWeapon(playerid,29,999);
                GivePlayerWeapon(playerid,31,999);
                GivePlayerArmour(playerid,100)
                }
                SendClientMessage(playerid, COLOR_GRAD1, "Evento DM!");
                SetPlayerInterior(playerid,0);
                PlayerInfo[playerid][pInt] = 0;
                }
                else
                {
                SendClientMessage(playerid, COLOR_GRAD1, "Voce nгo estб autorizado a usar o comando!");
            }
        }
        return 1;
    }
Reply
#10

O correto й o seguinte:


Код:
if(strcmp(cmd, "/irdm", true) == 0)
	{
		        if(IsPlayerConnected(playerid))
                {
				if(dm1bloq == 0)
                {
                SendClientMessage(playerid, COLOR_RED, "Evento DM nгo estб liberado.");
                return 1;
                }
		        if(PlayerInfo[playerid][pAdmin] >= 0)
			    {
			    if(admtrampando[playerid] < 0)
				{
				SendClientMessage(playerid, COLOR_RED, "Vocк nгo estб trabalhando! (/profadmin)");
				return 1;
				}
				{
                                GivePlayerWeapon(playerid,24,8999);
                                GivePlayerWeapon(playerid,29,8999);
                                GivePlayerWeapon(playerid,31,8999);
                                SetPlayerHealth(playerid, 100);
				}
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 1592.1980,-1222.6543,277.8721);
				}
				else
				{
					SetPlayerPos(playerid, 1592.1980,-1222.6543,277.8721);
				}
				SendClientMessage(playerid, COLOR_GRAD1, "Evento DM!");
				SetPlayerInterior(playerid,0);
				PlayerInfo[playerid][pInt] = 0;
			    }
			    else
			    {
				SendClientMessage(playerid, COLOR_GRAD1, "Voce nгo estб autorizado a usar o comando!");
			}
		}
		return 1;
	}
Sу nгo pegou uma coisinha: o colete, nгo sei como coloca colete ai, mais o cуdigo estб certo nй? sу confirma isso pra mim, e alguйm me passa o cуdigo de colocar colete ali junto tbm, vlws, desde ja agradeзo,
Marcelo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)