Steam bonus x flag+

Сообщения
83
Реакции
42
Помог
1 раз(а)
Всем привет. Вот есть код:

Код:
#include <amxmodx>
#include <reapi>

new round;
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

public plugin_init()
{
register_plugin("Steam Bonus", "1.0", "xFit");
register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
RegisterHookChain(RG_CBasePlayer_Spawn, "Player_Spawn", true);
}

public eRestart()
round = 0;

public RoundStart()
round++;

public Player_Spawn(id)
{
if(is_user_steam(id))
{
if(round < -1) return false; // -1 - с первого раунда; 1 - после первого раунда; 2 - после второго раунда... и т.д.
//rg_give_item(id, "weapon_deagle", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
rg_set_user_armor(id, 100, ARMOR_VESTHELM);
new TeamName:team = get_member(id, m_iTeam);
if(team == TEAM_CT) rg_give_defusekit (id, true);
client_print_color(id, print_team_default, "^4[Сервер] ^1Каждый раунд Вам будут выданы ^3бронежилет и шлем ^1(+ ^3набор сапёра^1) за ^4steam ^1клиент.");
}
return PLUGIN_HANDLED;
}

stock give_item_ex(id, currWeaponName[], ammoAmount, dropFlag=0) // © neugomon
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id, weaponsList, weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList, weaponName, charsmax(weaponName));
engclient_cmd(id, "drop", weaponName);
}
}
}
rg_give_item(id, currWeaponName);
rg_set_user_bpammo(id, WeaponIdType:currWeaponID, ammoAmount);
return 1;
}

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;
}


Есть 2 вопроса:
1) Как сделать так, чтобы этот плагин не работал для игроков с определенным флагом (то есть не работал для игроков с правами VIP)
2) Как сделать так, чтобы сообщение
Код:
client_print_color(id, print_team_default, "^4[Сервер] ^1Каждый раунд Вам будут выданы ^3бронежилет и шлем ^1(+ ^3набор сапёра^1) за ^4steam ^1клиент.");

выводилось только 1 раз после подключения к серверу, а не каждый раунд.
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
Код:
#include <amxmodx>
#include <reapi>

new round;
new const SECONDARY_WEAPONS_BITSUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

public plugin_init()
{
register_plugin("Steam Bonus", "1.0", "xFit");
register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
RegisterHookChain(RG_CBasePlayer_Spawn, "Player_Spawn", true);
}

public eRestart()round = 0;
new g_has[33];
public RoundStart()round++;

public client_connect(id)g_has[id]=0;

public Player_Spawn(id)
{
if(is_user_steam(id) && ~get_user_flags(id)&ADMIN_LEVEL_H )
{
if(round < -1) return false; // -1 - с первого раунда; 1 - после первого раунда; 2 - после второго раунда... и т.д.
//rg_give_item(id, "weapon_deagle", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
rg_set_user_armor(id, 100, ARMOR_VESTHELM);
new TeamName:team = get_member(id, m_iTeam);
if(team == TEAM_CT) rg_give_defusekit (id, true),g_has[id]++;
if(g_has[id]<2)client_print_color(id, print_team_default, "^4[Сервер] ^1Каждый раунд Вам будут выданы ^3бронежилет и шлем ^1(+ ^3набор сапёра^1) за ^4steam ^1клиент.");
}
return PLUGIN_HANDLED;
}

stock give_item_ex(id, currWeaponName[], ammoAmount, dropFlag=0) // © neugomon
{
static weaponsList[32], weaponName[32], weaponsNum, currWeaponID;
currWeaponID = get_weaponid(currWeaponName);
if(dropFlag)
{
weaponsNum = 0;
get_user_weapons(id, weaponsList, weaponsNum);
for (new i;i < weaponsNum;i++)
{
if(((1 << currWeaponID) & SECONDARY_WEAPONS_BITSUM && (1 << weaponsList) & SECONDARY_WEAPONS_BITSUM))
{
get_weaponname(weaponsList, weaponName, charsmax(weaponName));
engclient_cmd(id, "drop", weaponName);
}
}
}
rg_give_item(id, currWeaponName);
rg_set_user_bpammo(id, WeaponIdType:currWeaponID, ammoAmount);
return 1;
}

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;
}


попробуй
 
Сообщения
83
Реакции
42
Помог
1 раз(а)
shelru, всё работает прекрасно. Большое спасибо!
Еще вопрос. Как сюда можно прикрепить ещё и выдачу денег?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу