←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Nowy Plugin
Prośba o napisanie pluginy zliczająceo pun...

  • +
  • -
` Crakk - zdjęcie ` Crakk 12.12.2011

Witam!
proszę o napisanie pluginu, który zlicza punkty za:

- zwykłe zabójstwo - 1pkt
- zabójstwo strzałem w głowę - 2pkt
- wysadzenie/rozbrojenie paki - 5pkt
- za każdą godzinę online na serwerze - 20pkt


i pisze po lewej stronie ekranu napis:

Punkty: xx

Nagrodzę wieloma +
Odpowiedz

System'ek - zdjęcie System'ek 12.12.2011

Nie żebym chciał robić offtop, ale da się dać tylko jedengo + za post ;)
Odpowiedz

  • +
  • -
` Crakk - zdjęcie ` Crakk 12.12.2011

Znajdę posty tej osoby i dam jej parę plusów, ogar.
Odpowiedz

  • +
  • -
soda - zdjęcie soda 14.12.2011

masz powinno działać
#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define PLUGIN    "System Monet"
#define AUTHOR    "kisiel96"
#define VERSION    "1.0.8"

#define ZADANIE_POKAZ_PUNKTY 666

new nazwa_gracza[32][64],
identyfikator[32][64];

new punkty[32];

new SyncHudObj;

new cvar_coins_kill,
cvar_coins_kill_hs,

cvar_coins_defused,
cvar_coins_planted,

cvar_coins_ff,

cvar_typ_zapisu;

new coins_kill,
coins_kill_hs,

coins_defused,
coins_planted,

coins_ff,

typ_zapisu;

new vault;

public plugin_init()
{    
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_event("DeathMsg", "DeathMsg", "a");
    register_event("ResetHUD", "ResetHUD", "abe");
    
    SyncHudObj = CreateHudSyncObj();
    
    cvar_coins_ff                    =     register_cvar("cod_coins_friendlyfire", "0");
    
    cvar_coins_kill                    =     register_cvar("cod_coins_kill", "1");
    cvar_coins_kill_hs                 =     register_cvar("cod_coins_kill_hs", "3");
    
    cvar_coins_planted                =     register_cvar("cod_coins_planted", "1");
    cvar_coins_defused                 =     register_cvar("cod_coins_defused", "1");
    
    cvar_typ_zapisu                 =     get_cvar_pointer("cod_savetype");
    
    vault=nvault_open("punkty");
    if(vault == INVALID_HANDLE)
        set_fail_state("Nie mozna otworzyc pliku");
}    

public client_authorized(id)
{
    UsunPunkty(id);
    
    get_user_name(id, nazwa_gracza[id], 63);
    
    typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
    
    switch(typ_zapisu)
    {
        case 1: copy(identyfikator[id], 63, nazwa_gracza[id]);
        case 2: get_user_authid(id, identyfikator[id], 63);
        case 3: get_user_ip(id, identyfikator[id], 63);
    }
    
    Wczytaj(id);
}

public client_connect(id)
    Wczytaj(id);

public client_disconnect(id)
{
    Zapisz(id);
    UsunPunkty(id)
}

public plugin_end()
    nvault_close(vault);

/////RESET MONET/////

public UsunPunkty(id)
    punkty[id] = 0;

/////ZLICZNIE MONET/////

public DeathMsg()
{
    new kid = read_data(1);
    new vid = read_data(2);
    new hs = read_data(3);
    
    if(kid == vid)
        return;
    
    coins_ff = get_pcvar_num(cvar_coins_ff)
    
    if(coins_ff == 0 && get_user_team(kid) == get_user_team(vid))
        return;
    
    coins_kill = get_pcvar_num(cvar_coins_kill);
    coins_kill_hs = get_pcvar_num(cvar_coins_kill_hs);
    
    {
        if(hs == 1)
            punkty[kid] += coins_kill_hs;
        else
            punkty[kid] += coins_kill;
    }
}

public bomb_planted(planter)
{
    coins_planted = get_pcvar_num(cvar_coins_planted);
    
    punkty[planter] += coins_planted;
}

public bomb_defused(defuser)
{
    coins_defused = get_pcvar_num(cvar_coins_defused);    
    
    punkty[defuser] += coins_defused;
}

public PokazPunkty(id)
{
    id -= ZADANIE_POKAZ_PUNKTY;
    
    if(!is_user_alive(id))
    {
        remove_task(id+ZADANIE_POKAZ_PUNKTY);
        return;
    }
    
    set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Punkty: %i]", punkty[id]);
}

public ResetHUD(id)
{
    if(!task_exists(id+ZADANIE_POKAZ_PUNKTY))
        set_task(0.1, "PokazPunkty", id+ZADANIE_POKAZ_PUNKTY, _, _, "b");
}

/////NVAULT/////

public Zapisz(id)
{
    new vaultkey[64], vaultdata[256];
    format(vaultkey, 63, "%s-punkty", identyfikator[id]);
    format(vaultdata, 255, "%d#", punkty[id]);
    nvault_set(vault, vaultkey, vaultdata);
    
    return PLUGIN_CONTINUE
}

public Wczytaj(id)
{
    new vaultkey[64], vaultdata[256];
    format(vaultkey, 63, "%s-punkty", identyfikator[id]);
    format(vaultdata, 255, "%d#", punkty[id]);
    nvault_get(vault, vaultkey, vaultdata,255);
    
    replace_all(vaultdata, 255, "#", " ");
    
    new punktytemp[33];
    parse(vaultdata, punktytemp, 32);
    
    punkty[id] = str_to_num(punktytemp);
    
    return PLUGIN_CONTINUE
}  


Użytkownik soda edytował ten post 14.12.2011 18:46
Odpowiedz