É, é 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)

---------------------------------------------------