[PEDIDO] Sistema de Moderador -
Allanrokeiro - 26.04.2011
Pessoal,й o seguinte...estou atras de um Sistema de Moderador...
~> Explicaзгo Bбsica: Sistema de Moderador,й tipo um Administrador,que sу pode banir,kickar e se teleportar ao Player.
Nгo pedindo de mais (Acho que nгo,rs) queria que tiver-se o comando '/Moderadores' para ver os moderadores conectados ao servidor.
Grato!
Re: [PEDIDO] Sistema de Moderador -
Dr_Pawno - 26.04.2011
Usa o Lasanha!
http://forum.sa-mp.com/showthread.ph...hlight=Lasanha
Re: [PEDIDO] Sistema de Moderador -
Josma_cmd - 26.04.2011
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME];
new bool: pModerador[MAX_PLAYERS] == false; //Inicio do GM
//****** no OnPlayerCommandText ******
if (strcmp(cmd, "/moderadores", true) == 0)
{
new string[80], sendername[MAX_PLAYER_NAME];
SendClientMessage(playerid, Branco, "*=-=-=-=-=-=-=-=-=|{1E90FF} Moderaзгo {FFFFFF}|=-=-=-=-=-=-=-=-= *");
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && pModerador[i] == true)
{
GetPlayerName(i, sendername, sizeof(sendername));
format(string, 80, "{000000}Nome: {1E90FF}%s{FFFFFF} [Moderador]", sendername);
SendClientMessage(playerid, Branco, string);
}
}
return 1;
}
if(strcmp(cmd, "/ir", true) == 0)
{
if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
new tmp[20], string[50], giveplayerid, Float:X, Float:Y, Float:Z;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /Ir [id]");
giveplayerid = strval(tmp);
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
GetPlayerPos(giveplayerid, X, Y, Z);
GetPlayerName(playerid, Entregador, sizeof(Entregador));
GetPlayerName(giveplayerid, Recebedor, sizeof(Entregador));
format(string, sizeof(string), "Vocк foi atй {1E90FF}%s", Recebedor);
SendClientMessage(playerid, Branco, string);
format(string, sizeof(string), "{1E90FF}%s{FFFFFF} veio atй vocк", Entregador);
SendClientMessage(giveplayerid, Branco, string);
if(IsPlayerInVehicle(playerid, GetPlayerVehicleID(playerid)))
{
SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
SetPlayerPos(playerid, X, Y, Z);
} else {
SetPlayerPos(playerid, X, Y, Z);
SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
}
return 1;
}
if(strcmp(cmd, "/ban", true) == 0)
{
new giveplayerid, tmp[20], string[128];
if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
giveplayerid = strval(tmp);
GetPlayerName(giveplayerid, pNome, sizeof(pNome));
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
GetPlayerName(playerid, Entregador, sizeof(Entregador));
if(strcmp(Recebedor,"SeuNome",true)==0)
{
format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi banido por tentar banir SeuNome", Entregador);
SendClientMessageToAll(Branco, string);
Ban(playerid);
return 1;
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]");
format(string, sizeof(string), "{E31919}%s{FFFFFF} foi banido pelo Moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
SendClientMessageToAll(Branco, string);
Ban(giveplayerid);
return 1;
}
if(strcmp(cmd, "/kick", true) == 0)
{
new giveplayerid, tmp[20], string[128];
if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
giveplayerid = strval(tmp);
GetPlayerName(giveplayerid, pNome, sizeof(pNome));
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online");
GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor));
GetPlayerName(playerid, Entregador, sizeof(Entregador));
if(strcmp(Recebedor,"SeuNome",true)==0)
{
format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi kickado por tentar kickar {1E90FF}SeuNome", Entregador);
SendClientMessageToAll(Branco, string);
Kick(playerid);
return 1;
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]");
format(string, sizeof(string), "{E31919}%s{FFFFFF} foi kickado pelo moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result));
SendClientMessageToAll(Branco, string);
Kick(giveplayerid);
return 1;
}
if(strcmp(cmd, "/darmoderador", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Branco, "Vocк precisa estar logado na rcon");
new tmp[20], giveplayerid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /DarModerador [id]");
giveplayerid = strval(tmp);
if(!IsPlayerConnected(giveplayerid)) return SendClientMEssage(playerid, Branco, "Este jogador nгo estб conectado");
pModerador[giveplayerid] = true;
SendClientMessage(giveplayerid, Branco, "Vocк agora й um moderador");
return 1;
}
Fiz na pressa, qualquer coisa sу falar.
Fiz tambйm um /DarModerador pra adm logado na rcon por que nгo sei que sistema de admin vocк usa.
Re: [PEDIDO] Sistema de Moderador -
Allanrokeiro - 26.04.2011
Quote:
Originally Posted by Josma_cmd
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME] new bool: pModerador[MAX_PLAYERS] == false; //Inicio do GM
//****** no OnPlayerCommandText ****** if (strcmp(cmd, "/moderadores", true) == 0) { new string[80], sendername[MAX_PLAYER_NAME]; SendClientMessage(playerid, Branco, "*=-=-=-=-=-=-=-=-=|{1E90FF} Moderaзгo {FFFFFF}|=-=-=-=-=-=-=-=-= *"); for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && pModerador[i] == true) { GetPlayerName(i, sendername, sizeof(sendername)); format(string, 80, "{000000}Nome: {1E90FF}%s{FFFFFF} [Moderador]", sendername); SendClientMessage(playerid, Branco, string); } } return 1; } if(strcmp(cmd, "/ir", true) == 0) { if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador"); new tmp[20], string[50], giveplayerid, Float:X, Float:Y, Float:Z; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /Ir [id]"); giveplayerid = strval(tmp); if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online"); GetPlayerPos(giveplayerid, X, Y, Z); GetPlayerName(playerid, Entregador, sizeof(Entregador)); GetPlayerName(giveplayerid, Recebedor, sizeof(Entregador)); format(string, sizeof(string), "Vocк foi atй {1E90FF}%s", Recebedor); SendClientMessage(playerid, Branco, string); format(string, sizeof(string), "{1E90FF}%s{FFFFFF} veio atй vocк", Entregador); SendClientMessage(giveplayerid, Branco, string); if(IsPlayerInVehicle(playerid, GetPlayerVehicleID(playerid))) { SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z); SetPlayerPos(playerid, X, Y, Z); } else { SetPlayerPos(playerid, X, Y, Z); SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid)); } return 1; }
if(strcmp(cmd, "/ban", true) == 0) { new giveplayerid, tmp[20], string[128]; if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]"); giveplayerid = strval(tmp); GetPlayerName(giveplayerid, pNome, sizeof(pNome));
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online"); GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor)); GetPlayerName(playerid, Entregador, sizeof(Entregador)); if(strcmp(Recebedor,"SeuNome",true)==0) { format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi banido por tentar banir SeuNome", Entregador); SendClientMessageToAll(Branco, string); Ban(playerid); return 1; } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /ban [id] [Motivo]"); format(string, sizeof(string), "{E31919}%s{FFFFFF} foi banido pelo Moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result)); SendClientMessageToAll(Branco, string); Ban(giveplayerid); return 1; }
if(strcmp(cmd, "/kick", true) == 0) { new giveplayerid, tmp[20], string[128]; if(!pModerador[playerid] == true) return SendClientMessage(playerid, Branco, "Vocк nгo й um {E31919}Moderador"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]"); giveplayerid = strval(tmp); GetPlayerName(giveplayerid, pNome, sizeof(pNome)); if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, Branco, "Este jogador nгo estб online"); GetPlayerName(giveplayerid, Recebedor, sizeof(Recebedor)); GetPlayerName(playerid, Entregador, sizeof(Entregador)); if(strcmp(Recebedor,"SeuNome",true)==0) { format(string, sizeof(string), "{E31919}%s{FFFFFF} Foi kickado por tentar kickar {1E90FF}SeuNome", Entregador); SendClientMessageToAll(Branco, string); Kick(playerid); return 1; } new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, Branco, "{1E90FF}Uso correto:{FFFFFF} /kick [id] [Motivo]"); format(string, sizeof(string), "{E31919}%s{FFFFFF} foi kickado pelo moderador {E31919}%s{FFFFFF} Motivo: {E31919}%s", Recebedor, Entregador, (result)); SendClientMessageToAll(Branco, string); Kick(giveplayerid); return 1; }
if(strcmp(cmd, "/darmoderador", true) == 0) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, Branco, "Vocк precisa estar logado na rcon"); new tmp[20], giveplayerid; if(!strlen(tmp)) return SendClientMessage(playerid, Branco, "Uso correto: /DarModerador [id]"); giveplayerid = strval(tmp); if(!IsPlayerConnected(giveplayerid)) return SendClientMEssage(playerid, Branco, "Este jogador nгo estб conectado"); pModerador[giveplayerid] = true; SendClientMessage(giveplayerid, Branco, "Vocк agora й um moderador"); return 1; }
Fiz na pressa, qualquer coisa sу falar.
Fiz tambйm um /DarModerador pra adm logado na rcon por que nгo sei que sistema de admin vocк usa.
|
Ixi,deu 4 erros...
pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "new"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "=="
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 029: invalid expression, assumed zero
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Re: [PEDIDO] Sistema de Moderador -
Diogo Brandao - 26.04.2011
Quote:
Originally Posted by Allanrokeiro
Ixi,deu 4 erros...
pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "new" C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 001: expected token: ";", but found "==" C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : error 029: invalid expression, assumed zero C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(92) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
|
Poste a linha dos erros (92).
Re: [PEDIDO] Sistema de Moderador -
Josma_cmd - 26.04.2011
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME] //troque isto
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME]; //por isto
Proxima vez que der erro poste a linha =D
Re: [PEDIDO] Sistema de Moderador -
Diogo Brandao - 26.04.2011
Quote:
Originally Posted by Josma_cmd
pawn Код:
new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME] //troque isto new Entregador[MAX_PLAYER_NAME], Recebedor[MAX_PLAYER_NAME]; //por isto
Proxima vez que der erro poste a linha =D
|
Seria mais fбcil dizer que tem de colocar um "
; " no final desse linha.
Re: [PEDIDO] Sistema de Moderador -
Allanrokeiro - 26.04.2011
Quote:
Originally Posted by Diogo Brandao
Poste a linha dos erros (92).
|
Opa,reparei um erro meu...Coloquei os ''new'' no OnPlayerCommand,mais dai deu esses erros...
pawn Код:
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(96) : error 017: undefined symbol "cmd"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 017: undefined symbol "pModerador"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : warning 215: expression has no effect
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 001: expected token: ";", but found "]"
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : error 029: invalid expression, assumed zero
C:\Users\Rodrigues\Documents\SA-MP\Brasil Virtual Life\filterscripts\moderador.pwn(102) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
Linha 96
pawn Код:
if (strcmp(cmd, "/moderadores", true) == 0)
Linha 102:
pawn Код:
if(IsPlayerConnected(i) && pModerador[i] == true)
Re: [PEDIDO] Sistema de Moderador -
Josma_cmd - 26.04.2011
Quote:
Originally Posted by Diogo Brandao
Seria mais fбcil dizer que tem de colocar um " ; " no final desse linha.
|
Ele jб sabia que faltava um
; apуs algo... isso tб obviu no erro, talvez nгo sabia "onde" por e por isso citei.
Falando ou nгo que precisava do ";", o erro com certeza foi concertado entгo deu no mesmo, deveria vocк ter dito a ele que faltava o ponto e virgula quando ele postou os erros jб que vocк foi o primeiro a ver o tуpico depois disso.
Allanrokeiro
Coloca isso no OnPlayerCommandText << Bem no comeзo apуs a primeira chave
Re: [PEDIDO] Sistema de Moderador -
Diogo Brandao - 26.04.2011
Quote:
Originally Posted by Josma_cmd
Ele jб sabia que faltava um ; apуs algo... isso tб obviu no erro, talvez nгo sabia "onde" por e por isso citei.
Falando ou nгo que precisava do ";", o erro com certeza foi concertado entгo deu no mesmo, deveria vocк ter dito a ele que faltava o ponto e virgula quando ele postou os erros jб que vocк foi o primeiro a ver o tуpico depois disso.
|
Nгo estava a criticar, Josma.
Eu nem olhei o cуdigo, por isso nгo falei nada.
Allanrokeiro, coloque no topo do OnPlayerCommandText:
pawn Код:
new cmd[ 256 ];
cmd = strtok( cmdtext, idx );