|
Junior Member
|

06-30-2012
, 02:43
Need Help slottimer or a flag of your choice
|
#1
|
I found this admintimer plugin, but does not work if you can help as little time there is no author on this plugin.
This plugin should give admins after some period of time player, but he gives odma as soon as they enter the server.
Commands:
/online- shows the player how much time is spent on the server
Cvars:
amx_admin_time
takes time to get a player admins (a value of hours); default: 350
and if possible add the time spent in the spec does not measure
amx_admin_flagsdefault: bcdefghij
if it is possible to add a cvar for the flags to give after a period of time(b or bcd)
amx_admin_daydefault: 30 day
if it is possible to add a cvar that after a certain period of time off admins
Installation:
Compile and put it in your plugins folder.
File timer.txt in data/lang folder.
Admin_timer.amxx line type in the file plugins.ini
Create file Admin.ini in configs folder.
Important:
Be sure to replace admin.amxx with those from zip file.
PHP Code:
// Plugin SLOT TIMER(Ovidius) - Editovan By : Acme - Admin Timer Kada igrac sakupi 350 sati daje mu admina//
//Napominjem da se cvarom amx_admin_time "default 350" stavlja koliko treba igrac provesti vremena da dobije admina//
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <hamsandwich>
#include <time>
#define PRUNE_TIME 2592000
new Trie:g_tSteamIDs;
new g_AdminFile[64], g_TotalTime[33];
new cvar_timer, g_cached_time;
new g_iMsgID_SayText, g_Vault;
public plugin_init()
{
register_plugin("Admin Timer", "1.0","Ovidius // Edit : Acme");
register_cvar("amx_admin_time" , "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_admin_time", "350")
g_iMsgID_SayText = get_user_msgid( "SayText" );
new configsDir[64]
get_configsdir(configsDir, charsmax(configsDir))
formatex(g_AdminFile, charsmax(g_AdminFile), "%s/admin.ini", configsDir)
g_tSteamIDs = TrieCreate();
if( !file_exists(g_AdminFile) )
{
new f = fopen(g_AdminFile, "wt" );
if( f )
{
fclose( f );
}
return;
}
new f = fopen( g_AdminFile, "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^" ^"abcdefghij^" // %s", szSteamID, szName)
write_file(g_AdminFile, 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();
}
}
}
}
Last edited by no n@me; 06-30-2012 at 02:51.
|
|