This Plugin Is Gives You 500 Escape Coins When You Login Every 24 Hour(1 Day)
You Can Change The Ammount Of Escape Coins Or The Time For Login
Plugin Code:
Code: Select all
#include <zombie_escape>
#define NV_NAME "daily_login_data"
enum player_struct {
mtime,bool:ftime,key[64]
}
new g_player[33][player_struct];
new cvar_save_type,cvar_time,cvar_ec;
new g_MaxPlayers
public plugin_init()
{
register_plugin("Login reward", "1.0", "Kaya Gaming");
cvar_save_type = register_cvar("get_ammo_save_type","3"); // how to save data 1 by authid, 2 by ip or 3 by name
cvar_time = register_cvar("get_ammo_minutes","1440"); // time in minutes, 720minutes=12hours it will be auto calculated
cvar_ec = register_cvar("ze_daily_login_reward_ec","500"); // how many ammo packs to give
g_MaxPlayers = get_maxplayers();
}
public client_connect(id)
{
set_task(4.5,"cmd_ec",id)
}
public cmd_ec(id)
{
if(get_user_xp(id) < 300000)
{
new nv = nvault_open(NV_NAME);
if(nv == INVALID_HANDLE) {
client_print(id,print_chat,"Reloading System.....");
return;
}
new txt_min[32],txt_ec[10];
new ec = get_pcvar_num(cvar_ec),pminutes = get_pcvar_num(cvar_time);
copy(txt_ec,charsmax(txt_ec),(ec==1)?"pack":"packs");
build_time(pminutes,txt_min,charsmax(txt_min));
if(g_player[id][ftime]) {
client_printc(id,"!n[!gZombie Escape!n] !nThanks for !tlogin today!n,!gyou won %d Escape Coins !nlogin again tommorow to !twin more!n.",cvar_ec);
ze_set_user_escape_coins(id, ze_get_user_escape_coins(id)+ec);
g_player[id][ftime]=false;
nvault_touch(nv,g_player[id][key],g_player[id][mtime]=get_systime());
return;
}
new user_time=get_systime()-g_player[id][mtime];
new diff_min=(user_time<(pminutes*60))?pminutes-(user_time/60):pminutes;
build_time(diff_min,txt_min,charsmax(txt_min));
if(user_time>=(pminutes*60))
{
client_printc(id,"!n[!gZombie Escape!n] !nThanks for !tlogin today!n,!gyou won %d Escape Coins !nlogin again tommorow to !twin more!n.",cvar_ec);
ze_set_user_escape_coins(id, ze_get_user_escape_coins(id)+ec);
nvault_touch(nv,g_player[id][key],g_player[id][mtime]=get_systime());
}
nvault_close(nv);
}
}
public client_putinserver(id) {
new nv,data[32];
get_auth(id,g_player[id][key],charsmax(g_player[][key]));
g_player[id][mtime]=get_systime();
g_player[id][ftime]=false;
formatex(data,charsmax(data),"%d",g_player[id][mtime]);
if((nv=nvault_open(NV_NAME))==INVALID_HANDLE)
return;
if(!nvault_lookup(nv,g_player[id][key],data,charsmax(data),g_player[id][mtime])) {
nvault_set(nv,g_player[id][key],data);
g_player[id][ftime]=true;
}
nvault_close(nv);
}
public client_disconnect(id) {
g_player[id][mtime]=0;
g_player[id][ftime]=false;
}
stock get_auth(id,data[],len)
switch(get_pcvar_num(cvar_save_type)) {
case 1: get_user_authid(id,data,len);
case 2: get_user_ip(id,data,len,1);
case 3: get_user_name(id,data,len);
}
stock build_time(pminutes,data[],len)
{
if(pminutes==1)
copy(data,len,"1 minute");
else if(pminutes!=1&&pminutes<60)
formatex(data,len,"%d minutes",pminutes);
else if(pminutes==60)
copy(data,len,"1 hour");
else {
new ptime=pminutes/60;
if(ptime*60==pminutes)
formatex(data,len,"%d %s",ptime,(ptime==1)?"hour":"hours");
else {
new diff=pminutes-ptime*60;
formatex(data,len,"%d %s and %d %s",ptime,(ptime==1)?"hour":"hours",diff,(diff==1)?"minute":"minutes");
}
}
}
stock client_printc(index, const text[], any:...)
{
new szMsg[128];
vformat(szMsg, sizeof(szMsg) - 1, text, 3);
replace_all(szMsg, sizeof(szMsg) - 1, "!g", "^x04");
replace_all(szMsg, sizeof(szMsg) - 1, "!n", "^x01");
replace_all(szMsg, sizeof(szMsg) - 1, "!t", "^x03");
if(index == 0)
{
for(new i = 0; i < g_MaxPlayers; i++)
{
if(is_user_alive(i) && is_user_connected(i))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, i);
write_byte(i);
write_string(szMsg);
message_end();
}
}
} else {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, index);
write_byte(index);
write_string(szMsg);
message_end();
}
}