/*----------------------------------------------------------------------------*\
==============
B Virus System
==============
Descrição:
Este filterscript é um sistema de virus o qual o Admin pode setar
o virus para um jogador e infetar outros jogadores, este filterscript
pode ser usado em eventos de servidores ou ate para modes de ZOMBIE.
Creative Commons:
Portugal:
Tem o direito de:
Compartilhar - reproduzir, distribuir e transmitir o trabalho
Remisturar - adaptar o trabalho.
De acordo com as seguintes condições:
Atribuição - Tem de fazer a atribuição do trabalho,
da maneira estabelecida pelo titular originário ou licenciante
(mas sem sugerir que este o apoia, ou que subscreve o seu uso do
trabalho).
Não Comercial - Não pode usar este trabalho para fins comerciais.
No entendimento de que:
Renúncia - Qualquer uma das condições acima pode ser renunciada pelo
titular do direito de autor ou pelo titular dos direitos conexos, se
obtiver deste uma autorização para usar o trabalho sem essa condição.
Domínio Público - Quando a obra ou qualquer dos seus elementos se
encontrar no domínio público, nos termos da lei aplicável, esse
estatuto não é de nenhuma forma afectado pela licença.
Outros Direitos - A licença não afecta, de nenhuma forma, qualquer dos seguintes direitos:
• Os seus direitos de "uso legítimo" (fair dealing ou fair use)
condecidos por lei, ou outras excepções e limitações aplicáveis
ao direito de autor e aos direitos conexos;
• Os direitos morais do autor;
• Direitos de que outras pessoas possam ser titulares, quer
sobre o trabalho em si quer sobre a forma como este é usado,
tais como direitos da personalidade ou direito à privacidade.
Aviso - Em todas as reutilizações ou distribuições, tem de deixar claro quais
são os termos da licença deste trabalho. A melhor forma de fazê-lo, é colocando
um link para esta página.
Link - [url]http://creativecommons.org/licenses/by-nc/3.0/pt/deed.pt[/url]
Brasil:
Você tem a liberdade de:
Compartilhar - copiar, distribuir e transmitir a obra.
Remixar - criar obras derivadas.
Sob as seguntes condições:
Atribuição - Você deve creditar a obra de forma especificada
pelo autor ou licenciante (mas não de maneira que sugira que
estes concedem qualquer aval a você ou ao seu uso da obra).
Uso não comercial - Você não pode usar esta obra para fins
comerciais.
Ficando claro que:
Renúncia - Qualquer das condições acima pode ser renunciada se você
obtiver permissão do titular dos direitos autoriais.
Domínio Público - One a obra ou qualquer de seus elementos estiver
em dominio público sob o direito aplicável, esta condição não é, de
maneira alguma, afetada pela licença.
Outros Direitos - Os seguintes direitos não são, de maneira alguma, afetados pela licença:
• Limitações e exceções aos direitos autorais ou quaisquer
usos livres aplicáveis;
• Os direitos morais do autor;
• Direitos que outras pessoas podem ter sobre a obra ou
sobre a utilização da obra, tais como direitos de imagem
ou privacidade.
Aviso - Para qualquer reutilização ou distribuição, você deve deixar
claro a terceiros os termos da licença a que se encontra submetida
esta obra. A melhor maneira de fazer isso é com um link para a página.
Link - [url]http://creativecommons.org/licenses/by-nc/3.0/br/[/url]
Contribuidor:
SlashPT, ZeeX, Don_Speed.
Obrigado:
SlashPT - Ajudou no sistema de Virus.
ZeeX - Criador do famoso ZCMD.
Don_Speed - Beta Tester da versão 1.5.0
Um grande obrigado a:
Key/Kalcor - SA:MP.
SA_MP Team.
Vesão Atual:
1.5
Changelog:
21/08/2011:
Lançamento Oficial.
12/05/2012:
Adicionado uma nova forma de transmitir o virus clicando ALT.
Todos os bugs reparados.
Retirada do sscanf.
Optimização do código.
Retirada de alguns comandos.
Modificação do comando infectar, agora não existe mais parametros.
Comandos:
- /darvirus - Você seta a variavel vírus para algum jogador.
- /infectar - Você infecta alguem com o vírus, tambem pode usar ALT.
- /vcmd - Serve para ver os comandos.
Definições:
MAX_SLOTS - Maximo de slots do seu servidor.
VS_VERSION - Versão do script.
Variaveis:
Globais:
vNome - String que serve para pegar o nome dos jogadores.
virus - Variavel que define se o jogador tem o virus ou não.
result - String que serve para formatar mensagens com apenas 128 celulas (máximo do sa-mp)
X - Float que serve para pegar as coordenadas dos jogadores.
Y - Float que serve para pegar as coordenadas dos jogadores.
Z - Float que serve para pegar as coordenadas dos jogadores.
Static:
id - Variavel que pega o valor do strval(params) no comando /darvirus.
Marcos:
PRESSED - Este marco serve para pegar a tecla que o jogador clicou, criado pela wiki.
\*----------------------------------------------------------------------------*/
#include a_samp
#include zcmd
#define FILTERSCRIPT
#define MAX_SLOTS 500
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define VS_VERSION "1.5.0"
new
vNome[MAX_PLAYER_NAME],
virus[MAX_SLOTS],
result[128],
Float:X,
Float:Y,
Float:Z
;
public OnFilterScriptInit ()
{
print(" ");
print(" ======================================= ");
print(" | | ");
print(" | Virus System " VS_VERSION " | ");
print(" | Autor BlueX | ");
print(" | | ");
print(" ======================================= ");
print(" ");
return 1 ;
}
public OnPlayerDeath(playerid,killerid,reason)
{
virus[playerid] = 0;
return 1 ;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_FIRE)){
cmd_infectar(playerid);
}
return 1;
}
CMD:darvirus(playerid,params[]){
if(IsPlayerAdmin(playerid)){
new id;
if(isnull(params))
return SendClientMessage(playerid,-1,"[USE]: /darvirus [id]");
id = strval(params);
if(!IsPlayerConnected(id))
return SendClientMessage(playerid,-1,"* Jogador não conectado.");
GetPlayerName(playerid,vNome,MAX_PLAYER_NAME);
format(result,sizeof(result),"[AVISO]: O adminiresultador %s deu um virus a você, use /infectar [id] ou pressione ALT",vNome);
SendClientMessage(id,0x0080FFAA,result);
SendClientMessageToAll(0x0080FFAA,"Um virus foi espalhado pela cidade, tenha cuidado.");
virus[id] = 1;
}
else
SendClientMessage(playerid,0x0080FFAA,"Você não é admin logado na rcon");
return 1;
}
CMD:infectar(playerid){
if(virus[playerid] == 1){
for(new i = 0; i<MAX_SLOTS; ++i){
if(i != playerid){
if(virus[i] == 0){
GetPlayerPos(i,X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid,3.0,X,Y,Z)){
GetPlayerName(playerid,vNome,MAX_PLAYER_NAME);
format(result,sizeof(result),"Você foi infectado por %s, use /infectar [id] ou pressione ALT",vNome);
SendClientMessage(i,0x0080FFAA,result);
virus[i] = 1;
ResetPlayerWeapons(i);
}
}
}
}
}
return 1;
}
CMD:vcmd(playerid)
{
ShowPlayerDialog ( playerid , 4830 , DIALOG_STYLE_MSGBOX , "Virus System - Comandos" , "/infectar [id] ou ALT - Para infetar alguem...\n/darvirus [id] - Para setar o virus a algum player, Deverá estar logado na rcon/n\vcreditos - Para ver o creditos\n/vobj - Para ver o objetivo...", "Ok" , "" ) ;
return 1 ;
}