Minha GM й Semelhante a da BVR E CVR.
Banir:
if(strcmp(cmd, "/ban", true) == 0) {
if(IsPlayerAdmin(playerid) || pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5 || guardiao[playerid]){
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, " | ERRO | Digite: /ban [id] [motivo]");
return 1;
}
plid = strval(tmp);
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(file2, sizeof(file2), PASTA_CONTAS, pname);
if(IsPlayerConnected(plid)){
if(Lendotutorial[plid] == 0){
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))
{
SendClientMessage(playerid, Vermelho, " | ERRO | Vocк sу pode banir sem uma razгo apropriada.");
}else{
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "| INFO - SERVER | O(a) Administrador(a) %s baniu o jogador: %s ( Motivo: %s (%d-%d-%d )", PlayerName(playerid), pname,result,month,day,year);
BanLog(string);
GameTextForPlayer(plid,"~r~banido~w~!", 2500, 3);
new sstring[128];
new ip[128];
GetPlayerIp(plid,ip,12
;
format(sstring, sizeof(sstring), "[ > ] Vocк baniu o jogador(a) %s [ IP : %s ]", pname, ip);
SendClientMessage(playerid, adm, sstring);
format(string, sizeof(string), "{FF0000}| INFO-SERVER | O(a) Administrador(a) %s baniu o jogador: %s ( Motivo: %s )", PlayerName(playerid),pname,result);
SendClientMessageToAll(Vermelho, string);
dini_IntSet("banidos.ini",pname,1);
SetPlayerPos(plid, 831.9581,-1102.1510,24.2969);
GameTextForPlayer(plid,"~r~banido~w~!", 2500, 3);
SendClientMessage(plid, Vermelho, "[ > ] Vocк foi banido do servidor!");
SetTimerEx("BanPlayer", 200, false, "d",plid);
}
}else{
format(string, sizeof(string), " | ERRO | O Jogador %s (%d) nгo pode ser banido ele estб lendo tutorial !", pname,plid);
SendClientMessage(playerid, Vermelho, string);
}
}else{
format(string, sizeof(string), " | ERRO | ID %d nгo й valido!", plid);
SendClientMessage(playerid, Vermelho, string);
}
}
return 1;
}
Kick:
if(strcmp(cmd, "/kick", true) == 0)
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(IsPlayerAdmin(playerid) || pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5) {
new plid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, Vermelho, " | ERRO | Digite: /kick [id] [motivo]");
return 1;
}
plid = strval(tmp);
if(IsPlayerConnected(plid)) {
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)) {
SendClientMessage(playerid, Vermelho, " | ERRO | Vocк sу pode kickar com uma razгo apropriada.");
}
else {
new pname[MAX_PLAYER_NAME];
GetPlayerName(plid, pname, MAX_PLAYER_NAME);
format(string, sizeof(string), "[ > ] Vocк foi kickado do servidor!", pname);
SendClientMessage(plid, adm, string);
format(string, sizeof(string), "| INFO-SERVER | O(a) Administrador(a) %s kickou o jogador: %s ( Motivo: %s )", aname,pname,result);
SendClientMessageToAll(Vermelho, string);
GameTextForPlayer(plid,"~r~kickado~w~!", 2500, 3);
SetPlayerPos(plid, 831.9581,-1102.1510,24.2969);
SetTimerEx("KickPlayer", 200, false, "d",plid);
}
}
else {
format(string, sizeof(string), " | ERRO | ID %d nгo й valido!", plid);
SendClientMessage(playerid, Vermelho, string);
}
}
return 1;
}
O sistema de Cadeia que o LockedLucas me apresentou na gm que ele me redireciou eu atenho porem nao consigo adapta-la para esse minha outra GM
//Sistema Cadeia
if( !strcmp( cmd, "/cadeia", true ))
{
if(pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5){
{
tmp = strtok( cmdtext, idx );
if( !strlen( tmp ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /Cadeia [ID] [Tempo] [Motivo]" );
return 1;
}
new
id = strval( tmp )
;
tmp = strtok( cmdtext, idx );
if( !strlen( tmp ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /Cadeia [ID] [Tempo] [Motivo]" );
return 1;
}
new
iTempo = strval( tmp )
;
if(pAdmin[playerid] == 5)
{
if( iTempo < 1 || iTempo > 3000 )
{
SendClientMessage( playerid, Vermelho, "| ERRO | Tempo somente de 1 а 3000 minutos !" );
return 1;
}
}
else if(pAdmin[playerid] == 4)
{
if( iTempo < 1 || iTempo > 400 )
{
SendClientMessage( playerid, Vermelho, "| ERRO | Tempo somente de 1 а 400 minutos !" );
return 1;
}
}
else if(pAdmin[playerid] == 3)
{
if( iTempo < 1 || iTempo > 200 )
{
SendClientMessage( playerid, Vermelho, "| ERRO | Tempo somente de 1 а 200 minutos !" );
return 1;
}
}
else if(pAdmin[playerid] == 1)
{
if( iTempo < 1 || iTempo > 80 )
{
SendClientMessage( playerid, Vermelho, "| ERRO | Tempo somente de 1 а 80 minutos !" );
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 ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /Cadeia [ID] [Tempo] [Motivo]" );
return 1;
}
if( !IsPlayerConnected( id ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Ninguйm online com esse ID !" );
return 1;
}
GameTextForPlayer( id, "~w~~h~PRESO!", 3000, 0 );
MensagemFormatadaAll( 0xB0FF30AA, "| INFO-SERVER | O(a) Administrador(a) %s prendeu o(a) jogador(a) %s por %d minutos ( Motivo: %s )", PlayerName( playerid ), PlayerName( id ), iTempo, result);
MensagemFormatada(id, 0xB0FF30AA, "| CADEIA | Vocк ficarб preso por %d minutos!", iTempo );
format(file, sizeof(file ), "Contas/%s.ini", PlayerName( id ));
dini_IntSet(file, "Abuser", 1 );
dini_Set(file, "MotivoPrisao", result);
SetPlayerWantedLevel( id, 0 );
PlayerInfo[ id ][ pPreso ] = iTempo*60;
ResetPlayerWeapons( id );
SetPlayerInterior( id, 6 );
SetPlayerPos(id, 264.4181,77.3247,1001.0391);
KillTimer( T_Preso[ id ] );
T_Preso[ id ] = SetTimerEx( "LiberarPrisao", 1000, false, "d", id );
PlayerInfo[ playerid ][ Abuser ] = 1;
}
}
return 1;
}
//IOOFF
if( !strcmp( cmd, "/cadeiaoff", true ))
{
if(pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5){
{
tmp2 = strtok( cmdtext, idx );
if( !strlen( tmp2 ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /CadeiaOff [Nick] [Tempo] [Motivo]" );
return 1;
}
format(file, sizeof(file ), "Contas/%s.ini", tmp2 );
if( !fexist( file ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Nгo existe nenhuma conta com esse nick !" );
return 1;
}
tmp = strtok( cmdtext, idx );
if( ! strlen( tmp ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /CadeiaOff [Nick] [Tempo] [Motivo]" );
return 1;
}
new
iTempo = strval( tmp )
;
if( iTempo < 1 || iTempo > 600 )
{
SendClientMessage( playerid, Vermelho, "| ERRO | Tempo somente de 1 а 600 minutos ! " );
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 ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /CadeiaOff [Nick] [Tempo] [Motivo]" );
return 1;
}
new sistemacadeia[200];
format(sistemacadeia, sizeof(sistemacadeia), "| INFO-SERVER | O(a) Administrador(a) %s agendou a prisгo do(a) jogador(a) %s por %d minutos ( Motivo: %s )", PlayerName(playerid), tmp2, iTempo, result);
SendClientMessageToAll(0xB0FF30AA, sistemacadeia);
dini_Set(file, "MotivoPrisao", result);
dini_IntSet( file, "Abuser", 1 );
dini_IntSet( file, "pPreso", iTempo*60 );
}
}
return 1;
}
//Soltar
if( !strcmp( cmd, "/asoltar", true ))
{
if(pAdmin[playerid] == 1 || pAdmin[playerid] == 2 || pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5){
{
tmp = strtok( cmdtext, idx );
if( !strlen( tmp ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Digite: /aSoltar [ID]" ) ;
return 1;
}
new
id = strval( tmp )
;
if( !IsPlayerConnected( id ))
{
SendClientMessage( playerid, Vermelho, "| ERRO | Ninguйm online com esse ID!" );
return 1;
}
if( PlayerInfo[ id ][ pPreso ] == 0 )
{
MensagemFormatada( playerid, Vermelho, "| ERRO | O jogador %s nгo estб preso!", PlayerName( id ));
return 1;
}
GameTextForPlayer( id, "~w~Solto", 3000, 0 );
MensagemFormatada( playerid, Vermelho, "| INFO | Vocк soltou o(a) jogador(a) %s da prisгo ", PlayerName( id ));
MensagemFormatada( id, ocd, "| INFO | O(a) Administrador(a) %s soltou vocк da prisгo!", PlayerName( playerid ));
PlayerInfo[ id ][ pPreso ] = 0;
PlayerInfo[ id ][ Abuser ] = 0;
}
}
return 1;
}
Ja tentei colocar as mesma coisas porem sempre me dou com os bons e velhos "26 ERROR"