OciXCrom From rank system transfer of experience points between players

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
erra1881
Извън линия
Потребител
Потребител
Мнения: 28
Регистриран на: 14 Юни 2021, 14:11
Се отблагодари: 2 пъти

OciXCrom From rank system transfer of experience points between players

Мнение от erra1881 » 19 Авг 2021, 23:49

Hello, I've been using OciXCrom's level system since the beginning, but for this system, I need a sub-plugin that allows players to transfer exp between themselves.

Аватар
zolfeca
Извън линия
Администратор
Администратор
Мнения: 417
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 24 пъти
Получена благодарност: 92 пъти

OciXCrom From rank system transfer of experience points between players

Мнение от zolfeca » 20 Авг 2021, 13:08

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <cstrike>
#include <crxranks>

#define PLUGIN "Points Donate"
#define VERSION "1.0"
#define AUTOR "iceeedR"

#if defined client_disconnected
    #define client_disconnect client_disconnected
#endif

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

/* Edit by OciXCrom: made the plugin donate points from Custom Shop instead of money */

new const Prefix[] = "Allied Donators"
new DonateTarget[MAX_PLAYERS +1]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTOR);
    register_clcmd("say /donate", "DonateCmd")
    register_clcmd("plugin_donate", "DonateHandler")
}

public client_disconnect(id)
{
    DonateTarget[id] = 0 // just for secure
}

public DonateCmd(id)
{
    new szItem[64]
    formatex(szItem, charsmax(szItem), "\y[\w%s\d - \rDonate Menu \y ]", Prefix)

    new iMenu = menu_create(szItem, "donate_handler")

    new iPlayers[MAX_PLAYERS], iNum
    get_players(iPlayers, iNum, "e", (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" : "CT")
    for(new i, szTempid[10], iPlayer;i < iNum;i++)
    {
        iPlayer = iPlayers[i]

        if(iPlayer != id)
        {
            num_to_str(iPlayer, szTempid, charsmax(szTempid))
            get_user_name(iPlayer, szItem, charsmax(szItem))
            menu_additem(iMenu, szItem, szTempid)
        }
    }

    menu_display(id, iMenu)
    return PLUGIN_HANDLED
}

public donate_handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu)
        return PLUGIN_HANDLED
    }
    new iData[6], szItemName[MAX_PLAYERS * 2], iAccess, iCallback
    menu_item_getinfo(iMenu, iItem, iAccess, iData, charsmax(iData), szItemName, charsmax(szItemName), iCallback)

    DonateTarget[id] = str_to_num(iData)

    if(!DonateTarget[id])
    {
        client_print_color(id, print_team_default, "%s This player does not exist.", Prefix)
        menu_display(id, iMenu)
        DonateTarget[id] = 0
        return PLUGIN_HANDLED
    }

    client_cmd(id, "messagemode plugin_donate")

    client_print_color(id, print_team_default, "%s Type how much you want to give.", Prefix)
    return PLUGIN_HANDLED
}

public DonateHandler(id)
{
    new szValue[8]
    read_argv(1, szValue, charsmax(szValue))

    new iValue = str_to_num(szValue)

    new iPlayerXP = crxranks_get_user_xp(id)

    if( iPlayerXP < iValue || iValue <= 0)
    {
        client_print_color(id, print_team_default, "%s You do not have enough XP.", Prefix)
        return PLUGIN_CONTINUE
    }
	
    crxranks_give_user_xp( DonateTarget[id], iValue)
    crxranks_give_user_xp( id, iValue * -1)

    new szNameGiver[MAX_PLAYERS]
    get_user_name( id, szNameGiver, charsmax( szNameGiver))

    new szNameReceiver[MAX_PLAYERS]
    get_user_name(DonateTarget[id], szNameReceiver, charsmax(szNameReceiver))

    new iPlayers[MAX_PLAYERS], iNum
    get_players(iPlayers, iNum, "e", (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" : "CT")
    for(new i;i < iNum;i++)
    {
        client_print_color(iPlayers[i], print_team_default, "%s^x04 %s^x01 donated^x04 $%i^x01 for^x04 %s.", Prefix, szNameGiver, iValue, szNameReceiver)
    }
    client_cmd(DonateTarget[id], "spk ^"items/9mmclip1.wav^"")

    DonateTarget[id] = 0
    return PLUGIN_HANDLED
} 

Аватар
erra1881
Извън линия
Потребител
Потребител
Мнения: 28
Регистриран на: 14 Юни 2021, 14:11
Се отблагодари: 2 пъти

OciXCrom From rank system transfer of experience points between players

Мнение от erra1881 » 17 Окт 2021, 08:00

zolfeca написа: 20 Авг 2021, 13:08

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <cstrike>
#include <crxranks>

#define PLUGIN "Points Donate"
#define VERSION "1.0"
#define AUTOR "iceeedR"

#if defined client_disconnected
    #define client_disconnect client_disconnected
#endif

#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32
#endif

/* Edit by OciXCrom: made the plugin donate points from Custom Shop instead of money */

new const Prefix[] = "Allied Donators"
new DonateTarget[MAX_PLAYERS +1]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTOR);
    register_clcmd("say /donate", "DonateCmd")
    register_clcmd("plugin_donate", "DonateHandler")
}

public client_disconnect(id)
{
    DonateTarget[id] = 0 // just for secure
}

public DonateCmd(id)
{
    new szItem[64]
    formatex(szItem, charsmax(szItem), "\y[\w%s\d - \rDonate Menu \y ]", Prefix)

    new iMenu = menu_create(szItem, "donate_handler")

    new iPlayers[MAX_PLAYERS], iNum
    get_players(iPlayers, iNum, "e", (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" : "CT")
    for(new i, szTempid[10], iPlayer;i < iNum;i++)
    {
        iPlayer = iPlayers[i]

        if(iPlayer != id)
        {
            num_to_str(iPlayer, szTempid, charsmax(szTempid))
            get_user_name(iPlayer, szItem, charsmax(szItem))
            menu_additem(iMenu, szItem, szTempid)
        }
    }

    menu_display(id, iMenu)
    return PLUGIN_HANDLED
}

public donate_handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu)
        return PLUGIN_HANDLED
    }
    new iData[6], szItemName[MAX_PLAYERS * 2], iAccess, iCallback
    menu_item_getinfo(iMenu, iItem, iAccess, iData, charsmax(iData), szItemName, charsmax(szItemName), iCallback)

    DonateTarget[id] = str_to_num(iData)

    if(!DonateTarget[id])
    {
        client_print_color(id, print_team_default, "%s This player does not exist.", Prefix)
        menu_display(id, iMenu)
        DonateTarget[id] = 0
        return PLUGIN_HANDLED
    }

    client_cmd(id, "messagemode plugin_donate")

    client_print_color(id, print_team_default, "%s Type how much you want to give.", Prefix)
    return PLUGIN_HANDLED
}

public DonateHandler(id)
{
    new szValue[8]
    read_argv(1, szValue, charsmax(szValue))

    new iValue = str_to_num(szValue)

    new iPlayerXP = crxranks_get_user_xp(id)

    if( iPlayerXP < iValue || iValue <= 0)
    {
        client_print_color(id, print_team_default, "%s You do not have enough XP.", Prefix)
        return PLUGIN_CONTINUE
    }
	
    crxranks_give_user_xp( DonateTarget[id], iValue)
    crxranks_give_user_xp( id, iValue * -1)

    new szNameGiver[MAX_PLAYERS]
    get_user_name( id, szNameGiver, charsmax( szNameGiver))

    new szNameReceiver[MAX_PLAYERS]
    get_user_name(DonateTarget[id], szNameReceiver, charsmax(szNameReceiver))

    new iPlayers[MAX_PLAYERS], iNum
    get_players(iPlayers, iNum, "e", (cs_get_user_team(id) == CS_TEAM_T) ? "TERRORIST" : "CT")
    for(new i;i < iNum;i++)
    {
        client_print_color(iPlayers[i], print_team_default, "%s^x04 %s^x01 donated^x04 $%i^x01 for^x04 %s.", Prefix, szNameGiver, iValue, szNameReceiver)
    }
    client_cmd(DonateTarget[id], "spk ^"items/9mmclip1.wav^"")

    DonateTarget[id] = 0
    return PLUGIN_HANDLED
} 
Can you review this for everyone, not just teammates?

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 22 госта