Consegui tirar o nametag wallhack do servidor, mas tem uma informação de debug do samp que a galera tá usando pra saber quando tem player perto, F5 -> PedSlotUsed
Um sistema que eu queria pegar no outro forum, mas não procurei porque não sabia que ele ia fechar era o sistema de treino de armas do gta...
Se alguém fizesse uma lib/filterscript disso seria muito massa, porque dava pra colocar em sistemas de treino de weapon skill, sistema de comprar licenças de armas, se encaixaria em muitos estilos de servidores
Ctz ajudaria muita gente
Alguém sabe fazer isso? Se der uma base eu ajudo a terminar
if(newkeys & KEY_FIRE && IsAGrenade(GetPlayerWeapon(playerid)) )
{
if(TimerKFPressed[playerid]) StopPressing(playerid); //If it's already started we stop it here
TimerKFPressed[playerid] = SetTimerEx("PressingKey",1000,true,"i",playerid); //And start it again
}
Código:
stock StopPressing(playerid)
{
new str[128];
KillTimer(TimerKFPressed[playerid]);
// tempo pressionando
new seconds = GetPVarInt(playerid,"PressingSecs");
format(str,sizeof(str),"Key pressed for %d seconds",seconds);
SendClientMessage(playerid,-1,str);
// posição da bomba:
new Float:Px, Float:Py, Float:Pz;
GetPlayerPos(playerid, Px, Py, Pz);
GetXYInFrontOfPlayer(playerid, Px, Py, (seconds*3 + 1));
format(str,sizeof(str),"Bomb pos: %f %f %f",Px, Py, Pz);
SendClientMessage(playerid,-1,str);
//
SetPVarInt(playerid,"PressingSecs",0); //Here we reset the seconds so when he will press it again we can count the new seconds
TimerKFPressed[playerid] = 0; //We reset this so it could pass the check if(TimerPressed[playerid])
}
Alguem pode disponibilizar ao forum um tutorial de como criar um sistema de inventario em dialog ou texdraw esplicativo para aprender como funciona o sistema?
Bom fiz esse sistema de DJ basiado em um que vim na net ok.
Ele funciona da seguinte forma o Admin que esta logado na Rcon, utiliza do comandos /TocarMusica e /PMusicaTodos. E tem dois comandos para os players /PedirMusica e / PMusica.
Bom quando utiliso do comando /TocarMusica aparece uma Dialog para eu inserir algum link do youtube ou para mim escrever um nome do cantor e o nome da musica, mais quando confirmo o link ou o nomes aparece uma msg dizendo q pois a musica tal para tocar, mais não aparece nenhuma musica tocando e buga o servidor, pq fica aparecendo a Dialog para Logar no Servidor, mais quando logo não desbuga, poderiam mim ajuda??
new pname[MAX_PLAYER_NAME];
new bool:PediuMusica[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n [FS] Música carregado by [TSVR]LeleziN.Dr ");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
PediuMusica[playerid] = false;
return 1;
}
public OnPlayerSpawn(playerid)
{
static nomedoserver[64], str[128];
//GetConsoleVarAsString("hostname", nomedoserver, sizeof(nomedoserver));
format(str, sizeof(str), "O %s contém um sistema de música feito por [TSVR]LeleziN.Dr | CMD: /amusica ", nomedoserver);
SendClientMessage(playerid, COR_DICA, str);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == D_MUSICA)
{
if(!response)
{
SendClientMessage(playerid, COR_INFO, "DICA: Comandos do Sistema de Música: ( /amusica )");
}
else
{
if(strlen(inputtext) < 1)
{
SendClientMessage(playerid, COR_ERRO, "ERRO: Insira alguma música!");
ShowPlayerDialog(playerid, D_MUSICA, DIALOG_STYLE_INPUT, "Música para todos", "Insira o nome da música desejada!\n(AVISO): Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Tocar", "Cancelar");
}
else
{
static i, str[128], str2[104+MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for( i = GetMaxPlayers() - 1; i > -1; --i)
{
if(IsPlayerConnected(i))
{
format(str, sizeof(str), "https://6t.pe/?song=%s", inputtext);
PlayAudioStreamForPlayer(i, str);
format(str2, sizeof(str2), "[ADMIN] %s colocou a música %s, digite /pmusica se quiser parar!", pname, inputtext);
}
}
SendClientMessageToAll(COR_INFO, str2);
}
}
return 1;
}
if(dialogid == D_PEDIRMUSICA)
{
if(!response)
{
SendClientMessage(playerid, COR_DICA, "DICA: Comandos do Sistema de Música: ( /amusica )");
}
else
{
if(strlen(inputtext) < 1)
{
SendClientMessage(playerid, COR_ERRO, "ERRO: Insira alguma música!");
ShowPlayerDialog(playerid, D_PEDIRMUSICA, DIALOG_STYLE_INPUT, "Pedir uma Música", "Insira o nome da música desejada!\n[AVISO]: Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Pedir", "Cancelar");
}
else
{
SendClientMessage(playerid, COR_DICA, "AVISO: Música enviada com sucesso aos ADMINS!");
PediuMusica[playerid] = true;
SetTimerEx("PedidoDeMusica", 120000, false, "d", playerid);
static i, str2[104+MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for( i = GetMaxPlayers() - 1; i > -1; --i)
{
if(IsPlayerAdmin(i))
{
format(str2, sizeof(str2), "ATENÇÃO ADMINS: %s está pedindo a música %s", pname, inputtext);
SendClientMessage(i, COR_INFO, str2);
}
}
}
}
return 1;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/tocarmusica", true)==0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_ERRO, "ERRO: Comando disponível apenas para admins RCON!");
ShowPlayerDialog(playerid, D_MUSICA, DIALOG_STYLE_INPUT, "Música para todos", "Insira o nome da música desejada!\n[AVISO]: Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Tocar", "Cancelar");
return 1;
}
if (strcmp(cmdtext, "/pmusicatodos", true)==0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_ERRO, "ERRO: Comando disponível apenas para admins RCON!");
static i,str[104+MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for( i = GetMaxPlayers() - 1; i > -1; --i)
{
if(IsPlayerConnected(i))
{
StopAudioStreamForPlayer(i);
}
}
format(str, sizeof(str), "[ADMIN] %s parou a música atual!", pname);
SendClientMessageToAll(COR_INFO, str);
return 1;
}
if (strcmp(cmdtext, "/pmusica", true)==0)
{
StopAudioStreamForPlayer(playerid);
SendClientMessage(playerid, COR_INFO, "INFO: A reprodução de sons foi parada!");
return 1;
}
if (strcmp(cmdtext, "/pedirmusica", true)==0)
{
if(PediuMusica[playerid] == false)
{
ShowPlayerDialog(playerid, D_PEDIRMUSICA, DIALOG_STYLE_INPUT, "Pedir uma Música", "Insira o nome da música desejada!\n[AVISO]: Coloque o cantor e o nome da música ou o link do youtube para melhores resultados\n", "Pedir", "Cancelar");
}
else
{
SendClientMessage(playerid, COR_ERRO, "ERRO: Aguarde 2 Minutos para pedir outra música!");
}
return 1;
}
if (strcmp(cmdtext, "/amusica", true)==0)
{
if(IsPlayerAdmin(playerid))
{
ShowPlayerDialog(playerid, D_AJUDA, DIALOG_STYLE_MSGBOX, "Comandos de Música", "COMANDOS ADM: \n\n/tocarmusica - Toca uma música para todos pelo nome ou link do youtube\n/pmusicatodos - Para a música de todos\n\nCOMANDOS PLAYER: \n\n/pmusica - Para a música atual\n/pedirmusica - Envia a música desejada para os admins online\n", "Ok", "");
}
else
{
ShowPlayerDialog(playerid, D_AJUDA, DIALOG_STYLE_MSGBOX, "Comandos de Música", "/pmusica - Para a música atual\n/pedirmusica - Envia a música desejada para os admins online\n", "Ok", "");
}
return 1;
}
return 1;
}
Como indentificar a arma que esta na mão "usando" no momento para quando eu rolar as armas a qye estava na mão ir para o inventario e a que estava no inventario ir para mão?