Vip bug

Useless Stuffs, Spam ... etc
Post Reply
kair
Member
Member
Posts: 25
Joined: 7 years ago
Contact:

Vip bug

#1

Post by kair » 6 years ago

Is this solvable ?, im experiencing the same problem.

https://forums.alliedmods.net/showthread.php?t=169680

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <hamsandwich>
#include <time>
 
#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], TimeAdded[50]
           
            get_user_name(id, szName, charsmax(szName))
            get_time_length(id, timep + g_TotalTime[id], timeunit_seconds, szTotalTime, charsmax(szTotalTime))
           
            format_time(TimeAdded, charsmax(TimeAdded), "(%Y/%m/%d)-(%H:%M:%S)")
           
            TrieSetCell( g_tSteamIDs , szSteamID , 1 );
           
            ChatColor(id, "^4[PT] ^1%L", id, "TIME_ONLINE", szTotalTime)
            format(szWriteData, charsmax(szWriteData), "^"%s^"  ^"^"    ^"to^"   ^"ce^" // %s - Date Added: %s", szSteamID, szName, TimeAdded)
            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();
            }
        }
    }
}


Problem:
Reply With Quote #1
I'm having a weird problem, random player steam id-s are writen in slot.ini
after map change
Any idea what's causing this?
Cvar is set to 50 hours.

Maybe solution: I dont understand this though.
I would do it this way:
- on client_authorized load time played from sql database, if time played > 50h set_user_flags(id, get_user_flags(id)|ADMIN_RESERVATION)
- on client_disconnect save current time played in sql database
note: I dont have an sql database

johnnysins2000
Veteran Member
Veteran Member
Paraguay
Posts: 678
Joined: 7 years ago
Location: Paraguay
Contact:

#2

Post by johnnysins2000 » 6 years ago

public fwHamPlayerSpawnPost(id)

Something is wrong In this Code
I will check later

And that solution Quote u gave is that the Person Is saying to add Sql system instead Of Nvault to save and load time
Last edited by johnnysins2000 6 years ago, edited 1 time in total.
Nobody Is That Busy If They Make Time :roll:

johnnysins2000
Veteran Member
Veteran Member
Paraguay
Posts: 678
Joined: 7 years ago
Location: Paraguay
Contact:

#3

Post by johnnysins2000 » 6 years ago

format(szWriteData, charsmax(szWriteData), "^"%s^" ^"^" ^"to^" ^"ce^??

Why to flags?

Slot reservation flag is b flag
Nobody Is That Busy If They Make Time :roll:

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#4

Post by Raheem » 6 years ago

Simply your problem related to our Mod? related to any plugin made by our Developing Team for the Mod?
  • Answer seems to be NO, SO....
Best answer is to ask the person who write the plugin. And on our site we only support our mod only. So i have no more choices else trash this topic.

If someone have problem with any general plugin he can ask it's author better than posting here.
He who fails to plan is planning to fail

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 5 guests