Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Банк для сервера кс зомби

Статус пользователя AndreyXP
сообщение 16.10.2014, 19:09
Сообщение #1
Стаж: 11 лет

Сообщений: 28
Благодарностей: 1
Полезность: < 0

Посоветуйте проверенный, рабочий банк для кс зомби сервера, чтобы он сохранил аммо-паки без потерь
Заранее, спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Thinker
сообщение 16.10.2014, 19:18
Сообщение #2


Стаж: 11 лет

Сообщений: 39
Благодарностей: 24
Полезность: 368

Если для ZP 4.3, то вот не плохой вариант:

Скрытый текст
Код
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <nvault>

#define PLUGIN    "[ZP] Can Auto Save Ammo"
#define VERSION    "0.1.0"
#define AUTHOR    "ZombArena.Ru"

new g_save, g_ammo[33], g_ammo_can_save[33]
new cvar_save_in

#define MAX_SAVE 999 //can save....

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_event("DeathMsg","event_deathmsg","a")
    register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")

    cvar_save_in = register_cvar("zp_ammo_save_in", "2")            // 0 = name / 1 = ip / 2 = steam id

    g_save = nvault_open("g_ammo_save")
}

// Save Ammo
public zp_user_infected_post(id, infector)
{
    if (g_ammo_can_save[infector])
        Save_Ammo_date(infector)
    
    if (g_ammo_can_save[id])
        Save_Ammo_date(id)
}

public zp_extra_item_selected(id, itemid)
{
    if (g_ammo_can_save[id])
        Save_Ammo_date(id)
}

public event_deathmsg()
{
    new killer = read_data(1)
    new victim = read_data(2)

    if (!killer && !victim)
        return PLUGIN_CONTINUE;

    if (g_ammo_can_save[killer])
        Save_Ammo_date(killer)
            
    if (g_ammo_can_save[victim])
        Save_Ammo_date(victim)

    return PLUGIN_CONTINUE;
}

public fw_PlayerPreThink(id)
{
    if (g_ammo_can_save[id])
    {
        new ammo_packs = zp_get_user_ammo_packs(id)
        g_ammo[id] = ammo_packs
    }

    return FMRES_IGNORED;
}

public client_disconnect(id)
{
    if(g_ammo_can_save[id])
        Save_Ammo_date(id)
}

public client_putinserver(id)
    set_task(2.0, "now_can_save", id)

public now_can_save(id)
{
    Load_Ammo_date(id)
    set_task(0.5, "can_save_true", id)
}

public can_save_true(id)
    g_ammo_can_save[id] = true

public Save_Ammo_date(id)
{
    new vaultkey[64], vaultdata[256]

    switch (get_pcvar_num(cvar_save_in))
    {
        case 0:
        {
            new name[33];
            get_user_name(id,name,32)
            
            format(vaultkey, 63, "%s-/", name)
        }
        case 1:
        {
            new player_ip[33]
            get_user_ip(id, player_ip, 32);

            format(vaultkey, 63, "%s-/", player_ip)
        }
        case 2:
        {
            new AuthID[33];
            get_user_authid(id, AuthID, 32);
            
            formatex(vaultkey, 64, "%s-/", AuthID);
        }
    }

    format(vaultdata, 255, "%i#", g_ammo[id])
    
    nvault_set(g_save, vaultkey, vaultdata)
    return PLUGIN_CONTINUE;
}

public Load_Ammo_date(id)
{
    new vaultkey[64], vaultdata[256]

    switch (get_pcvar_num(cvar_save_in))
    {
        case 0:
        {
            new name[33];
            get_user_name(id,name,32)
            
            format(vaultkey, 63, "%s-/", name)
        }
        case 1:
        {
            new player_ip[33]
            get_user_ip(id, player_ip, 32);

            format(vaultkey, 63, "%s-/", player_ip)
        }
        case 2:
        {
            new AuthID[33];
            get_user_authid(id, AuthID, 32);
            
            formatex(vaultkey, 64, "%s-/", AuthID);
        }
    }

    format(vaultdata, 255, "%i#", g_ammo[id])
    
    nvault_get(g_save, vaultkey, vaultdata, 255)
    replace_all(vaultdata, 255, "#", " ")
    
    new playammo[32]
    parse(vaultdata, playammo, 31)
    g_ammo[id] = str_to_num(playammo)
    
    set_ammo(id)
    
    return PLUGIN_CONTINUE;
}

public set_ammo(id)
{
    if (g_ammo[id] > MAX_SAVE)
    {
        zp_set_user_ammo_packs(id, MAX_SAVE)
        g_ammo[id] = MAX_SAVE
    }
    else
        zp_set_user_ammo_packs(id, g_ammo[id])
    client_print(id, print_chat, "На вашем счету %d аммо", g_ammo[id])
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: