[FilterScript] Killing Spree!
#1

Hola gente!
Bueno, les traigo este codigo simple que hice para mi GM y funciona de diez.


pawn Код:
#define FILTERSCRIPT
#include <a_samp>

#define COLOR_RED 0xFF0000AA     // Red
#define COLOR_YELLOW 0xFFFF00AA // Yellow
#define COLOR_GREEN 0x66CC99AA // Green
#define COLOR_ORANGE 0xF97804FF // Orange

new Kills[MAX_PLAYERS];

public OnFilterScriptInit()
{
    printf("-------------------------------------");
    printf("------------Killing Spree------------");
    printf("-----------Created by rooT.----------");
    printf("--------FS Cargado con Exito!--------");
    printf("-------------------------------------");
    return 1;
}

public OnPlayerConnect(playerid)
{
    Kills[playerid] = 0;
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new string1[128 + MAX_PLAYER_NAME], string2[128 + MAX_PLAYER_NAME], string3[128 + MAX_PLAYER_NAME], string4[128 + MAX_PLAYER_NAME];
    new kname[MAX_PLAYER_NAME];
    GetPlayerName(killerid, kname, sizeof(kname));

    Kills[killerid] ++;
    Kills[playerid] = 0;

    format(string1, sizeof(string1), "%s: KILLING SPREE!. 3 Asesinatos - 0 Muertes", kname);
    format(string2, sizeof(string2), "%s: UNSTOPPABLE!. 6 Asesinatos - 0 Muertes", kname);
    format(string3, sizeof(string3), "%s: LIKE A PRO!. 9 Asesinatos - 0 Muertes", kname);
    format(string4, sizeof(string4), "%s: THE FUCKING BOSS!. 15 Asesinatos - 0 Muertes", kname);

    if(Kills[killerid] == 3) return SendClientMessageToAll(COLOR_GREEN, string1);
    else if(Kills[killerid] == 6) return SendClientMessageToAll(COLOR_YELLOW, string2);
    else if(Kills[killerid] == 9) return SendClientMessageToAll(COLOR_ORANGE, string3);
    else if(Kills[killerid] == 15) return SendClientMessageToAll(COLOR_RED, string4);
    return 1;
}
Por default, los mensajes se enviaran cuando el jugador mate 3, 6, 9 y 15 jugadores sin morir.
Para cambiarlo, simplemente editen

pawn Код:
if(Kills[killerid] == 3) return SendClientMessageToAll(COLOR_GREEN, string1);//Cambien el 3 por X Numero
    else if(Kills[killerid] == 6) return SendClientMessageToAll(COLOR_YELLOW, string2);//Cambien el 6 por X Numero
    else if(Kills[killerid] == 9) return SendClientMessageToAll(COLOR_ORANGE, string3);//Cambien el 9 por X Numero
    else if(Kills[killerid] == 15) return SendClientMessageToAll(COLOR_RED, string4);//Cambien el 15 por X Numero
Y Listo! (Obviamente, esto se puede usar como FS o se lo puede agregar al GM)

Si tienen algun problema o encuentran algun bug, diganme!
Reply
#2

Se ve bueno pero no me gusta mucho en ingles U_U. tendre que modificarlo por algo mejor, oie eso trae incluido por ejemplo
"[ASP]Theking Esta Dominando con 4 Matanzas"
Si viene incluido con eso me lo descargo rapidito :B
Reply
#3

Que? No entendi que es lo que quieres hacer.
Reply
#4

Quiere decir que si cuando lleva matanza manda el mensaje diciendo

Quote:

"%S esta dominando 4 matanzas!

Reply
#5

No, los mensajes que salen son:
"%s: KILLING SPREE!. 3 Asesinatos - 0 Muertes"
"%s: UNSTOPPABLE!. 6 Asesinatos - 0 Muertes"
%s: LIKE A PRO!. 9 Asesinatos - 0 Muertes"
%s: THE FUCKING BOSS!. 15 Asesinatos - 0 Muertes"

Esos son los mensajes actuales.
Reply
#6

No quiero ser rudo, pero usaste cuatro strings con 152 celdas de espacio solo para enviar un mensaje del cual solo cambia el nombre. Primero, una linea en SA-MP puede tener como mбximo 127 carбcteres, por eso se usa el bendito 128; para que sumarle MAX_PLAYER_NAME (que son 24 celdas mбs) a algo que obviamente no va a llegar a ese extremo. Segundo, no has creado una sino 4 de estas gastando espacio innecesario. Tercero, cuatro formats, el servidor tiene que crear cuatro mensajes de los cuales solamente uno serб utilizado.

Mira esto:
pawn Код:
#define FILTERSCRIPT
#include <a_samp>

#define COLOR_RED 0xFF0000AA     // Red
#define COLOR_YELLOW 0xFFFF00AA // Yellow
#define COLOR_GREEN 0x66CC99AA // Green
#define COLOR_ORANGE 0xF97804FF // Orange

new Kills[MAX_PLAYERS];

public OnFilterScriptInit()
{
    printf("-------------------------------------");
    printf("------------Killing Spree------------");
    printf("-----------Created by rooT.----------");
    printf("--------FS Cargado con Exito!--------");
    printf("-------------------------------------");
    return 1;
}

public OnPlayerConnect(playerid)
{
    Kills[playerid] = 0;
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new
        name[24],
        string[71];
       
    Kills[playerid] = 0;
    if(killerid != INVALID_PLAYER_ID)
    {
        Kills[killerid] ++;
        GetPlayerName(killerid, name, sizeof(name));
        switch(Kills[killerid])
        {
            case 3:
            {
                format(string, sizeof(string), "%s: KILLING SPREE!. 3 Asesinatos - 0 Muertes", name);
                SendClientMessageToAll(COLOR_GREEN, string);
            }
            case 6:
            {
                format(string, sizeof(string), "%s: UNSTOPPABLE!. 6 Asesinatos - 0 Muertes", name);
                SendClientMessageToAll(COLOR_YELLOW, string);
            }
            case 9:
            {
                format(string, sizeof(string), "%s: LIKE A PRO!. 9 Asesinatos - 0 Muertes", name);
                SendClientMessageToAll(COLOR_ORANGE, string);
            }
            case 15:
            {
                format(string, sizeof(string), "%s: THE FUCKING BOSS!. 15 Asesinatos - 0 Muertes", name);
                SendClientMessageToAll(COLOR_RED, string);
            }
        }
    }
    return 1;
}
Reply
#7

Bueno, no sabia que se podia hacer eso.
Gracias por la informacion!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)