18.06.2012, 04:11
Sabe aquele momento chato que vocк ficб horas duelando com uma pessoa na frente da ammu-nation e quando vocк chega PERTO de matar ela, a pessoa simplesmente corre para ammu-nation comprar colete? Seus problemas acabaram!
Й, й um momento realmente chato. Por este motivo criei este Filterscript/Include que serve para detectar quando um jogador corre para ammu! Й bem simples e eficiente.
Cуdigo:
Entгo basta editar a callback a gosto:
A idйia surgiu apуs eu estar jogando no servidor Global Match (minha assinatura) e o pessoal sу ficar correndo pra ammunation, nunca conseguindo mata-las.
Inicialmente parecia um bicho-de-sete-cabeзas, porque "como detectar com quem estava duelando e quando ele fugiu pra ammu" Foi ai que lembrei da nova callback da sa:mp e com alguns filtrozinhos, estб feito.
Espero que tenham gostado
Crйditos
Bruno da Silva (criador e idealizador do projeto)
Schocc (me ajudou a testar e a encontrar novos erros)
Й, й um momento realmente chato. Por este motivo criei este Filterscript/Include que serve para detectar quando um jogador corre para ammu! Й bem simples e eficiente.
Cуdigo:
pawn Code:
/*
* Copyright © 2012 [iPs]TeaM
* Bruno da Silva (brunoemail@r7.com)
* Detectar quando jogador foge para ammu em meio a um duelo na rua
*
* http://www.brunodasilva.com.br
* http://www.ips-team.forumeiros.com
*/
new gIssuerid [MAX_PLAYERS];
new gTickshoot [MAX_PLAYERS];
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
//detectar tiros recentes
gTickshoot[playerid] = gettime();
gIssuerid [playerid] = issuerid ;
return true;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
// Ammunation IDS
if(newinteriorid == 1 || newinteriorid == 7 || newinteriorid == 4 || newinteriorid == 6) {
// Detectar se jogador que o playerid estava duelando estб online e o duelo foi ao menos de 3 segundps
if((gettime() - gTickshoot[playerid]) < 3 && IsPlayerConnected(gIssuerid[playerid])) {
static
Float:Health1,
Float:Health2,
Float:Armour
;
GetPlayerHealth(playerid, Health1);
GetPlayerHealth(gIssuerid[playerid], Health2);
GetPlayerArmour(playerid, Armour);
// Detectar se fugiu com vida baixa. aqui vocк pode editar.
if( (Health1 < Health2 && Health1 < 55.0) || (Armour < 20.0 && 30.0 > Health1 && Health1 < Health2)) {
// Chamar callback
CallLocalFunction("OnPlayerEscapeInAmmu", "ii", playerid, gIssuerid[playerid]);
}
}
}
return true;
}
pawn Code:
forward OnPlayerEscapeInAmmu(playerid, shooter);
public OnPlayerEscapeInAmmu(playerid, shooter) {
static
string[128]
;
format(string, 128, "O jogador id %d correu para ammu (noob para de correr)", playerid);
return SendClientMessageToAll(-1, string);
}
Inicialmente parecia um bicho-de-sete-cabeзas, porque "como detectar com quem estava duelando e quando ele fugiu pra ammu" Foi ai que lembrei da nova callback da sa:mp e com alguns filtrozinhos, estб feito.
Espero que tenham gostado
Crйditos
Bruno da Silva (criador e idealizador do projeto)
Schocc (me ajudou a testar e a encontrar novos erros)