Deathrun Stats

Technická podpora k herním serverům Counter-Strike 1.6
Message
Autor
Kubrica
Příspěvky: 34
Registrován: 13 dub 2013, 13:22
Reputation: 0

Deathrun Stats

#1 Příspěvekod Kubrica » 05 zář 2013, 15:33

Server: 109.74.146.19:27224


Ahojte potreboval by som poradit ako spojazdniť tento plugin http://amxx.pl/topic/47620-na-deathruna-staty-i-rank/

Spoiler: zobrazit

Kód: Vybrat vše

#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.61"
#define AUTHOR "R3X"

new gszChatPrefix[32];
new gszTop15Redirect[128];

new gszMotd[1024];

new gszMapname[64];
new gMid


#pragma unused giGames
new 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/db.inl"
#include "drstats/sqlite.inl"
#include "drstats/mysql.inl"

#include "drstats/finish.inl"
#include "drstats/stats.inl"

public plugin_init() {
state mysql;

register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("deathrun_stats.txt");

register_cvar("amx_drstats_host", "localhost");
register_cvar("amx_drstats_user", "root");
register_cvar("amx_drstats_pass", "root");
register_cvar("amx_drstats_db", "drstats");

gcvarSave = register_cvar("amx_drstats_save", "2");
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(){
DB_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);
}

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


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


nechcem to robiť cez web da sa to nejako urobiť či musím to robiť cez web?? ak musím tak prosím ako čo kde mám zapisať

Uživatelský avatar
Qefik
Příspěvky: 5714
Registrován: 26 pro 2009, 11:26
Reputation: 0
Kontaktovat uživatele:

Re: Deathrun Stats

#2 Příspěvekod Qefik » 05 zář 2013, 16:43

CO ti konkrétně na tom pluginu nejde?
Rozdávat rady je zbytečné. Moudrý si poradí sám a hlupák stejně neposlechne.
Mark Twain

Kubrica
Příspěvky: 34
Registrován: 13 dub 2013, 13:22
Reputation: 0

Re: Deathrun Stats

#3 Příspěvekod Kubrica » 05 zář 2013, 17:06

1. Neviem ako to mam nastaviť preto som tu dal do spolilerSAM subor
2. Nefunguje mi to ked dam vypis pluginov tak je tam error

