Pages

Ads 468x60px


[FilterScript] Detectar quando Jogador foge pra ammu-nation

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:
pawn Code:
/*  *  Copyright (c) 2012 [iPs]TeaM  *  Bruno da Silva (brunoemail@r7.com)  *  Detectar quando jogador foge para ammu em meio a um duelo na rua  *  * [url]www.brunodasilva.com.br[/url]  * [url]www.ips-team.forumeiros.com[/url] */   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; }

Então basta editar a callback a gosto:
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); }

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)