Ajuda por favor - Tonnob - 07/01/2023
Eu criei um comando /Kick
Porém quando fui testar ele não funciona
Eu digito /Kick id Motivo é ele apenas retorna a mensagens de erro dizendo (Use:/Kick ID Motivo)
Abaixo meu código
Código: CMD:kick (playerid, params[])
{
if(Player[playerid][Admin] < 2) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} Vc Precisa Ser Da Equipe Staff Para Ter Uso Deste Comando");
{
new PlayerIDKickado, Motivo[10], Mensagem[256];
if(sscanf(params, "us[30]",PlayerIDKickado,Motivo))return SendClientMessage(playerid, -1,"[BVR]{FFFFFF}Use /kick [ID] [MOTIVO]!");
if(PlayerIDKickado == INVALID_PLAYER_ID)return SendClientMessage(playerid, -1, "[BVR]{FFFFFF}ID DO PLAYER INVALIDO");
if(strlen(Motivo) > 10) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} MOTIVO INVALIDO/GRANDE");
format(Mensagem, sizeof(Mensagem), "<!> O Admin: %s Kickou o Player: %s Motivo: %s",pName(playerid), pName(PlayerIDKickado));
SendClientMessageToAll(-1, Mensagem);
Kick(PlayerIDKickado);
}
return 1;
}
RE: Ajuda por favor - gato_RothsChild - 07/01/2023
Código: cmd:kick(playerid, params[])
{
new id, string[400], reason[100];
if(PlayerInfo[playerid][pAdmin] < 3) return false;
if(GetPVarInt(playerid,"kikk")>gettime()+18) return J_Kick(playerid);
if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
if(sscanf(params,"us[150]",id,reason)) return SendClientMessage(playerid, COLOR_RED, !"Use: /kick [id] [Razão]");
if(PlayerInfo[playerid][pAdmin]<PlayerInfo[id][pAdmin]) PlayerInfo[playerid][pAdmin]=0;
if(id == playerid) return SendClientMessage(playerid,COLOR_RED, !"Você não pode se desconectar");
format(string,sizeof(string),"O administrador %s expulsou o jogador %s. Razão: %s",Name(playerid),Name(id),reason);
AsendClientMessageToAll(COLOR_ARZCOPY,string);
format(string,sizeof(string),"O administrador <a href=/logsaccount?name=%s>%s</a> expulsou o jogador <a href=/logsaccount?name=%s>%s</a>. Razão: %s",Name(playerid),Name(playerid),Name(id),Name(id),reason);
AdminLogs(playerid, string);
AllLogs(playerid, string);
J_Kick(id);
SetPVarInt(playerid,"kikk",gettime()+7);
return true;
}
RE: Ajuda por favor - White_Blue - 07/01/2023
Este código está complexo(E mal otimizado) sem motivo.
Código PHP: CMD:kick(playerid, params[]) { new plid, motivo[64], msg[128]; if(pAdmin[playerid] < 2) return 1; if(sscanf(params, "us[64]", plid, motivo)) return SendClientMessage(playerid, 0xFF0000AA, "Digite: /kick [id] [motivo]"); if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "Jogador não conectado."); format(msg, sizeof(msg), "O(A) jogador(a) %s[%d] foi kickado(a) pelo administrador(a) %s[%d] ( Motivo: %s ).", GetPlayerNameEx(playerid), playerid, GetPlayerNameEx(plid), plid, motivo); SendClientMessageForAll(0xFF0000AA, msg); SetTimerEx("KickPlayerInTime", 200, false, "d", plid); return 1; }
forward KickPlayerInTime(playerid); public KickPlayerInTime(playerid) return Kick(playerid);
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
RE: Ajuda por favor - k2bi_YT - 07/01/2023
Você pode usar alguns macros para facilitar alguns processos futuros.
Exemplo:
Código PHP: ////////////////////////////////////////////////////// // ADICIONE ISSO ABAIXO DAS INCLUDES(Topo do GM)
//Isso pode ser mais pratico e não será necessario toda hora chamar um timer, apenas usar a função normalmente (kick() | ban()) #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0) forward Kicka(p); public Kicka(p) { #undef Kick Kick(p); #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) return true; }
#define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
forward Bana(p); public Bana(p) { #undef Ban Ban(p); #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0) return true; } ////////////////////////////////////////////////////// //////////////////////////////////////////////////////
CMD:kick (playerid, params[]) { if(Player[playerid][Admin] < 2) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} Vc Precisa Ser Da Equipe Staff Para Ter Uso Deste Comando"); new PlayerIDKickado, Motivo[10], Mensagem[256]; if(sscanf(params, "us[30]",PlayerIDKickado,Motivo))return SendClientMessage(playerid, -1,"[BVR]{FFFFFF}Use /kick [ID] [MOTIVO]!"); if(!IsPlayerConnected(PlayerIDKickado))return SendClientMessage(playerid, -1, "[BVR]{FFFFFF}ID DO PLAYER INVALIDO"); if(strlen(Motivo) > 10) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} MOTIVO INVALIDO/GRANDE"); format(Mensagem, sizeof(Mensagem), "<!> O Admin: %s Kickou o Player: %s Motivo: %s",pName(playerid), pName(PlayerIDKickado)); SendClientMessageToAll(-1, Mensagem); Kick(PlayerIDKickado); return 1; }
RE: Ajuda por favor - White_Blue - 07/01/2023
(07/01/2023 15:50)k2bi_YT Escreveu: Você pode usar alguns macros para facilitar alguns processos
Exemplo:
Código PHP: ////////////////////////////////////////////////////// // ADICIONE ISSO ABAIXO DAS INCLUDES(Topo do GM)
//Isso pode ser mais pratico e não será necessario toda hora chamar um timer, apenas usar a função normalmente (kick() | ban()) #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0) forward Kicka(p); public Kicka(p) { #undef Kick Kick(p); #define Kick(%0) SetTimerEx("Kicka", 100, false, "i", %0) return true; }
#define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
forward Bana(p); public Bana(p) { #undef Ban Ban(p); #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0) return true; } ////////////////////////////////////////////////////// //////////////////////////////////////////////////////
CMD:kick (playerid, params[]) { if(Player[playerid][Admin] < 2) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} Vc Precisa Ser Da Equipe Staff Para Ter Uso Deste Comando"); new PlayerIDKickado, Motivo[10], Mensagem[256]; if(sscanf(params, "us[30]",PlayerIDKickado,Motivo))return SendClientMessage(playerid, -1,"[BVR]{FFFFFF}Use /kick [ID] [MOTIVO]!"); if(!IsPlayerConnected(PlayerIDKickado))return SendClientMessage(playerid, -1, "[BVR]{FFFFFF}ID DO PLAYER INVALIDO"); if(strlen(Motivo) > 10) return SendClientMessage(playerid, -1, "[ERRO]{FFFFFF} MOTIVO INVALIDO/GRANDE"); format(Mensagem, sizeof(Mensagem), "<!> O Admin: %s Kickou o Player: %s Motivo: %s",pName(playerid), pName(PlayerIDKickado)); SendClientMessageToAll(-1, Mensagem); Kick(PlayerIDKickado); return 1; }
Acho que não é necessário, visando que o objetivo é apenas criar um comando que kicke um determinado jogador.
|