Eai forum,estou usando esse sistema chamado Virus System feito por BlueX pra uma base pra uma organizaзгo que to fazendo aqui, e tipo eu queria que alguem no servidor/aleatуrio seja infectada a cada 20 minutos
aqui estб o cуdigo.
pawn Код:
/*----------------------------------------------------------------------------*\
==============
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 - http://creativecommons.org/licenses/by-nc/3.0/pt/deed.pt
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 - http://creativecommons.org/licenses/by-nc/3.0/br/
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 ;
}
Bom, Acho este seu sistema um lixo, vocк poderia criar um sistema de mordidas que й bem melhor.
Sobre o random infected, apenas adicionar uma variavel "Count ++;" para somar a quantidade de pontos que cada time tem, e compara-los, caso seja menor, ele irб setar um jogador aleatуrio para isso, vocк usa a funзгo Random.