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

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

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

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

Ключи/Инвайты (Key\Invite System)

, Плагин для инвайтов, а для чего они решайте сами.
Статус пользователя Art1NET
сообщение 16.2.2019, 1:52
Сообщение #1
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 110
Благодарностей: 16
Полезность: 119

Добрый день форумчане, решил поделится старым плагином который писали на заказ.
Ключи/Инвайты (Key\Invite System)
Содержит исходник

Суть плагина:
Инвайт система, человек вписывает ключ и получает что вы укажите. (У меня стояло на зомби (продавал уровни), на варкарфте (продавал уровни, талисманы)), данный плагин упростит и автоматизирует продажи доп услугу в виде уровней и т.п.
Описание:
Сам плагин берёт ключ из invite_code.ini (ключ должен быть в скобках обязательно), после использования ключа он удаляется сам.
У него 2 режима работы консольный и меню после входа в меню нажимаете активировать и вводите ключ вручную (как пишите в чат), после чего нажимаете enter, если ключ не верный и его нет то ничего не сработает (спс кэп).

Цитата
Что выдаёт сейчас инвайт?

Всё что захотите и пропишите в нём.

Скачать: Прикрепленный файл  invite.zip ( 7,57 килобайт ) Кол-во скачиваний: 56


P.S. Плагин писался по моему тз на заказ, если что то не устраивает в плагине у вас есть исходник переписывайте.

Специально для c-s.net.ua прошу указывать ссылку на источник если плагин уйдёт по сайтам. (да я знаю что всем п*х*й)
p.s. Почему на этом форуме всё так же нельзя матерится? Тут уже все 20+ сидят, да понимаю что оскорбления нельзя, но просто мат, почему нет dntknw.gif ?

Отредактировал: Art1NET, - 16.2.2019, 2:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   Цитировать сообщение
Статус пользователя mOdest
сообщение 16.2.2019, 13:19
Сообщение #2


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

мне кажется, или игроки с защищенными клиентами не смогут этим пользоваться. помню у меня банк стоял на сервере, у некоторых при вызове команды для ввода пароля выбивало в консоль что сервер использует запрещенную команду. если это не так, с радостью поставлю
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Art1NET
сообщение 17.2.2019, 12:06
Сообщение #3
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 110
Благодарностей: 16
Полезность: 119

Цитата(mOdest @ 16.2.2019, 14:19) *
мне кажется, или игроки с защищенными клиентами не смогут этим пользоваться. помню у меня банк стоял на сервере, у некоторых при вызове команды для ввода пароля выбивало в консоль что сервер использует запрещенную команду. если это не так, с радостью поставлю

Для такого есть консоль команда.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя nedonebo
сообщение 25.4.2019, 19:56
Сообщение #4


Стаж: 8 лет 5 месяцев

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

Не пойму, куда тут вписывать выдачу денег например?
Код
Код
#include <amxmodx>

new Array:g_aData, gszCfgDir[96];

public plugin_init()
{
    register_plugin("InviteSystem Beta", "1.0", "DUKKHAZ0R");
    register_clcmd("say /invite", "ShowMenu");
    register_clcmd("invite_activate", "ActivateInviteCmd");
}

public plugin_cfg()
{
    g_aData = ArrayCreate(64);
    get_localinfo("amxx_configsdir", gszCfgDir, charsmax(gszCfgDir));
    formatex(gszCfgDir, charsmax(gszCfgDir), "%s/invite_code.ini", gszCfgDir);
    
    if(!file_exists(gszCfgDir))
        return set_fail_state("Нет файла, молодой человек!");
        
    new szLine[64], szParseLine[64], fp = fopen(gszCfgDir, "rt");
    while(fp && !feof(fp))
    {
        fgets(fp, szLine, charsmax(szLine));
        if(szLine[0] && szLine[0] != ';' && parse(szLine, szParseLine, charsmax(szParseLine)))
        {
            log_amx("[PARSED DATA] ^"%s^"", szParseLine);
            ArrayPushString(g_aData, szParseLine);
        }
    }
    return fclose(fp);
}

