[FilterScript] Contador de Kills Con sonidos Solo para 0.3d!
#1

Holaa!, Este es mi primer FS que aporto, trata sobre un contador de kills mas los sonidos, multikill monsterkill ect...

Imбgenes...



* El gametext solo aparece en el holy shit.

pawn Код:
#include <a_samp>

    //Kills Nesesarios
    #define MultiKill 3
    #define KillingSpree 5
    #define MonsterKill   8
    #define LudicrousKill 12
    #define HolyShit      20

    #define COLOR_GREEN 0xFF0000AA

    public OnFilterScriptInit()
    {
            print("\n--------------------------------------");
            print(" Kills Counter By DanielSNM, Modificado por Chiino v2");
            print("---(Ideal Para: DM)-------------------\n");
            return 1;
    }

    new kills[MAX_PLAYERS];
    new pname[24];
    new string[256];

    public OnPlayerSpawn(playerid)
    {
            kills[playerid]=0;
            return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
            kills[killerid]++;
            if(kills[killerid]==MultiKill) {
            GetPlayerName(killerid,pname,24);
            format(string,256,">> %s Hizo MultiKill! (+500)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,500);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
            if(IsPlayerConnected(i))
            {
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/MultiKill.mp3");
            }
            }
            }
            if(kills[killerid]==KillingSpree) {
            GetPlayerName(killerid,pname,24);
            format(string,256,">> %s KillingSpree! (+1000)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,1000);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
            if(IsPlayerConnected(i))
            {
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/KillingSpree.mp3");
            }
            }
            }
            if(kills[killerid]==MonsterKill) {
            GetPlayerName(killerid,pname,24);
            format(string,256,">> %s Hizo M-M-M-MonsterKill! (+1500)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,1500);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
            if(IsPlayerConnected(i))
            {
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/Monster%20Kill.mp3");
            }
            }
            }
            if(kills[killerid]==LudicrousKill) {
            GetPlayerName(killerid,pname,24);
            format(string,256,">> %s hizo un L-L-L-LudicrousKill!!! (+2000)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,2000);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
            if(IsPlayerConnected(i))
            {
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/Ludicroskill.mp3");
            }
            }
            }
            if(kills[killerid]==HolyShit) {
            GetPlayerName(killerid,pname,24);
            format(string,256,">> %s Mato a 20 personas seguidas. HOLY SHIT!! (+2500)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            format( string, sizeof(string), "~w~%s mato a 20 personas seguidas ~n~~p~holy shit!!", pname );
            GameTextForAll( string, 5000, 3 );
            GivePlayerMoney(killerid,2500);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
            if(IsPlayerConnected(i))
            {
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/HolyShit.mp3");
            }
            }
            }
            return 1;
    }
Creditos:

DanielSNM: Creador original del FS
Chiino (yo): Modifique un par de cosas y puse los sonidos

gracias!
Reply
#2

Esta re peola :B
Reply
#3

Muy bueno, un poco mas optimizado:

pawn Код:
#include <a_samp>

//Kills Nesesarios
#define MultiKill 3
#define KillingSpree 5
#define MonsterKill   8
#define LudicrousKill 12
#define HolyShit      20

#define COLOR_GREEN 0xFF0000AA

new kills[MAX_PLAYERS], pname[MAX_PLAYER_NAME], string[128];

public OnFilterScriptInit()
{
       print("\n--------------------------------------");
       print(" Kills Counter By DanielSNM, Modificado por Chiino v2");
       print("---(Ideal Para: DM)-------------------\n");
       return 1;
}

public OnPlayerSpawn(playerid)
{
       kills[playerid]=0;
       return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
            GetPlayerName(killerid, pname, sizeof(pname));
            kills[killerid]++;
           
            if(kills[killerid]==MultiKill) {
            format(string,sizeof(string), ">> %s Hizo MultiKill %s.", pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,500);
            for(new i = 0; i < MAX_PLAYERS; i++){
            if(IsPlayerConnected(i)){
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/MultiKill.mp3"); } } }
           
            if(kills[killerid]==KillingSpree) {
            format(string,sizeof(string),">> %s KillingSpree! (+1000)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,1000);
            for(new i = 0; i < MAX_PLAYERS; i++){
            if(IsPlayerConnected(i)){
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/KillingSpree.mp3"); } } }
           
            if(kills[killerid]==MonsterKill) {
            format(string,sizeof(string),">> %s Hizo M-M-M-MonsterKill! (+1500)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,1500);
            for(new i = 0; i < MAX_PLAYERS; i++){
            if(IsPlayerConnected(i)){
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/Monster%20Kill.mp3");} } }
           
            if(kills[killerid]==LudicrousKill) {
            format(string,sizeof(string),">> %s hizo un L-L-L-LudicrousKill!!! (+2000)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            GivePlayerMoney(killerid,2000);
            for(new i = 0; i < MAX_PLAYERS; i++){
            if(IsPlayerConnected(i)){
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/Ludicroskill.mp3"); } } }
           
            if(kills[killerid]==HolyShit) {
            format(string,sizeof(string),">> %s Mato a 20 personas seguidas. HOLY SHIT!! (+2500)",pname);
            SendClientMessageToAll(COLOR_GREEN,string);
            format(string, sizeof(string), "~w~%s mato a 20 personas seguidas ~n~~p~holy shit!!", pname );
            GameTextForAll( string, 5000, 3 );
            GivePlayerMoney(killerid,2500);
            for(new i = 0; i < MAX_PLAYERS; i++){
            if(IsPlayerConnected(i)){
            PlayAudioStreamForPlayer(i, "http://dl.dropbox.com/u/54330022/HolyShit.mp3"); } } }
            return 1;
    }
PD: Esos defines no hacen falta, con tal solo poner el nъmero de muertes y enviar el mensaje, pero si lo quieres asi, dejarlo xD.
Reply
#4

Quote:
Originally Posted by Rodrigo!
Посмотреть сообщение
Lo unico que isistes fue borrar los espacios, no es ninguna optimizacion ya que pawno no toma en cuenta los espacios
Borre pocos espacios.

Primero: string[256]; no es necesario, da lag, consume memoria. asi que lo cambie a string[128]; para menos celdas, menos lag y es el maximo de celdas permitidos en SAMP

GetPlayerName estaba repetido, asi que lo quitй y puse uno solo.

pname[24]; es mejor pname[MAX_PLAYER_NAME];

format(string,256, "" ... es mejor format(string,sizeof(string), "", ... (ademas del 256 que es innecesario.)
Reply
#5

por dios, lo que hace la envidia en estos dias
Reply
#6

Quote:
Originally Posted by jurgen
Посмотреть сообщение
por dios, lo que hace la envidia en estos dias
Hay que pensar que esto es una copia exacta del juego Conter Strike, o vos inventaste los sonidos para el counter strike tambien ?
Reply
#7

quien dijo que era counter strike? aprende a hacer las cosas por ti mismo porque osino no vas a llegar a ningun lado
Reply
#8

Los sonidos son del counter strike, Proba el fs antes de hablar.
Reply
#9

Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
format(string,256, "" ... es mejor format(string,sizeof(string), "", ... (ademas del 256 que es innecesario.)
Te equivocas, lo que estas haciendo ahy es "forzar" al sistema obtener el tamaсo del array cuando tu ya lo sabes y es mejor ponerselo, aun que tu no lo creas pero prueba el format en un loop con 1 millon de repeticiones y notaras la diferencia

He hecho un test y los resultados concuerdan

pawn Код:
#include <a_samp>


public OnFilterScriptInit()
{
    new string[128];

    new tick = GetTickCount();
    for(new i; i<2000000; i++)
    {
    format(string,128,"%s","hola");
    }
    printf("Si format sabe el tamaсo tardo: %d",GetTickCount()-tick);

    new tick2 = GetTickCount();
    for(new i; i<2000000; i++)
    {
    format(string,sizeof(string),"%s","hola");
    }
    printf("Si format no sabe el tamaсo tardo: %d",GetTickCount()-tick2);
    print("------------------------------------------------------------");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}
Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
pname[24]; es mejor pname[MAX_PLAYER_NAME];
Es la misma, MAX_PLAYER_NAME esta definido como 24, eso se utiliza en casos de que el tamaсo del nombre llegara a cambiar en una futura version de samp y no tener que estar cambiando valor x valor
Quote:
Originally Posted by a_samp.inc
pawn Код:
// Limits and internal constants
#define MAX_PLAYER_NAME                         (24)
Reply
#10

Quote:
Originally Posted by [Nikk]
Посмотреть сообщение
Los sonidos son del counter strike, Proba el fs antes de hablar.
los sonidos son del unreal tournament , aparecen en el counter porque hay varios plugins que permiten poner esto, pero los sonidos no son del counter strike.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)