sPe3doN wrote: ↑4 years ago
can we add new things on this plugin ?
Change time count to hours and minutes exp (Played Time for: 10h:26m)
and who reach 50 hours get vip for 15 days
Code: Select all
#include <zombie_escape>
#include <nvault>
#define PLAYED_TIME_TASK 9100
new const g_szVault_Name[] = "Played_Time"
new g_iPlayedTime[33], g_iVaultHandler
public plugin_natives()
{
// Native to return played time in seconds, plugin will save using nVault
register_native("ze_get_played_time", "native_ze_get_played_time", 1)
}
public plugin_init()
{
register_plugin("Played Time", "1.0", "Raheem")
// Commands
register_clcmd("say /played", "ShowPlayedTime")
register_clcmd("say_team /played", "ShowPlayedTime")
}
public ShowPlayedTime(id)
{
ze_colored_print(id, "!tYour played time!y: !g%i !tMinutes!y!", g_iPlayedTime[id]/60)
}
public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Just 1 second delay
set_task(0.5, "DelayLoad", id)
// Save played seconds
set_task(1.0, "IncreaseTimePlayed", id+PLAYED_TIME_TASK, _, _, "b")
}
public DelayLoad(id)
{
// Load his time played
LoadPlayedTime(id)
}
public IncreaseTimePlayed(taskid)
{
new id = taskid - PLAYED_TIME_TASK
g_iPlayedTime[id]++
}
public client_disconnected(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Save played time
SavePlayedTime(id)
remove_task(id+PLAYED_TIME_TASK)
remove_task(id)
g_iPlayedTime[id] = 0
}
public SavePlayedTime(id)
{
new szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
new szData[128]
num_to_str(g_iPlayedTime[id], szData, charsmax(szData))
// Open the Vaults
g_iVaultHandler = nvault_open(g_szVault_Name)
// Saves His Data
nvault_set(g_iVaultHandler, szAuthID, szData)
// Close Vaults
nvault_close(g_iVaultHandler)
}
public LoadPlayedTime(id)
{
new szData[128], szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
// Useless Variable
new iTimestamp, iExists
// Open the Vault
g_iVaultHandler = nvault_open(g_szVault_Name)
iExists = nvault_lookup(g_iVaultHandler, szAuthID, szData, charsmax(szData), iTimestamp)
// Close Vault
nvault_close(g_iVaultHandler)
if (!iExists)
{
g_iPlayedTime[id] = 0
SavePlayedTime(id)
}
else
{
g_iPlayedTime[id] = str_to_num(szData)
}
}
public native_ze_get_played_time(id)
{
if(!is_user_connected(id))
{
log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
return -1;
}
return g_iPlayedTime[id]
}
for the hours and minutes count, i have made 2 codes
but haven't tested it,
and for 15 day vip i don't know how to, you can ask
@Raheem
you can try and choose the working one:
Code: Select all
#include <zombie_escape>
#include <nvault>
#define PLAYED_TIME_TASK 9100
new const g_szVault_Name[] = "Played_Time"
new g_iPlayedTime[33], g_iVaultHandler
public plugin_natives()
{
// Native to return played time in seconds, plugin will save using nVault
register_native("ze_get_played_time", "native_ze_get_played_time", 1)
}
public plugin_init()
{
register_plugin("Played Time", "1.0", "Raheem")
// Commands
register_clcmd("say /played", "ShowPlayedTime")
register_clcmd("say_team /played", "ShowPlayedTime")
}
public ShowPlayedTime(id)
{
if(g_iPlayedTime[id] => 3600)
{
ze_colored_print(id, "!tYour played time!y: !g%i !tHours!y!", g_iPlayedTime[id]/3600)
}
else
{
ze_colored_print(id, "!tYour played time!y: !g%i !tMinutes!y!", g_iPlayedTime[id]/60)
}
}
public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Just 1 second delay
set_task(0.5, "DelayLoad", id)
// Save played seconds
set_task(1.0, "IncreaseTimePlayed", id+PLAYED_TIME_TASK, _, _, "b")
}
public DelayLoad(id)
{
// Load his time played
LoadPlayedTime(id)
}
public IncreaseTimePlayed(taskid)
{
new id = taskid - PLAYED_TIME_TASK
g_iPlayedTime[id]++
}
public client_disconnected(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Save played time
SavePlayedTime(id)
remove_task(id+PLAYED_TIME_TASK)
remove_task(id)
g_iPlayedTime[id] = 0
}
public SavePlayedTime(id)
{
new szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
new szData[128]
num_to_str(g_iPlayedTime[id], szData, charsmax(szData))
// Open the Vaults
g_iVaultHandler = nvault_open(g_szVault_Name)
// Saves His Data
nvault_set(g_iVaultHandler, szAuthID, szData)
// Close Vaults
nvault_close(g_iVaultHandler)
}
public LoadPlayedTime(id)
{
new szData[128], szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
// Useless Variable
new iTimestamp, iExists
// Open the Vault
g_iVaultHandler = nvault_open(g_szVault_Name)
iExists = nvault_lookup(g_iVaultHandler, szAuthID, szData, charsmax(szData), iTimestamp)
// Close Vault
nvault_close(g_iVaultHandler)
if (!iExists)
{
g_iPlayedTime[id] = 0
SavePlayedTime(id)
}
else
{
g_iPlayedTime[id] = str_to_num(szData)
}
}
public native_ze_get_played_time(id)
{
if(!is_user_connected(id))
{
log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
return -1;
}
return g_iPlayedTime[id]
}
the other one:
Code: Select all
#include <zombie_escape>
#include <nvault>
#define PLAYED_TIME_TASK 9100
new const g_szVault_Name[] = "Played_Time"
new g_iPlayedTime[33], g_iVaultHandler
public plugin_natives()
{
// Native to return played time in seconds, plugin will save using nVault
register_native("ze_get_played_time", "native_ze_get_played_time", 1)
}
public plugin_init()
{
register_plugin("Played Time", "1.0", "Raheem")
// Commands
register_clcmd("say /played", "ShowPlayedTime")
register_clcmd("say_team /played", "ShowPlayedTime")
}
public ShowPlayedTime(id)
{
ze_colored_print(id, "!tYour played time!y: !g%i !tHours!y!", g_iPlayedTime[id]/3600)
}
public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Just 1 second delay
set_task(0.5, "DelayLoad", id)
// Save played seconds
set_task(1.0, "IncreaseTimePlayed", id+PLAYED_TIME_TASK, _, _, "b")
}
public DelayLoad(id)
{
// Load his time played
LoadPlayedTime(id)
}
public IncreaseTimePlayed(taskid)
{
new id = taskid - PLAYED_TIME_TASK
g_iPlayedTime[id]++
}
public client_disconnected(id)
{
if(is_user_hltv(id) || is_user_bot(id))
return
// Save played time
SavePlayedTime(id)
remove_task(id+PLAYED_TIME_TASK)
remove_task(id)
g_iPlayedTime[id] = 0
}
public SavePlayedTime(id)
{
new szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
new szData[128]
num_to_str(g_iPlayedTime[id], szData, charsmax(szData))
// Open the Vaults
g_iVaultHandler = nvault_open(g_szVault_Name)
// Saves His Data
nvault_set(g_iVaultHandler, szAuthID, szData)
// Close Vaults
nvault_close(g_iVaultHandler)
}
public LoadPlayedTime(id)
{
new szData[128], szAuthID[35]
get_user_authid(id, szAuthID, charsmax(szAuthID))
// Useless Variable
new iTimestamp, iExists
// Open the Vault
g_iVaultHandler = nvault_open(g_szVault_Name)
iExists = nvault_lookup(g_iVaultHandler, szAuthID, szData, charsmax(szData), iTimestamp)
// Close Vault
nvault_close(g_iVaultHandler)
if (!iExists)
{
g_iPlayedTime[id] = 0
SavePlayedTime(id)
}
else
{
g_iPlayedTime[id] = str_to_num(szData)
}
}
public native_ze_get_played_time(id)
{
if(!is_user_connected(id))
{
log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
return -1;
}
return g_iPlayedTime[id]
}
for my choose if the 2 codes are working, i prefer the second one
but it's for your opinion