Tu je vypis z cons...
Spoiler: zobrazit
[ 1] AmxBans Admin Base 1.76 AMXX Dev Team admin_amxbans.a running
[ 2] AMXBans 5.0 YoMama/Lux & lan amxbans.amxx running
[ 3] Admin Commands 1.8.2 AMXX Dev Team admincmd.amxx running
[ 4] Admin Help 1.8.2 AMXX Dev Team adminhelp.amxx running
[ 5] Slots Reservation 1.8.2 AMXX Dev Team adminslots.amxx running
[ 6] Multi-Lingual System 1.8.2 AMXX Dev Team multilingual.am running
[ 7] Menus Front-End 1.8.2 AMXX Dev Team menufront.amxx running
[ 8] Commands Menu 1.8.2 AMXX Dev Team cmdmenu.amxx running
[ 9] Players Menu 1.8.2 AMXX Dev Team plmenu.amxx running
[ 10] Maps Menu 1.8.2 AMXX Dev Team mapsmenu.amxx running
[ 11] Plugin Menu 1.8.2 AMXX Dev Team pluginmenu.amxx running
[ 12] Admin Chat 1.8.2 AMXX Dev Team adminchat.amxx running
[ 13] Anti Flood 1.8.2 AMXX Dev Team antiflood.amxx running
[ 14] Scrolling Message 1.8.2 AMXX Dev Team scrollmsg.amxx running
[ 15] Info. Messages 1.8.2 AMXX Dev Team imessage.amxx running
[ 16] Admin Votes 1.8.2 AMXX Dev Team adminvote.amxx running
[ 17] TimeLeft 1.8.2 AMXX Dev Team timeleft.amxx running
[ 18] Pause Plugins 1.8.2 AMXX Dev Team pausecfg.amxx running
[ 19] Stats Configuration 1.8.2 AMXX Dev Team statscfg.amxx running
[ 20] Restrict Weapons 1.8.2 AMXX Dev Team restmenu.amxx running
[ 21] StatsX 1.8.2 AMXX Dev Team statsx.amxx running
[ 22] CS Misc. Stats 1.8.2 AMXX Dev Team miscstats.amxx running
[ 23] CS Stats Logging 1.8.2 AMXX Dev Team stats_logging.a running
[ 24] Admin Spectator ESP 1.2j KoST admin_spec_esp. running
[ 25] DeagsMapManager 3.23 Deags/AMXX Commu deagsmapmanager running
[ 26] Map Generator 1.1 $uicid3 map_generator.a running
[ 27] High Ping Kicker 1.2.0 DynAstY hpk.amxx running
[ 28] DRM: trigger_hurt fix 1.3 coderiz / xPaw DRM_trigger_hur running
[ 29] rotate_fix_EN 1.2 NL)Ramon(NL linux_func_rota running
[ 30] Reset Buttons 1.2 xPaw ResetButtons.am running
[ 31] Automatic Unstuck 1.5 NL)Ramon(NL stuck.amxx running
[ 32] Deathrun Maps Fixer 1.7 xPaw DeathrunMapsFix running
[ 33] Team Join Management 0.3 Exolent team_join.amxx running
[ 34] VIP score 1.0 GamerX vipstats.amxx running
[ 35] VIP Eng Version 2.05 Dunno tag_chat.amxx running
[ 36] Reset Score 1.0 Silenttt prikaz(_rs).amx running
[ 37] handle_say 1.0 Pur3 handlesay.amxx running
[ 38] Reloadadmins 1.0 Kotel reload_admins.a running
[ 39] Show IP 0.2 SAMURAI showip.amxx running
[ 40] GHW Auto Message Displ 2.1 GHW_Chronic ghw_message_dis running
[ 41] Deathrun Manager Classic xPaw DeathrunMod.amx running
[ 42] Deathrun Shop 2.1 tuty Deathrun_Shop.a running
[ 43] Deathrun Stats 0.6 R3X deathrun_stats. error
[ 44] 17b Res utf BOM remove 0.0.1 ConnorMcLeod fix.amxx running
[ 45] ATAC 3.0.0 ATAC Team atac.amxx running
[ 46] Slap 1.0 ATAC Team atac_slap.amxx running
[ 47] Slap2One 1.0 ATAC Team atac_slap2one.a running
[ 48] Slay 1.0 ATAC Team atac_slay.amxx running
[ 49] Spawn Slay 1.0 ATAC Team atac_spawnslay. running
[ 50] Jail 1.0 ATAC Team atac_jail.amxx stopped
[ 51] Chicken 1.0 ATAC Team atac_chicken.am stopped
[ 52] Bury 1.0 ATAC Team atac_bury.amxx running
[ 53] Glow 1.0 ATAC Team atac_glow.amxx running
[ 54] Timebomb 1.0 ATAC Team atac_bomb.amxx running
[ 55] Blind 1.0 ATAC Team atac_blind.amxx running
[ 56] Rocket 1.0 ATAC Team atac_rocket.amx running
[ 57] Drop 1.0 ATAC Team atac_drop.amxx running
[ 58] Fire 1.0 ATAC Team atac_fire.amxx running
[ 59] Drug 1.0 ATAC Team atac_drug.amxx running
[ 60] Bad Aim 1.0 ATAC Team atac_badaim.amx running
[ 61] Hud Messages 1.0 ATAC Team atac_hudmsg.amx running
[ 62] Team Attack 1.0 ATAC Team atac_ta.amxx running
[ 63] ATAC Commands 1.0 ATAC Team atac_cmds.amxx running
[ 64] ATAC AMXBans 1.0 ATAC Team atac_amxbans.am running
( 43) Error: Cant connect to database

Uživatelský avatar
Qefik
Příspěvky: 5714
Registrován: 26 pro 2009, 11:26
Reputation: 0
Kontaktovat uživatele:

Re: Deathrun Stats

#4 Příspěvekod Qefik » 05 zář 2013, 20:42

musíš doinstalovat i webovou část. Polsky neumím, ale co jsem to tak louskal.
Rozdávat rady je zbytečné. Moudrý si poradí sám a hlupák stejně neposlechne.
Mark Twain

Kubrica
Příspěvky: 34
Registrován: 13 dub 2013, 13:22
Reputation: 0

Re: Deathrun Stats

#5 Příspěvekod Kubrica » 05 zář 2013, 21:52

A nevieľ nahodou ako to nainštalujem na web???

Uživatelský avatar
Qefik
Příspěvky: 5714
Registrován: 26 pro 2009, 11:26
Reputation: 0
Kontaktovat uživatele:

Re: Deathrun Stats

#6 Příspěvekod Qefik » 06 zář 2013, 07:30

Stáhneš daný zip, nahodíš na web podle instrukcí a napojíš na DB. U všeho to víceméně funguje stejně.
Rozdávat rady je zbytečné. Moudrý si poradí sám a hlupák stejně neposlechne.
Mark Twain


Zpět na „Counter-Strike 1.6“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů