De exemplu un player isi ia vip pentru 24/h. scrie ca "Vip test expira in 23h si 30 min" dar daca iese si intra iar pe server ii arata ca expira in 24h adica o ia de la capat .
Daca doriti sa ma ajutati va las mai jos sursa. Multumesc anticipat
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <colorchat>
#define PLUGIN "GOLDSRC: VIPTEST"
#define VERSION "1.0"
#define AUTHOR "wannacry"
#define Flaga ADMIN_LEVEL_E
new use[33] = 0
new czas_gracza[33]
new prefix[33]
new g_vault
new czas
new zapis
getFormatedTime(iTime, szTime[], size)
{
new hours = iTime/3600
formatex(szTime, size, "%d ore si %d minute", hours, iTime%3600/60)
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_vault = nvault_open("24h_vip")
register_clcmd("say /testvip","vip_test")
register_clcmd("say_team /testvip","vip_test")
register_clcmd("say /viptest","vip_test")
register_clcmd("say_team /viptest","vip_test")
register_cvars()
}
public register_cvars()
{
czas = register_cvar("goldsrc_viptest_ore","24")
zapis = register_cvar("goldsrc_viptest_save","1")
register_cvar("goldsrc_viptest_prefix","^1[^4VIP Gold^1]")
}
public plugin_cfg()
{
get_cvar_string("amx_viptest_prefix", prefix, 32)
}
public vip_test(id)
{
if(is_user_connected(id))
{
if(get_user_flags(id) & Flaga || use[id] == 1)
{
ColorChat(id, NORMAL, "%s Tu esti deja ^3vip^1 sau ai folosit ^3viptest^!!",prefix)
}
else
{
use[id] = 1
czas_gracza[id] = get_pcvar_num(czas)*3600
set_task(1.0,"sprawdz",id,_,_,"b")
set_task(30.0,"timer",id,_,_,"b")
set_user_flags(id, get_user_flags(id) | Flaga)
save(id)
}
}
}
public sprawdz(id)
{
czas_gracza[id]--
if(czas_gracza[id] <= 0)
{
if(task_exists(id))
{
remove_task(id)
}
remove_user_flags(id, Flaga)
}
}
public client_disconnect(id)
{
if(task_exists(id))
{
remove_task(id)
}
if(use[id] == 1)
{
save(id)
}
}
public client_connect(id)
{
use[id] = 0
czas_gracza[id] = 0
set_task(2.0,"load",id)
}
public save(id)
{
new name[64]
switch(get_pcvar_num(zapis))
{
case 1:
{
get_user_name(id,name,63)
}
case 2:
{
if(is_user_steam(id))
{
get_user_authid(id, name, 63)
}
else
{
get_user_name(id,name,63)
}
}
}
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-vip",name)
format(vaultdata,255,"%d#%d",czas_gracza[id],use[id])
nvault_set(g_vault,vaultkey,vaultdata)
}
public load(id)
{
new name[64]
switch(get_pcvar_num(zapis))
{
case 1:
{
get_user_name(id,name,63)
}
case 2:
{
if(is_user_steam(id))
{
get_user_authid(id, name, 63)
}
else
{
get_user_name(id,name,63)
}
}
}
new vaultkey[64],vaultdata[256]
get_user_name(id,name,63)
format(vaultkey,63,"%s-vip",name)
format(vaultdata,255,"%d#%d",czas_gracza[id], use[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new zmienna[33], zmienna1[33]
parse(vaultdata, zmienna, 32, zmienna1, 32)
czas_gracza[id] = str_to_num(zmienna)
use[id] = str_to_num(zmienna1)
if(czas_gracza[id] > 0)
{
set_task(120.0,"timer",id,_,_,"b")
set_task(1.0,"sprawdz",id,_,_,"b")
set_user_flags(id, get_user_flags(id) | Flaga)
}
else
{
set_task(120.0,"reclama",id,_,_,"b")
}
}
public timer(id)
{
new szTime[32]
getFormatedTime(czas_gracza[id], szTime, 31)
ColorChat(id, NORMAL, "%s ^3VIPTEST^1 se expira peste: ^4%s^1!",prefix,szTime)
}
public reclama(id)
{
ColorChat(id, NORMAL, "%s Vrei sa incerci vip pe ^4%d^1 ore?",prefix, get_pcvar_num(czas))
ColorChat(id, NORMAL, "%s Scrie ^4/testvip^1 sau ^4/viptest^1",prefix)
}
stock bool:is_user_steam(id) {
new authid[32]; get_user_authid(id, authid, 31);
return bool:(contain(authid, "STEAM_0:0:") != -1 || contain(authid, "STEAM_0:1:") != -1);
}
Code: Select all
plugin.sma(51) : error 027: invalid character constant
plugin.sma(51) : error 027: invalid character constant