Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Kosz

Prośba o kompilacje pluginukompilacja pluginu

kosz prośba kompilacja pluginu plugin

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 krzak996

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:13
Offline

Napisano 07.02.2015 03:58

Chciałbym prosić o kompilacje pluginu, mi wyskakuje błąd:

zp50_admin_menu.sma(17) : fatal error 100: cannot read from file: "amx_settings_api"

 

Wiem, że da się kompilować wewnętrznie lecz nie potrafię.. ;x

NAZWA:

 

zp50_admin_menu

 

KOD:

 

/*================================================================================

 
-----------------------
-*- [ZP] Admin Menu -*-
-----------------------
 
This plugin is part of Zombie Plague Mod and is distributed under the
terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
 
================================================================================*/
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <amx_settings_api>
#include <zp50_core>
#include <zp50_gamemodes>
#define LIBRARY_NEMESIS "zp50_class_nemesis"
#include <zp50_class_nemesis>
#define LIBRARY_ASSASSIN "zp50_class_assassin"
#include <zp50_class_assassin>
#define LIBRARY_SURVIVOR "zp50_class_survivor"
#include <zp50_class_survivor>
#define LIBRARY_SNIPER "zp50_class_sniper"
#include <zp50_class_sniper>
#include <zp50_admin_commands>
#include <zp50_colorchat>
 
// Settings file
new const ZP_SETTINGS_FILE[] = "zombieplague.ini"
 
#define ACCESSFLAG_MAX_LENGTH 2
 
// Access flags
new g_access_make_zombie[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_make_human[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_make_nemesis[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_make_assassin[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_make_survivor[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_make_sniper[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_respawn_players[ACCESSFLAG_MAX_LENGTH] = "d"
new g_access_start_game_mode[ACCESSFLAG_MAX_LENGTH] = "d"
 
// Admin menu actions
enum
{
ACTION_INFECT_CURE = 0,
ACTION_MAKE_NEMESIS,
ACTION_MAKE_ASSASSIN,
ACTION_MAKE_SURVIVOR,
ACTION_MAKE_SNIPER,
ACTION_RESPAWN_PLAYER,
ACTION_START_GAME_MODE
}
 
// 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
 
// CS Player PData Offsets (win32)
const OFFSET_CSMENUCODE = 205
 
#define MAXPLAYERS 32
 
// For player/mode list menu handlers
#define PL_ACTION g_menu_data[id][0]
#define MENU_PAGE_PLAYERS g_menu_data[id][1]
#define MENU_PAGE_GAME_MODES g_menu_data[id][2]
new g_menu_data[MAXPLAYERS+1][3]
 
new g_MaxPlayers
 
public plugin_init()
{
register_plugin("[ZP] Admin Menus", ZP_VERSION_STRING, "ZP Dev Team")
 
g_MaxPlayers = get_maxplayers()
 
register_menu("Admin Menu", KEYSMENU, "menu_admin")
register_clcmd("say /adminmenu", "clcmd_adminmenu")
register_clcmd("say adminmenu", "clcmd_adminmenu")
}
 
public plugin_precache()
{
// Load from external file, save if not found
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE ZOMBIE", g_access_make_zombie, charsmax(g_access_make_zombie)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE ZOMBIE", g_access_make_zombie)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE HUMAN", g_access_make_human, charsmax(g_access_make_human)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE ZOMBIE", g_access_make_human)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE NEMESIS", g_access_make_nemesis, charsmax(g_access_make_nemesis)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE NEMESIS", g_access_make_nemesis)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE ASSASSIN", g_access_make_assassin, charsmax(g_access_make_assassin)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE ASSASSIN", g_access_make_assassin)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE SURVIVOR", g_access_make_survivor, charsmax(g_access_make_survivor)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE SURVIVOR", g_access_make_survivor)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE SNIPER", g_access_make_sniper, charsmax(g_access_make_sniper)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "MAKE SNIPER", g_access_make_sniper)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "RESPAWN PLAYERS", g_access_respawn_players, charsmax(g_access_respawn_players)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "RESPAWN PLAYERS", g_access_respawn_players)
if (!amx_load_setting_string(ZP_SETTINGS_FILE, "Access Flags", "START GAME MODE", g_access_start_game_mode, charsmax(g_access_start_game_mode)))
amx_save_setting_string(ZP_SETTINGS_FILE, "Access Flags", "START GAME MODE", g_access_start_game_mode)
}
 
public plugin_natives()
{
register_library("zp50_admin_menu")
register_native("zp_admin_menu_show", "native_admin_menu_show")
 
set_module_filter("module_filter")
set_native_filter("native_filter")
}
public module_filter(const module[])
{
if (equal(module, LIBRARY_NEMESIS) || equal(module, LIBRARY_ASSASSIN) || equal(module, LIBRARY_SURVIVOR) || equal(module, LIBRARY_SNIPER))
return PLUGIN_HANDLED;
 
return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
if (!trap)
return PLUGIN_HANDLED;
 
return PLUGIN_CONTINUE;
}
 
public native_admin_menu_show(plugin_id, num_params)
{
new id = get_param(1)
 
if (!is_user_connected(id))
{
log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id)
return false;
}
 
show_menu_admin(id)
return true;
}
 
public client_disconnect(id)
{
// Reset remembered menu pages
MENU_PAGE_GAME_MODES = 0
MENU_PAGE_PLAYERS = 0
}
 
public clcmd_adminmenu(id)
{
show_menu_admin(id)
}
 
// Admin Menu
show_menu_admin(id)
{
static menu[250]
new len, userflags = get_user_flags(id)
 
// Title
len += formatex(menu[len], charsmax(menu) - len, "\y%L:^n^n", id, "MENU_ADMIN_TITLE")
 
// 1. Infect/Cure command
if (userflags & (read_flags(g_access_make_zombie) | read_flags(g_access_make_human)))
len += formatex(menu[len], charsmax(menu) - len, "\r1.\w %L^n", id, "MENU_ADMIN1")
else
len += formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "MENU_ADMIN1")
 
// 2. Nemesis command
if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && (userflags & read_flags(g_access_make_nemesis)))
len += formatex(menu[len], charsmax(menu) - len, "\r2.\w %L^n", id, "MENU_ADMIN2")
else
len += formatex(menu[len], charsmax(menu) - len, "\d2. %L^n", id, "MENU_ADMIN2")
 
// 3. Assassin command
if (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && (userflags & read_flags(g_access_make_assassin)))
len += formatex(menu[len], charsmax(menu) - len, "\r3.\w %L^n", id, "MENU_ADMIN3")
else
len += formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id, "MENU_ADMIN3")
 
// 3. Survivor command
if (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && (userflags & read_flags(g_access_make_survivor)))
len += formatex(menu[len], charsmax(menu) - len, "\r4.\w %L^n", id, "MENU_ADMIN4")
else
len += formatex(menu[len], charsmax(menu) - len, "\d4. %L^n", id, "MENU_ADMIN4")
 
// 5. Sniper command
if (LibraryExists(LIBRARY_SNIPER, LibType_Library) && (userflags & read_flags(g_access_make_sniper)))
len += formatex(menu[len], charsmax(menu) - len, "\r5.\w %L^n", id, "MENU_ADMIN5")
else
len += formatex(menu[len], charsmax(menu) - len, "\d5. %L^n", id, "MENU_ADMIN5")
 
// 6. Respawn command
if (userflags & read_flags(g_access_respawn_players))
len += formatex(menu[len], charsmax(menu) - len, "\r6.\w %L^n", id, "MENU_ADMIN6")
else
len += formatex(menu[len], charsmax(menu) - len, "\d6. %L^n", id, "MENU_ADMIN6")
 
// 7. Start Game Mode command
if (userflags & read_flags(g_access_start_game_mode))
len += formatex(menu[len], charsmax(menu) - len, "\r7.\w %L^n", id, "MENU_ADMIN_START_GAME_MODE")
else
len += formatex(menu[len], charsmax(menu) - len, "\d7. %L^n", id, "MENU_ADMIN_START_GAME_MODE")
 
// 0. Exit
len += formatex(menu[len], charsmax(menu) - len, "^n\r0.\w %L", id, "MENU_EXIT")
 
// Fix for AMXX custom menus
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
show_menu(id, KEYSMENU, menu, -1, "Admin Menu")
}
 
// Player List Menu
show_menu_player_list(id)
{
static menu[250], player_name[32]
new menuid, player, buffer[2], userflags = get_user_flags(id)
 
// Title
switch (PL_ACTION)
{
case ACTION_INFECT_CURE: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN1")
case ACTION_MAKE_NEMESIS: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN2")
case ACTION_MAKE_ASSASSIN: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN3")
case ACTION_MAKE_SURVIVOR: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN4")
case ACTION_MAKE_SNIPER: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN5")
case ACTION_RESPAWN_PLAYER: formatex(menu, charsmax(menu), "%L\r", id, "MENU_ADMIN6")
}
menuid = menu_create(menu, "menu_player_list")
 
// Player List
for (player = 0; player <= g_MaxPlayers; player++)
{
// Skip if not connected
if (!is_user_connected(player))
continue;
 
// Get player's name
get_user_name(player, player_name, charsmax(player_name))
 
// Format text depending on the action to take
switch (PL_ACTION)
{
case ACTION_INFECT_CURE: // Infect/Cure command
{
if (zp_core_is_zombie(player))
{
if ((userflags & read_flags(g_access_make_human)) && is_user_alive(player))
formatex(menu, charsmax(menu), "%s \r[%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
}
else
{
if ((userflags & read_flags(g_access_make_zombie)) && is_user_alive(player))
formatex(menu, charsmax(menu), "%s \y[%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
}
}
case ACTION_MAKE_NEMESIS: // Nemesis command
{
if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && (userflags & read_flags(g_access_make_nemesis)) && is_user_alive(player) && !zp_class_nemesis_get(player))
{
if (zp_core_is_zombie(player))
formatex(menu, charsmax(menu), "%s \r[%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
else
formatex(menu, charsmax(menu), "%s \y[%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
}
else
{
if( zp_core_is_zombie(player) )
{
if( LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player) )
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_NEMESIS");
else if(LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ASSASSIN");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ZOMBIE");
}
else
{
if( LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SURVIVOR");
else if( LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SNIPER");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_HUMAN");
}
}
}
case ACTION_MAKE_ASSASSIN: // Assassin command
{
if (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && (userflags & read_flags(g_access_make_assassin)) && is_user_alive(player) && !zp_class_assassin_get(player))
{
if (zp_core_is_zombie(player))
formatex(menu, charsmax(menu), "%s \r[%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
else
formatex(menu, charsmax(menu), "%s \y[%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
}
else
{
if( zp_core_is_zombie(player) )
{
if( LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player) )
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_NEMESIS");
else if(LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ASSASSIN");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ZOMBIE");
}
else
{
if( LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SURVIVOR");
else if( LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SNIPER");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_HUMAN");
}
}
}
case ACTION_MAKE_SURVIVOR: // Survivor command
{
if (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && (userflags & read_flags(g_access_make_survivor)) && is_user_alive(player) && !zp_class_survivor_get(player))
{
if (zp_core_is_zombie(player))
formatex(menu, charsmax(menu), "%s \r[%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
else
formatex(menu, charsmax(menu), "%s \y[%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
}
else
{
if( zp_core_is_zombie(player) )
{
if( LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player) )
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_NEMESIS");
else if(LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ASSASSIN");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ZOMBIE");
}
else
{
if( LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SURVIVOR");
else if( LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SNIPER");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_HUMAN");
}
}
}
case ACTION_MAKE_SNIPER: // Sniper command
{
if (LibraryExists(LIBRARY_SNIPER, LibType_Library) && (userflags & read_flags(g_access_make_sniper)) && is_user_alive(player) && !zp_class_sniper_get(player))
{
if (zp_core_is_zombie(player))
formatex(menu, charsmax(menu), "%s \r[%L]", player_name, id, (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player)) ? "CLASS_NEMESIS" : (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player)) ? "CLASS_ASSASSIN" : "CLASS_ZOMBIE")
else
formatex(menu, charsmax(menu), "%s \y[%L]", player_name, id, (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player)) ? "CLASS_SURVIVOR" : (LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player)) ? "CLASS_SNIPER" : "CLASS_HUMAN")
}
else
{
if( zp_core_is_zombie(player) )
{
if( LibraryExists(LIBRARY_NEMESIS, LibType_Library) && zp_class_nemesis_get(player) )
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_NEMESIS");
else if(LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && zp_class_assassin_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ASSASSIN");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_ZOMBIE");
}
else
{
if( LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && zp_class_survivor_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SURVIVOR");
else if( LibraryExists(LIBRARY_SNIPER, LibType_Library) && zp_class_sniper_get(player))
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_SNIPER");
else
formatex(menu, charsmax(menu), "\d%s [%L]", player_name, id, "CLASS_HUMAN");
}
}
}
case ACTION_RESPAWN_PLAYER: // Respawn command
{
if ((userflags & read_flags(g_access_respawn_players)) && allowed_respawn(player))
formatex(menu, charsmax(menu), "%s", player_name)
else
formatex(menu, charsmax(menu), "\d%s", player_name)
}
}
 
// Add player
buffer[0] = player
buffer[1] = 0
menu_additem(menuid, menu, buffer)
}
 
// Back - Next - Exit
formatex(menu, charsmax(menu), "%L", id, "MENU_BACK")
menu_setprop(menuid, MPROP_BACKNAME, menu)
formatex(menu, charsmax(menu), "%L", id, "MENU_NEXT")
menu_setprop(menuid, MPROP_NEXTNAME, menu)
formatex(menu, charsmax(menu), "%L", id, "MENU_EXIT")
menu_setprop(menuid, MPROP_EXITNAME, menu)
 
// If remembered page is greater than number of pages, clamp down the value
MENU_PAGE_PLAYERS = min(MENU_PAGE_PLAYERS, menu_pages(menuid)-1)
 
// Fix for AMXX custom menus
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
menu_display(id, menuid, MENU_PAGE_PLAYERS)
}
 
// Game Mode List Menu
show_menu_game_mode_list(id)
{
static menu[128], transkey[64]
new menuid, index, itemdata[2], game_mode_count = zp_gamemodes_get_count()
 
// Title
formatex(menu, charsmax(menu), "%L:\r", id, "MENU_INFO4")
menuid = menu_create(menu, "menu_game_mode_list")
 
// Item List
for (index = 0; index < game_mode_count; index++)
{
// Add Game Mode Name
zp_gamemodes_get_name(index, menu, charsmax(menu))
 
// ML support for mode name
formatex(transkey, charsmax(transkey), "MODENAME %s", menu)
if (GetLangTransKey(transkey) != TransKey_Bad) formatex(menu, charsmax(menu), "%L", id, transkey)
 
itemdata[0] = index
itemdata[1] = 0
menu_additem(menuid, menu, itemdata)
}
 
// No game modes to display?
if (menu_items(menuid) <= 0)
{
menu_destroy(menuid)
return;
}
 
// Back - Next - Exit
formatex(menu, charsmax(menu), "%L", id, "MENU_BACK")
menu_setprop(menuid, MPROP_BACKNAME, menu)
formatex(menu, charsmax(menu), "%L", id, "MENU_NEXT")
menu_setprop(menuid, MPROP_NEXTNAME, menu)
formatex(menu, charsmax(menu), "%L", id, "MENU_EXIT")
menu_setprop(menuid, MPROP_EXITNAME, menu)
 
// If remembered page is greater than number of pages, clamp down the value
MENU_PAGE_GAME_MODES = min(MENU_PAGE_GAME_MODES, menu_pages(menuid)-1)
 
// Fix for AMXX custom menus
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
menu_display(id, menuid, MENU_PAGE_GAME_MODES)
}
 
// Admin Menu
public menu_admin(id, key)
{
// Player disconnected?
if (!is_user_connected(id))
return PLUGIN_HANDLED;
 
new userflags = get_user_flags(id)
 
switch (key)
{
case ACTION_INFECT_CURE: // Infect/Cure command
{
if (userflags & (read_flags(g_access_make_zombie) | read_flags(g_access_make_human)))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_INFECT_CURE
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_MAKE_NEMESIS: // Nemesis command
{
if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && (userflags & read_flags(g_access_make_nemesis)))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_MAKE_NEMESIS
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_MAKE_ASSASSIN: // Assassin command
{
if (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && (userflags & read_flags(g_access_make_assassin)))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_MAKE_ASSASSIN
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_MAKE_SURVIVOR: // Survivor command
{
if (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && (userflags & read_flags(g_access_make_survivor)))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_MAKE_SURVIVOR
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_MAKE_SNIPER: // Sniper command
{
if (LibraryExists(LIBRARY_SNIPER, LibType_Library) && (userflags & read_flags(g_access_make_sniper)))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_MAKE_SNIPER
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_RESPAWN_PLAYER: // Respawn command
{
if (userflags & read_flags(g_access_respawn_players))
{
// Show player list for admin to pick a target
PL_ACTION = ACTION_RESPAWN_PLAYER
show_menu_player_list(id)
}
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
case ACTION_START_GAME_MODE: // Start Game Mode command
{
if (userflags & read_flags(g_access_start_game_mode))
show_menu_game_mode_list(id)
else
{
zp_colored_print(id, "%L", id, "CMD_NOT_ACCESS")
show_menu_admin(id)
}
}
}
 
return PLUGIN_HANDLED;
}
 
// Player List Menu
public menu_player_list(id, menuid, item)
{
// Menu was closed
if (item == MENU_EXIT)
{
MENU_PAGE_PLAYERS = 0
menu_destroy(menuid)
show_menu_admin(id)
return PLUGIN_HANDLED;
}
 
// Remember player's menu page
MENU_PAGE_PLAYERS = item / 7
 
// Retrieve player id
new buffer[2], dummy, player
menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy)
player = buffer[0]
 
// Perform action on player
 
// Get admin flags
new userflags = get_user_flags(id)
 
// Make sure it's still connected
if (is_user_connected(player))
{
// Perform the right action if allowed
switch (PL_ACTION)
{
case ACTION_INFECT_CURE: // Infect/Cure command
{
if (zp_core_is_zombie(player))
{
if ((userflags & read_flags(g_access_make_human)) && is_user_alive(player))
zp_admin_commands_human(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
else
{
if ((userflags & read_flags(g_access_make_zombie)) && is_user_alive(player))
zp_admin_commands_zombie(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
}
case ACTION_MAKE_NEMESIS: // Nemesis command
{
if (LibraryExists(LIBRARY_NEMESIS, LibType_Library) && (userflags & read_flags(g_access_make_nemesis)) && is_user_alive(player) && !zp_class_nemesis_get(player))
zp_admin_commands_nemesis(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
case ACTION_MAKE_ASSASSIN: // Assassin command
{
if (LibraryExists(LIBRARY_ASSASSIN, LibType_Library) && (userflags & read_flags(g_access_make_assassin)) && is_user_alive(player) && !zp_class_assassin_get(player))
zp_admin_commands_assassin(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
case ACTION_MAKE_SURVIVOR: // Survivor command
{
if (LibraryExists(LIBRARY_SURVIVOR, LibType_Library) && (userflags & read_flags(g_access_make_survivor)) && is_user_alive(player) && !zp_class_survivor_get(player))
zp_admin_commands_survivor(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
case ACTION_MAKE_SNIPER: // Sniper command
{
if (LibraryExists(LIBRARY_SNIPER, LibType_Library) && (userflags & read_flags(g_access_make_sniper)) && is_user_alive(player) && !zp_class_sniper_get(player))
zp_admin_commands_sniper(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
case ACTION_RESPAWN_PLAYER: // Respawn command
{
if ((userflags & read_flags(g_access_respawn_players)) && allowed_respawn(player))
zp_admin_commands_respawn(id, player)
else
zp_colored_print(id, "%L", id, "CMD_NOT")
}
}
}
else
zp_colored_print(id, "%L", id, "CMD_NOT")
 
menu_destroy(menuid)
show_menu_player_list(id)
return PLUGIN_HANDLED;
}
 
// Game Mode List Menu
public menu_game_mode_list(id, menuid, item)
{
// Menu was closed
if (item == MENU_EXIT)
{
MENU_PAGE_GAME_MODES = 0
menu_destroy(menuid)
show_menu_admin(id)
return PLUGIN_HANDLED;
}
 
// Remember game modes menu page
MENU_PAGE_GAME_MODES = item / 7
 
// Retrieve game mode id
new itemdata[2], dummy, game_mode_id
menu_item_getinfo(menuid, item, dummy, itemdata, charsmax(itemdata), _, _, dummy)
game_mode_id = itemdata[0]
 
// Attempt to start game mode
zp_admin_commands_start_mode(id, game_mode_id)
 
menu_destroy(menuid)
show_menu_game_mode_list(id)
return PLUGIN_HANDLED;
}
 
// Checks if a player is allowed to respawn
allowed_respawn(id)
{
if (is_user_alive(id))
return false;
 
new CsTeams:team = cs_get_user_team(id)
 
if (team == CS_TEAM_SPECTATOR || team == CS_TEAM_UNASSIGNED)
return false;
 
return true;
}
 

 

 


  • +
  • -
  • 0

#2 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 07.02.2015 21:17

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Nieodpowiednio umieszczony kod. Skorzystaj z Umieszczanie kodu na forum

Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !






Również z jednym lub większą ilością słów kluczowych: kosz, prośba, kompilacja, pluginu, plugin

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych