Cerere plugin /get

Categoria cu cereri de pluginuri si nu numai.

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 .
Post Reply
User avatar
Doctor whO? <3
Membru, skill +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:

21 Jul 2019, 18:15

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
RoyalServer
User avatar
Reycku
Membru, skill 0
Membru, skill 0
Posts: 68
Joined: 26 Jan 2019, 02:11
Detinator Steam: Da
Detinator server CS: RESPAWN.PUBCS.RO
SteamID: reyck
Fond eXtream: 0
Been thanked: 3 times
Contact:

21 Jul 2019, 18:17

Nu vrei prin /bonus la 24 ore?
User avatar
levin
Scripter eXtreamCS
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:

21 Jul 2019, 20:57

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)
User avatar
Doctor whO? <3
Membru, skill +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:

21 Jul 2019, 22:54

Functioneaza, multumesc :D
Post Reply

Return to “Cereri”

  • Information