[REQ] To fix a plugin or make new one..
I need someone to make me a new plugin or modify the current one.
I need this plugin modifided so it doesn't have bugs or anything, it needs to work perfect because now it has bugs:
PHP Code:
#include <amxmodx> #include <amxmisc> #include <nvault> #include <hamsandwich> #include <time_length>
#define PRUNE_TIME 2592000
new Trie:g_tSteamIDs; new g_SlotFile[64], g_TotalTime[33]; new cvar_timer, g_cached_time; new g_iMsgID_SayText, g_Vault;
public plugin_init() { register_plugin("Slot Time", "1.0","Alka/OvidiuS"); register_cvar("slottime" , "1.0" , (FCVAR_SERVER|FCVAR_SPONLY)) register_dictionary("timer.txt") register_event("HLTV", "NewRound", "a", "1=0", "2=0"); RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1) register_clcmd("say /online", "TimeOnline") cvar_timer = register_cvar("amx_slot_time", "50") g_iMsgID_SayText = get_user_msgid( "SayText" ); new configsDir[64] get_configsdir(configsDir, charsmax(configsDir)) formatex(g_SlotFile, charsmax(g_SlotFile), "%s/slot.ini", configsDir) g_tSteamIDs = TrieCreate(); if( !file_exists(g_SlotFile) ) { new f = fopen(g_SlotFile, "wt" ); if( f ) { fclose( f ); } return; } new f = fopen( g_SlotFile, "rt" ); if( !f ) return; while( !feof( f ) ) { new szData[200]; fgets( f , szData , charsmax( szData ) ); if( !szData[0] || szData[0] == ';' || szData[0] == '/' && szData[1] == '/' ) continue; new szParsedName[33], szParsedID[35]; parse(szData, szParsedID, charsmax(szParsedID), szParsedName, charsmax(szParsedName))
TrieSetCell( g_tSteamIDs , szParsedID , 1 ); } fclose( f ); }
public plugin_cfg() { g_Vault = nvault_open("Time_played") if ( g_Vault == INVALID_HANDLE ) set_fail_state( "Error opening nVault" ); nvault_prune(g_Vault, 0, get_systime() - PRUNE_TIME); }
public TimeOnline(id) { new timep, szTotalTime[128]; timep = get_user_time(id, 1); get_time_length(id, timep+g_TotalTime[id], timeunit_seconds, szTotalTime, charsmax(szTotalTime)); set_hudmessage(0, 255, 0, 0.34, 0.50, 0, 6.0, 4.0, 0.1, 0.2, -1); show_hudmessage(id, "[PT] %L", id, "TIME_TOTAL_HUD", szTotalTime); ChatColor(id, "^4[PT] ^1%L", id, "TIME_TOTAL_HUD", szTotalTime) } public fwHamPlayerSpawnPost(id) { if(!is_user_alive(id) || is_user_admin(id)) return PLUGIN_HANDLED; new timep; timep = get_user_time(id, 1); if(timep+g_TotalTime[id] >= g_cached_time) { new szSteamID[ 35 ]; get_user_authid( id , szSteamID , charsmax( szSteamID ) ); if(!TrieKeyExists( g_tSteamIDs , szSteamID )) { new szWriteData[200], szName[33], szTotalTime[128]; get_user_name(id, szName, charsmax(szName)) get_time_length(id, timep+g_TotalTime[id], timeunit_seconds, szTotalTime, charsmax(szTotalTime)); TrieSetCell( g_tSteamIDs , szSteamID , 1 ); ChatColor(id, "^4[PT] ^1%L", id, "TIME_ONLINE", szTotalTime) format(szWriteData, charsmax(szWriteData), "^"%s^" ^"^" ^"b^" ^"ce^" // %s", szSteamID, szName) write_file(g_SlotFile, szWriteData) server_cmd("amx_reloadadmins") } } return PLUGIN_CONTINUE; }
public NewRound() g_cached_time = get_pcvar_num(cvar_timer)*60*60
public client_disconnect(id) { g_TotalTime[id] = g_TotalTime[id] + get_user_time(id); SaveTime(id, g_TotalTime[id]); }
public client_putinserver(id) g_TotalTime[id] = LoadTime(id);
public LoadTime( id ) { new szSteamID[35]; new vaultkey[128], vaultdata[128]; get_user_authid(id, szSteamID, charsmax( szSteamID )); formatex(vaultkey, charsmax(vaultkey), "TIMEPLAYED%s", szSteamID); nvault_get(g_Vault, vaultkey, vaultdata, charsmax(vaultdata)); return str_to_num(vaultdata); }
public SaveTime(id,PlayedTime) { new szSteamID[35]; new vaultkey[128], vaultdata[128]; formatex(vaultdata, charsmax(vaultdata), "%d", PlayedTime); get_user_authid(id, szSteamID, charsmax( szSteamID )); formatex(vaultkey, charsmax(vaultkey), "TIMEPLAYED%s", szSteamID); nvault_set(g_Vault, vaultkey, vaultdata); }
public plugin_end() { nvault_close(g_Vault); TrieDestroy(g_tSteamIDs) }
stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!t", "^3") // Team Color if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, g_iMsgID_SayText, _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } }
If someone could fix it or make new one i would be very thankfull +
|