Junior Member
|

02-25-2024
, 14:50
Re: Menu
|
#2
|
Quote:
Originally Posted by nesq
hello, Please help me, I want a plugin to give weapons to simple players. Players who do not have vip. It should not be necessary to have a flag.
The menu should contain:
Ts (1.Ak47 + deagle+ grenades,
2. M4a1+deagle+grenades)
to ct: ( 1. M4a1+deagle+grenades
2. Ak47+deagle+grenades)
I tried to modify a menu plugin for vip and I didn't succeed... I searched on the net and nothing. Please, if someone can help me, I will leave here the plugin intended for vip and which I want to modify to protect this menu for simple players who do not have a flag.
PHP Code:
#include amxmodx
#include amxmisc
#include cstrike
#include fun
#include hamsandwich
#include engine
#include fakemeta
#include csx
#if AMXX_VERSION_NUM < 183
#include colorchat
#endif
#define p. "VIP Clasic"
#define v. "9.0-c"
#define a. "Jică Măcelaru'"
#define VIP_FLAG "r"
new const Float: g_flCoords[][] =
{
{ 0.50, 0.40 },
{ 0.56, 0.44 },
{ 0.60, 0.50 },
{ 0.56, 0.56 },
{ 0.50, 0.60 },
{ 0.44, 0.56 },
{ 0.40, 0.50 },
{ 0.44, 0.44 }
};
new const g_szBeginning[] = "Membrii VIP";
new g_Cvar[30],
g_Round[33] = 0,
g_JumpNum[33], bool:g_DoJump[33],
g_iPosition[33], g_iSize,
g_szMessage[256], SyncHudMessage,
g_VipConfig[] = "vipConfig.cfg",
g_VipMaps[] = "vipMaps.ini",
g_File1[128], g_File2[128],
bool:g_Use[33],
bool:g_Menu[33],
o, m, s;
enum
{
Primary = 1,
Secondary,
Knife,
Grenades,
C4
};
public plugin_init()
{
register_plugin p., v., a.;
register_clcmd "say", "sayCommand";
register_clcmd "say_team", "sayCommand";
g_Cvar[0] = register_cvar("vip_mode", "2");
g_Cvar[1] = register_cvar("vip_tag", "VIP");
g_Cvar[2] = register_cvar("vip_start_hp", "150");
g_Cvar[3] = register_cvar("vip_start_ap", "150");
g_Cvar[4] = register_cvar("vip_start_money", "1000");
g_Cvar[5] = register_cvar("vip_jump", "1");
g_Cvar[6] = register_cvar("vip_hp_kill", "5");
g_Cvar[7] = register_cvar("vip_ap_kill", "5");
g_Cvar[8] = register_cvar("vip_hp_hs", "10");
g_Cvar[9] = register_cvar("vip_ap_hs", "10");
g_Cvar[10] = register_cvar("vip_hp_kill_knife", "15");
g_Cvar[11] = register_cvar("vip_ap_kill_knife", "15");
g_Cvar[12] = register_cvar("vip_hp_hs_knife", "20");
g_Cvar[13] = register_cvar("vip_ap_hs_knife", "20");
g_Cvar[14] = register_cvar("vip_bulletdmg", "1");
g_Cvar[16] = register_cvar("vip_in_out", "1");
g_Cvar[17] = register_cvar("vip_show_chat", "1");
g_Cvar[18] = register_cvar("vip_show_hud", "1");
g_Cvar[19] = register_cvar("vip_max_hp", "200");
g_Cvar[20] = register_cvar("vip_max_ap", "200");
g_Cvar[21] = register_cvar("vip_parachute", "1");
g_Cvar[22] = register_cvar("vip_money_kill", "400");
g_Cvar[23] = register_cvar("vip_money_hs", "600");
g_Cvar[24] = register_cvar("vip_bulletdmg_mode", "1");
g_Cvar[25] = register_cvar("vip_tab", "1");
g_Cvar[26] = register_cvar("vip_defusekit", "1");
g_Cvar[27] = register_cvar("vip_free", "1");
g_Cvar[28] = register_cvar("vip_free_start", "22");
g_Cvar[29] = register_cvar("vip_free_end", "08");
set_task 300.0, "msgInfo", _, _, _, "b";
set_task 1.0, "showVipsH", _, _, _, "b", 0;
set_task 1.0, "GiveVIP" ,_,_,_, "b";
RegisterHam Ham_Spawn, "player", "Spawn", 1;
SyncHudMessage = CreateHudSyncObj();
g_iSize = sizeof(g_flCoords);
register_event "HLTV", "newRound", "a", "1=0", "2=0";
register_event "ResetHUD", "resetModel", "b";
register_event "ResetHUD", "vipTab", "be";
}
public plugin_cfg()
{
new File[64];
get_configsdir File, charsmax(File);
formatex g_File1, charsmax(g_File1), "%s/%s", File, g_VipConfig;
formatex g_File2, charsmax(g_File2), "%s/%s", File, g_VipMaps;
if(!file_exists(g_File1))
{
write_file(g_File1, "; Plugin VIP creat de Jică Măcelaru' (aka. StefaN@CS, Devil., joker`)");
write_file(g_File1, "; Plugin publicat pe www.indungi.ro/forum");
write_file(g_File1, "; https://www.indungi.ro/forum/topic/829508-vip-clasic-90-vip_clasicamxx/");
write_file(g_File1, "; Suport Counter-Strike 1.6 contra-cost");
write_file(g_File1, "; Contact");
write_file(g_File1, "; PM forum: https://www.indungi.ro/forum/profile/349550-jică-măcelaru/");
write_file(g_File1, "; Steam: https://steamcommunity.com/id/baulesscs161/");
write_file(g_File1, "; Paypal: paypal.me/sacotia");
write_file(g_File1, "; Cine considera ca l-am ajutat si ca merit. Multumesc!");
write_file(g_File1, "");
write_file(g_File1, "");
write_file(g_File1, "");
write_file(g_File1, "/////// Vip Configuration File");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Mode");
write_file(g_File1, "// Setati modul de aparitie al meniului");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - meniu prin comanda /vmenu");
write_file(g_File1, "// 2 - meniu din a 3-a runda");
write_file(g_File1, "// Default: '1'");
write_file(g_File1, "vip_mode ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Tag");
write_file(g_File1, "// Setati tagul ce va aparea in chat in mesaje");
write_file(g_File1, "// Default: 'VIP'");
write_file(g_File1, "vip_tag ^"VIP^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Start");
write_file(g_File1, "// Setati viata, armura si banii cu care va incepe vipul fiecare runda");
write_file(g_File1, "// La bani setati cu cati bani in plus va incepe");
write_file(g_File1, "// EX: VIP-ul are 800 bani si la spawn i se vor mai adauga inca 1000");
write_file(g_File1, "// Default: 150, 150, 1000");
write_file(g_File1, "vip_start_hp ^"150^"");
write_file(g_File1, "vip_start_ap ^"150^"");
write_file(g_File1, "vip_start_money ^"1000^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP HP/AP/BANI per kill/hs");
write_file(g_File1, "// Setati cat hp/ap/bani sa primeasca vip-ul pe fiecare kill/hs facut in functie de cum este facut kill-ul/hs-ul");
write_file(g_File1, "// Default: 5, 5, 10, 10, 15, 15, 20, 20, 400, 600");
write_file(g_File1, "vip_hp_kill ^"5^"");
write_file(g_File1, "vip_ap_kill ^"5^"");
write_file(g_File1, "vip_hp_hs ^"10^"");
write_file(g_File1, "vip_ap_hs ^"10^"");
write_file(g_File1, "vip_hp_kill_knife ^"15^"");
write_file(g_File1, "vip_ap_kill_knife ^"15^"");
write_file(g_File1, "vip_hp_hs_knife ^"20^"");
write_file(g_File1, "vip_ap_hs_knife ^"20^"");
write_file(g_File1, "vip_money_kill ^"400^"");
write_file(g_File1, "vip_money_hs ^"600^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Max HP/AP");
write_file(g_File1, "// Setati maximul de hp/ap pe care il poate avea vipul");
write_file(g_File1, "// Default: 200, 200");
write_file(g_File1, "vip_max_hp ^"200^"");
write_file(g_File1, "vip_max_ap ^"200^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Jump");
write_file(g_File1, "// Setati cat poate sari vipul");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - 2x jump");
write_file(g_File1, "// 2 - 3x jump");
write_file(g_File1, "// 3 - 4x jump");
write_file(g_File1, "// ...");
write_file(g_File1, "// z - yx jump");
write_file(g_File1, "Default: 1");
write_file(g_File1, "vip_jump ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Parachute");
write_file(g_File1, "// Setati daca vip-ul va avea sau nu parasuta");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_parachute ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Defuse Kit (Only CT)");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_defusekit ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Show");
write_file(g_File1, "// Setati momentele in care vor fi afisati vipii");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "// Cand intra/iese de pe server cu mesaj in chat");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_in_out ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "// Cand tastezi comanda /vips apare in chat");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_show_chat ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "// Afisare in hud in coltul stang, sus");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_show_hud ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "// Afisare in TAB (ScoreBoard)");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_tab ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Bulletdamage + mode");
write_file(g_File1, "// Setati daca vipul va avea bulletdamage");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_bulletdmg ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "// Setati modul de aparitie al bulletdamageului");
write_file(g_File1, "// vip_bulletdmg trebuie sa fie setat pe 1");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - cerc multi color pentru ambele echipe");
write_file(g_File1, "// 2 - cerc albastru/rosu (CT - albastru / T - rosu)");
write_file(g_File1, "// 3 - centru multi color pentru ambele echipe");
write_file(g_File1, "// 4 - centru albastru/rosu (CT - albastru / T - rosu)");
write_file(g_File1, "// Default: 1");
write_file(g_File1, "vip_bulletdmg_mode ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Model");
write_file(g_File1, "// Setati daca vip-ul va avea model sau nu");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "// Daca doriti sa activati modelul, setati valoarea 1 si schimbati mapa de 2 ori ca sa se descarce modelele");
write_file(g_File1, "// Daca doriti sa dezactivati modelul, setati valoarea 0 si schimbati mapa de 2 ori ca sa nu se mai descarce modelele");
write_file(g_File1, "Default: 1");
write_file(g_File1, "vip_model ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "//// VIP Free");
write_file(g_File1, "// Setati daca va fi vip free sau nu pe server");
write_file(g_File1, "// 0 - dezactivat");
write_file(g_File1, "// 1 - activat");
write_file(g_File1, "vip_free ^"1^"");
write_file(g_File1, "");
write_file(g_File1, "// Setati orele intre care va fi vip free");
write_file(g_File1, "// Ore disponibile");
write_file(g_File1, "// 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12");
write_file(g_File1, "// 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 00");
write_file(g_File1, "// Default: 22, 08");
write_file(g_File1, "vip_free_start ^"22^"");
write_file(g_File1, "vip_free_end ^"08^"");
}
server_cmd "exec %s", g_File1;
if(!file_exists(g_File2))
{
write_file(g_File2, ";--------------- | Lista hartilor pe care meniul vipului este restrictionat | ---------------");
write_file(g_File2, "");
write_file(g_File2, ";Adaugati mapele una sub alta");
write_file(g_File2, "");
write_file(g_File2, "35hp");
write_file(g_File2, "awp_india");
}
}
public sayCommand(id)
{
new Said[10];
read_args Said, charsmax(Said);
remove_quotes(Said);
if(equal(Said, "/vips")) showVipsC(id);
else if(equal(Said, "/vip")) vipInfo(id);
else if(equal(Said, "/vmenu"))
if(get_pcvar_num(g_Cvar[0]) == 1)
if(g_Menu[id] == true)
vipMenu(id);
return 0;
}
public client_putinserver(id)
{
if(!(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
set_task 2.0, "vipIn", id;
g_JumpNum[id] = 0;
g_DoJump[id] = false;
g_Round[id] = 0;
g_Use[id] = false;
g_Menu[id] = true;
return 1;
}
#if AMXX_VERSION_NUM < 183
public client_disconnect(id)
#else
public client_disconnected(id)
#endif
{
if(!(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
set_task 2.0, "vipOut", id;
g_JumpNum[id] = 0;
g_DoJump[id] = false;
g_Round[id] = 0;
g_Use[id] = false;
return 1;
}
public vipInfo(id) show_motd(id, "/addons/amxmodx/configs/vipInfo.txt");
public msgInfo()
{
new tag[32];
get_pcvar_string g_Cvar[1], tag, charsmax(tag);
#if AMXX_VERSION_NUM < 183
ColorChat 0, GREEN, "^3[%s] ^1Tastati in chat ^4/vip ^1pentru a vedea beneficiile si pretul vip-ului.", tag;
#else
client_print_color 0, print_team_default, "^3[%s] ^1Tastați în chat ^4/vip ^1pentru a vedea beneficiile și prețul vip-ului.", tag;
#endif
}
public plugin_precache()
{
g_Cvar[15] = register_cvar("vip_model", "1");
if(get_pcvar_num(g_Cvar[15]) == 0)
return 1;
precache_model "models/player/vip_tero/vip_tero.mdl";
precache_model "models/player/vip_ct/vip_ct.mdl";
return 1;
}
public newRound()
for(new i = 0; i < 32; i++)
g_Use[i] = false;
public vipMenu(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & read_flags(VIP_FLAG)) || g_Use[id])
return 1;
new menu;
switch(cs_get_user_team(id))
{
case CS_TEAM_T:
{
menu = menu_create("\r[\dVIP-Menu\r] \yTerrorists", "Ammunition");
menu_additem menu, "Ak47+Deagle+Set grenade", "1";
menu_additem menu, "M4a1+Deagle+Set grenade", "2";
}
case CS_TEAM_CT:
{
menu = menu_create("\r[\dVIP-Menu\r] \yCounter-Terorists", "Ammunition");
menu_additem menu, "M4a1+Deagle+Set grenade", "1";
menu_additem menu, "Ak47+Deagle+Set grenade", "2";
}
}
menu_display id, menu, 0;
return 1;
}
public Ammunition(id, menu, item)
{
if(item == MENU_EXIT)
return 1;
new access, callback, data[6], szName[64], tag[32];
menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
get_pcvar_string g_Cvar[1], tag, charsmax(tag);
new key = str_to_num(data);
if(cs_get_user_team(id) == CS_TEAM_T)
{
switch(key)
{
case 1:
{
StripWeapons id, Primary;
StripWeapons id, Secondary;
give_item id, "weapon_knife";
give_item id, "weapon_ak47";
give_item id, "weapon_deagle";
give_item id, "weapon_hegrenade";
give_item id, "weapon_flashbang";
cs_set_user_bpammo id, CSW_FLASHBANG, 2;
cs_set_user_bpammo id, CSW_AK47, 90;
cs_set_user_bpammo id, CSW_DEAGLE, 35;
#if AMXX_VERSION_NUM < 183
ColorChat id, GREEN, "^3[%s] ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenade^1.", tag;
#else
client_print_color id, print_team_default, "^3[%s] ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenade^1.", tag;
#endif
g_Use[id] = true;
}
case 2:
{
StripWeapons id, Primary;
StripWeapons id, Secondary;
give_item id, "weapon_knife";
give_item id, "weapon_m4a1";
give_item id, "weapon_deagle";
give_item id, "weapon_hegrenade";
give_item id, "weapon_flashbang"; cs_set_user_bpammo id, CSW_FLASHBANG, 2;
cs_set_user_bpammo id, CSW_M4A1, 90;
cs_set_user_bpammo id, CSW_DEAGLE, 35;
#if AMXX_VERSION_NUM < 183
ColorChat id, GREEN, "^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenade^1.", tag;
#else
client_print_color id, print_team_default, "^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenade^1.", tag;
#endif
g_Use[id] = true;
}
}
if(cs_get_user_team(id) == CS_TEAM_CT)
{
switch(key)
{
case 1:
{
StripWeapons id, Primary;
StripWeapons id, Secondary;
give_item id, "weapon_knife";
give_item id, "weapon_m4a1";
give_item id, "weapon_deagle";
give_item id, "weapon_hegrenade";
give_item id, "weapon_flashbang";
cs_set_user_bpammo id, CSW_FLASHBANG, 2;
cs_set_user_bpammo id, CSW_M4A1, 90;
cs_set_user_bpammo id, CSW_DEAGLE, 35;
#if AMXX_VERSION_NUM < 183
ColorChat id, GREEN, "^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenade^1.", tag;
#else
client_print_color id, print_team_default, "^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenade^1.", tag;
#endif
g_Use[id] = true;
}
case 2:
{
StripWeapons id, Primary;
StripWeapons id, Secondary;
give_item id, "weapon_knife";
give_item id, "weapon_ak47";
give_item id, "weapon_deagle";
give_item id, "weapon_hegrenade";
give_item id, "weapon_flashbang";
cs_set_user_bpammo id, CSW_FLASHBANG, 2;
cs_set_user_bpammo id, CSW_AK47, 90;
cs_set_user_bpammo id, CSW_DEAGLE, 35;
#if AMXX_VERSION_NUM < 183
ColorChat id, GREEN, "^3[%s] ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenade^1.", tag;
#else
client_print_color id, print_team_default, "^3[%s] ^1Ai ales ^Ak47^1+^4Deagle^1+^4Set grenade^1.", tag;
#endif
g_Use[id] = true;
}
", tag;
}
}
menu_destroy(menu);
return 1;
}
public Spawn(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
if(get_pcvar_num(g_Cvar[0]) == 2)
{
if(g_Menu[id] == true)
if(g_Round[id] > 2)
vipMenu(id);
g_Round[id]++;
}
if(get_pcvar_num(g_Cvar[26]) == 1) if(cs_get_user_team(id) == CS_TEAM_CT) give_item id, "item_thighpack";
give_item id, "item_assaultsuit";
set_user_health id, get_pcvar_num(g_Cvar[2]);
set_user_armor id, get_pcvar_num(g_Cvar[3]);
cs_set_user_money id, clamp(cs_get_user_money(id) + get_pcvar_num(g_Cvar[4]), 0, 16000);
new MapName[32],
szLine[128],
iLen;
new Size = file_size(g_File2, 1)
get_mapname(MapName, sizeof(MapName));
for(new i = 0; i < Size; i ++)
{
read_file(g_File2, i, szLine, charsmax(szLine), iLen);
if(equali(MapName, szLine))
g_Menu[id] = false;
}
return 1;
}
public GiveVIP()
{
if(get_pcvar_num(g_Cvar[27]) == 1)
{
time(o, m, s);
if(o >= get_pcvar_num(g_Cvar[28]) && o < 24 || o >= 00 && o < get_pcvar_num(g_Cvar[29]))
{
for(new i = 1; i <= get_maxplayers(); i++)
if(is_user_connected(i) || !is_user_bot(i) || !is_user_hltv(i) || !(get_user_flags(i) & read_flags(VIP_FLAG)))
set_user_flags i, read_flags(VIP_FLAG)
set_hudmessage random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.02, 0, 1.0, 1.0;
show_hudmessage 0, "", get_pcvar_num(g_Cvar[28]), get_pcvar_num(g_Cvar[29]);
}
if(o == get_pcvar_num(g_Cvar[29]) && m == 00 && s == 00) server_cmd("amx_reloadadmins");
}
}
public vipIn(id)
{
if(!(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
if(get_pcvar_num(g_Cvar[16]) == 1)
{
new tag[32], name[32];
get_pcvar_string g_Cvar[1], tag, charsmax(tag);
get_user_name id, name, charsmax(name);
#if AMXX_VERSION_NUM < 183
ColorChat 0, GREEN, "^3[%s] ^4%s ^1s-a conectat pe server.", tag, name;
#else
client_print_color 0, print_team_default, "^3[%s] ^4%s ^1s-a conectat pe server.", tag, name;
#endif
}
return 1;
}
public vipOut(id)
{
if(!(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
if(get_pcvar_num(g_Cvar[16]) == 1)
{
new tag[32], name[32];
get_pcvar_string g_Cvar[1], tag, charsmax(tag);
get_user_name id, name, charsmax(name);
#if AMXX_VERSION_NUM < 183
ColorChat 0, GREEN, "^3[%s] ^4%s ^1s-a deconectat de pe server.", tag, name;
#else
client_print_color 0, print_team_default, "^3[%s] ^4%s ^1s-a deconectat de pe server.", tag, name;
#endif
}
return 1;
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !(get_user_flags(id) & read_flags(VIP_FLAG)))
return 1;
new Float:fallspeed = 100.0 * -1.0;
new BUTTON = get_user_button(id);
new OLDBUTON = get_user_oldbutton(id);
new JUMP_VIP = get_pcvar_num(g_Cvar[5]);
if((BUTTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
{
if(g_JumpNum[id] < JUMP_VIP)
{
g_DoJump[id] = true;
g_JumpNum[id]++
}
}
if((BUTTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
g_JumpNum[id] = 0;
if(get_pcvar_num(g_Cvar[21]) == 1)
{
if(BUTTON & IN_USE)
{
new Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
if(velocity[2] < 0.0)
{
entity_set_int id, EV_INT_sequence, 3;
entity_set_int id, EV_INT_gaitsequence, 1;
entity_set_float id, EV_FL_frame, 1.0;
entity_set_float id, EV_FL_framerate, 1.0;
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed;
entity_set_vector id, EV_VEC_velocity, velocity;
}
}
}
return 0;
}
public client_PostThink(id)
{
if(!is_user_alive(id))
return 1;
if(g_DoJump[id] == true)
{
new Float: velocity[3];
entity_get_vector id, EV_VEC_velocity, velocity;
velocity[2] = random_float(265.0, 285.0);
entity_set_vector id, EV_VEC_velocity, velocity;
g_DoJump[id] = false;
}
return 0;
}
public client_death(killer, victim, weapon, hitplace)
{
if(!(get_user_flags(killer) & read_flags(VIP_FLAG)))
return 1;
new VIP_MAXHP = get_pcvar_num(g_Cvar[19]);
new VIP_HP = get_user_health(killer);
new VIP_MAXAP = get_pcvar_num(g_Cvar[20]);
new VIP_AP = get_user_armor(killer);
if(!(hitplace == HIT_HEAD) && !(weapon == CSW_KNIFE))
{
if(VIP_HP + get_pcvar_num(g_Cvar[6]) >= VIP_MAXHP) set_user_health killer, VIP_MAXHP;
else set_user_health killer, VIP_HP + get_pcvar_num(g_Cvar[6]);
if(VIP_AP + get_pcvar_num(g_Cvar[7]) >= VIP_MAXAP) set_user_armor killer, VIP_MAXAP;
else set_user_armor killer, VIP_AP + get_pcvar_num(g_Cvar[7]);
cs_set_user_money killer, clamp(cs_get_user_money(killer) - 300 + get_pcvar_num(g_Cvar[22]), 0, 16000);
}
if(hitplace == HIT_HEAD && !(weapon == CSW_KNIFE))
{
if(VIP_HP + get_pcvar_num(g_Cvar[8])>= VIP_MAXHP) set_user_health killer, VIP_MAXHP;
else set_user_health killer, VIP_HP + get_pcvar_num(g_Cvar[8]);
if(VIP_AP + get_pcvar_num(g_Cvar[9]) >= VIP_MAXAP) set_user_armor killer, VIP_MAXAP;
else set_user_armor killer, VIP_AP + get_pcvar_num(g_Cvar[9]);
cs_set_user_money killer, clamp(cs_get_user_money(killer) - 300 + get_pcvar_num(g_Cvar[23]), 0, 16000);
}
if(weapon == CSW_KNIFE && !(hitplace == HIT_HEAD))
{
if(VIP_HP + get_pcvar_num(g_Cvar[10]) >= VIP_MAXHP) set_user_health killer, VIP_MAXHP;
else set_user_health killer, VIP_HP + get_pcvar_num(g_Cvar[10]);
if(VIP_AP + get_pcvar_num(g_Cvar[11]) >= VIP_MAXAP) set_user_armor killer, VIP_MAXAP;
else set_user_armor killer, VIP_AP + get_pcvar_num(g_Cvar[11]);
cs_set_user_money killer, clamp(cs_get_user_money(killer) - 300 + get_pcvar_num(g_Cvar[22]), 0, 16000);
}
if(weapon == CSW_KNIFE && (hitplace == HIT_HEAD))
{
if(VIP_HP + get_pcvar_num(g_Cvar[12]) >= VIP_MAXHP) set_user_health killer, VIP_MAXHP;
else set_user_health killer, VIP_HP + get_pcvar_num(g_Cvar[12]);
if(VIP_AP + get_pcvar_num(g_Cvar[13]) >= VIP_MAXAP) set_user_armor killer, VIP_MAXAP;
else set_user_armor killer, VIP_AP + get_pcvar_num(g_Cvar[13]);
cs_set_user_money killer, clamp(cs_get_user_money(killer) - 300 + get_pcvar_num(g_Cvar[23]), 0, 16000);
}
return 1;
}
public client_damage(iAttacker, iVictim, iDamage)
{
if(!(get_user_flags(iAttacker) & read_flags(VIP_FLAG)))
return 1;
if(get_pcvar_num(g_Cvar[14]) == 1)
{
if(get_pcvar_num(g_Cvar[24]) == 1)
{
if(++g_iPosition[iAttacker] == g_iSize)
g_iPosition[iAttacker] = 0;
set_hudmessage random_num(0, 255), random_num(0, 255), random_num(0, 255), Float: g_flCoords[g_iPosition[iAttacker]][0], Float: g_flCoords[g_iPosition[iAttacker]][1], 0, 0.1, 2.5, 0.02, 0.02, -1;
show_hudmessage iAttacker, "%i", iDamage;
}
else if(get_pcvar_num(g_Cvar[24]) == 2)
{
if(++g_iPosition[iAttacker] == g_iSize)
g_iPosition[iAttacker] = 0;
if(cs_get_user_team(iAttacker) == CS_TEAM_CT)
{
set_hudmessage 42, 170, 255, Float: g_flCoords[g_iPosition[iAttacker]][0], Float: g_flCoords[g_iPosition[iAttacker]][1], 0, 0.1, 2.5, 0.02, 0.02, -1;
show_hudmessage iAttacker, "%i", iDamage;
}
else if(cs_get_user_team(iAttacker) == CS_TEAM_T)
{
set_hudmessage 200, 0, 0, Float: g_flCoords[g_iPosition[iAttacker]][0], Float: g_flCoords[g_iPosition[iAttacker]][1], 0, 0.1, 2.5, 0.02, 0.02, -1;
show_hudmessage iAttacker, "%i", iDamage;
}
}
else if(get_pcvar_num(g_Cvar[24]) == 3)
{
set_hudmessage random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.5, 0, 0.0, 0.1, 0.1, 0.1;
show_hudmessage iAttacker, "%i", iDamage;
}
else if(get_pcvar_num(g_Cvar[24]) == 4)
{
if(cs_get_user_team(iAttacker) == CS_TEAM_CT)
{
set_hudmessage 42, 170, 255, -1.0, 0.5, 0, 0.0, 0.1, 0.1, 0.1;
show_hudmessage iAttacker, "%i", iDamage;
}
else if(cs_get_user_team(iAttacker) == CS_TEAM_T)
{
set_hudmessage 200, 0, 0, -1.0, 0.5, 0, 0.0, 0.1, 0.1, 0.1;
show_hudmessage iAttacker, "%i", iDamage;
}
}
}
return 1;
}
public showVipsC(user)
{
if(get_pcvar_num(g_Cvar[17]) == 1)
{
new tag[32];
get_pcvar_string g_Cvar[1], tag, charsmax(tag);
new vipNames[33][32];
new message[256];
new id, count, x, len;
for(id = 0 ; id <= get_maxplayers() ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & read_flags(VIP_FLAG))
get_user_name id, vipNames[count++], charsmax(vipNames[]);
len = format(message, 255, "^3[%s] ^1VIP-ii online sunt:^4 ", tag);
if(count > 0)
{
for(x = 0 ; x < count ; x++)
{
len += format(message[len], 255-len, "%s%s ", vipNames[x], x < (count-1) ? ", ":"");
if(len > 96)
{
print_message(user, message);
len = format(message, 255, " ");
}
}
print_message(user, message);
}
else
{
#if AMXX_VERSION_NUM < 183
ColorChat user, GREEN, "^3[%s] ^1Nu sunt ^4VIP^1-i online.", tag;
#else
client_print_color user, print_team_default, "^3[%s] ^1Nu sunt ^4VIP^1-i online.", tag;
#endif
}
}
return 0;
}
print_message(id, msg[])
{
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
write_byte(id);
write_string(msg);
message_end();
}
public showVipsH()
{
if(get_pcvar_num(g_Cvar[18]) == 1)
{
static iPlayers[32];
static iPlayersNum;
get_players(iPlayers, iPlayersNum, "ch");
if(!iPlayersNum)
return 1;
static iVipsConnected, szVipsNames[128], szName[32];
formatex(szVipsNames, sizeof (szVipsNames) -1, "");
iVipsConnected = 0;
static id, i;
for(i = 0; i < iPlayersNum; i++)
{
id = iPlayers[i];
if(get_user_flags(id) & read_flags(VIP_FLAG))
{
get_user_name(id, szName, sizeof(szName) -1);
add(szVipsNames, sizeof(szVipsNames) -1, szName);
add(szVipsNames, sizeof(szVipsNames) -1, "^n");
iVipsConnected++;
}
}
formatex(g_szMessage, sizeof(g_szMessage) -1, "%s (%i)^n%s", g_szBeginning, iVipsConnected, szVipsNames);
set_hudmessage 25, 255, 25, 0.01, 0.15, 0, 0.0, 1.0, 0.1, 0.1, -1;
ShowSyncHudMsg 0, SyncHudMessage, g_szMessage;
}
return 0;
}
public resetModel(id, level, cid)
{
if(!is_user_alive(id) || !(get_user_flags(id) & read_flags(VIP_FLAG)) || get_pcvar_num(g_Cvar[15]) == 0)
return 1;
new CsTeams:userTeam = cs_get_user_team(id)
if(userTeam == CS_TEAM_T)
cs_set_user_model id, "vip_tero";
else if(userTeam == CS_TEAM_CT)
cs_set_user_model id, "vip_ct";
else
cs_reset_user_model(id);
return 0;
}
public vipTab(id)
if(get_pcvar_num(g_Cvar[25]) == 1)
set_task 0.5, "setVipTab", id + 6910;
public setVipTab(TaskID)
{
new id = TaskID - 6910;
if(get_user_flags(id) & read_flags(VIP_FLAG))
{
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"));
write_byte(id);
write_byte(4);
message_end();
}
return 1;
}
stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
new iReturn;
if(is_user_alive(id))
{
new iEntity, iWeapon;
while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
}
return iReturn;
}
stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
if ( !( 1 <= iSlot <= 5 ) )
return 0;
iEntity = 0;
const m_rgpPlayerItems_Slot0 = 367;
const m_iId = 43;
const XO_WEAPONS = 4;
const XO_PLAYER = 5;
iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );
return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
}
stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
new iWeapon
if( !iSlot )
{
static const iWeaponsSlots[] = {
-1,
2, //CSW_P228
-1,
1, //CSW_SCOUT
4, //CSW_HEGRENADE
1, //CSW_XM1014
5, //CSW_C4
1, //CSW_MAC10
1, //CSW_AUG
4, //CSW_SMOKEGRENADE
2, //CSW_ELITE
2, //CSW_FIVESEVEN
1, //CSW_UMP45
1, //CSW_SG550
1, //CSW_GALIL
1, //CSW_FAMAS
2, //CSW_USP
2, //CSW_GLOCK18
1, //CSW_AWP
1, //CSW_MP5NAVY
1, //CSW_M249
1, //CSW_M3
1, //CSW_M4A1
1, //CSW_TMP
1, //CSW_G3SG1
4, //CSW_FLASHBANG
2, //CSW_DEAGLE
1, //CSW_SG552
1, //CSW_AK47
3, //CSW_KNIFE
1 //CSW_P90
}
iSlot = iWeaponsSlots[iCswId]
}
const XTRA_OFS_PLAYER = 5
const m_rgpPlayerItems_Slot0 = 367
iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)
const XTRA_OFS_WEAPON = 4
const m_pNext = 42
const m_iId = 43
while( iWeapon > 0 )
{
if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
{
break
}
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
}
if( iWeapon > 0 )
{
const m_pActiveItem = 373
if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
}
if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
{
user_has_weapon(id, iCswId, 0)
ExecuteHamB(Ham_Item_Kill, iWeapon)
return 1
}
}
return 0
}
-not to work on maps like fy_ awp_
-To give the menu from the 3rd round.
-Let the player still have the parachute.
-And keep the bullet damage.
That's it, maybe someone can help me, please, I'm so dumb
|
I found this plugin, maybe it can be modified here please, thanks
PHP Code:
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < cstrike >
#include < fakemeta_util >
#include < hamsandwich >
#include < fun >
#define PLUGIN "ANTI-FURIEN Weapons CLASIC"
#define VERSION "1.0"
#define AUTHOR "50Cent # HackeR"
new bool:AidejaChoosen[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
// Add your code here...
register_clcmd("say /weapons","ClcmdWeapons");
RegisterHam(Ham_Spawn, "player", "Inceput_runda", 1);
}
public ClcmdWeapons(id) {
if(AidejaChoosen[id] ) {
ChatColor(id, "!t[Weapons] Ai ales aceasta runda arma");
return PLUGIN_HANDLED;
}
if( get_user_team( id ) == 2 ) {
WeaponMenu(id)
}
if( get_user_team( id ) == 1 ) {
WeaponMenu(id)
}
return PLUGIN_HANDLED;
}
public Inceput_runda(id) {
if(is_user_alive(id)) {
give_item(id, "weapon_knife");
AidejaChoosen[id] = false;
if(get_user_team(id) == 2) {
WeaponMenu(id);
}
if(get_user_team(id) == 1) {
WeaponMenu(id);
}
}
}
public WeaponMenu(id) {
if(is_user_alive(id)) {
new menu = menu_create ("Weapons Menu Clasic \r[Clasic Weapon]", "CaseWeaponMenu");
menu_additem(menu, "Ak47", "1");
menu_additem(menu, "M4a1", "2");
menu_additem(menu, "MP5 Navy", "3");
menu_additem(menu, "XM1014", "4");
menu_additem(menu, "M3", "5");
menu_additem(menu, "M249", "6");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0 );
}
else
{
ChatColor(id, "!g[Weapons] !nNu. poti alege arma cand esti mort");
}
}
public CaseWeaponMenu(id, menu, item) {
if(item == MENU_EXIT || !is_user_alive(id) ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data [6], szName [64];
new access, callback;
menu_item_getinfo (menu, item, access, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num (data);
switch (key)
{
case 1:
{
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47,250);
ChatColor(id, "!g[Weapons] !nAi ales Ak47");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
case 2:
{
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1,250);
ChatColor(id, "!g[Weapons] !nAi ales M4a1");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
case 3:
{
give_item(id, "weapon_mp5navy");
cs_set_user_bpammo(id, CSW_MP5NAVY,250);
ChatColor(id, "!g[Weapons] !nAi ales Mp5Navy");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
case 4:
{
give_item(id, "weapon_xm1014");
cs_set_user_bpammo(id, CSW_XM1014,250);
ChatColor(id, "!g[Weapons] !nAi ales Xm1014");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
case 5:
{
give_item(id, "weapon_m3");
cs_set_user_bpammo(id, CSW_M3,250);
ChatColor(id, "!g[Weapons] !nAi ales M3");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
case 6:
{
give_item(id, "weapon_m249");
cs_set_user_bpammo(id, CSW_M249,250);
ChatColor(id, "!g[Weapons] !nAi Ales M249");
set_task( 0.1, "PistolSpawn", id )
AidejaChoosen[ id ] = true;
}
}
menu_destroy (menu);
return PLUGIN_HANDLED;
}
public PistolSpawn(id) {
if(is_user_alive(id) && get_user_team(id) == 2) {
new menu = menu_create ("Secundary \rWeapon", "CaseWeaponSecundar");
menu_additem(menu, "Deagle", "1");
menu_additem(menu, "Fiveseven", "2");
menu_additem(menu, "Usp", "3");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0 );
}
}
public CaseWeaponSecundar(id, menu, item) {
if(item == MENU_EXIT || !is_user_alive(id)) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data [6], szName [64];
new access, callback;
menu_item_getinfo (menu, item, access, data,charsmax (data), szName,charsmax (szName), callback);
new key = str_to_num (data);
switch (key)
{
case 1:
{
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 50);
AidejaChoosen[ id ] = true;
}
case 2:
{
give_item(id, "weapon_fiveseven");
cs_set_user_bpammo(id, CSW_FIVESEVEN, 50);
AidejaChoosen[ id ] = true;
}
case 3:
{
give_item(id, "weapon_usp");
cs_set_user_bpammo(id, CSW_USP, 50);
AidejaChoosen[ id ] = true;
}
}
menu_destroy (menu);
return PLUGIN_HANDLED;
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Green Color
replace_all(msg, 190, "!n", "^1"); // Default Color
replace_all(msg, 190, "!t", "^3"); // Team Color
replace_all(msg, 190, "!t2", "^0"); // Team2 Color
if (id) players[0] = id; else get_players(players, count, "ch"); {
for (new i = 0; i < count; i++) {
if (is_user_connected(players)) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}
|
|