Plugin Cerut: Bonus 24 H
Descriere (adica ce face el mai exact):
As dori si eu un plugin care o data la 24H sa ofere urmatoarele bonusuri :
1.500 ammo & 250 Bolts & 500 EXP
Nativele:
pentru ammo
native zp_set_user_ammo_packs(id, set)
native zp_get_user_ammo_packs(id)
pentru Bolts
native zp_get_user_token(id)
native zp_set_user_token(id, set)
Pts EXP
native zp_set_user_exp(id, set)
native zp_get_user_exp(id)
Daca se poate si cu mesaj, care sa fie in felul urmator :
(verde)Daily Gift : (yellow)You get (verde)1.500 ammo & 250 Bolts & 500 EXP(yellow). -> Asta dupa ce ai luat prima data bonusul
(verde)Daily Gift : (yellow)You already took bonus for today, you need to wait another (verde)24 H(yellow). -> Dupa ce ai primit deja bonusul si trebuie sa astepti , daca puteti pune si un countdown la cat timp mai trebuie sa astepte ar fi ok, daca nu asta e :)
Serverul ruleaza (HLDS/ReHLDS): ReHLDS
Versiune AMX Mod X: 1.8.3
Modul Serverului: Zm
Cerere plugin /get
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
Forum rules
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
- Doctor whO? <3
- Membru, skill +3
- Posts: 1196
- Joined: 21 Jun 2013, 12:40
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Reputatie: Fost Membru Club eXtreamCS (doua luni)
- Has thanked: 109 times
- Been thanked: 75 times
- Contact:
- levin
- Scripter eXtreamCS
- Posts: 3844
- Joined: 24 Aug 2011, 12:24
- Detinator Steam: Da
- CS Status: ♅
- Detinator server CS: ☯∴
- SteamID: riseofevo
- Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy - Location: ҳ̸Ҳ̸ҳ
- Discord: devilclass
- Has thanked: 36 times
- Been thanked: 594 times
- Contact:
Code: Select all
#include <amxmodx>
#include <nvault>
#include <zombieplague>
#pragma tabsize 0
#define NV_NAME "GET_AMMO"
#define TAG "[ZP]"
#define AMMO_SUM 1500
#define BOLTS_SUM 250
#define EXP_SUM 500
native zp_get_user_token(id)
native zp_set_user_token(id, set)
native zp_set_user_exp(id, set)
native zp_get_user_exp(id)
enum player_struct {
mtime,bool:ftime,key[64]
}
new g_player[33][player_struct];
new cvar_save_type,cvar_time,nv
public plugin_init() {
nv = nvault_open(NV_NAME);
if(nv == INVALID_HANDLE) {
server_print("Error to open nvault for %s",NV_NAME)
set_fail_state("Error to open nvault for /get")
}
register_plugin("Get Ammo Packs", "1.0", "Clauu");
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, 60minutes=1hour it will be auto calculated
register_clcmd("say /get", "cmd_ap");
register_clcmd("say_team /get", "cmd_ap");
}
public cmd_ap(id) {
new txt_min[32],pminutes = get_pcvar_num(cvar_time)
build_time(pminutes,txt_min,charsmax(txt_min));
if(g_player[id][ftime]) {
client_print(id,print_chat,"%s You have just received %d ammo,%d bolts,%d exp. Get another in %s.",TAG,AMMO_SUM,BOLTS_SUM,EXP_SUM,txt_min);
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + AMMO_SUM);
zp_set_user_token(id,zp_get_user_token(id)+BOLTS_SUM)
zp_set_user_exp(id,zp_get_user_exp(id)+EXP_SUM)
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_print(id,print_chat,"%s You have just received %d ammo,%d bolts,%d exp since %s passed.",TAG,AMMO_SUM,BOLTS_SUM,EXP_SUM,txt_min);
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + AMMO_SUM);
zp_set_user_token(id,zp_get_user_token(id)+BOLTS_SUM)
zp_set_user_exp(id,zp_get_user_exp(id)+EXP_SUM)
nvault_touch(nv,g_player[id][key],g_player[id][mtime]=get_systime());
}
else client_print(id,print_chat,"%s Retry again in %s for getting benefits!",TAG,txt_min);
}
public client_putinserver(id) {
if(is_user_bot(id)||is_user_hltv(id)) return
new 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(!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;
}
}
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) formatex(data,len,"1 minute");
else if(pminutes!=1&&pminutes<60) formatex(data,len,"%d minutes",pminutes);
else if(pminutes==60) formatex(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");
}
}
}
public plugin_end() if(nv != INVALID_HANDLE) nvault_close(nv);
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
- Doctor whO? <3
- Membru, skill +3
- Posts: 1196
- Joined: 21 Jun 2013, 12:40
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Reputatie: Fost Membru Club eXtreamCS (doua luni)
- Has thanked: 109 times
- Been thanked: 75 times
- Contact:
Functioneaza, multumesc :D