[FilterScript] Detectar quando Jogador foge pra ammu-nation
#1

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 © 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;
}
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)
Reply
#2

nice code
Reply
#3

Muito bom , Util em servidores de DM , pior qi da raiva mesmo :S

10/10

+rep .
Reply
#4

Quote:
Originally Posted by Schocc
View Post
nice code
Valeu. Para fazer a include em si demoraram uns 10 minutos. Fora isto, os testes demoraram mais que a prуpria include, deve ter demorado uns 15 a 20 minutos de testes. Por isto odeio fazer testes.


Quote:
Originally Posted by Ades
View Post
Muito bom , Util em servidores de DM , pior qi da raiva mesmo :S

10/10

+rep .
Quem jб passou por isto sabe qual sentimento ocorre na hora.

"Tanta raiva que sai atй sangue nos olhos" - Bruno

hahaha
Reply
#5

Quote:
Originally Posted by [FeK]DraKiNs
View Post
"Tanta raiva que sai atй sangue nos olhos" - Bruno
Vo por na asinatura '-'
Reply
#6

//\\ LoooL
E a propуsito, eu nunca passei por isso, por isso nгo intendi muito bem,
Eu sу fico puto quando o cara compra vida ¬¬
Reply
#7

Legal, mas isso nгo funcionaria para servers que tem pickups espalhados pela cidade...
Reply
#8

Й muito tenso '-'

Vocк й da rede record? AUHEAUHEAUHEAUHE ( R7 . COM )

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

Nice Code.
Reply
#9

Quote:
Originally Posted by sanalex
View Post
Legal, mas isso nгo funcionaria para servers que tem pickups espalhados pela cidade...
Na verdade funciona sim, mais sу se a tal pickup teleporta-se para algum interior..
Muito bom Bruno!
Reply
#10

Quote:
Originally Posted by [Full]Garfield[XDB]
View Post
Na verdade funciona sim, mais sу se a tal pickup teleporta-se para algum interior..
Muito bom Bruno!
Exatamente! Coloquei no gamemode do servidor Global Match (usa interiores com entrada via pickup) e funcionou perfeitamente. Nгo fala o que nгo sabe, aн, carinha.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)