mix statistika

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
User avatar
xDede
Jau po truputį tampa savu
Posts: 113
Joined: 2011 Jun 01 19:30
Skype: cicinas2
Location: Telsiai
Contact:

mix statistika

Post 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();        }    }}  

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: mix statistika

Post 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ų.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
xDede
Jau po truputį tampa savu
Posts: 113
Joined: 2011 Jun 01 19:30
Skype: cicinas2
Location: Telsiai
Contact:

Re: mix statistika

Post by xDede »

As nieko nesupratau, nes koda radau internete :DDDD

zales esu ant tokio kodo..

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: mix statistika

Post 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ų.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
xDede
Jau po truputį tampa savu
Posts: 113
Joined: 2011 Jun 01 19:30
Skype: cicinas2
Location: Telsiai
Contact:

Re: mix statistika

Post 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.

User avatar
MPD
Gana aktyvus vartotojas
Posts: 309
Joined: 2011 Jul 08 07:24
Location: Kaunas

Re: mix statistika

Post by MPD »

Code: Select all

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

User avatar
xDede
Jau po truputį tampa savu
Posts: 113
Joined: 2011 Jun 01 19:30
Skype: cicinas2
Location: Telsiai
Contact:

Re: mix statistika

Post 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.

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: mix statistika

Post 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ų.

Tetusis

Re: mix statistika

Post 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.

User avatar
laimiukas3
Moderatorius
Posts: 4569
Joined: 2012 Aug 03 01:12
Skype: laimiukas3
Location: Vilnius
Contact:

Re: mix statistika

Post 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
Image
Image
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests