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

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

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

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

> Правила форума

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

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

не работает плагин бесконечные патроны

, sm_unlimited_clip для shopmenu
Статус пользователя bruk
сообщение 21.3.2016, 16:56
Сообщение #1
Стаж: 11 лет

Сообщений: 40
Благодарностей: 14
Полезность: 104

Добрый вечер не могу понять почему у меня не работает плагин бесконечные патроны для shopmenu ошибок нету не каких , изначально установил для проверки на локальный сервер windows - все работает отлично , но если у становить на хостинг под любой билд почему то не работает , ,покупаются в магазине но не работает сама функция . в чем может быть проблема ? Весь интернет перерыл ответ так и не нашел , тех.поддержка тоже не что не смогла сказать.

Может дело в коде плагина ? выложил 2 исходника ,сам магазин и бесконечные патроны , надеюсь тут кто нить сможет решить мою проблему.

ShopMenu.sma
Код:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define MENU_PREFIX "Магазин" // Префикс названия меню
#define CHAT_PREFIX "^3[^4Информация^3]^1" // Префикс чат сообщений
#define ADMIN_ACCESS ADMIN_BAN // Флаг доступа для скидки админу
#define VIP_ACCESS ADMIN_LEVEL_H // Флаг доступа для скидки випу
#define BUYHP_MAX 255 // Максимальное кол-во здоровья которое можно купить (по-умолчанию: 255)
#define BUYAP_MAX 255 // Максимальное кол-во брони которое можно купить (по-умолчанию: 255)

#if cellbits == 32
#define OFFSET_CSMONEY 115
#else
#define OFFSET_CSMONEY 140
#endif

new Float:g_lvlSpeed[33], bool:g_SpeedUse[33];
new g_Discount[33], g_DiscountAdmin, g_DiscountVIP, g_DiscountSteam;
new g_pMenuEnableCvars[6], g_pInvisibilityMenuCvars[3], g_pGravityMenuCvars[4], g_pHealthMenuCvars[6], g_pArmorMenuCvars[6], g_pSpeedMenuCvars[5];

new g_szMainShopMenu[][] = { "Меню оружия", "Меню невидимости", "Меню гравитации", "Меню здоровья", "Меню брони", "Меню скорости" };
new g_szInvisibilityMenu[][] = { "Слабая", "Средняя", "Высокая" };
new g_szGravityMenu[][] = { "Гравитация 700", "Гравитация 600", "Гравитация 500", "Гравитация 400" };
new g_szHealthMenu[][] = { "Здоровье +15", "Здоровье +35", "Здоровье +65", "Здоровье +95", "Здоровье +200" };
new g_szArmorMenu[][] = { "Броня +15", "Броня +35", "Броня +65", "Броня +95", "Броня +200" };
new g_szSpeedMenu[][] = { "Скорость 260", "Скорость 300", "Скорость 340", "Скорость 380", "Скорость 420" };

new g_iInvisibilityLevel[] = { 60, 40, 10 };
new g_iHealthLevel[] = { 15, 35, 65, 95, 200 };
new g_iArmorLevel[] = { 15, 35, 65, 95, 200 };
new Float:g_iGravityLevel[] = { 0.7, 0.6, 0.5, 0.4 };
new Float:g_iSpeedLevel[] = { 260.0, 300.0, 340.0, 380.0, 420.0 };

new g_Selected_Fwd, Item_Counter;
new Array:Item_Name, Array:Item_Cost;

public plugin_init()
{
#define PLUGIN "Shop Menu"
#define VERSION "1.1"
register_plugin(PLUGIN, VERSION, "Realution");
register_cvar("rl_shop", VERSION, FCVAR_SERVER | FCVAR_SPONLY);

// Commands
register_clcmd("shopmenu", "OpenShopMenu");
register_clcmd("say /shop", "OpenShopMenu");
register_clcmd("say_team /shop", "OpenShopMenu");

g_DiscountAdmin = register_cvar("amx_discount_admin", "15");
g_DiscountVIP = register_cvar("amx_discount_vip", "10");
g_DiscountSteam = register_cvar("amx_discount_steam", "5");

g_pMenuEnableCvars[0] = register_cvar("amx_shop_weapon", "1");

g_pMenuEnableCvars[1] = register_cvar("amx_shop_invis", "1");
g_pInvisibilityMenuCvars[0] = register_cvar("amx_shop_low", "6000");
g_pInvisibilityMenuCvars[1] = register_cvar("amx_shop_medium", "10000");
g_pInvisibilityMenuCvars[2] = register_cvar("amx_shop_high", "13000");

g_pMenuEnableCvars[2] = register_cvar("amx_shop_grav", "1");
g_pGravityMenuCvars[0] = register_cvar("amx_shop_g700", "1500");
g_pGravityMenuCvars[1] = register_cvar("amx_shop_g600", "2500");
g_pGravityMenuCvars[2] = register_cvar("amx_shop_g500", "3500");
g_pGravityMenuCvars[3] = register_cvar("amx_shop_g400", "4500");

g_pMenuEnableCvars[3] = register_cvar("amx_shop_hp", "1");
g_pHealthMenuCvars[0] = register_cvar("amx_shop_15hp", "400");
g_pHealthMenuCvars[1] = register_cvar("amx_shop_35hp", "700");
g_pHealthMenuCvars[2] = register_cvar("amx_shop_65hp", "1000");
g_pHealthMenuCvars[3] = register_cvar("amx_shop_95hp", "1500");
g_pHealthMenuCvars[4] = register_cvar("amx_shop_200hp", "2800");

g_pMenuEnableCvars[4] = register_cvar("amx_shop_ap", "1");
g_pArmorMenuCvars[0] = register_cvar("amx_shop_15ap", "400");
g_pArmorMenuCvars[1] = register_cvar("amx_shop_35ap", "700");
g_pArmorMenuCvars[2] = register_cvar("amx_shop_65ap", "1000");
g_pArmorMenuCvars[3] = register_cvar("amx_shop_95ap", "1500");
g_pArmorMenuCvars[4] = register_cvar("amx_shop_200ap", "2800");

g_pMenuEnableCvars[5] = register_cvar("amx_shop_speed", "1");
g_pSpeedMenuCvars[0] = register_cvar("amx_shop_260speed", "4000");
g_pSpeedMenuCvars[1] = register_cvar("amx_shop_300speed", "6000");
g_pSpeedMenuCvars[2] = register_cvar("amx_shop_340speed", "8000");
g_pSpeedMenuCvars[3] = register_cvar("amx_shop_380speed", "10000");
g_pSpeedMenuCvars[4] = register_cvar("amx_shop_420speed", "12000");

// RegisterFunc
RegisterHam(Ham_Spawn, "player", "fwdHamPlayerSpawn", true);
RegisterHam(Ham_Item_PreFrame, "player", "fwdHamPreFrame", true);

g_Selected_Fwd = CreateMultiForward("shop_item_selected", ET_IGNORE, FP_CELL, FP_CELL);
}

public plugin_cfg()
{
new const FOLDER[] = "addons/amxmodx/configs";
new FileMain[128]; format(FileMain, charsmax(FileMain), "%s/ShopMenu.cfg", FOLDER);
if(file_exists(FileMain)) server_cmd("exec %s", FileMain);

new iMap[33]; get_mapname(iMap, 33);
new FileMap[128]; format(FileMap, charsmax(FileMap), "%s/ShopMenu/%s.cfg", FOLDER, iMap);
if(file_exists(FileMap)) server_cmd("exec %s", FileMap);
}

public plugin_natives()
{
register_native("shop_register_item", "native_register_item", 1);
register_native("shop_buy_item", "native_buy_item", 1);
}

public plugin_precache()
{
Item_Name = ArrayCreate(64, 1);
Item_Cost = ArrayCreate(1, 1);
}

public native_register_item(const Name[], const Cost)
{
param_convert(1);
param_convert(3);

ArrayPushString(Item_Name, Name);
ArrayPushCell(Item_Cost, Cost);

Item_Counter++;

return Item_Counter-1;
}

public fwdHamPlayerSpawn(id) g_SpeedUse[id] = false;
public fwdHamPreFrame(id) if(g_SpeedUse[id]) fm_set_user_maxspeed(id, g_lvlSpeed[id]);

public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_ACCESS) g_Discount[id] = get_pcvar_num(g_DiscountAdmin);
else if(get_user_flags(id) & VIP_ACCESS) g_Discount[id] = get_pcvar_num(g_DiscountVIP);
else if(is_user_steam(id)) g_Discount[id] = get_pcvar_num(g_DiscountSteam);
else g_Discount[id] = 0;
}

public OpenShopMenu(id)
{
if(!is_user_alive(id)) return ChatColor(id, "%s Вы должны быть живы, чтобы использовать меню!", CHAT_PREFIX);

new szData[256], Items[64], Position[3];
if(g_Discount[id] > 0) formatex(szData, charsmax(szData), "\r%s^n\dНаличные: \r%d$ \w| \dСкидка: \r%d%%\R", MENU_PREFIX, fm_get_user_money(id), g_Discount[id]);
else formatex(szData, charsmax(szData), "\r%s^n\dНаличные: \r%d$ \w| \dСкидка: \rОтсутствует\R", MENU_PREFIX, fm_get_user_money(id));

new Menu = menu_create(szData, "MainMenu_Handler");

for(new i = 0; i < sizeof(g_szMainShopMenu); i++)
{
formatex(Items, charsmax(Items), "%s%s", get_pcvar_num(g_pMenuEnableCvars[i]) ? "\w" : "\d", g_szMainShopMenu[i]);
num_to_str(i, Position, charsmax(Position));
menu_additem(Menu, Items, Position);
}
menu_setprop(Menu, MPROP_EXITNAME, "Выход");

return menu_display(id, Menu);
}

public MainMenu_Handler(id, Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Menu);

switch(item)
{
case 0:
{
new Wpn_Menu = menu_create("\rМеню оружия\R", "GunsMenu_Handler");
static Items[64], Position[3], Buffer[192];

for(new i = 0; i < Item_Counter; i++)
{
ArrayGetString(Item_Name, i, Items, charsmax(Items));
formatex(Buffer, charsmax(Buffer), "%s \d- \y%i$", Items, GetItemCost(id, ArrayGetCell(Item_Cost, i)));
num_to_str(i, Position, charsmax(Position));
menu_additem(Wpn_Menu, Buffer, Position);
}
menu_setprop(Wpn_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Wpn_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Wpn_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[0])) menu_display(id, Wpn_Menu);
else ChatColor(id, "%s Меню оружия выключено.", CHAT_PREFIX);
}

case 1:
{
new Inv_Menu = menu_create("\rМеню невидимости\R", "InvisibilityMenu_Handler");
new Items[64], Position[3];

for(new i = 0; i < sizeof(g_szInvisibilityMenu); i++)
{
new Discount = GetItemCost(id, get_pcvar_num(g_pInvisibilityMenuCvars[i]));
formatex(Items, charsmax(Items), "%s \d- \y%d$", g_szInvisibilityMenu[i], Discount);
num_to_str(i, Position, charsmax(Position));
menu_additem(Inv_Menu, Items, Position);
}
menu_setprop(Inv_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Inv_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Inv_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[1])) menu_display(id, Inv_Menu);
else ChatColor(id, "%s Меню невидимости выключено.", CHAT_PREFIX);
}

case 2:
{
new Grav_Menu = menu_create("\rМеню гравитации\R", "GravityMenu_Handler");
new Items[64], Position[3];

for(new i = 0; i < sizeof(g_szGravityMenu); i++)
{
new Discount = GetItemCost(id, get_pcvar_num(g_pGravityMenuCvars[i]));
formatex(Items, charsmax(Items), "%s \d- \y%d$", g_szGravityMenu[i], Discount);
num_to_str(i, Position, charsmax(Position));
menu_additem(Grav_Menu, Items, Position);
}
menu_setprop(Grav_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Grav_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Grav_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[2])) menu_display(id, Grav_Menu);
else ChatColor(id, "%s Меню гравитации выключено.", CHAT_PREFIX);
}

case 3:
{
new Hp_Menu = menu_create("\rМеню здоровья\R", "HealthMenu_Handler");
new Items[64], Position[3];

for(new i = 0; i < sizeof(g_szHealthMenu); i++)
{
new Discount = GetItemCost(id, get_pcvar_num(g_pHealthMenuCvars[i]));
formatex(Items, charsmax(Items), "%s \d- \y%d$", g_szHealthMenu[i], Discount);
num_to_str(i, Position, charsmax(Position));
menu_additem(Hp_Menu, Items, Position);
}
menu_setprop(Hp_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Hp_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Hp_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[3])) menu_display(id, Hp_Menu);
else ChatColor(id, "%s Меню здоровья выключено.", CHAT_PREFIX);
}

case 4:
{
new Ap_Menu = menu_create("\rМеню брони\R", "ArmorMenu_Handler");
new Items[64], Position[3];

for(new i = 0; i < sizeof(g_szArmorMenu); i++)
{
new Discount = GetItemCost(id, get_pcvar_num(g_pArmorMenuCvars[i]));
formatex(Items, charsmax(Items), "%s \d- \y%d$", g_szArmorMenu[i], Discount);
num_to_str(i, Position, charsmax(Position));
menu_additem(Ap_Menu, Items, Position);
}
menu_setprop(Ap_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Ap_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Ap_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[4])) menu_display(id, Ap_Menu);
else ChatColor(id, "%s Меню брони выключено.", CHAT_PREFIX);
}

case 5:
{
new Speed_Menu = menu_create("\rМеню скорости\R", "SpeedMenu_Handler");
new Items[64], Position[3];

for(new i = 0; i < sizeof(g_szSpeedMenu); i++)
{
new Discount = GetItemCost(id, get_pcvar_num(g_pSpeedMenuCvars[i]));
formatex(Items, charsmax(Items), "%s \d- \y%d$", g_szSpeedMenu[i], Discount);
num_to_str(i, Position, charsmax(Position));
menu_additem(Speed_Menu, Items, Position);
}
menu_setprop(Speed_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(Speed_Menu, MPROP_NEXTNAME, "Вперед");
menu_setprop(Speed_Menu, MPROP_EXITNAME, "Выход");

if(get_pcvar_num(g_pMenuEnableCvars[5])) menu_display(id, Speed_Menu);
else ChatColor(id, "%s Меню скорости выключено.", CHAT_PREFIX);
}
}
return menu_destroy(Menu);
}

public GunsMenu_Handler(id, Guns_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Guns_Menu);
native_buy_item(id, item);
return menu_destroy(Guns_Menu);
}

public native_buy_item(id, item)
{
new Money = fm_get_user_money(id);
static Discount, DummyItem, NameItem[64];
Discount = GetItemCost(id, ArrayGetCell(Item_Cost, item));
ArrayGetString(Item_Name, item, NameItem, sizeof(NameItem));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %i$^1)", CHAT_PREFIX, Discount);

ExecuteForward(g_Selected_Fwd, DummyItem, id, item);
fm_set_user_money(id, Money-Discount);
ChatColor(id, "%s Вы приобрели '^3%s^1' за ^4%i$", CHAT_PREFIX, NameItem, Discount);

return PLUGIN_HANDLED;
}

public InvisibilityMenu_Handler(id, Inv_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Inv_Menu);

new Money = fm_get_user_money(id);
new Discount = GetItemCost(id, get_pcvar_num(g_pInvisibilityMenuCvars[item]));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %d$^1)", CHAT_PREFIX, Discount);

fm_set_user_money(id, Money-Discount);
fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, g_iInvisibilityLevel[item]);
ChatColor(id, "%s Вы приобрели '^3Невидимость: %s^1' за ^4%d$", CHAT_PREFIX, g_szInvisibilityMenu[item], Discount);

return menu_destroy(Inv_Menu);
}

public GravityMenu_Handler(id, Grav_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Grav_Menu);

new Money = fm_get_user_money(id);
new Discount = GetItemCost(id, get_pcvar_num(g_pGravityMenuCvars[item]));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %d$^1)", CHAT_PREFIX, Discount);

fm_set_user_money(id, Money-Discount);
fm_set_user_gravity(id, g_iGravityLevel[item]);
ChatColor(id, "%s Вы приобрели '^3%s^1' за ^4%d$", CHAT_PREFIX, g_szGravityMenu[item], Discount);

return menu_destroy(Grav_Menu);
}

public HealthMenu_Handler(id, Hp_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Hp_Menu);

new Money = fm_get_user_money(id);
new Health = get_user_health(id);
new Discount = GetItemCost(id, get_pcvar_num(g_pHealthMenuCvars[item]));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %d$^1)", CHAT_PREFIX, Discount);

fm_set_user_money(id, Money-Discount);
if(Health + g_iHealthLevel[item] > BUYHP_MAX) fm_set_user_health(id, BUYHP_MAX);
else fm_set_user_health(id, Health + g_iHealthLevel[item]);
ChatColor(id, "%s Вы приобрели '^3%s^1' за ^4%d$", CHAT_PREFIX, g_szHealthMenu[item], Discount);

return menu_destroy(Hp_Menu);
}

public ArmorMenu_Handler(id, Ap_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Ap_Menu);

new Money = fm_get_user_money(id);
new Armor = get_user_armor(id);
new Discount = GetItemCost(id, get_pcvar_num(g_pArmorMenuCvars[item]));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %d$^1)", CHAT_PREFIX, Discount);

fm_set_user_money(id, Money-Discount);
if(Armor + g_iArmorLevel[item] > BUYAP_MAX) fm_set_user_armor(id, BUYAP_MAX);
else fm_set_user_armor(id, Armor + g_iArmorLevel[item]);
ChatColor(id, "%s Вы приобрели '^3%s^1' за ^4%d$", CHAT_PREFIX, g_szArmorMenu[item], Discount);

return menu_destroy(Ap_Menu);
}

public SpeedMenu_Handler(id, Speed_Menu, item)
{
if(item == MENU_EXIT) return menu_destroy(Speed_Menu);

new Money = fm_get_user_money(id);
new Discount = GetItemCost(id, get_pcvar_num(g_pSpeedMenuCvars[item]));

if(!Discount) return ChatColor(id, "%s Этот пункт заблокирован!", CHAT_PREFIX);
if(Money < Discount) return ChatColor(id, "%s Недостаточно денег для покупки! (^4нужно %d$^1)", CHAT_PREFIX, Discount);

fm_set_user_money(id, Money-Discount);
g_lvlSpeed[id] = g_iSpeedLevel[item];
g_SpeedUse[id] = true; fwdHamPreFrame(id);
ChatColor(id, "%s Вы приобрели '^3%s^1' за ^4%d$", CHAT_PREFIX, g_szSpeedMenu[item], Discount);

return menu_destroy(Speed_Menu);
}

stock bool:is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}

stock GetItemCost(id, iCost)
{
iCost -= floatround(iCost / 100.0 * g_Discount[id]);
return iCost;
}

stock fm_set_user_maxspeed(id, Float:speed = -1.0)
{
engfunc(EngFunc_SetClientMaxspeed, id, speed);
set_pev(id, pev_maxspeed, speed);
return 1;
}

stock fm_set_user_gravity(id, Float:gravity = 1.0)
{
set_pev(id, pev_gravity, gravity);
return 1;
}

stock fm_set_user_rendering(id, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
new CountAmount = amount * 255 / 100;
new Float:RenderColor[3];
RenderColor[0] = float®;
RenderColor[1] = float(g);
RenderColor[2] = float(b);

set_pev(id, pev_renderfx, fx);
set_pev(id, pev_rendercolor, RenderColor);
set_pev(id, pev_rendermode, render);
set_pev(id, pev_renderamt, float(CountAmount));

return 1;
}

stock fm_set_user_armor(id, armor)
{
set_pev(id, pev_armorvalue, float(armor));
return 1;
}

stock fm_set_user_health(id, health)
{
health > 0 ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
return 1;
}

stock fm_set_user_money(id, money, flash = 0)
{
set_pdata_int(id, OFFSET_CSMONEY, money, 5);
message_begin(MSG_ONE, get_user_msgid("Money"), {0,0,0}, id);
write_long(money);
write_byte(flash);
message_end();
}

stock fm_get_user_money(id)
return get_pdata_int(id, OFFSET_CSMONEY, 5);

stock ChatColor(const id, const szMessage[], any:...)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);

if(!IdMsg) IdMsg = get_user_msgid("SayText");

if(id)
{
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");

for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
return 1;
}

sm_unlimited_clip.sma
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <shopmenu>

new const iItemName[] = { "Бесконечные патроны" };
new iItemID, iCost;
new g_HasClip[33];
new const MAXCLIP[] = { -1, 13, -1, 10, -1, 7, -1, 30, 30, -1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, -1, 7, 30, 30, -1, 50 };

public plugin_init()
{
register_plugin("[SHOP] Unlimited Clip", "1.0", "Realution");

iCost = register_cvar("sm_uc_cost", "1000");

iItemID = shop_register_item(iItemName, get_pcvar_num(iCost));

register_message(get_user_msgid("CurWeapon"), "UnlimAmmo");
RegisterHam(Ham_Spawn, "player", "fwdHamPlayerSpawn", true);
}

public shop_item_selected(id, itemid)
if(itemid != iItemID) g_HasClip[id] = true;

public fwdHamPlayerSpawn(id)
g_HasClip[id] = false;

public UnlimAmmo(msg_id, msg_dest, msg_entity)
{
if(!is_user_alive(msg_entity) && !g_HasClip[msg_entity] || get_msg_arg_int(1) != 1) return;

static iWeapon; iWeapon = get_msg_arg_int(2);
set_pdata_int(get_pdata_cbase(msg_entity, 373), 51, MAXCLIP[iWeapon], 4);
set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[iWeapon]);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: