Knife Menu :
Kod:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "Zombie Knife Menu"
#define VERSION "1.0"
#define AUTHOR "Pepperino"
#define serverismi "Zombie"
new const Knife1Model[66] = "models/bicakmenu/battle_axe.mdl";
new const Knife2Model[66] = "models/bicakmenu/deadric_dagger.mdl";
new const Knife3Model[66] = "models/bicakmenu/dual_katana.mdl";
new const Knife4Model[66] = "models/bicakmenu/karambit_dop.mdl";
new const Knife6Model[66] = "models/bicakmenu/butterfly_marb.mdl";
new const Knife7Model[66] = "models/bicakmenu/m9_autotronic.mdl";
new const Knife8Model[66] = "models/bicakmenu/bayonet_eme.mdl";
new bool: Knife1[33];
new bool: Knife2[33];
new bool: Knife3[33];
new bool: Knife4[33];
new bool: Knife6[33];
new bool: Knife7[33];
new bool: Knife8[33];
new bool: KnifeKitle[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /bicakmenu","Menu")
register_event("CurWeapon", "CurentWeapon", "be", "1=1");
}
public sifirla(id){
Knife1[id] = false;
Knife8[id] = false;
Knife2[id] = false;
Knife3[id] = false;
Knife4[id] = false;
Knife6[id] = false;
Knife7[id] = false;
Knife8[id] = false;
}
public Menu(id) {
if(get_user_team(id)!=2){
new menu = menu_create("\d[\rZombie\y| \rAilesi\d] \r// \wZombie Menu \r\\ ^n\d // cs53.csduragi.com // \r- \r\\ \dwww.facebook.com/wwarzombie \r//", "menu_handler")
menu_additem(menu, "\d[Zombie] \w-- \rBattle Axe", "1", 0);
menu_additem(menu, "\d[Zombie] \w-- \rDeadric Dagger", "2");
menu_additem(menu, "\d[Zombie] \w-- \rDual Katana", "3", 0);
menu_additem(menu, "\d[Zombie] \w-- \rKarambit Doppler", "4", 0);
menu_additem(menu, "\d[Zombie] \w-- \rButterfly Marble Fade", "6", 0);
menu_additem(menu, "\d[Zombie] \w-- \rM9 Autotronic", "7", 0);
menu_additem(menu, "\d[Zombie] \w-- \rBayonet Emerald", "8", 0);
menu_setprop(menu,MPROP_NEXTNAME,"\yIleri")
menu_setprop(menu,MPROP_BACKNAME,"\yGeri")
menu_setprop(menu,MPROP_EXITNAME,"\yCIKIS");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
else{
renkli_yazi(id, "!t[ !g%s !t] !nSadece ctler girebilir",serverismi)
}
return PLUGIN_CONTINUE
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
new adminismi[32]
get_user_name(id,adminismi,31)
switch(key)
{
case 1: {
KnifeKitle[id] = true;
sifirla(id);
Knife1[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nBattle Axe Sectiniz",serverismi)
}
case 2: {
KnifeKitle[id] = true;
sifirla(id);
Knife2[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nDeadric Dagger Sectiniz",serverismi)
}
case 3: {
KnifeKitle[id] = true;
sifirla(id);
Knife3[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nDual Katana Sectiniz",serverismi)
}
case 4: {
KnifeKitle[id] = true;
sifirla(id);
Knife4[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nKarambit Doppler Sectiniz",serverismi)
}
case 5: {
}
case 6: {
KnifeKitle[id] = true;
sifirla(id);
Knife6[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nButterfly Marble Fade Sectiniz",serverismi)
}
case 7: {
KnifeKitle[id] = true;
sifirla(id);
Knife7[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nM9 Autotronic Sectiniz",serverismi)
}
case 8: {
KnifeKitle[id] = true;
sifirla(id);
Knife8[id] = true;
CurentWeapon(id);
renkli_yazi(id, "!t[ !g%s !t] !nBayonet Emerald Sectiniz",serverismi)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public plugin_precache()
{
precache_model(Knife1Model);
precache_model(Knife2Model);
precache_model(Knife3Model);
precache_model(Knife4Model);
precache_model(Knife6Model);
precache_model(Knife7Model);
precache_model(Knife8Model);
}
public client_putinserver(id)
{
Knife1[id] = false;
Knife2[id] = false;
Knife3[id] = false;
Knife4[id] = false;
Knife6[id] = false;
Knife7[id] = false;
Knife8[id] = false;
}
public CurentWeapon(id) {
if(get_user_weapon(id) == CSW_KNIFE) {
if(Knife1[id])
set_pev(id, pev_viewmodel2, Knife1Model);
if(Knife2[id])
set_pev(id, pev_viewmodel2, Knife2Model);
if(Knife3[id])
set_pev(id, pev_viewmodel2, Knife3Model);
if(Knife4[id])
set_pev(id, pev_viewmodel2, Knife4Model);
if(Knife6[id])
set_pev(id, pev_viewmodel2, Knife6Model);
if(Knife7[id])
set_pev(id, pev_viewmodel2, Knife7Model);
if(Knife8[id])
set_pev(id, pev_viewmodel2, Knife8Model);
}
}
/*============================================================
renkli_yazi
============================================================*/
stock renkli_yazi(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
if (id) players[0] = id; else get_players(players, count, "ch");{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
Kod:
/*================================================================================
----------------------
-*- [ZG] Main Menu -*-
----------------------
This plugin is part of Zombie Escape Mod and is distributed under the
terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
================================================================================*/
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define LIBRARY_BUYMENUS "zp50_buy_menus"
#include <zp50_buy_menus>
#define LIBRARY_ZOMBIECLASSES "zp50_class_zombie"
#include <zp50_class_zombie>
#define LIBRARY_HUMANCLASSES "zp50_class_human"
#include <zp50_class_human>
#define LIBRARY_ITEMS "zp50_items"
#include <zp50_items>
#define LIBRARY_ADMIN_MENU "zp50_admin_menu"
#include <zp50_admin_menu>
#define LIBRARY_RANDOMSPAWN "zp50_random_spawn"
#include <zp50_random_spawn>
#include <zp50_colorchat>
#define TASK_WELCOMEMSG 100
// CS Player PData Offsets (win32)
const OFFSET_CSMENUCODE = 205
// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))
new g_ChooseTeamOverrideActive
new cvar_buy_custom_primary, cvar_buy_custom_secondary, cvar_buy_custom_grenades
new cvar_random_spawning
public plugin_init()
{
register_plugin("[ZP] Main Menu", ZP_VERSION_STRING, "ZP Dev Team")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_clcmd("chooseteam", "clcmd_chooseteam")
register_clcmd("say /zpmenu", "clcmd_zpmenu")
register_clcmd("say zpmenu", "clcmd_zpmenu")
// Menus
register_menu("Main Menu", KEYSMENU, "menu_main")
}
public plugin_natives()
{
set_module_filter("module_filter")
set_native_filter("native_filter")
}
public module_filter(const module[])
{
if (equal(module, LIBRARY_BUYMENUS) || equal(module, LIBRARY_ZOMBIECLASSES) || equal(module, LIBRARY_HUMANCLASSES) || equal(module, LIBRARY_ITEMS) || equal(module, LIBRARY_ADMIN_MENU) || equal(module, LIBRARY_RANDOMSPAWN))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
if (!trap)
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public plugin_cfg()
{
cvar_buy_custom_primary = get_cvar_pointer("zp_buy_custom_primary")
cvar_buy_custom_secondary = get_cvar_pointer("zp_buy_custom_secondary")
cvar_buy_custom_grenades = get_cvar_pointer("zp_buy_custom_grenades")
cvar_random_spawning = get_cvar_pointer("zp_random_spawning_csdm")
}
// Event Round Start
public event_round_start()
{
// Show main menu message
remove_task(TASK_WELCOMEMSG)
set_task(2.0, "task_welcome_msg", TASK_WELCOMEMSG)
}
// Welcome Message Task
public task_welcome_msg()
{
renkli_yazi(0,"!n[!gZG!n] !n===== Zombie Giant Mod =====")
renkli_yazi(0,"!n[!gZG!n] !nOyun Menusu Icin [M] Tusuna Basiniz")
renkli_yazi(0,"!n[!gZG!n] !nSilah Menusu Icin Say'a [/guns] Yaziniz")
renkli_yazi(0,"!n[!gZG!n] !nEkstra Esya Menusu Icin Say'a [/items] Yaziniz")
}
public clcmd_chooseteam(id)
{
if (flag_get(g_ChooseTeamOverrideActive, id))
{
show_menu_main(id)
return PLUGIN_HANDLED;
}
flag_set(g_ChooseTeamOverrideActive, id)
return PLUGIN_CONTINUE;
}
public clcmd_zpmenu(id)
{
show_menu_main(id)
}
public client_putinserver(id)
{
flag_set(g_ChooseTeamOverrideActive, id)
}
// Main Menu
show_menu_main(id)
{
static menu[250]
new len
// Title
len += formatex(menu[len], charsmax(menu) - len, "\yZombie Escape^n")
// 1. Buy menu
if (LibraryExists(LIBRARY_BUYMENUS, LibType_Library) && (get_pcvar_num(cvar_buy_custom_primary)
|| get_pcvar_num(cvar_buy_custom_secondary) || get_pcvar_num(cvar_buy_custom_grenades)) && is_user_alive(id))
len += formatex(menu[len], charsmax(menu) - len, "\r1.\w Silah Sec^n", id, "MENU_BUY")
else
len += formatex(menu[len], charsmax(menu) - len, "\d1. Silah Sec^n", id, "MENU_BUY")
// 2. Extra Items
if (LibraryExists(LIBRARY_ITEMS, LibType_Library) && is_user_alive(id))
len += formatex(menu[len], charsmax(menu) - len, "\r2.\w Ekstra Silahlar^n", id, "MENU_EXTRABUY")
else
len += formatex(menu[len], charsmax(menu) - len, "\d2. Ekstra Silahlar^n", id, "MENU_EXTRABUY")
// 9. Admin menu
if (LibraryExists(LIBRARY_ADMIN_MENU, LibType_Library) && is_user_admin(id))
len += formatex(menu[len], charsmax(menu) - len, "\r9.\w Admin Menu", id, "MENU_ADMIN")
else
len += formatex(menu[len], charsmax(menu) - len, "\d9. Admin Menu", id, "MENU_ADMIN")
// 0. Exit
len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w Cikis", id, "MENU_EXIT")
// Fix for AMXX custom menus
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
show_menu(id, KEYSMENU, menu, -1, "Main Menu")
}
// Main Menu
public menu_main(id, key)
{
// Player disconnected?
if (!is_user_connected(id))
return PLUGIN_HANDLED;
switch (key)
{
case 0: // Buy Menu
{
// Custom buy menus enabled?
if (LibraryExists(LIBRARY_BUYMENUS, LibType_Library) && (get_pcvar_num(cvar_buy_custom_primary)
|| get_pcvar_num(cvar_buy_custom_secondary) || get_pcvar_num(cvar_buy_custom_grenades)))
{
// Check whether the player is able to buy anything
if (is_user_alive(id))
zp_buy_menus_show(id)
else
zp_colored_print(id, "%L", id, "CANT_BUY_WEAPONS_DEAD")
}
else
zp_colored_print(id, "%L", id, "CUSTOM_BUY_DISABLED")
}
case 1: // Extra Items
{
// Items enabled?
if (LibraryExists(LIBRARY_ITEMS, LibType_Library))
{
// Check whether the player is able to buy anything
if (is_user_alive(id))
zp_items_show_menu(id)
else
zp_colored_print(id, "%L", id, "CANT_BUY_ITEMS_DEAD")
}
else
zp_colored_print(id, "%L", id, "CMD_NOT_EXTRAS")
}
case 2: // Zombie Classes
{
if (LibraryExists(LIBRARY_ZOMBIECLASSES, LibType_Library) && zp_class_zombie_get_count() > 1)
zp_class_zombie_show_menu(id)
else
zp_colored_print(id, "%L", id, "CMD_NOT_ZCLASSES")
}
case 3: // Human Classes
{
if (LibraryExists(LIBRARY_HUMANCLASSES, LibType_Library) && zp_class_human_get_count() > 1)
zp_class_human_show_menu(id)
else
zp_colored_print(id, "%L", id, "CMD_NOT_HCLASSES")
}
case 4:
{
// Check if player is stuck
if (LibraryExists(LIBRARY_RANDOMSPAWN, LibType_Library) && is_user_alive(id))
{
if (is_player_stuck(id))
{
// Move to an initial spawn
if (get_pcvar_num(cvar_random_spawning))
zp_random_spawn_do(id, true) // random spawn (including CSDM)
else
zp_random_spawn_do(id, false) // regular spawn
}
else
zp_colored_print(id, "%L", id, "CMD_NOT_STUCK")
}
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
case 5: // Help Menu
{
show_help(id)
}
case 6: // Menu override
{
flag_unset(g_ChooseTeamOverrideActive, id)
client_cmd(id, "chooseteam")
}
case 8: // Admin Menu
{
if (LibraryExists(LIBRARY_ADMIN_MENU, LibType_Library) && is_user_admin(id))
zp_admin_menu_show(id)
else
zp_colored_print(id, "%L", id, "NO_ADMIN_MENU")
}
}
return PLUGIN_HANDLED;
}
// Help MOTD
show_help(id)
{
static motd[1024]
new len
len += formatex(motd[len], charsmax(motd) - len, "%L", id, "MOTD_INFO11", "Zombie Escape Mod")
len += formatex(motd[len], charsmax(motd) - len, "%L", id, "MOTD_INFO12")
show_motd(id, motd)
}
// Check if a player is stuck (credits to VEN)
stock is_player_stuck(id)
{
static Float:originF[3]
pev(id, pev_origin, originF)
engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0)
if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
return true;
return false;
}
stock renkli_yazi(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sarı)
replace_all(msg, 190, "!g", "^x04"); // Yeşil Renk
replace_all(msg, 190, "!t", "^x03"); // Takım Renk( CT mavi , T kırmızı )
if (id) players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}