Page 1 of 2

mix statistika

Posted: 2012 Nov 19 01:52
by xDede
Turiu beda, nerodo kai nusauni is ak47, m4a1, awp, ir priskaicuoja kad tipo su knife nudejo kai nusauni
is betkokio ginklo, bei priskaicuoja mirti ir fraga kai nusauna savas arba nusauni sava.

Code: Select all

#include <amxmodx>#include <amxmisc>#include <fvault>  #define MAX_PLAYERS 11  enum _:Stats{    GS_KILL,    GS_DEATH,    GS_KNIFE,    GS_AK47,    GS_M4A1,    GS_AWP,    GS_MINIACE,    GS_ACE};  new const StatsName[Stats][] ={    "Kill",    "Death",    "Knife",    "Ak47",    "M4a1",    "Awp",    "MiniAce",    "Ace"}; new rez_live new gs_stats[MAX_PLAYERS + 1][Stats];new gs_kills[MAX_PLAYERS + 1];  new gs_vault[] = "mix_stats";  public plugin_init(){    register_plugin("mix stats", "1.0", "xDede");        register_clcmd("say", "HandleSay");    rez_live = register_cvar("amx_rez", "0")    register_event("DeathMsg", "EventDeathMsg", "a");    register_event("ResetHUD", "EventResetHUD", "b");}  public client_putinserver(client){    gs_kills[client] = 0;        Load(client);}  public client_disconnect(client){    Save(client);}  public EventDeathMsg(){    if(!get_pcvar_num(rez_live)) return    new attacker = read_data(1);    new victim = read_data(2);    new weapon[20];        read_data(4, weapon, charsmax(weapon));        gs_stats[victim][GS_DEATH]++;        if (victim == attacker)            gs_stats[attacker][GS_KILL]--;    else    {        gs_kills[attacker]++;        gs_stats[attacker][GS_KILL]++;                if (containi(weapon, "knife"))    gs_stats[attacker][GS_KNIFE]++;        else if (containi(weapon, "ak47"))    gs_stats[attacker][GS_AK47]++;        else if (containi(weapon, "m4a1"))    gs_stats[attacker][GS_M4A1]++;        else if (containi(weapon, "awp"))    gs_stats[attacker][GS_AWP]++;                if (gs_kills[attacker] == 4)        gs_stats[attacker][GS_MINIACE]++;        else if (gs_kills[attacker] == 5)    gs_stats[attacker][GS_ACE]++;    }}    public EventResetHUD(){    for (new i = 1; i <= get_maxplayers(); i++)    {        if (!is_user_connected(i))            continue;                    gs_kills[i] = 0;    }}  public HandleSay(client){    new message[192], arg[32], arg2[32];        read_argv(1, message, charsmax(message));      parse(message, arg, charsmax(arg), arg2, charsmax(arg2));        if (equal(arg, "!stats") || equal(arg, "/stats"))    {        new player = strlen(arg2) > 1 ? cmd_target(client, arg2) : client;                    if (is_user_connected(player))        {            new message1[64], message2[64];            new Auth[35];                            get_user_authid(player, Auth, charsmax(Auth));                            formatex(message1, charsmax(message1), "Stats of (%s) ", Auth);                            for (new i; i < GS_KNIFE; i++)            {                formatex(message1, charsmax(message1), "%s%s: %d", message1, StatsName[i], gs_stats[player][i]);                                    if (i != GS_KNIFE - 1)                    add(message1, charsmax(message1), " | ");            }                            for(new i = GS_KNIFE; i < Stats; i++)            {                formatex(message2, charsmax(message2), "%s%s: %d", message2, StatsName[i], gs_stats[player][i]);                                    if (i != Stats - 1)                    add(message2, charsmax(message2), " | ");            }                            ColorChat(client, message1);            ColorChat(client, message2);        }    }}  Load(client){    new key[35], data[128], stats[Stats][32];        get_user_authid(client, key, charsmax(key));        fvault_get_data(gs_vault, key, data, charsmax(data));        parse(data,        stats[GS_KILL], charsmax(stats[]),        stats[GS_DEATH], charsmax(stats[]),        stats[GS_KNIFE], charsmax(stats[]),        stats[GS_AK47], charsmax(stats[]),        stats[GS_M4A1], charsmax(stats[]),        stats[GS_AWP], charsmax(stats[]),        stats[GS_MINIACE], charsmax(stats[]),        stats[GS_ACE], charsmax(stats[])        );        for (new i; i < Stats; i++)    {        gs_stats[client][i] = str_to_num(stats[i]);    }}  Save(client){    new key[35], data[128];        get_user_authid(client, key, charsmax(key));        for (new i; i < Stats; i++)        formatex(data, charsmax(data), "%s %d", data, gs_stats[client][i]);        fvault_set_data(gs_vault, key, data);}  stock ColorChat(const client, const string[], { Float, Sql, Resul,_ }:... ){    new msg[191], players[32], count = 1;        static len; len = formatex(msg, charsmax(msg), "^4[STATS]^1 ");    vformat(msg[len], charsmax(msg) - len, string, 3);        if(client)    players[0] = client;    else        get_players(players,count,"ch");        for (new i = 0; i < count; i++)    {        if(is_user_connected( players[i]))        {            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);            write_byte(players[i]);            write_string(msg);            message_end();        }    }}  

Re: mix statistika

Posted: 2012 Nov 19 02:28
by hleV
Tu tikrini ar containi() reikšmė nelygi 0. Jei tekstas nerastas, containi() grąžina -1, o ne 0, tad turėtum pridėt != -1. O šiaip tai su equal() geriau būtų.

Re: mix statistika

Posted: 2012 Nov 19 03:10
by xDede
As nieko nesupratau, nes koda radau internete :DDDD

zales esu ant tokio kodo..

Re: mix statistika

Posted: 2012 Nov 19 04:28
by hleV
Pakeisk visus containi su equal.
Ir skaičių šalia MAX_PLAYERS iš 11 į 32, jei nori, kad nebūtų klaidų, kai serveryje daugiau nei 11 žaidėjų.

Re: mix statistika

Posted: 2012 Dec 21 15:24
by xDede
Sveikas, dar turiu klausima kaip padaryti, kad visi zaidejai galetu matyti adminu
statistika, P.S noriu kad nebutu imuniteto kai ziuri admino statistika.

Re: mix statistika

Posted: 2012 Dec 21 16:23
by MPD

Code: Select all

register_plugin("mix stats", "1.0", "xDede");
Jei radai kodą internete, parašyk normalų autorių.

Re: mix statistika

Posted: 2012 Dec 21 16:36
by xDede

Code: Select all

register_plugin( "Gather Stats", "1.0", "ImNativus" );
As visada pakeiciu ta vieta, kad man butu patogiau, ir beto koks dydelis
skirtumas vistiek, niekas per daug nemato.

Jai kazkas, tures nusiskundimu galiu atkeisti autoriu ir pns.

Re: mix statistika

Posted: 2012 Dec 21 20:42
by psychical
xDede wrote:

Code: Select all

register_plugin( "Gather Stats", "1.0", "ImNativus" );
As visada pakeiciu ta vieta, kad man butu patogiau, ir beto koks dydelis
skirtumas vistiek, niekas per daug nemato.

Jai kazkas, tures nusiskundimu galiu atkeisti autoriu ir pns.
Mes matom ir to užtenka, jei autorium pasidarei save, reiškia nori pasirodyt, kad pluginas tavo, kiekvienas internete rastas plugin'as nėra tavo, tai yra pasisavinimas svetimų darbų.

Re: mix statistika

Posted: 2012 Dec 21 20:47
by Tetusis
psychical wrote:
xDede wrote:

Code: Select all

register_plugin( "Gather Stats", "1.0", "ImNativus" );
As visada pakeiciu ta vieta, kad man butu patogiau, ir beto koks dydelis
skirtumas vistiek, niekas per daug nemato.

Jai kazkas, tures nusiskundimu galiu atkeisti autoriu ir pns.
Mes matom ir to užtenka, jei autorium pasidarei save, reiškia nori pasirodyt, kad pluginas tavo, kiekvienas internete rastas plugin'as nėra tavo, tai yra pasisavinimas svetimų darbų.
uzbanink si veikeja, slowhack'ina, klaidina zmones.

Re: mix statistika

Posted: 2012 Dec 21 20:55
by laimiukas3
Tetusis wrote:
psychical wrote:
xDede wrote:

Code: Select all

register_plugin( "Gather Stats", "1.0", "ImNativus" );
As visada pakeiciu ta vieta, kad man butu patogiau, ir beto koks dydelis
skirtumas vistiek, niekas per daug nemato.

Jai kazkas, tures nusiskundimu galiu atkeisti autoriu ir pns.
Mes matom ir to užtenka, jei autorium pasidarei save, reiškia nori pasirodyt, kad pluginas tavo, kiekvienas internete rastas plugin'as nėra tavo, tai yra pasisavinimas svetimų darbų.
uzbanink si veikeja, slowhack'ina, klaidina zmones.
va va blt