public ShowMenu(id)
{
    new szName[32], szFormatTitle[128];
    get_user_name(id, szName, charsmax(szName));
    
    formatex(szFormatTitle, charsmax(szFormatTitle), "\rПривет, \y%s\r!^n\dАктивируйте свой ключ:^n^n", szName);
    
    new menu = menu_create(szFormatTitle, "MenuHandler");
    
    menu_additem(menu, "Активировать инвайт");
    
    menu_display(id, menu);
}

public MenuHandler(id, menu, item)
{
    switch(item)
    {
        case MENU_EXIT: {}
        case 0: client_cmd(id, "messagemode ^"invite_activate^"");
    }
    menu_destroy(menu);
}


public plugin_end()
{
    delete_file(gszCfgDir);
    new szArrayData[96], szFormatString[96];
    for(new i; i < ArraySize(g_aData); i++)
    {
        ArrayGetString(g_aData, i, szArrayData, charsmax(szArrayData));
        if(szArrayData[0])
        {
            formatex(szFormatString, charsmax(szFormatString), "^"%s^"", szArrayData);
            write_file(gszCfgDir, szFormatString, -1);
        }
    }
}

public ActivateInviteCmd(id)
{
    new szArrayData[64], szCmd[64];
    read_args(szCmd, charsmax(szCmd));
    remove_quotes(szCmd);
    
    if(!szCmd[0])
        return ChatColor(id, "^3Строка не может быть пустой!");
    for(new i; i < ArraySize(g_aData); i++)
    {
        ArrayGetString(g_aData, i, szArrayData, charsmax(szArrayData));
        if(!strcmp(szArrayData, szCmd))
        {
            ArraySetString(g_aData, i, "");
            return CmdBonus(id);
        }
    }
    return ChatColor(id, "^3Инвайт не подходит!");
}

public CmdBonus(id)
{
    client_print(id, print_center, "Умница, инвайт успешно активирован!");
    return 1;
}

stock ChatColor(const id, const szMsg[], any:...)
{
    static sMsg[191], players[32], pcount;
    vformat(sMsg, charsmax(sMsg), szMsg, 3);
    if(id)
    {
        if(!is_user_connected(id)) return 1;
        pcount = 1
        players[0] = id
    }
    else get_players(players, pcount)
    for(new i; i < pcount; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = players[i]);
        write_byte(players[i]);
        write_string(sMsg);
        message_end();
    }
    return 1;
}


Why do they all expect something from me?
Cause I'm just playing myself in this life.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 26.4.2019, 12:01
Сообщение #5
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

nedonebo,

Код:
public CmdBonus(id)
{
client_print(id, print_center, "Умница, инвайт успешно активирован!");
return 1;
}

при помощи reapi ============>
Код:
public CmdBonus(id)
{
new random_invite = random_num(0, 1); // рандом

switch(random_invite)
{
case 0:
{
set_entvar(id, var_health, 300.0);
client_print(id, print_center, "Вы активировали инвайт жизней");
}
case 1:
{
rg_add_account(id, get_member(id, m_iAccount) + random_num(300, 1000), AS_SET);
client_print(id, print_center, "Вы активировали инвайт денег");
}
}
return 1;
}


Можно и без рандома по отдельному бонусу , но это уже немного другой код. Но пример такой же. Надеюсь поймете.

Отредактировал: Legend21, - 26.4.2019, 12:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Art1NET
сообщение 26.4.2019, 13:31
Сообщение #6
Стаж: 7 лет 4 месяца
Город: Москва

Сообщений: 110
Благодарностей: 16
Полезность: 119

Legend21, а зачем ты рандом сделал или это как пример?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 26.4.2019, 14:23
Сообщение #7
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Art1NET,

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

к примеру:
; "ключ" "имя инвента" "колво"
"Hd213dhs" "bonusHP" "100"
"H32hdhaD" "vipFlag" "t"

Отредактировал: Legend21, - 26.4.2019, 14:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя nedonebo
сообщение 27.4.2019, 10:03
Сообщение #8


Стаж: 8 лет 5 месяцев

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

Legend21, Спасибо!


Why do they all expect something from me?
Cause I'm just playing myself in this life.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: