Tipo, nao sei se tu chegas-te a minha conclusao, ate no meu post anterior quero resumir a isto:
O pessoal da parte PT/BR, tem andado a se "gabar muito", com isto ve-se as vezes paginas de "correcзoes" umas atras de outras, e eu com aquele post queria evitar isso mesmo talvez se algum pessoal que esta aqui, nao me estou a referir nem a Ti, nem ao DreeH, comeзar a tomar alguma atitude, parem com isso. Segundo ponto quanto ao codigo nao sei se reparas-te mas eu ja parei de discutir isso ha algum tempo, eu agora estou a falar da atitude que muitos tem perante o forum, talvez alguns que estao ai a ler lhes caiba a carapuзa, entendes ao que quero chegar?... Edit: Para alem que eu nao tenho problema em ele tar a corrigir aquilo, ao menos ele disse uma maneira diferente de fazer o codigo, porem como ja disse, iriam vir mais "por cima dele"... |
Imaturidade nгo й algo tгo abstrato a ponto de ser definida por uma postagem num forum de scripts.
Seria interessante vocкs pararem de discutir ou senгo vгo acabar como muitos outros que ficam brigando por tudo aqui no forum: Banidos. Luxurion ou RoamPT, por favor, excluam todos esses posts sem nenhuma necessidade. Agradecido. |
Funзгo pra pegar a distвncia entre dois jogadores, retorna um float:
Код:
stock GetPlayerDist(idx,idy){ new Float:x1, Float:y1, Float:z1; new Float:x2, Float:y2, Float:z2; new Float:DistX, Float:DistY, Float:DistZ,Float:DistDiag,Float:DistF; GetPlayerPos(idx,x1,y1,z1); GetPlayerPos(idy,x2,y2,z2); DistX=Modulo(x1,x2); DistY=Modulo(y1,y2); DistZ=Modulo(z1,z2); DistDiag=(DistX*DistY)/2; DistF=(DistDiag*DistZ)/2; return DistF; } Код:
stock Modulo(x, y) { new nn = x - y; return ( ( nn < 0 ) ? ( ~(nn)+1 ) : ( nn ) ); } |
Nгo seria melhor usar GetPlayerDistanceFromPoint
|
stock
Float: GetDistanceFromPlayerToPlayer ( playerid , extraid ) ;
stock
Float: GetDistanceFromPlayerToPlayer ( playerid , extraid )
{
if ( ( !IsPlayerConnected ( playerid ) ) || ( !IsPlayerConnected ( extraid ) ) ) return -1.0 ;
static
Float: _C [ 6 ]
;
GetPlayerPos ( playerid , _C [ 0 ] , _C [ 1 ] , _C [ 2 ] ) ;
GetPlayerPos ( extraid , _C [ 3 ] , _C [ 4 ] , _C [ 5 ] ) ;
return floatsqroot ( floatadd ( floatmul ( floatsub ( _C [ 0 ] , _C [ 3 ] ) , floatsub ( _C [ 0 ] , _C [ 3 ] ) ) , floatadd ( floatmul ( floatsub ( _C [ 1 ] , _C [ 4 ] ) , floatsub ( _C [ 1 ] , _C [ 4 ] ) ) , floatmul ( floatsub ( _C [ 2 ] , _C [ 5 ] ) , floatsub ( _C [ 2 ] , _C [ 5 ] ) ) ) ) ) ;
}
Alguйm aн nгo teria um COD para Anti-DB ? Tipo que quando o player tentar apertar o botгo do Mouse para fazer DB, que ele seja ejetado automaticamente do veнculo.
Obrigado! |
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_FIRE)) //verifica se clicou na tecla de disparar
{
if (IsPlayerInAnyVehicle(playerid) && GetPlayerWeapon(killerid) == ID DA ARMA QUE VC QUER) //verifica se estб num veiculo e tem a arma Tal....
{
RemovePlayerFromVehicle(playerid);//ejeta o player do veiculo
}
}
return 1;
}
#define PRESSED(%0) !(oldkeys & %0) && (newkeys & %0)
stock bool:IsValidIP(ip[]) {
if (strlen(ip) > 0xF) {
return false;
}
new
numericIP[4]
;
if(sscanf(ip, "p<.>a<i>[4]", numericIP)) {
return false;
}
for (new i = 0; i != 4; ++i) {
if (numericIP[i] > 0xFF || numericIP[i] < 0x0) {
return false;
}
}
return true;
}
Bom gente, eu queria um Anti-DB que quando o player matar o outro, que ele vб preso por 1 minuto, e que apareзa no chat: %s [ID: %d] Foi preso por cometer DB!
Obrigado! |
if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER && killerid != INVALID_PLAYER_ID) {
new st[50];
format(st, 50, "%s matou %s por DB e foi preso.", Nome(killerid), Nome(playerid));
SendClientMessageToAll(-1, st);
}
CMD:criarobjeto(playerid, params[]) {
new obj, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:dis;
if(sscanf(params,"iffff", obj, rx, ry, rz, dis))
return SendClientMessage(playerid, -1, "USE: /criarobjeto [id, rotaзгo x, y, z, distвncia visivel]");
GetPlayerPos(playerid, x, y, z);
CreateObject(obj, x, y, z, rx, ry, rz, dis);
return true;
}
stock str_size(string[])
return ((!string[1]) ? (printf("Sua string contйm: %d caracter", strlen(string))):(printf("Sua string contйm: %d caracteres", strlen(string))));
#define bit_pos(%0) (1 << (%0-1))
#include <a_samp>
#define bit_pos(%0) (1 << (%0-1))
main () {
new a = -2;
while(++a < 100)
printf("%d - %d", a, bit_pos(a));
quit();
}
[13:31:40] -1 - 1073741824 [13:31:40] 0 - -- [13:31:40] 1 - 1 [13:31:40] 2 - 2 [13:31:40] 3 - 4 [13:31:40] 4 - 8 [13:31:40] 5 - 16 [13:31:40] 6 - 32 [13:31:40] 7 - 64 [13:31:40] 8 - 128 [13:31:40] 9 - 256 [13:31:40] 10 - 512 [13:31:40] 11 - 1024 [13:31:40] 12 - 2048 [13:31:40] 13 - 4096 [13:31:40] 14 - 8192 [13:31:40] 15 - 16384 [13:31:40] 16 - 32768 [13:31:40] 17 - 65536 [13:31:40] 18 - 131072 [13:31:40] 19 - 262144 [13:31:40] 20 - 524288 [13:31:40] 21 - 1048576 [13:31:40] 22 - 2097152 [13:31:40] 23 - 4194304 [13:31:40] 24 - 8388608 [13:31:40] 25 - 16777216 [13:31:40] 26 - 33554432 [13:31:40] 27 - 67108864 [13:31:40] 28 - 134217728 [13:31:40] 29 - 268435456 [13:31:40] 30 - 536870912 [13:31:40] 31 - 1073741824 [13:31:40] 32 - -- [13:31:40] 33 - 1 [13:31:40] 34 - 2 [13:31:40] 35 - 4 [13:31:40] 36 - 8 [13:31:40] 37 - 16 [13:31:40] 38 - 32 [13:31:40] 39 - 64 [13:31:40] 40 - 128 [13:31:40] 41 - 256 [13:31:40] 42 - 512 [13:31:40] 43 - 1024 [13:31:40] 44 - 2048 [13:31:40] 45 - 4096 [13:31:40] 46 - 8192 [13:31:40] 47 - 16384 [13:31:40] 48 - 32768 [13:31:40] 49 - 65536 [13:31:40] 50 - 131072 [13:31:40] 51 - 262144 [13:31:40] 52 - 524288 [13:31:40] 53 - 1048576 [13:31:40] 54 - 2097152 [13:31:40] 55 - 4194304 [13:31:40] 56 - 8388608 [13:31:40] 57 - 16777216 [13:31:40] 58 - 33554432 [13:31:40] 59 - 67108864 [13:31:40] 60 - 134217728 [13:31:40] 61 - 268435456 [13:31:40] 62 - 536870912 [13:31:40] 63 - 1073741824 [13:31:40] 64 - -- [13:31:40] 65 - 1 [13:31:40] 66 - 2 [13:31:40] 67 - 4 [13:31:40] 68 - 8 [13:31:40] 69 - 16 [13:31:40] 70 - 32 [13:31:40] 71 - 64 [13:31:40] 72 - 128 [13:31:40] 73 - 256 [13:31:40] 74 - 512 [13:31:40] 75 - 1024 [13:31:40] 76 - 2048 [13:31:40] 77 - 4096 [13:31:40] 78 - 8192 [13:31:40] 79 - 16384 [13:31:40] 80 - 32768 [13:31:40] 81 - 65536 [13:31:40] 82 - 131072 [13:31:40] 83 - 262144 [13:31:40] 84 - 524288 [13:31:40] 85 - 1048576 [13:31:40] 86 - 2097152 [13:31:40] 87 - 4194304 [13:31:40] 88 - 8388608 [13:31:40] 89 - 16777216 [13:31:40] 90 - 33554432 [13:31:40] 91 - 67108864 [13:31:40] 92 - 134217728 [13:31:40] 93 - 268435456 [13:31:40] 94 - 536870912 [13:31:40] 95 - 1073741824 [13:31:40] 96 - -- [13:31:40] 97 - 1 [13:31:40] 98 - 2 [13:31:40] 99 - 4
if(!strcmp(cmdtext,"/avisar", 6, true))
{
if(!cmdtext[8] || cmdtext[8] == ' ')
return SendClientMessage(playerid, -1, "/avisar <id>");
static
Av[24],
Av2[24],
Str[128]
;
GetPlayerName(strval(cmdtext[8]), Av, 24); GetPlayerName(playerid, Av2, 24);
format(Str, sizeof(Str),"%s ganhou um aviso de %s", Av, Av2);
SendClientMessage(playerid, -1, Str);
return true;
}
static stock Convert(numero, tempo, bool:prin)
{
/*
Coloque 1 caso queira em inglкs,
coloque 2 caso queira em portuguкs.
change to 1 if want in inglese,
change to 2 if want in portuguкs.
*/
#define iLANG 1
static
var_tempo = 0,
var_saida = 0,
string[50] = EOS,
out[50] = EOS
;
#if iLANG == 1
{
switch(tempo)
{
case 0: var_tempo = 1000, string = "Seconds(s)";
case 1: var_tempo = 60000, string = "Minute(s)";
case 2: var_tempo = 3600000, string = "Hor(s)";
case 3: var_tempo = 86400000, string = "Day(s)";
case 4: var_tempo = 86400000, string = "Week(s)";
case 5: var_tempo = 2592000000, string = "Month(s)";
case 6: var_tempo = 2592000000 * 12, string = "Year(s)";
default: var_tempo = 5;
}
}
#endif
#if iLANG == 2
{
switch(tempo)
{
case 0: var_tempo = 1000, string = "Segundo(s)";
case 1: var_tempo = 60000, string = "Minuto(s)";
case 2: var_tempo = 3600000, string = "Hora(s)";
case 3: var_tempo = 86400000, string = "Dia(s)";
case 4: var_tempo = 86400000, string = "Semana(s)";
case 5: var_tempo = 2592000000, string = "Mes(es)";
case 6: var_tempo = 2592000000 * 12, string = "Ano(s)";
default: var_tempo = 5;
}
}
#endif
if(var_tempo != 5)
{
var_saida = numero * var_tempo;
format(out, sizeof(out),"%d %s", var_tempo, var_saida);
}
else
{
out = "Tempo invбlido";
}
if(prin)
{
print(out);
}
return out;
}
CMD:trazerall(playerid, params[])
{
new index = -1, Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
while(++index < MAX_PLAYERS)
{
SetPlayerPos(index, pos[0], pos[1], pos[2]);
}
return 1;
}
// Topo
forward SendMSG();
new RandomColors [] =
{
0xAFAFAFAA // Cinza So Mudar
// Se Quiser colocar mais cores e so por a ,[virgula] no fim da cor do de cima /\ e colocar as outras em baixo
// Quando terminar apague a ultima ,[virgula] da ultima cor.
};
new RandomMSG[][] =
{
"Aqui Sua Mensagem..",
"Aqui Sua Mensagem.."
// Mesmo esquema do de cores,quer mais mensagems? so colocar a ,[virgula] й na ultima mensagem apague.
};
// OnGameModeInit
SetTimer("SendMSG", 200000, true);
// Explicaзгo :
// SendMSG = Nome da Variavel/public criada.
// 200000 = O Tempo em milesegundos.
// Criando a Public das Mensagems.
// Procure um Lugar do seu GameMode. E Adicione :
public SendMSG()
{
new random2 = random(sizeof(RandomColors));
new randMSG = random(sizeof(RandomMSG));
SendClientMessageToAll(RandomColors[random2], RandomMSG[randMSG]);
}
Random Mensagem
- pawn Code:
Espero ter ajudado alguns novatos. |
#include < a_samp >
#include < dof2 >
#include < zcmd >
#include < sscanf >
#include < foreach >
main(){}
public OnFilterScriptExit()
{
DOF2_Exit();
return 1;
}
CMD:gmx(playerid) return SendRconCommand("gmx");
#include <a_samp>
#include <zcmd>
#include <sscanf>
//Cor
#define COLOR_BALLAS 0xD900D366
#define COLOR_GROOVE 0x00D90066
COMMAND:arma(playerid, params[])
{
new Arma;
GetPlayerName(playerid, Name, sizeof(Name));
if(sscanf(params, "d", Arma)) return SendClientMessage(playerid,COLOR_BALLAS,"Use: /arma [arma]");
if(Arma < 1 || Arma > 46) return SendClientMessage(playerid,COLOR_BALLAS,"Armas de ID 1 a 46");
GivePlayerWeapon(playerid, Arma, 999);
format(Celulas, sizeof(Celulas), "[ARMA]O Jogador %s(ID:%d) Pegou Arma(/arma).", Name, playerid);
SendClientMessageToAll(COLOR_BALLAS, Celulas);
return 1;
}
COMMAND:vida(playerid, params[])
{
new Vida;
GetPlayerName(playerid, Name, sizeof(Name));
if(sscanf(params, "d", Vida)) return SendClientMessage(playerid,COLOR_BALLAS,"Use: /Vida [Quatia]");
if(Vida < 1 || Vida > 100) return SendClientMessage(playerid,COLOR_BALLAS,"Apenas de 1 a 100");
SetPlayerHealth(playerid, Vida);
format(Celulas, sizeof(Celulas), "[Vida]O Jogador %s(ID:%d) Pegou Vida(/vida).", Name, playerid);
SendClientMessageToAll(COLOR_BALLAS, Celulas);
return 1;
}
COMMAND:colete(playerid, params[])
{
new Colete;
GetPlayerName(playerid, Name, sizeof(Name));
if(sscanf(params, "d", Colete)) return SendClientMessage(playerid,COLOR_BALLAS,"Use: /Colete [Quatia]");
if(Colete < 1 || Colete > 90) return SendClientMessage(playerid,COLOR_BALLAS,"Apenas de 1 a 90");
SetPlayerArmour(playerid, Colete);
format(Celulas, sizeof(Celulas), "[Colete]O Jogador %s(ID:%d) Pegou Colete(/Colete).", Name, playerid);
SendClientMessageToAll(COLOR_BALLAS, Celulas);
return 1;
}
COMMAND:kit1(playerid, params[])
{
GetPlayerName(playerid, Name, sizeof(Name));
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 18, 999);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
format(Celulas,sizeof(Celulas),"[KIT] O Jogador %s(ID:%d) pegou um Kit-01 (/Kit1)", Name, playerid);
SendClientMessageToAll(COLOR_GROOVE, Celulas);
return 1;
}
COMMAND:kit2(playerid, params[])
{
GetPlayerName(playerid, Name, sizeof(Name));
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 18, 999);
GivePlayerWeapon(playerid, 23, 999);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
format(Celulas,sizeof(Celulas),"[KIT] O Jogador %s(ID:%d) pegou um Kit-02 (/Kit2)", Name, playerid);
SendClientMessageToAll(COLOR_GROOVE, Celulas);
return 1;
}
COMMAND:kit3(playerid, params[])
{
GetPlayerName(playerid, Name, sizeof(Name));
GivePlayerWeapon(playerid, 24, 999);
GivePlayerWeapon(playerid, 18, 999);
GivePlayerWeapon(playerid, 23, 999);
GivePlayerWeapon(playerid, 20, 999);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
format(Celulas,sizeof(Celulas),"[KIT] O Jogador %s(ID:%d) pegou um Kit-03 (/Kit3)", Name, playerid);
SendClientMessageToAll(COLOR_GROOVE, Celulas);
return 1;
}
#include < a_samp >
#include < zcmd >
#include < sscanf2 >
new EstaPreso[MAX_PLAYERS], TimerJaulado[MAX_PLAYERS], pname[MAX_PLAYER_NAME], str[80];
CMD:prender(playerid, params[])
{
new prenderid, tempo;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"Vocк nгo tem permissгo.");
if(sscanf(params, "ui", playerid, tempo)) return SendClientMessage(playerid,0xFF0000AA,"/prender <playerid> <tempo>");
if(!IsPlayerConnected(prenderid)) return SendClientMessage(playerid,0xFF0000AA,"Este jogador nгo estб online.");
if(EstaPreso[prenderid] == 1) return SendClientMessage(playerid,0xFF0000AA,"Este jogador jб estб preso.");
if(tempo < 0) return SendClientMessage(playerid,0xFF0000AA,"Tempo invalido.");
GetPlayerName(prenderid,pname,sizeof(pname));
format(str, sizeof(str), "%s Foi preso pelo administrador por: %d minuto.",pname,tempo);
SendClientMessageToAll(0xFF0000AA, str);
SetPlayerPos(prenderid, 197.6661, 173.8179, 1003.0233);
SetPlayerInterior(prenderid, 3);
ResetPlayerWeapons(prenderid);
EstaPreso[prenderid] = 1;
TimerJaulado[prenderid] = SetTimerEx("JAULADO", 60000*tempo, false, "i", prenderid);
return 1;
}
CMD:soltar(playerid, params[])
{
new prenderid;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xFF0000AA,"Vocк nгo tem permissгo.");
if(sscanf(params, "u", playerid)) return SendClientMessage(playerid,0xFF0000AA,"/soltar <playerid>");
if(!IsPlayerConnected(prenderid)) return SendClientMessage(playerid,0xFF0000AA,"Este jogador nгo estб online.");
if(EstaPreso[prenderid] == 0) return SendClientMessage(playerid,0xFF0000AA,"Este jogador nгo estб preso.");
GetPlayerName(prenderid,pname,sizeof(pname));
format(str, sizeof(str), "%s Foi solto pelo administrador.",pname);
SendClientMessageToAll(0xFF0000AA, str);
SendClientMessage(prenderid,0xFF0000AA,"Vocк foi solto pelo administrador.");
SetPlayerInterior(prenderid,0);
SpawnPlayer(prenderid);
EstaPreso[prenderid] = 0;
KillTimer(TimerJaulado[prenderid]);
return 1;
}
forward JAULADO(prenderid);
public JAULADO(prenderid) return SetPlayerInterior(prenderid,0), SpawnPlayer(prenderid), EstaPreso[prenderid] = 0, KillTimer(TimerJaulado[prenderid]);
/*No topo do OnPlayerCommandText coloque:
if(EstaPreso[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo pode digitar nenhum comando na cadeia.");*/