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

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

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

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

Money Transfer перевод денег между своей команды

Статус пользователя rasskazov
сообщение 13.1.2015, 19:44
Сообщение #1


Стаж: 13 лет
Город: Где-то в Крыму)

Сообщений: 499
Благодарностей: 158
Полезность: 436

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

Код:
Код
#define PREFIX "^4[^3Money^4]"

#define   MAX_MONEY         16000
#define   BASE_MONEY_AMOUNT   1000.0 // Need to be a float for calculations
/*
If you have $800 menus will be:
1) $100 * floatround(your_current_money_amount / BASE_MONEY_AMOUNT)
2) $200 * floatround(your_current_money_amount / BASE_MONEY_AMOUNT)
3) $300 * floatround(your_current_money_amount / BASE_MONEY_AMOUNT)
4) $500 * floatround(your_current_money_amount / BASE_MONEY_AMOUNT)
5) your_current_money_amount ($800 in our case)
6) "Type your own number"
*/

new players_menu, money_menu, players[32], num, i
new accessmenu, sName[64], callback
new msg[128]

new money_coef, money_amount

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
    
   register_clcmd("say /tm", "transfer_menu", ADMIN_ALL, "")   // TM - Transfer Money
   register_clcmd("say tm", "transfer_menu", ADMIN_ALL, "")
   register_clcmd("say_team /tm", "transfer_menu", ADMIN_ALL, "")
   register_clcmd("say_team tm", "transfer_menu", ADMIN_ALL, "")
   register_clcmd("tm", "transfer_menu", ADMIN_ALL, "")
    
   register_clcmd("transfer", "transfer_money", ADMIN_ALL, "")   // Just for using messagemode
}

public transfer_menu(id)
{
   get_players(players, num, "che", cs_get_user_team(id)==CS_TEAM_CT ? "CT" : "TERRORIST")
    
   if (num <= 1)
   {
      ColorChat(id, DontChange, "%s Некому передавать деньги", PREFIX)
      return PLUGIN_HANDLED
   }
   if (!is_user_alive(id))  
   {
      ColorChat(id, DontChange, "%s Вы мертвы", PREFIX)
      return PLUGIN_HANDLED;
         }
    
    
   players_menu = menu_create("Кому передать деньги?", "players_menu_handler")
    
   new tempname[32], info[10], main[172]
    
   for(i = 0; i < num; i++)
   {
      if(players[i] == id || is_user_bot(players[i]))
         continue
      
      get_user_name(players[i], tempname, 31)
      num_to_str(players[i], info, 9)
      formatex(main, charsmax(main), "\w%s \r[\y%i\r]", tempname, cs_get_user_money(players[i]) );
      menu_additem(players_menu, main, info, 0)
   }

        menu_setprop(players_menu, MPROP_NEXTNAME, "Далее")
        menu_setprop(players_menu, MPROP_BACKNAME, "Назад")
        menu_setprop(players_menu, MPROP_EXITNAME, "Выход")
        menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL)
    
   menu_display(id, players_menu, 0)
   return PLUGIN_CONTINUE
}

public players_menu_handler(id, players_menu, item)
{
   if(item == MENU_EXIT)
   {
      menu_destroy(players_menu)
      client_cmd(id, "optionsmenu")
      return PLUGIN_HANDLED
   }
    
   new sData[6], menuTitle[127]   // target id
    
   menu_item_getinfo(players_menu, item, accessmenu, sData, 5, sName, 63, callback)
    
   new user_money = cs_get_user_money(id)
   money_coef = floatround(float(user_money) / BASE_MONEY_AMOUNT)
   formatex(menuTitle, charsmax(menuTitle), "\wПередать деньги^n\dУ вас \y%d$^n", user_money );
   money_menu = menu_create(menuTitle, "money_menu_handler")
    
   new str[6]
    
   for (new i = 1; i < 5; i++)
   {
      if(i == 4)
         money_amount = 500 * money_coef
      else
         money_amount = 100 * i * money_coef
      
      num_to_str(money_amount, str, 5)
      menu_additem(money_menu, str, sData, 0)
   }
    
   num_to_str(user_money, str, 5)
   menu_additem(money_menu, str, sData, 0)
    
   menu_additem(money_menu, "Ввести кол-во", sData, 0)
    
   menu_setprop(money_menu, MPROP_EXIT, MEXIT_ALL)
   menu_setprop(money_menu, MPROP_EXITNAME, "Назад")
    
   menu_display(id, money_menu, 0)
   return PLUGIN_CONTINUE
}

public money_menu_handler(id, money_menu, item)
{
   if(item == MENU_EXIT)
   {
      menu_destroy(money_menu)
      menu_display(id, players_menu, 0)
      return PLUGIN_CONTINUE
   }
    
   new sData[6] //target id
    
   menu_item_getinfo(money_menu, item, accessmenu, sData, 5, sName, 63, callback)
    
   sData[0] = str_to_num(sData)
    
   switch(item)
   {
      case 0:
      {
         new iName = str_to_num(sName) // money amount
         formatex(msg, 127, "transfer %i %i", sData[0], iName)
      }
      case 1:
      {
         new iName = str_to_num(sName)
         formatex(msg, 127, "transfer %i %i", sData[0], iName)
      }
      case 2:
      {
         new iName = str_to_num(sName)
         formatex(msg, 127, "transfer %i %i", sData[0], iName)
      }
      case 3:
      {
         new iName = str_to_num(sName)
         formatex(msg, 127, "transfer %i %i", sData[0], iName)
      }
      case 4:
      {
         new iName = str_to_num(sName)
         formatex(msg, 127, "transfer %i %i", sData[0], iName)
      }
      case 5:
         formatex(msg, 127, "messagemode ^"transfer %i^"", sData[0])
   }
    
   client_cmd(id, msg)
    
   return PLUGIN_CONTINUE
}

public transfer_money(id)
{
   new param[9]
    
   read_argv(1, param, 5)
    
   new player = str_to_num(param)
   new names[2][32]
    
   get_user_name(player, names[1], 31)
    
   if(is_user_bot(player) || !is_user_connected(player))
   {
      ColorChat(id, DontChange, "%s Игрока ^3%s ^4нет на сервере", PREFIX, names[1])
      return PLUGIN_HANDLED
   }
    
   if(player == id)
   {
      ColorChat(id, DontChange, "%s Нельзя передать деньги себе.", PREFIX)
      return PLUGIN_HANDLED
   }
    
   read_argv(2, param, 5)
    
   new p_len = strlen(param)
    
   for (new x; x < p_len; x++)
   {
      if(!isdigit(param[x]))
      {
         ColorChat(id, DontChange, "%s Параметр должен быть числом", PREFIX)
         return PLUGIN_HANDLED
      }
   }
    
   new amount = str_to_num(param)
   new money = cs_get_user_money(id)
    
   if (money < amount)
   {
      ColorChat(id, DontChange, "%s У вас не хватает денег", PREFIX)
      return PLUGIN_HANDLED
   }
    
   if(amount < 100)
   {
      ColorChat(id, DontChange, "%s Нельзя передать меньше ^3100^4$", PREFIX)
      return PLUGIN_HANDLED
   }
    
   new player_money = cs_get_user_money(player)
    
   if(player_money == MAX_MONEY)
   {
      ColorChat(id, DontChange, "%s У игрока ^3%s ^4уже ^3%^4$i", PREFIX, names[1], MAX_MONEY)
      return PLUGIN_HANDLED
   }
    
   get_user_name(id, names[0], 31)
    
   new maxmoney = MAX_MONEY - player_money
    
   if(maxmoney >= amount)
   {
      cs_set_user_money(id, money - amount, 1)
      cs_set_user_money(player, player_money + amount, 1)
      
           ColorChat(0, DontChange, "^3%s ^4передал ^3%i^4$ игроку ^3%s", PREFIX, amount, names[1])
      ColorChat(0, player,  "^3%s ^4получил ^3%d^4$ от игрока ^3%s", PREFIX, amount, names[0])
      
      return PLUGIN_HANDLED
   }
    
   cs_set_user_money(id, maxmoney, 1)
   cs_set_user_money(player, MAX_MONEY, 1)
    
   ColorChat(0, DontChange, "^3%s ^4передал ^3%i^4$ игроку ^3%s", PREFIX, maxmoney, names[1])
   ColorChat(0, player,  "^3%s ^4получил ^3%d^4$ от игрока ^3%s", PREFIX, maxmoney, names[0])
    
   return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 13.1.2015, 21:34
Сообщение #2


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Используй вот этот Money Transferer, тут эта функция уже есть

Отредактировал: ExTPuMaJI, - 13.1.2015, 21:35


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: