Stats DRH

Forumas specialiai skirtas pamokoms kuriant CS 1.6 serverį
Post Reply
Terror
Senbūvis
Posts: 1086
Joined: 2015 Feb 27 19:29
Location: Alytus

Stats DRH

Post by Terror »

Yra tas colorchat.inc bet taspas meta klaida gal kas gali padek ?

o ce Sma gal kazkas su pluginu blogai arba ne tas pas mane colorchat.inc

Code: Select all

#include <amxmodx>#include <amxmisc>#include <fakemeta>#include <cstrike>#include <hamsandwich>#include <sqlx>#include <geoip>#include <colorchat>#include <dhudmessage> #define PLUGIN "Deathrun Stats"#define VERSION "0.5"#define AUTHOR "R3X" new gszChatPrefix[32];new gszTop15Redirect[128]; new gszMotd[1024]; new gszMapname[64];new gMid  #pragma unused giGamesnew giGames; //Poki co nie uzywana zmienna  new gszQuery[512];new Handle:gTuple; new gbAuthorized[33];new giPid[33]; new giPlayedTime[33];new giBestTime[33];new giPlayedGames[33];new giDeaths[33];new gszRecordTime[33][32];new giBestTimeofMap; new Float:gfLastInfo[33];new Float:gfStartRun[33];new giLastTime[33];new bool:gbFinished[33]; new gEntFinish = 0;new bool:gbEntityMoved = false; new gcvarSave, gcvarTimer, gcvarTimerType, gcvarDrawFinish;new gcvarPrintResult;new gcvarRoundTime; new Float:gfEndRoundTime;new giMaxPlayers; new gsprite; getFormatedTime(iTime, szTime[], size){    formatex(szTime, size, "%d:%02d.%03ds", iTime/60000, (iTime/1000)%60, iTime%1000);} #include "drstats/mysql.inl"#include "drstats/finish.inl"#include "drstats/stats.inl" public plugin_init() {    register_plugin(PLUGIN, VERSION, AUTHOR);    register_dictionary("deathrun_stats.txt");        register_cvar("amx_drstats_host", "Host");    register_cvar("amx_drstats_user", "iusername");    register_cvar("amx_drstats_pass", "Password");    register_cvar("amx_drstats_db", "database");        gcvarSave = register_cvar("amx_drstats_save", "1");    gcvarTimer = register_cvar("amx_drstats_timer", "1");    gcvarTimerType = register_cvar("amx_drstats_timer_type", "0");    gcvarDrawFinish = register_cvar("amx_drstats_draw_finish", "1");        gcvarPrintResult = register_cvar("amx_drstats_print_result", "1");    //0-wcale    //1-HUD+konsola    //2-chat        gcvarRoundTime = get_cvar_pointer("mp_roundtime");        register_cvar("amx_drstats_chat_prefix", "[Speedrun]");     register_cvar("amx_drstats_top15_page", "");        register_logevent( "eventRoundEnd",2, "1=Round_End");    register_logevent( "eventRoundStart",2, "1=Round_Start");        register_forward(FM_PlayerPreThink, "fwPreThink", 1);    RegisterHam(Ham_Spawn, "player", "fwSpawn", 1);    register_touch(gszFinish, "player", "fwTouch");    register_touch("player", gszFinish, "fwTouch2");    register_think(gszFinish, "fwThink");        register_clcmd("dr_finish", "cmdFinish", ADMIN_CFG, ": spawn finish round");        register_fullclcmd("rank", "showRank");    register_fullclcmd("top15", "showTop15");        register_fullclcmd("last", "cmdLast");    register_fullclcmd("best", "cmdBest");        gfwCreateFinish = CreateMultiForward("fwFinishCreate", ET_STOP, FP_CELL, FP_ARRAY, FP_CELL);    gfwFinished = CreateMultiForward("fwPlayerFinished", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL);    gfwStarted = CreateMultiForward("fwPlayerStarted", ET_IGNORE, FP_CELL);        giMaxPlayers = get_maxplayers();}public plugin_precache(){    gsprite = precache_model("sprites/white.spr");} public plugin_cfg(){    MySQL_Init();        get_cvar_string("amx_drstats_chat_prefix", gszChatPrefix, charsmax(gszChatPrefix));    get_cvar_string("amx_drstats_top15_page", gszTop15Redirect, charsmax(gszTop15Redirect));} public plugin_natives(){    register_library("DeathrunStats");    register_native("playerFinished", "_playerFinished", 1);}public _playerFinished(id){    fwFinished(id);}public plugin_end(){    if(gbEntityMoved)        saveFinishOrigin();    SQL_FreeHandle(gTuple);}  public client_putinserver(id){    if(is_user_bot(id) || is_user_hltv(id))        return;            loadPlayerId(id);}public client_authorized_db(id, pid){    giPid[id] = pid;    gbAuthorized[id] = true;        giPlayedTime[id] = 0;    giBestTime[id] = 0;    giPlayedGames[id] = 0;    giDeaths[id] = 0;     loadRunnerData(id);}public client_connect(id){    gbAuthorized[id] = false;    giPid[id] = 0;    giLastTime[id] = 0;}  public client_disconnect(id){    saveRunnerData(id);}   loadRunnerData(id){    if(!gbAuthorized[id]) return;        new data[1];    data[0] = id;        formatex(gszQuery, charsmax(gszQuery), "SELECT * FROM `results` WHERE id=%d && mid=%d", giPid[id], gMid);    SQL_ThreadQuery(gTuple, "handleLoadData", gszQuery, data, sizeof(data));}getPlayerDeaths(id){    return giDeaths[id]+get_user_deaths(id);} getPlayedTime(id){    return giPlayedTime[id] + get_user_time(id, 1);} getRunningTime(id){    return floatround( (get_gametime()-gfStartRun[id])*1000, floatround_ceil);} saveRunnerData(id, updateBest = 0){    if(!gbAuthorized[id]) return;        if(updateBest){        giBestTime[id] = updateBest;        get_time("%Y-%m-%d %H:%M:%S", gszRecordTime[id], charsmax(gszRecordTime[]));    }            formatex(gszQuery, charsmax(gszQuery),     "UPDATE `results` SET besttime=%d, games=%d, playedtime=%d, deaths=%d, recorddate='%s' \    WHERE id=%d && mid=%d",        giBestTime[id], giPlayedGames[id], getPlayedTime(id), getPlayerDeaths(id), gszRecordTime[id],        giPid[id], gMid);    SQL_ThreadQuery(gTuple, "handleStandard", gszQuery);}public eventRoundStart(){    new Float:fRoundTime = get_pcvar_float(gcvarRoundTime)*60;    gfEndRoundTime = get_gametime()+fRoundTime;}public eventRoundEnd(){    for(new i=1;i<33;i++)        if(is_user_connected(i))            saveRunnerData(i);} public fwSpawn(id){    if(!is_user_alive(id) || !gbAuthorized[id])        return HAM_IGNORED;            if(!gEntFinish){        client_print(id, print_chat, "%L", id, "FINISH_NOT_EXISTS");        if(get_user_flags(id)&ADMIN_CFG)            client_print(id, print_chat, "%L", id, "BUT_YOU_CAN_SPAWN_IT");    }    gbFinished[id] = false;    gfStartRun[id] = -1.0;        if(cs_get_user_team(id) == CS_TEAM_CT){        gfStartRun[id] = get_gametime();                new iRet;        ExecuteForward(gfwStarted, iRet, id);    }            return HAM_IGNORED;}show_status(id, const szMsg[], any:...){    new szStatus[128];    vformat(szStatus, 127, szMsg, 3);        static msgStatusText=0;    if(!msgStatusText)        msgStatusText = get_user_msgid("StatusText");            message_begin(MSG_ONE_UNRELIABLE, msgStatusText, _, id);    write_byte(0);    write_string(szStatus);    message_end();}Send_RoundTime(id, iTime){    static msgRoundTime=0;    if(!msgRoundTime)        msgRoundTime = get_user_msgid("RoundTime");            message_begin(MSG_ONE_UNRELIABLE, msgRoundTime, _, id);    write_short(iTime);    message_end();}hideTime(id){    if(get_pcvar_num(gcvarTimerType)){        Send_RoundTime(id, floatround(gfEndRoundTime - get_gametime()));    }else{        show_status(id, "");    }}displayTime(id, iTime){    if(get_pcvar_num(gcvarTimerType)){        Send_RoundTime(id, iTime);    }else{        show_status(id, "%L: %d:%02ds", id, "WORD_TIME", iTime/60, iTime%60);    }}public fwPreThink(id){    if(!is_user_alive(id) || gfStartRun[id] <= 0.0)        return FMRES_IGNORED;        new iTimer = get_pcvar_num(gcvarTimer);    if(!iTimer)        return FMRES_IGNORED;            if(iTimer == 2 && !(pev(id, pev_button) & IN_SCORE)){        if(pev(id, pev_oldbuttons) & IN_SCORE)            hideTime(id);        return FMRES_IGNORED;    }     static Float:fNow;            if(!gbFinished[id]){        fNow = get_gametime();                if((fNow-gfLastInfo[id]) <= 0.5) return FMRES_IGNORED;                displayTime(id, getRunningTime(id) / 1000);    }    return FMRES_IGNORED;} public cmdBest(id){    if(!gbAuthorized[id]){        ColorChat(id, GREEN, "%s^x01 %L", gszChatPrefix, id, "NOT_AVAILABLE_NOW");        return PLUGIN_CONTINUE;    }        if(giBestTime[id] == 0)        ColorChat(id, GREEN, "%s^x01 %L", gszChatPrefix, id, "NEVER_REACH_FINISH");    else{        new szTime[32];        getFormatedTime(giBestTime[id], szTime, charsmax(szTime));        ColorChat(id, GREEN, "%s^x01 %L: ^x04 %s", gszChatPrefix, id, "YOUR_BEST_TIME", szTime);    }    return PLUGIN_CONTINUE;} public cmdLast(id){    if(!gbAuthorized[id]){        ColorChat(id, GREEN, "%s^x01 %L", gszChatPrefix, id, "NOT_AVAILABLE_NOW");        return PLUGIN_CONTINUE;    }        if(giLastTime[id] == 0)        ColorChat(id, GREEN, "%s^x01 %L", gszChatPrefix, id, "NEVER_REACH_FINISH");    else{        new szTime[32];        getFormatedTime(giLastTime[id], szTime, charsmax(szTime));        ColorChat(id, GREEN, "%s^x01 %L: ^x04 %s", gszChatPrefix, szTime, id, "YOUR_LAST_TIME", szTime);    }    return PLUGIN_CONTINUE;} printInfo(id, const szInfo[], ...){    new printResult = get_pcvar_num(gcvarPrintResult);    if(printResult == 0) return;        new szMsg[64];    vformat(szMsg, charsmax(szMsg), szInfo, 3);        if(printResult == 1){        show_dhudmessage(id, "%s", szMsg);        client_print(id, print_console, "%s", szMsg);    }    else if(printResult == 2){        ColorChat(id, GREEN, "%s^x01 %s", gszChatPrefix, szMsg);    }} public fwFinished(id){    if(!is_user_alive(id))        return;            new bool:record=false;        new iTime = getRunningTime(id);    giLastTime[id] = iTime;    gbFinished[id] = true;        new szTime[32];    getFormatedTime(iTime, szTime, charsmax(szTime));        set_dhudmessage(42, 43, 255, -1.0, 0.6, 1, 6.0, 5.0, 0.0, 0.0);    printInfo(id, "%L: %s", id, "RUNNING_TIME", szTime);        if(giBestTime[id] == 0){        set_dhudmessage(255, 42, 255, -1.0, 0.7, 0, 6.0, 5.0, 0.0, 0.0);        printInfo(id, "%L", id, "RUNNING_FIRST_FINISH");         saveRunnerData(id, iTime);    }    else if(giBestTime[id] > iTime){        getFormatedTime(giBestTime[id]-iTime, szTime, charsmax(szTime));                set_dhudmessage(255, 42, 42, -1.0, 0.7, 0, 6.0, 5.0, 0.0, 0.0);        printInfo(id, "%L: -%s!", id, "RUNNING_OWN_RECORD", szTime);                saveRunnerData(id, iTime);    }else if(giBestTime[id] < iTime){        getFormatedTime(iTime-giBestTime[id], szTime, charsmax(szTime));                set_dhudmessage(120, 120, 120, -1.0, 0.7, 0, 6.0, 5.0, 0.0, 0.0);        printInfo(id, "%L: +%s", id, "RUNNING_OWN_RECORD", szTime);    }else{        set_dhudmessage(42, 255, 42, -1.0, 0.7, 0, 6.0, 5.0, 0.0, 0.0);        printInfo(id, "%L", id, "RUNNING_OWN_RECORD_EQUAL");    }     if(giBestTimeofMap == 0 || giBestTimeofMap>iTime){        giBestTimeofMap = iTime;                new szName[32];        get_user_name(id, szName, 31);        set_dhudmessage(42, 255, 42, -1.0, 0.8, 2, 6.0, 5.0, 0.0, 0.0);                for(new i=1;i<=giMaxPlayers;i++)            if(is_user_connected(i))                printInfo(i, "%L", i, "RUNNING_MAP_RECORD_BREAK", szName);                        record = true;    }    if(giBestTimeofMap != 0 && giBestTimeofMap<iTime){        new szTime[32];        getFormatedTime(iTime-giBestTimeofMap, szTime, 31);        set_dhudmessage(120, 120, 120, -1.0, 0.8, 2, 6.0, 5.0, 0.0, 0.0);                printInfo(id, "%L: +%s", id, "RUNNING_MAP_RECORD", szTime);    }    hideTime(id)        new iRet;    ExecuteForward(gfwFinished, iRet, id, iTime, record);}
Attachments
Untitled.png

User avatar
ArtHa123
Flooderis arba specialistas
Posts: 738
Joined: 2014 Feb 19 18:40

Re: Stats DRH

Post by ArtHa123 »

Bandyk šita colorchat.inc
Attachments
colorchat.inc
(4.87 KiB) Downloaded 703 times
Image

Terror
Senbūvis
Posts: 1086
Joined: 2015 Feb 27 19:29
Location: Alytus

Re: Stats DRH

Post by Terror »

Taspas nerandu tame beda

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

Re: Stats DRH

Post by laimiukas3 »

Attachments
deathrun_stats.amxx
(40.53 KiB) Downloaded 690 times
Image
Image
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests