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

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

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

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

2 страниц V   1 2

Помогите переделать плагин передачи денег!)

, Переделка
Статус пользователя Izmayl7
сообщение 30.6.2017, 14:49
Сообщение #1
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

помогите переделать, чтобы было вот так фраза: вместо слова кому передать было вот так Выберите кому передать деньги. также фраза На вашем счету: была красным цветом и деньги зеленым, примерно вот так: На вашем счету: 5000 $ . передавать деньги можна было всем в независимости от команды без всяких там передать тт передать ст... а всем без разницы в какой команде.
дальше чтобы вместо фразы когда передаешь деньги не писалось [server] как на скрине....
Скриншот
Прикрепленное изображение
а было чтоб вместо server написано [Money] или [Donate]. p/s скобки желтые текст зеленым внутри него. И также когда передал одному игроку деньги. чтоб заново не заходить в передачу денег. а можна было вернуться обратно. типа передал 1 игроку перевелось вернулся назад и другому игроку передал чтобы не перезаходить ))
Исходник
Код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>

#pragma semicolon 1

#define PLAYERS_PER_PAGE 7
#define MAX_PLAYERS 32
#define MsgId_SayText 76
#define is_user_valid(%0) (%0 && %0 <= g_iMaxPlayers)

new g_iMaxPlayers;
new bool:g_iUserTeam[MAX_PLAYERS + 1];
new g_iMenuPlayers[MAX_PLAYERS + 1][MAX_PLAYERS], g_iMenuPosition[MAX_PLAYERS + 1], g_iMenuTarget[MAX_PLAYERS + 1];

public plugin_init()
{
    register_plugin("Donate money", "0.1", "Sanlerus \ di.alyabev"); // надеюсь барен не против!
    register_dictionary("donate_money.txt");

    register_clcmd("money_transfer", "ClCmd_MoneyTransfer");
    register_clcmd("say /donate", "Show_MoneyTransferMenu");
        register_clcmd("donate", "Show_MoneyTransferMenu");
    register_clcmd("say /moneytransfer", "Show_MoneyTransferMenu");

    register_menucmd(register_menuid("Show_MoneyTransferMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_MoneyTransferMenu");
    register_menucmd(register_menuid("Show_MoneyAmountMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<7|1<<8|1<<9), "Handle_MoneyAmountMenu");

    g_iMaxPlayers = get_maxplayers();
}

public Show_MoneyTransferMenu(id, iPos)
{
    if(iPos < 0) return PLUGIN_HANDLED;
    new iPlayersNum;
    for(new i = 1; i <= g_iMaxPlayers; i++)
    {
        if(!is_user_connected(i) || i == id) continue;
        if(g_iUserTeam[id] && get_user_team(i) == 1)
            g_iMenuPlayers[id][iPlayersNum++] = i;
        else     if(!g_iUserTeam[id] && get_user_team(i) == 2)
            g_iMenuPlayers[id][iPlayersNum++] = i;
    }
    new iStart = iPos * PLAYERS_PER_PAGE;
    if(iStart > iPlayersNum) iStart = iPlayersNum;
    iStart = iStart - (iStart % 7);
    g_iMenuPosition[id] = iStart / PLAYERS_PER_PAGE;
    new iEnd = iStart + PLAYERS_PER_PAGE;
    if(iEnd > iPlayersNum) iEnd = iPlayersNum;
    new szMenu[512], iLen, iPagesNum = (iPlayersNum / PLAYERS_PER_PAGE + ((iPlayersNum % PLAYERS_PER_PAGE) ? 1 : 0));
    switch(iPagesNum)
    {
        case 0:
        {
            UTIL_SayText(id, "!g[SERVER] %L", id, "CHAT_ID_PLAYERS_NOT_VALID");
            return PLUGIN_HANDLED;
        }
        default: iLen = formatex(szMenu, charsmax(szMenu), "\y%L \w[%d|%d]^n\d%L^n", id, "MENU_MONEY_TRANSFER_TITLE", iPos + 1, iPagesNum, id, "MENU_MONEY_YOU_AMOUNT", cs_get_user_money(id));
    }
    new szName[32], i, iKeys = (1<<9), b;
    for(new a = iStart; a < iEnd; a++)
    {
        i = g_iMenuPlayers[id][a];
        get_user_name(i, szName, charsmax(szName));
        iKeys |= (1<<b);
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[%d] \w%s \r[%d $]^n", ++b, szName, cs_get_user_money(i));
    }
    if(g_iUserTeam[id])
    {
        iKeys |= (1<<7);
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[8] \wПередать \r[Т]");
    }
    else
    {
        iKeys |= (1<<7);
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[8] \wПередать \r[СТ]");
    }
    for(new i = b; i < PLAYERS_PER_PAGE; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
    if(iEnd < iPlayersNum)
    {
        iKeys |= (1<<8);
        formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[9] \w%L^n\y[0] \w%L", id, "MENU_NEXT", id, iPos ? "MENU_BACK" : "MENU_EXIT");
    }
    else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^n\y[0] \w%L", id, iPos ? "MENU_BACK" : "MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_MoneyTransferMenu");
}

public Handle_MoneyTransferMenu(id, iKey)
{
    switch(iKey)
    {
        case 7:
        {
            g_iUserTeam[id] = g_iUserTeam[id] ? false : true;
            return Show_MoneyTransferMenu(id, g_iMenuPosition[id]);
        }
        case 8: return Show_MoneyTransferMenu(id, ++g_iMenuPosition[id]);
        case 9: return Show_MoneyTransferMenu(id, --g_iMenuPosition[id]);
        default:
        {
            g_iMenuTarget[id] = g_iMenuPlayers[id][g_iMenuPosition[id] * PLAYERS_PER_PAGE + iKey];
            return Show_MoneyAmountMenu(id);
        }
    }
    return PLUGIN_HANDLED;
}

Show_MoneyAmountMenu(id)
{
    new szMenu[512], iKeys = (1<<8|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\y%L^n\d%L^n", id, "MENU_MONEY_AMOUNT_TITLE", id, "MENU_MONEY_YOU_AMOUNT", cs_get_user_money(id));
    if(cs_get_user_money(id))
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[1] \w%d $^n", floatround(cs_get_user_money(id) * 0.10, floatround_ceil));
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[2] \w%d $^n", floatround(cs_get_user_money(id) * 0.25, floatround_ceil));
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[3] \w%d $^n", floatround(cs_get_user_money(id) * 0.50, floatround_ceil));
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[4] \w%d $^n", floatround(cs_get_user_money(id) * 0.75, floatround_ceil));
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[5] \w%d $^n^n^n", cs_get_user_money(id));
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[8] \w%L^n", id, "MENU_MONEY_SPECIFY_AMOUNT");
        iKeys |= (1<<0|1<<1|1<<2|1<<3|1<<4|1<<7);
    }
    else
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[1] \d0 $^n\y[2] \d0 $^n\y[3] \d0 $^n\y[4] \d0 $^n\y[5] \d0 $^n^n^n");
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[8] \d%L^n", id, "MENU_MONEY_SPECIFY_AMOUNT");
    }
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[9] \w%L", id, "MENU_BACK");
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[0] \w%L", id, "MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_MoneyAmountMenu");
}

public Handle_MoneyAmountMenu(id, iKey)
{
    switch(iKey)
    {
        case 0: ClCmd_MoneyTransfer(id, g_iMenuTarget[id], floatround(cs_get_user_money(id) * 0.10, floatround_ceil));
        case 1: ClCmd_MoneyTransfer(id, g_iMenuTarget[id], floatround(cs_get_user_money(id) * 0.25, floatround_ceil));
        case 2: ClCmd_MoneyTransfer(id, g_iMenuTarget[id], floatround(cs_get_user_money(id) * 0.50, floatround_ceil));
        case 3: ClCmd_MoneyTransfer(id, g_iMenuTarget[id], floatround(cs_get_user_money(id) * 0.75, floatround_ceil));
        case 4: ClCmd_MoneyTransfer(id, g_iMenuTarget[id], cs_get_user_money(id));
        case 7: client_cmd(id, "messagemode ^"money_transfer %d^"", g_iMenuTarget[id]);
        case 8: return Show_MoneyTransferMenu(id, g_iMenuPosition[id]);
    }
    return PLUGIN_HANDLED;
}

public ClCmd_MoneyTransfer(id, iTarget, iMoney)
{
    if(!iTarget)
    {
        new szArg1[3], szArg2[7];
        read_argv(1, szArg1, charsmax(szArg1));
        read_argv(2, szArg2, charsmax(szArg2));
        if(!is_str_num(szArg1) || !is_str_num(szArg2))
        {
            UTIL_SayText(id, "!g[SERVER] %L", id, "CHAT_ID_ERROR_PARAMETERS");
            return PLUGIN_HANDLED;
        }
        iTarget = str_to_num(szArg1);
        iMoney = str_to_num(szArg2);
    }
    if(id == iTarget || !is_user_valid(iTarget) || !is_user_connected(iTarget)) UTIL_SayText(id, "!g[SERVER] %L", id, "CHAT_ID_UNKNOWN_PLAYER");
    else if(cs_get_user_money(id) < iMoney) UTIL_SayText(id, "!g[SERVER] %L", id, "CHAT_ID_SUFFICIENT_FUNDS");
    else if(iMoney <= 0) UTIL_SayText(id, "!g[SERVER] %L", id, "CHAT_ID_MIN_AMOUNT_TRANSFER");
    else
    {
        cs_set_user_money(iTarget, cs_get_user_money(iTarget) + iMoney);
        cs_set_user_money(id, cs_get_user_money(id) - iMoney);
        new szName[32], szNameTarget[32];
        get_user_name(id, szName, charsmax(szName));
        get_user_name(iTarget, szNameTarget, charsmax(szNameTarget));
        UTIL_SayText(0, "!g[SERVER] %L", id, "CHAT_ALL_MONEY_TRANSFER", szName, iMoney, szNameTarget);
    }
    return PLUGIN_HANDLED;
}

stock UTIL_SayText(pPlayer, const szMessage[], any:...)
{
    new szBuffer[190];
    if(numargs() > 2) vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    else copy(szBuffer, charsmax(szBuffer), szMessage);
    while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
    while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
    while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
    switch(pPlayer)
    {
        case 0:
        {
            for(new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++)
            {
                if(!is_user_connected(iPlayer)) continue;
                engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, MsgId_SayText, {0.0, 0.0, 0.0}, iPlayer);
                write_byte(iPlayer);
                write_string(szBuffer);
                message_end();
            }
        }
        default:
        {
            engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, MsgId_SayText, {0.0, 0.0, 0.0}, pPlayer);
            write_byte(pPlayer);
            write_string(szBuffer);
            message_end();
        }
    }
}

lang- файлик: Прикрепленный файл  donate_money.txt ( 2,1 килобайт ) Кол-во скачиваний: 13


Отредактировал: Izmayl7, - 30.6.2017, 19:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя onetwothree
сообщение 30.6.2017, 17:14
Сообщение #2


Стаж: 9 лет 4 месяца
Город: Toronto

Сообщений: 406
Благодарностей: 133
Полезность: 522

Скинь donate_money.txt derisive.gif


здесь могла бы быть ваша реклама.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 30.6.2017, 18:33
Сообщение #3
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(onetwothree @ 30.6.2017, 18:14) *
Скинь donate_money.txt derisive.gif

тю блин забыл... вот)) Прикрепленный файл  donate_money.txt ( 2,1 килобайт ) Кол-во скачиваний: 14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 7.7.2017, 13:24
Сообщение #4
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

а как сделать так, чтобы не было по командам разделение передачи денег, а было вот так
Скриншот
Прикрепленное изображение
и также команда была на /tm , а не на /donate
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 7.7.2017, 13:28
Сообщение #5
Стаж: 11 лет
Город: Москва

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

Izmayl7,
Ты команды хочешь поменять или что?


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 7.7.2017, 13:44
Сообщение #6
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 7.7.2017, 14:28) *
Izmayl7,
Ты команды хочешь поменять или что?
да команду передачи денег и чтобы не было вот этого
Код
register_clcmd("money_transfer", "ClCmd_MoneyTransfer");
    register_clcmd("say /donate", "Show_MoneyTransferMenu");
        register_clcmd("donate", "Show_MoneyTransferMenu");
    register_clcmd("say /moneytransfer", "Show_MoneyTransferMenu");

а было
Код
register_clcmd("money_transfer", "ClCmd_MoneyTransfer");
    register_clcmd("say /tm", "Show_MoneyTransferMenu");
        register_clcmd("tm", "Show_MoneyTransferMenu");
    register_clcmd("say /tm", "Show_MoneyTransferMenu");

и вот этого не было как на
скрине
Прикрепленное изображение

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 7.7.2017, 13:58
Сообщение #7
Стаж: 11 лет
Город: Москва

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

Izmayl7,
Держи
Прикрепленный файл  donate_money.sma ( 8,54 килобайт ) Кол-во скачиваний: 14


Отредактировал: Jack2345, - 7.7.2017, 14:03


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 7.7.2017, 14:04
Сообщение #8
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 7.7.2017, 14:58) *
Izmayl7,
Держи
Прикрепленный файл  donate_money.sma ( 8,54 килобайт ) Кол-во скачиваний: 14

что-то не могу скачать... пишет вот так -
Цитата
Обнаружена ошибка. Если вам неизвестны причины ошибки, попробуйте обратиться к разделам помощи.
Причина:
Некоторые требуемые файлы отсутствуют. Если вы хотели просмотреть тему, возможно эта тема перемещена или удалена. Вернитесь назад и попробуйте снова.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 7.7.2017, 14:04
Сообщение #9
Стаж: 11 лет
Город: Москва

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

Izmayl7,
пробуй заново скачать


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 7.7.2017, 14:07
Сообщение #10
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 7.7.2017, 15:04) *
Izmayl7,
пробуй заново скачать

всё скачал. спасибо. отпишусь потом. p/s инет чето отрубался... ok.gif derisive.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 7.7.2017, 14:07
Сообщение #11
Стаж: 11 лет
Город: Москва

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

Izmayl7,
ок


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 7.7.2017, 14:08
Сообщение #12
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 7.7.2017, 15:07) *
Izmayl7,
ок

thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 8.7.2017, 0:32
Сообщение #13
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 7.7.2017, 15:07) *
Izmayl7,
ок

чего то не хватает... игроков 5 пятеро на сервере... а я только могу 2 передать...
скрин
Прикрепленное изображение

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 8.7.2017, 5:13
Сообщение #14
Стаж: 11 лет
Город: Москва

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

Izmayl7,
Прикрепленный файл  donate_money.sma ( 8,79 килобайт ) Кол-во скачиваний: 12



Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 8.7.2017, 10:35
Сообщение #15
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(Jack2345 @ 8.7.2017, 6:13) *
Izmayl7,
Прикрепленный файл  donate_money.sma ( 8,79 килобайт ) Кол-во скачиваний: 12

надо чтобы всем игрокам можна было передавать деньги)) на сервере щас 19 человек - а я только 9 могу передать...
скрин
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 8.7.2017, 10:42
Сообщение #16
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

а получается так, что я могу только из своих игроков деньги передавать, а другим игрокам не могу...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jack2345
сообщение 8.7.2017, 13:42
Сообщение #17
Стаж: 11 лет
Город: Москва

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

Цитата(Izmayl7 @ 8.7.2017, 11:42) *
а получается так, что я могу только из своих игроков деньги передавать, а другим игрокам не могу...

хз

Отредактировал: Jack2345, - 8.7.2017, 13:45


Success
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 8.7.2017, 15:24
Сообщение #18
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Jack2345, thank_you2.gif спасибо хоть чем-то попытался помочь=!)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csuser
сообщение 31.7.2017, 15:27
Сообщение #19
Стаж: 9 лет 10 месяцев

Сообщений: 1155
Благодарностей: 309
Полезность: 130

Посмотри как у меня на сервере /tm реализован, если понравится то скину, под гарантию нераспространения ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Izmayl7
сообщение 31.7.2017, 17:04
Сообщение #20
Стаж: 10 лет

Сообщений: 831
Благодарностей: 312
Полезность: 578

Цитата(csuser @ 31.7.2017, 16:27) *
Посмотри как у меня на сервере /tm реализован, если понравится то скину, под гарантию нераспространения ))

смотрел=!) скинь в лс)) конечно нет)) derisive.gif

Отредактировал: Izmayl7, - 31.7.2017, 17:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: