Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » передача
передача
Manazius
Дата: Воскресенье, 20.10.2013, 00:31 | Сообщение # 1
офлайн

  • Сообщения: 28
  • Награды: 0
  • Замечания:
 
Хотелось сделать, чтобы деньги передавались между командами, а не всеми на сервере. Но сделать это я не смог. Кто может помочь?
Прикрепления: money_transfer.sma (7.5 Kb)
 
KILLER7x7
Дата: Воскресенье, 20.10.2013, 01:31 | Сообщение # 2
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
Вот можешь попробовать!
(Я не проверял но оно скомпилировало)
Прикрепления: 6962611.sma (7.7 Kb)


killer7x7_ua



 
Manazius
Дата: Воскресенье, 20.10.2013, 12:31 | Сообщение # 3
офлайн

  • Сообщения: 28
  • Награды: 0
  • Замечания:
 
Не сработало.

Добавлено (20.10.2013, 12:31)
---------------------------------------------
Спойлер#include <amxmodx>#include <cstrike>#include <chatcolor>
#define PLUGIN "Money Transferer"#define VERSION "1.3"#define AUTHOR "kalash1k"
#define MAX_MONEY 16000
#define BASE_MONEY_AMOUNT 1000.0 // Need to be a float for calculations#define MAX_CURRENT_MONEY 500 // It's strongly recommended to not change these two values/*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"*/
// CVARsnew cvar_tm_menu, cvar_menu_1, cvar_menu_2, cvar_menu_3, cvar_menu_4
new players_menu, money_menu, players[32], num, inew accessmenu, sName[64], callbacknew 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 /transfer", "transfer_menu", ADMIN_ALL, "") register_clcmd("say /money", "transfer_menu", ADMIN_ALL, "") register_clcmd("say_team /tm", "transfer_menu", ADMIN_ALL, "") register_clcmd("say_team /transfer", "transfer_menu", ADMIN_ALL, "") register_clcmd("say_team /money", "transfer_menu", ADMIN_ALL, "") register_clcmd("transfer", "transfer_money", ADMIN_ALL, "") // Just for using messagemode cvar_tm_menu = register_cvar("tm_menu", "1") // dynamic menu or not cvar_menu_1 = register_cvar("tm_menu_1", "100") // First value in menu cvar_menu_2 = register_cvar("tm_menu_2", "200") // Second value in menu cvar_menu_3 = register_cvar("tm_menu_3", "300") // Third value in menu cvar_menu_4 = register_cvar("tm_menu_4", "500") // Fourth value in menu}
public transfer_menu(id){ get_players(players, num, "h") if (num <= 1) { client_print_color(id, Red, "Некому передавать деньги") return PLUGIN_HANDLED } players_menu = menu_create("Игроки", "players_menu_handler") new tempname[32], info[10] for(i = 0; i < num; i++) { if(is_user_alive(id) && !is_user_bot(id) && cs_get_user_team(id) == CS_TEAM_T) continue get_user_name(players, tempname, 31) num_to_str(players, info, 9) menu_additem(players_menu, tempname, info, 0) } menu_setprop(players_menu, MPROP_EXIT, MEXIT_ALL) menu_setprop(players_menu, MPROP_EXITNAME, "Выход") menu_setprop(players_menu, MPROP_BACKNAME, "Назад") menu_setprop(players_menu, MPROP_NEXTNAME, "Далее") 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) return PLUGIN_HANDLED } new sData[6] // target id menu_item_getinfo(players_menu, item, accessmenu, sData, 5, sName, 63, callback) money_menu = menu_create("Кол-во", "money_menu_handler") new user_money = cs_get_user_money(id) new str[6] if(user_money > MAX_CURRENT_MONEY) { if(get_pcvar_num(cvar_tm_menu)) { money_coef = floatround(float(user_money) / BASE_MONEY_AMOUNT) 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) } } else { new cvar_str[16] get_pcvar_string(cvar_menu_1, cvar_str, charsmax(cvar_str)) menu_additem(money_menu, cvar_str, sData, 0) get_pcvar_string(cvar_menu_2, cvar_str, charsmax(cvar_str)) menu_additem(money_menu, cvar_str, sData, 0) get_pcvar_string(cvar_menu_3, cvar_str, charsmax(cvar_str)) menu_additem(money_menu, cvar_str, sData, 0) get_pcvar_string(cvar_menu_4, cvar_str, charsmax(cvar_str)) menu_additem(money_menu, cvar_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) new items = menu_items(money_menu) if(items < 5) { switch(item) { case 0: { new iName = str_to_num(sName) // money amount formatex(msg, 127, "transfer %i %i", sData[0], iName) } case 1: { formatex(msg, 127, "messagemode ^"transfer %i^"", sData[0]) } } } else { 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[6] read_argv(1, param, 5) new target = str_to_num(param) if(target == id) { client_print_color(id, Red, "Нельзя передать деньги самому себе") return PLUGIN_HANDLED } if(!is_user_connected(target)) { client_print_color(id, Red, "Такого игрока нет на сервере") return PLUGIN_HANDLED } read_argv(2, param, 5) new p_len = strlen(param) for (new x; x < p_len; x++) { if(!isdigit(param[x])) { client_print_color(id, Red, "Неверное число") return PLUGIN_HANDLED } } new amount = str_to_num(param) if(amount <= 0) { client_print_color(id, Red, "Неверное число") return PLUGIN_HANDLED } new user_money = cs_get_user_money(id) if (user_money < amount) { client_print_color(id, Red, "У вас не хватает денег") return PLUGIN_HANDLED } new target_money = cs_get_user_money(target) new target_name[32] get_user_name(target, target_name, 31) if(target_money == MAX_MONEY) { client_print_color(id, Red, "У игрока ^4%s ^3уже ^4$%i", target_name, MAX_MONEY) return PLUGIN_HANDLED } new user_name[32] get_user_name(id, user_name, 31) new maxmoney = MAX_MONEY - target_money if(maxmoney >= amount) { cs_set_user_money(id, user_money - amount, 1) cs_set_user_money(target, target_money + amount, 1) client_print_color(0, Blue, "^1Игрок ^3%s ^1передал ^4$%i ^3%s", user_name, amount, target_name) return PLUGIN_HANDLED } cs_set_user_money(id, maxmoney, 1) cs_set_user_money(target, MAX_MONEY, 1) client_print_color(0, Blue, "^1Игрок ^3%s ^1передал ^4$%i ^3%s", user_name, maxmoney, target_name) return PLUGIN_HANDLED}
Я смог сделать, чтобы это меню открывалось только КТ, а как сделать, чтобы там именно писались товарищи из команды, то есть только те кто за КТ?

 
KILLER7x7
Дата: Воскресенье, 20.10.2013, 15:55 | Сообщение # 4
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
Manazius, тебе поможет get_user_team!!!

Код
if( get_user_team(твой ид) != get_user_team(ид проверяемого) )


killer7x7_ua





Сообщение отредактировал KILLER7x7 - Воскресенье, 20.10.2013, 15:57
 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » передача
  • Страница 1 из 1
  • 1
Поиск: