Az lenne a kérdésem , hogy hogyan tudom kicserélni az alap zombis vásárlási menüt egy másikra ?
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta_util>
#include <nvault>
#include <hamsandwich>
#include <zombieplague>
#include <dhudmessage>
#define INI "zp_buymenu.ini"
#define CFG "zp_buymenu.cfg"
#define TXT "zp_buymenu.txt"
#define WAV "items/9mmclip1.wav"
#define FLAG_A (1<<0)
#define FLAG_B (1<<1)
#define FLAG_C (1<<2)
#define FLAG_D (1<<3)
#define FLAG_E (1<<4)
#define FLAG_F (1<<5)
#define FLAG_G (1<<6)
#define FLAG_H (1<<7)
#define FLAG_I (1<<8)
#define FLAG_J (1<<9)
#define FLAG_K (1<<10)
#define MENU 8
new g_money[33], g_menu[MENU], g_maxplayers, g_gamemode, g_nvault, g_count[7],
g_msg_BuyClose, g_msg_StatusIcon, g_msg_Money, g_msg_BlinkAcct,
bool:g_limit[128][33], bool:g_limit_round[128][33],
cvar_no_one_win, cvar_zombies_win, cvar_zombies_loose, cvar_zombies_kill, cvar_humans_win, cvar_humans_loose, cvar_humans_kill,
cvar_show_equipments, cvar_ammo_give, cvar_money_max, cvar_money_save,
Array:g_pistols, Array:g_shotguns, Array:g_submachineguns, Array:g_rifles, Array:g_machineguns, Array:g_equipments_h, Array:g_equipments_z
enum
{
SECTION_NONE = 0,
SECTION_PISTOLS,
SECTION_SHOTGUNS,
SECTION_SUBMACHINEGUNS,
SECTION_RIFLES,
SECTION_MACHINEGUNS,
SECTION_EQUIPMENTS_H,
SECTION_EQUIPMENTS_Z
}
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
enum
{
DROP_PRIMARY = 1,
DROP_SECONDARY
}
new const MAXAMMO[] =
{
-1,
52, // P228 Compact
-1,
90, // Schmidt Scout
1,
32, // XM1014 M4
1,
100, // Ingram MAC-10
90, // Steyr AUG A1
1,
120, // Dual Elite Berettas
100, // FiveseveN
100, // UMP 45
90, // SG-550 Auto-Sniper
90, // IMI Galil
90, // Famas
100, // USP .45 ACP Tactical
120, // Glock 18C
30, // AWP Magnum Sniper
120, // MP5 Navy
200, // M249 Para Machinegun
32, // M3 Super 90
90, // M4A1 Carbine
120, // Schmidt TMP
90, // G3SG1 Auto-Sniper
2,
35, // Desert Eagle .50 AE
90, // SG-552 Commando
90, // AK-47 Kalashnikov
-1,
100 // ES P90
}
new const BUYAMMO[] =
{
-1,
13, // P228 Compact
-1,
30, // Schmidt Scout
-1,
8, // XM1014 M4
-1,
12, // Ingram MAC-10
30, // Steyr AUG A1
-1,
30, // Dual Elite Berettas
50, // FiveseveN
12, // UMP 45
30, // SG-550 Auto-Sniper
30, // IMI Galil
30, // Famas
12, // USP .45 ACP Tactical
30, // Glock 18C
10, // AWP Magnum Sniper
30, // MP5 Navy
30, // M249 Para Machinegun
8, // M3 Super 90
30, // M4A1 Carbine
30, // Schmidt TMP
30, // G3SG1 Auto-Sniper
-1,
7, // Desert Eagle .50 AE
30, // SG-552 Commando
30, // AK-47 Kalashnikov
-1,
50 // ES P90
}
new const TYPEAMMO[][] =
{
"",
"357sig", // P228 Compact
"",
"762nato", // Schmidt Scout
"",
"buckshot", // XM1014 M4
"",
"45acp", // Ingram MAC-10
"556nato", // Steyr AUG A1
"",
"9mm", // Dual Elite Berettas
"57mm", // FiveseveN
"45acp", // UMP 45
"556nato", // SG-550 Auto-Sniper
"556nato", // IMI Galil
"556nato", // Famas
"45acp", // USP .45 ACP Tactical
"9mm", // Glock 18C
"338magnum", // AWP Magnum Sniper
"9mm", // MP5 Navy
"556natobox", // M249 Para Machinegun
"buckshot", // M3 Super 90
"556nato", // M4A1 Carbine
"9mm", // Schmidt TMP
"762nato", // G3SG1 Auto-Sniper
"",
"50ae", // Desert Eagle .50 AE
"556nato", // SG-552 Commando
"762nato", // AK-47 Kalashnikov
"",
"57mm" // ES P90
}
new const COSTAMMO[] =
{
-1,
2, // P228 Compact
-1,
4, // Schmidt Scout
-1,
6, // XM1014 M4
-1,
8, // Ingram MAC-10
9, // Steyr AUG A1
-1,
11, // Dual Elite Berettas
12, // FiveseveN
13, // UMP 45
14, // SG-550 Auto-Sniper
15, // IMI Galil
16, // Famas
17, // USP .45 ACP Tactical
18, // Glock 18C
19, // AWP Magnum Sniper
20, // MP5 Navy
21, // M249 Para Machinegun
22, // M3 Super 90
23, // M4A1 Carbine
24, // Schmidt TMP
25, // G3SG1 Auto-Sniper
-1,
27, // Desert Eagle .50 AE
28, // SG-552 Commando
29, // AK-47 Kalashnikov
-1,
31, // ES P90
}
new const g_buy_commands[][] =
{
"usp", "glock", "deagle", "p228", "elites",
"fn57", "m3", "xm1014", "mp5", "tmp",
"p90", "mac10", "ump45", "ak47", "galil",
"famas", "sg552", "m4a1", "aug", "scout",
"awp", "g3sg1", "sg550", "m249", "vest",
"vesthelm", "flash", "hegren", "sgren", "defuser",
"nvgs", "shield", "primammo", "secammo", "km45",
"9x19mm", "nighthawk", "228compact", "fiveseven", "12gauge",
"autoshotgun", "mp", "c90", "cv47", "defender",
"clarion", "krieg552", "bullpup", "magnum", "d3au1",
"krieg550", "buy", "buyequip", "cl_autobuy", "cl_rebuy",
"cl_setautobuy", "cl_setrebuy", "client_buy_open"
}
public plugin_init()
{
register_plugin("[ZP] Addon: Buy Menu", "09.07.2014", "ErolD")
register_dictionary(TXT)
cvar_no_one_win = register_cvar("bm_no_one_win_reward", "1000")
cvar_zombies_win = register_cvar("bm_zombies_win_reward", "2500")
cvar_zombies_loose = register_cvar("bm_zombies_loose_reward", "500")
cvar_zombies_kill = register_cvar("bm_zombies_kill_reward", "500")
cvar_humans_win = register_cvar("bm_humans_win_reward", "2500")
cvar_humans_loose = register_cvar("bm_humans_loose_reward", "500")
cvar_humans_kill = register_cvar("bm_humans_kill_reward", "500")
cvar_show_equipments = register_cvar("bm_show_equipments", "1")
cvar_ammo_give = register_cvar("bm_ammo_give", "1")
cvar_money_max = register_cvar("bm_money_max", "100000")
cvar_money_save = register_cvar("bm_money_save", "2")
register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0")
RegisterHam(Ham_Player_PreThink, "player", "Ham_Player_PreThink_Pre")
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre")
RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
RegisterHam(Ham_Killed, "player", "Ham_Killed_Pre")
g_nvault = nvault_open("zp_buymenu")
new i, callback, buffer[128], name[64], cost[64], buy_commands = sizeof(g_buy_commands)
callback = menu_makecallback("menu_callback")
for(i = 0; i < MENU; i++)
g_menu[i] = menu_create("BM_MENU", "menu_handler")
for(i = 2; i < MENU; i++)
{
if(i == 7)
menu_addblank(g_menu[0], 0)
menu_additem(g_menu[0], "BM_ITEM", _, _, callback)
}
for(i = 0; i < ArraySize(g_pistols); i++)
{
ArrayGetString(g_pistols, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[1], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_shotguns); i++)
{
ArrayGetString(g_shotguns, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[2], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_submachineguns); i++)
{
ArrayGetString(g_submachineguns, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[3], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_rifles); i++)
{
ArrayGetString(g_rifles, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[4], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_machineguns); i++)
{
ArrayGetString(g_machineguns, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[5], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_equipments_h); i++)
{
ArrayGetString(g_equipments_h, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[6], buffer, _, _, callback)
}
for(i = 0; i < ArraySize(g_equipments_z); i++)
{
ArrayGetString(g_equipments_z, i, buffer, charsmax(buffer))
parse(buffer, name, charsmax(name), buffer, charsmax(buffer), cost, charsmax(cost))
formatex(buffer, charsmax(buffer), "%s \y[%d$]", name, str_to_num(cost))
menu_additem(g_menu[7], buffer, _, _, callback)
}
for(i = 0; i < buy_commands; i++)
register_clcmd(g_buy_commands[i], "clcmd_menu")
register_clcmd("buyammo1", "clcmd_buyammo")
register_clcmd("buyammo2", "clcmd_buyammo")
g_msg_BuyClose = get_user_msgid("BuyClose")
g_msg_StatusIcon = get_user_msgid("StatusIcon")
g_msg_Money = get_user_msgid("Money")
g_msg_BlinkAcct = get_user_msgid("BlinkAcct")
g_maxplayers = get_maxplayers()
}
public plugin_precache()
{
g_pistols = ArrayCreate(128, 1)
g_shotguns = ArrayCreate(128, 1)
g_submachineguns = ArrayCreate(128, 1)
g_rifles = ArrayCreate(128, 1)
g_machineguns = ArrayCreate(128, 1)
g_equipments_h = ArrayCreate(128, 1)
g_equipments_z = ArrayCreate(128, 1)
new configsdir[64], line[1024], buffer[128], name[64], name2[64], cost[64], flags[64], players[64], section
get_configsdir(configsdir, charsmax(configsdir))
format(configsdir, charsmax(configsdir), "%s/%s", configsdir, INI)
if(!file_exists(configsdir))
{
log_to_file("zp_buymenu.log", "%s not loaded", INI)
return;
}
new file = fopen(configsdir, "rt")
while(file && !feof(file))
{
fgets(file, line, charsmax(line))
replace(line, charsmax(line), "^n", "")
if(!line[0] || line[0] == ';')
{
continue;
}
else if(line[0] == '[')
{
section++
continue;
}
else if(line[0] == '"')
{
switch(section)
{
case SECTION_PISTOLS:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))
formatex(buffer, charsmax(buffer), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, name2, cost, flags, players)
ArrayPushString(g_pistols, buffer)
g_count[0]++
}
case SECTION_SHOTGUNS:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))
formatex(buffer, charsmax(buffer), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, name2, cost, flags, players)
ArrayPushString(g_shotguns, buffer)
g_count[1]++
}
case SECTION_SUBMACHINEGUNS:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))
formatex(buffer, charsmax(buffer), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, name2, cost, flags, players)
ArrayPushString(g_submachineguns, buffer)
g_count[2]++
}
case SECTION_RIFLES:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))
formatex(buffer, charsmax(buffer), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, name2, cost, flags, players)
ArrayPushString(g_rifles, buffer)
g_count[3]++
}
case SECTION_MACHINEGUNS:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))
formatex(buffer, charsmax(buffer), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"", name, name2, cost, flags, players)
ArrayPushString(g_machineguns, buffer)
g_count[4]++
}
case SECTION_EQUIPMENTS_H:
{
parse(line, name, charsmax(name), name2, charsmax(name2), cost, charsmax(cost), flags, charsmax(flags), players, charsmax(players))