RE: Códigos Úteis - Burunu - 11/12/2020
Comando para cometer Suicídio:
Código PHP: CMD:kill(playerid, params){ new msg[256]; SetPlayerHealth(playerid, 0.0); //Kill format(msg, sizeof(msg), "{DC1C1C}|KILL| {FFFFFF}O Jogador {DC1C1C}%s {FFFFFF}Cometeu Suicidio!", GetPlayerNameEx(playerid)); SendClientMessageToAll(-1, msg); return 1; }
Código PHP: stock GetPlayerNameEx(playerid){ new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); return Nome; }
RE: Códigos Úteis - NelsonC. - 15/12/2020
Esse sistema eu comprei do blueN e funcionou perfeitamente no meu gm.
Ele bloqueia a conexão de quem entrou em menos de 2 segundos, poderão usar isso para bloquear a conexão de bots.
PS: O código está adaptado para o meu gm, só vocês adaptarem para o vosso.
Código: #if !defined varGet
#define varGet(%0) getproperty(0,%0)
#endif
#if !defined varSet
#define varSet(%0,%1) setproperty(0, %0, %1)
#endif
stock botGetIP[24];
#define IsPlayerBot(%0)\
GetPlayerPing(%0) == 65535 && (gettime() - varGet((GetPlayerIp(%0, botGetIP, sizeof botGetIP), botGetIP)) > 5)
hook OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return false;
static playerip[24];
GetPlayerIp(playerid, playerip, 24);
if(gettime() - varGet(playerip) < 2)
{
strcat(playerip, "di_S");
if(gettime() - varGet(playerip) < 3)
{
return false;
}
printf("%d Entrou em menos de 2 segundos", playerid);
GetPlayerIp(playerid, playerip, 20);
varSet(playerip, gettime());
strcat(playerip, "x");
static timers ;
timers = varGet(playerip);
varSet(playerip, 1+ timers);
if(timers > 2)
{
playerip[strlen(playerip) - 2] = 0;
printf("BOT: ID -> %d IP -> %s", playerid, playerip);
BanEx(playerid, "Bot Connect");
}
}
return varSet(playerip, gettime());
}
hook OnPlayerDisconnect(playerid, reason)
{
if(reason == 2)
{
static playerip[20];
GetPlayerIp(playerid, playerip, 20);
strcat(playerip, "di_S");
varSet(playerip, gettime());
}
return 1;
}
RE: Códigos Úteis - NelsonC. - 18/12/2020
Código PHP: stock IsValidEmail(const email[]) // by Bruno13 { new size = strlen(email);
if(size < 7) return false;
new atFinded, i;
for(i = 0; i < size; i++) { switch(email[i]) { case 'A'..'Z', 'a'..'z', '0'..'9', '_', '.', '-': continue; default: { if(email[i] == '@') { atFinded++; continue; }
return false; } } } return (atFinded == 1); }
RE: Códigos Úteis - Levi.M - 25/02/2021
Animações
Código PHP: //animações by Levi.M
CMD:renderse(playerid)return SetPlayerSpecialAction(playerid, 10); CMD:ligar(playerid)return SetPlayerSpecialAction(playerid, 11); CMD:desligar(playerid)return SetPlayerSpecialAction(playerid, 13); CMD:bebado(playerid)return ApplyAnimation(playerid, "PED", "WALK_DRUNK", 4.0, 1, 1, 1, 1, 0); CMD:bomba(playerid)return ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); CMD:apontar(playerid)return ApplyAnimation(playerid, "ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); CMD:merda(playerid)return ApplyAnimation(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); CMD:mascara(playerid)return ApplyAnimation(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); CMD:roubar(playerid)return ApplyAnimation(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); CMD:cruzarbraco(playerid)return ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); CMD:deitar(playerid)return ApplyAnimation(playerid, "BEACH", "bather", 4.0, 1, 0, 0, 0, 0); CMD:abaixar(playerid)return ApplyAnimation(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); CMD:vomitar(playerid)return ApplyAnimation(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); CMD:comer(playerid)return ApplyAnimation(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); CMD:rap(playerid)return ApplyAnimation(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); CMD:passaramao(playerid)return ApplyAnimation(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); CMD:cobrar(playerid)return ApplyAnimation(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); CMD:overdose(playerid)return ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); CMD:fumar(playerid)return ApplyAnimation(playerid, "SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); CMD:sentar(playerid)return ApplyAnimation(playerid, "BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); CMD:conversar(playerid)return ApplyAnimation(playerid, "PED", "IDLE_CHAT", 4.0, 0, 0, 0, 0, 0); CMD:fodase(playerid)return ApplyAnimation(playerid, "PED", "fucku", 4.0, 0, 0, 0, 0, 0); CMD:taichi(playerid)return ApplyAnimation(playerid, "PARK", "Tai_Chi_Loop", 4.0, 1, 0, 0, 0, 0); CMD:observar(playerid)return ApplyAnimation(playerid, "BAR", "dnk_stndF_loop", 4.0, 1, 0, 0, 0, 0);
CMD:animes(playerid) { SendClientMessage(playerid, -1, "Lista de Animes :"); SendClientMessage(playerid, -1, "/renderse /ligar /desligar /bebado /bomba /apontar /merda /mascararse"); SendClientMessage(playerid, -1, "/roubar /cruzarb /deitar /abaixar /vomitar /comer /rap /passaramao"); SendClientMessage(playerid, -1, "/cobrar /overdose /fumar //observar /sentar /conversar /fodase /taichi"); return 1; }
Configurações de Nick
Código PHP: CMD:nickoff(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, false); GameTextForPlayer(playerid, "~W~Nicks Desativos ~R~off", 5000, 5); return 1; }
CMD:nickoon(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, true); GameTextForPlayer(playerid, "~W~Nicks Ativos ~R~", 5000, 5); return 1; }
Morrer ao tentar roubar carro
Código PHP: public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { SendClientMessage(playerid, -1, "Ao tentar roubar um veículo, morrerá!"); if(!ispassenger && IsVehicleOccupied(vehicleid)) SetPlayerHealth(playerid, 0.0); return 1; }
//No fim do gamemode adicione: stock IsVehicleOccupied(vehicleid) { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER) return 1; return 0; }
RE: Códigos Úteis - mau.tito - 12/03/2021
Base para sistema de caixa eletrônico, com quantidade de dinheiro para movimentação, agora só precisa utilizar a criatividade de vocês.
Código PHP: #include a_samp #include zcmd
#define MAX_ATM 2
new Text3D:TexATM[MAX_ATM]; enum infoatm { cID, Float:cPosX, Float:cPosY, Float:cPosZ, Float:cPosA, cMax, cInt } new CaixaInfo[MAX_ATM][infoatm] = { {19324, 1507.66602, -1755.56201, 13.13839, 180.96274, 25000, 1}, {19324, 1507.66602, -1755.56201, 13.13839, 180.96274, 25000, 1} };
public OnGameModeInit() { static atm; do { CreateDynamicObject(CaixaInfo[atm][cID], CaixaInfo[atm][cPosX],CaixaInfo[atm][cPosY],CaixaInfo[atm][cPosZ], 0.00000, 0.00000,CaixaInfo[atm][cPosA]); TexATM[atm] = Create3DTextLabel(" >> ATM << \n" , -1,CaixaInfo[atm][cPosX],CaixaInfo[atm][cPosY],CaixaInfo[atm][cPosZ], 10.0, 0, 0); atm++; } while(atm < MAX_ATM); return 1; }
public OnGameModeExit() { return 1; } command(atm, playerid, params[]) { static atm , var[100]; do { if(IsPlayerInRangeOfPoint(playerid, 1.0, CaixaInfo[atm][cPos][0],CaixaInfo[atm][cPos][1],CaixaInfo[atm][cPos][2])) { format(var, sizeof(var), "O Caixa Possui R$ %i de dinheiro disponivel para transferencia.",CaixaInfo[atm][cMax]); SendClientMessage(playerid, -1, var); } atm++; } while(atm < MAX_ATM); return 1; }
RE: Códigos Úteis - Levi.M - 18/03/2021
Animações para actors
Código PHP: ApplyActorAnimation(actorid, "ROB_BANK","SHP_HandsUp_Scr", 4.0, 0, 1, 1, 1, 0); //HandsUp ApplyActorAnimation(actorid, "PED","WALK_drunk",4.1,0,1,1,1,1); //Drunk ApplyActorAnimation(actorid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh ApplyActorAnimation(actorid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob ApplyActorAnimation(actorid, "BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down ApplyActorAnimation(actorid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave ApplyActorAnimation(actorid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack ApplyActorAnimation(actorid, "BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); // Sit ApplyActorAnimation(actorid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Female Smoking ApplyActorAnimation(actorid, "PED","IDLE_CHAT",4.0, 0, 0, 0, 0, 0); //chat ApplyActorAnimation(actorid, "PED","fucku",4.0,0,0,0,0,0); // fucku ApplyActorAnimation(actorid, "PARK","Tai_Chi_Loop",4.0,1,0,0,0,0); // taichi ApplyActorAnimation(actorid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); // Ass Slapping ApplyActorAnimation(actorid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); // Deal ApplyActorAnimation(actorid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger ApplyActorAnimation(actorid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover ApplyActorAnimation(actorid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit BAH! ApplyActorAnimation(actorid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,1,0); //Plantar Bomba ApplyActorAnimation(actorid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); //Cruzar os Braços ApplyActorAnimation(actorid, "BAR", "dnk_stndF_loop", 4.0, 1, 0, 0, 0, 0); //Só observo shauhusa
RE: Códigos Úteis - SvCross. - 02/04/2021
Dois comandos talvez úteis elaborados por mim com base nos tutoriais do Chainksain:
/irpara x y z (seta o usufruidor há alguma coordenada);
/enviarpara [ID] x y z (seta o player ID receptor há alguma coordenada(exclusivo há administradores).
Código: // Comando para setar o jogador usufruidor a alguma coordenada
CMD:irpara(playerid, params[])
{
new Float:posi[3];
if(sscanf(params, "fff", posi[0], posi[1], posi[2])) // Verifica se o jogador utilizou o formato certo com "x, y e z"
return SendClientMessage(playerid, -1, "Adicione a posição [x] [y] e [z] corretamente."); // Retorna a mensagem caso não utilizou
SetPlayerPos(playerid, posi[0], posi[1], posi[2]); // Seta a posição caso utilizou o comando certamente
return 1;
}
Dúvidas ou melhorias, me contatem.
Código: // Comando para setar um jogador respectivo a alguma coordenada
CMD:enviarpara(playerid, params[])
{
new giveplayerid, Float:posi[3];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "* Você não é administrador."); // Verifica se o ator é um administrador
if(!IsPlayerConnected(giveplayerid) || giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "O ID não existe"); // Verifica se o ID existe, caso não, retorna uma mensagem
if(sscanf(params, "ufff", giveplayerid, posi[0], posi[1], posi[2])) // Verifica se o jogador utilizou o formato certo com "ID x, y e z"
return SendClientMessage(playerid, -1, "Use: /enviarpara ID X Y e Z"); // Retorna a mensagem caso não tenha utilizado
SetPlayerPos(giveplayerid, posi[0], posi[1], posi[2]); // Seta a posição ao player caso utilizou o comando certamente
return 1;
}
Command Performed (Comando valido ou invalido) - Vieira 69 - 11/04/2021
Código: public OnPlayerCommandPerformed(playerid, cmdtext[], success) // COLOCA EM QQ CANTO
{
new string[128];
format(string, sizeof(string), "{FFA500}O Comando {ffffff}(%s) {ff0000}e invalido, Use: {fffff}(/comandos)", cmdtext);
if(!success)
{
SendClientMessage(playerid, -1, string);
}
return 1;
}
RE: Códigos Úteis - SrBlue - 03/09/2021
Código: stock IsPlayerOnline(name[])
{
new PlayerName2[MAX_PLAYER_NAME];
foreach(Player, i)
{
GetPlayerName(i, PlayerName2, sizeof(PlayerName2));
if(strcmp(name,PlayerName2,true)==0)
{
return true;
}
}
return 0;
}
ver se o jogador está online pelo name
RE: Códigos Úteis - SrBlue - 04/09/2021
Código: stock SafeReturnCode(const src[], const bytes = sizeof (src))
{
// Push the lengths for the memcpy (needs "pri", so done first).
#emit LOAD.S.pri bytes
#emit SHL.C.pri 2
#emit PUSH.pri
#emit PUSH.pri
// Get the parameter count.
#emit LOAD.S.pri 0
#emit MOVE.alt
#emit ADD.C 8
#emit LOAD.I
// Get the desination pointer.
#emit ADD
#emit ADD.C 12
#emit LOAD.I
// Do a raw memcpy (pointer to pointer, not array to array).
#emit PUSH.C 0
#emit PUSH.S src
#emit PUSH.pri
#emit PUSH.C 20
#emit SYSREQ.C memcpy
// Return to the caller's caller.
#emit MOVE.pri
#emit SCTRL 5
#emit SCTRL 4
#emit RETN
// Compiler cleanup.
return 0;
}
#define safe_return%0; return SafeReturnCode(%0),(%0);
user:
Código: safe_return FunCaoNome();
para retornar a função sem erros e com modo de segurança, evitar bugs que pode casha a gm.
|