Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Добавить флаг

, В админ плагин
Статус пользователя VenigreT
сообщение 3.9.2016, 9:47
Сообщение #1
Стаж: 10 лет

Сообщений: 674
Благодарностей: 202
Полезность: 537

День добрый, помогите пожалуйста в этот плагин добавить флаг "b" чтобы могли запускать cw только админы с флагом "B"
И убрать команду motd "scmhelp"
Код:
/*
* Simple Clanwar Management 1.1
* by rhin0
*
* http://www.CounterServer.cz
*
* Simple AMXModX plugin for managing clanwars.
* Currently, there are these commands available:
*
* say /start - 3x restart and start the match
* say /stop - stop the match
* say /rr - restart round
* say /knife - play knife round
* say /scmhelp - display help in MOTD window
* say /<mapname minus de_ prefix> (ie. say /dust2, say /cpl_mill, etc.) - change map
*
* Changelog:
* 1.1 (17.2.2008)
* - fixed loading maps from maplist.ini file
* - dictionary is now loaded as expected
* 1.0 (8.1.2007)
* - available map commands are now loaded from maplist.ini file
* - added multilingual support
* - new command say /knife to play knife round (thanks to Dupl3xx)
* - help is now displayed in MOTD window
* - cw.cfg resp. warmup.cfg is executed on startup resp. in the end, of the match (thanks to Dupl3xx)
* 0.8 (5.4.2006)
* - SCM plugin is no longer compatible with AMXMod
* - SCM commands now available only to admins with access to menu (flag u) - can be changed
* - help message when player connects cannot be disabled anymore
* 0.7 (3.4.2006) - last version vith AMXMod support
* - help message now displayed only once when player connects - can be disabled completely
* - new command say /scmhelp to display help
* - few small tweaks
* 0.6 (22.2.2006)
* - disabled changing map when match is started
* - improved command say /stop
* 0.5 (21.2.2006) - never released to public
* - commands to switch to six most played maps (de_cbble, de_cpl_mill, de_dust2, de_inferno, de_nuke, de_train)
* - new commands are:
* - say /cbble
* - say /cpl_mill
* - say /dust2
* - say /inferno
* - say /nuke
* - say /train
* 0.2 (20.2.2006)
* - option to switch between AMXModX and AMXMod (see lines below)
* 0.1 (16.2.2006)
* - initial release
*
*/

//#define ADMINS_ONLY // comment this line to allow SCM commands for all players

#define MAX_MAPS 128 // max number of maps in map list (if you need more maps, just change this value to suits your needs)

#define SCM_DICT "scm.txt"
#define SCM_MAPS "maplist.ini"
#define SCM_CW "cw.cfg"
#define SCM_WARM "warmup.cfg"

// DO NOT EDIT BELOW
#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Simple Clanwar Management"
#define VERSION "1.1"
#define AUTHOR "rhin0"

new g_match_inprogress = 0

new g_mapnames[MAX_MAPS][32]
new g_mapcount

new g_filename[256]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say", "check_map", 0, "- [SCM] check if the user say map change command")

register_clcmd("say /start", "cmd_start", 0, "- [CW] 3 рестарта и начало матча")
register_clcmd("say /stop", "cmd_stop", 0, "- [CW] Матч остоновлен")
register_clcmd("say /rr", "cmd_rr", 0, "- [CW] Рестарт раунда")
register_clcmd("say /knife", "cmd_knives", 0, "- [CW] Раунд на ножах")
register_clcmd("say /scmhelp", "cmd_showhelp", 0, "- [CW] Справка помощи (MOTD)")

register_dictionary(SCM_DICT)

read_maps()
}

#if defined ADMINS_ONLY
public client_putinserver(id) {
if (access(id, ADMIN_MENU)) {
if (is_user_bot(id)) return
set_task(10.0, "showhelp", id)
} else return
}

public client_disconnect(id) {
remove_task(id)
}
#else
public client_putinserver(id) {
if (is_user_bot(id))
return
set_task(10.0, "showhelp", id)
}

public client_disconnect(id) {
remove_task(id)
}
#endif

public read_maps() {
new textlength

get_filename(SCM_MAPS)

new line = 0
while (line < MAX_MAPS && read_file(g_filename, line, g_mapnames[line], 30, textlength)) {
++line
}
log_message("SCM: loaded %i maps", line)
g_mapcount = line
}

public check_map(id) {
new said[192]
read_args(said, 191)

new i = 0
while (i < g_mapcount) {
new trash[16], mapname[32]
strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
format(mapname, 31, "^"/%s^"", mapname)
if (equali(said, mapname)) {
cmd_changemap(id, g_mapnames[i])
}
++i
}
}

public cmd_changemap(id, mapname[]) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
if (g_match_inprogress != 1) {
set_task(2.0, "change_map", 0, mapname, strlen(mapname))

new message[64]
format(message, 63, "%L", id, "СМЕНАКАРТЫ", mapname)
all_msg(message)
} else {
client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_CHANGE_MAP")
}

return PLUGIN_CONTINUE
}

public cmd_knives(id) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
if (g_match_inprogress != 1) {
g_match_inprogress = 0

set_task(1.0, "restart_round", 0, "1", 1)
all_msg("knife round")
set_task(3.0, "strip_weapons")
set_task(4.0, "knife_msg")
} else {
client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
}

return PLUGIN_CONTINUE
}

public cmd_start(id) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
if (g_match_inprogress != 1) {
set_task(1.0, "restart_round", 0, "1", 1)
all_msg("starting match")
g_match_inprogress = 1

get_filename(SCM_CW)
server_cmd("exec %s", g_filename)
client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "CWTG_CFG_LOADED")

set_task(3.0, "restart_round", 0, "1", 1)
set_task(5.0, "restart_round", 0, "3", 1)
set_task(9.0, "live_msg")
} else {
client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_START_MATCH")
}

return PLUGIN_CONTINUE
}

public cmd_stop(id) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
if (g_match_inprogress == 1) {
all_msg("stopping match")
g_match_inprogress = 0

get_filename(SCM_WARM)
server_cmd("exec %s", g_filename)
client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "WRM_CFG_LOADED")

set_task(3.0, "restart_round", 0, "1", 1)
set_task(6.0, "all_msg", 0, "match stopped", 13)
} else {
client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
}

return PLUGIN_CONTINUE
}

public cmd_rr(id) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
if (g_match_inprogress != 1) {
set_task(1.0, "restart_round", 0, "1", 1)
all_msg("restart")
} else {
client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_RESTART_MATCH")
}

return PLUGIN_CONTINUE
}

public strip_weapons() {
new plist_public[32], pnum_public
get_players(plist_public, pnum_public)
for (new i = 0; i < pnum_public; i++) {
if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
strip_user_weapons(plist_public[i])
give_item(plist_public[i], "weapon_knife")
}
}
}

public get_filename(filename[]) {

new dir[128]

get_configsdir(dir, 127)
format(g_filename, 255, "%s/scm/%s", dir, filename)

if (!file_exists(g_filename)) {
log_message("SCM: file %s not found", filename)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public change_map(map[]) {
server_cmd("changelevel %s", map)

return PLUGIN_CONTINUE
}

public restart_round(seconds[]) {
server_cmd("sv_restartround %s", seconds)

return PLUGIN_CONTINUE
}

public live_msg() {
set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
show_hudmessage(0, "--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---")
client_print(0, print_chat, "*** Игра - Игра - Игра ***")
client_print(0, print_chat, "*** Игра - Игра - Игра ***")
client_print(0, print_chat, "*** Игра - Игра - Игра ***")

return PLUGIN_CONTINUE
}

public knife_msg() {
set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
show_hudmessage(0, "--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---")
client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
return PLUGIN_CONTINUE
}

public all_msg(msg[]) {
set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
show_hudmessage(0, "--- %s ---", msg)
client_print(0, print_chat, "*** %s ***", msg)

return PLUGIN_CONTINUE
}

public showhelp(id) {
#if defined ADMINS_ONLY
if (!access(id, ADMIN_MENU)) {
client_print(id, print_chat, "[CW] !!! %L", id, "b")
return PLUGIN_HANDLED
}
#endif
client_print(id, print_chat, "[CW] %L", id, "HELP_START_STOP")
client_print(id, print_chat, "[CW] %L", id, "HELP_RR")
client_print(id, print_chat, "[CW] %L", id, "HELP_MOTD")

return PLUGIN_CONTINUE
}

public cmd_showhelp(id) {
new motd[2048], line[256], title[64]

add(motd, 2047, "<html><head><style>")
add(motd, 2047, "body {font-family: Tahoma; font-size: 12px}")
add(motd, 2047, "code {font-size: 14px; margin: 0 10px 0 0}")
add(motd, 2047, "h1 {font-size: 18px; text-align: center}")
add(motd, 2047, "h2 {font-size: 14px; font-weight: bold}")
add(motd, 2047, "p {text-align: center; margin: 5px}")
add(motd, 2047, "a {color: #991A00}")
add(motd, 2047, "</style></head><body>")
add(motd, 2047, "<div>")
format(line, 255, "<h1>%s %s (SCM)</h1>", PLUGIN, VERSION)
add(motd, 2047, line)
format(line, 255, "<p>%L <strong>rhin0</strong></p>", id, "MOTD_CREDITS")
add(motd, 2047, line)
format(line, 255, "<p>%L <a href=http://www.counterserver.cz>www.CounterServer.cz</a></p>", id, "MOTD_INFO")
add(motd, 2047, line)
format(line, 255, "<h2>%L</h2>", id, "MOTD_GEN_CMD")
add(motd, 2047, line)
format(line, 255, "<ul><li><code>say /start</code> // %L</li>", id, "MOTD_START_MATCH")
add(motd, 2047, line)
format(line, 255, "<li><code>say /stop</code> // %L</li>", id, "MOTD_STOP_MATCH")
add(motd, 2047, line)
format(line, 255, "<li><code>say /rr</code> // %L</li>", id, "MOTD_RESTART_MATCH")
add(motd, 2047, line)
format(line, 255, "<li><code>say /scmhelp</code> // %L</li></ul>", id, "MOTD_SHOW_HELP")
add(motd, 2047, line)
format(line, 255, "<h2>%L</h2>", id, "MOTD_MAPS_CMD")
add(motd, 2047, line)
add(motd, 2047, "<ul>")

new i = 0
while (i < g_mapcount) {
new mapcmd[128], trash[16], mapname[32]
strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
format(mapcmd, 127, "<li><code>say /%s</code> // %L %s</li>", mapname, id, "MOTD_CHANGELEVEL", g_mapnames[i])
add(motd, 2047, mapcmd)
++i
}

add(motd, 2047, "</ul>")
add(motd, 2047, "</div></body></html>")
format(title, 63, "%s %s", PLUGIN, VERSION)
show_motd(id, motd, title)

return PLUGIN_HANDLED
}


Отредактировал: VenigreT, - 3.9.2016, 9:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя r0no^
сообщение 3.9.2016, 10:06
Сообщение #2


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

Cкрытый текст
Код
/*
* Simple Clanwar Management 1.1
* by rhin0
*
* <a href="http://c-s.net.ua/url?u=http%3A%2F%2Fwww.CounterServer.cz" target="_blank">http://www.CounterServer.cz</a>
*
*  Simple AMXModX plugin for managing clanwars.
*  Currently, there are these commands available:
*
*   say /start - 3x restart and start the match
*   say /stop - stop the match
*   say /rr - restart round
*   say /knife - play knife round
*   say /scmhelp - display help in MOTD window
*   say /<mapname minus de_ prefix> (ie. say /dust2, say /cpl_mill, etc.) - change map
*
*  Changelog:
*   1.1 (17.2.2008)
*     - fixed loading maps from maplist.ini file
*     - dictionary is now loaded as expected
*   1.0 (8.1.2007)
*     - available map commands are now loaded from maplist.ini file
*     - added multilingual support
*     - new command say /knife to play knife round (thanks to Dupl3xx)
*     - help is now displayed in MOTD window
*     - cw.cfg resp. warmup.cfg is executed on startup resp. in the end, of the match (thanks to Dupl3xx)
*   0.8 (5.4.2006)
*     - SCM plugin is no longer compatible with AMXMod
*     - SCM commands now available only to admins with access to menu (flag u) - can be changed
*     - help message when player connects cannot be disabled anymore
*   0.7 (3.4.2006) - last version vith AMXMod support
*     - help message now displayed only once when player connects - can be disabled completely
*     - new command say /scmhelp to display help
*     - few small tweaks
*   0.6 (22.2.2006)
*     - disabled changing map when match is started
*     - improved command say /stop
*   0.5 (21.2.2006) - never released to public
*     - commands to switch to six most played maps (de_cbble, de_cpl_mill, de_dust2, de_inferno, de_nuke, de_train)
*     - new commands are:
*       - say /cbble
*       - say /cpl_mill
*       - say /dust2
*       - say /inferno
*       - say /nuke
*       - say /train
*   0.2 (20.2.2006)
*     - option to switch between AMXModX and AMXMod (see lines below)
*   0.1 (16.2.2006)
*     - initial release
*
*/

#define ADMINS_ONLY // comment this line to allow SCM commands for all players

#define MAX_MAPS 128 // max number of maps in map list (if you need more maps, just change this value to suits your needs)

#define SCM_DICT "scm.txt"
#define SCM_MAPS "maplist.ini"
#define SCM_CW "cw.cfg"
#define SCM_WARM "warmup.cfg"

// DO NOT EDIT BELOW
#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Simple Clanwar Management"
#define VERSION "1.1"
#define AUTHOR "rhin0"

new g_match_inprogress = 0

new g_mapnames[MAX_MAPS][32]
new g_mapcount

new g_filename[256]

public plugin_init() {
   register_plugin(PLUGIN, VERSION, AUTHOR)
    
   register_clcmd("say", "check_map", 0, "- [SCM] check if the user say map change command")
    
   register_clcmd("say /start", "cmd_start", 0, "- [CW] 3 рестарта и начало матча")
   register_clcmd("say /stop", "cmd_stop", 0, "- [CW] Матч остоновлен")
   register_clcmd("say /rr", "cmd_rr", 0, "- [CW] Рестарт раунда")
   register_clcmd("say /knife", "cmd_knives", 0, "- [CW] Раунд на ножах")

   register_dictionary(SCM_DICT)
    
   read_maps()
}

#if defined ADMINS_ONLY
public client_putinserver(id) {
   if (access(id, ADMIN_RESERVATION)) {
      if (is_user_bot(id)) return
      set_task(10.0, "showhelp", id)
   } else return
}

public client_disconnect(id) {
   remove_task(id)
}
#else
public client_putinserver(id) {
   if (is_user_bot(id))
      return
   set_task(10.0, "showhelp", id)
}

public client_disconnect(id) {
   remove_task(id)
}
#endif

public read_maps() {
   new textlength
    
   get_filename(SCM_MAPS)
    
   new line = 0
   while (line < MAX_MAPS && read_file(g_filename, line, g_mapnames[line], 30, textlength)) {
      ++line
   }
   log_message("SCM: loaded %i maps", line)
   g_mapcount = line
}

public check_map(id) {
   new said[192]
   read_args(said, 191)
    
   new i = 0
   while (i < g_mapcount) {
      new trash[16], mapname[32]
      strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
      format(mapname, 31, "^"/%s^"", mapname)
      if (equali(said, mapname)) {
         cmd_changemap(id, g_mapnames[i])
      }
      ++i
   }
}

public cmd_changemap(id, mapname[]) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   if (g_match_inprogress != 1) {
      set_task(2.0, "change_map", 0, mapname, strlen(mapname))
      
      new message[64]
      format(message, 63, "%L", id, "СМЕНАКАРТЫ", mapname)
      all_msg(message)
   } else {
      client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_CHANGE_MAP")
   }

   return PLUGIN_CONTINUE
}

public cmd_knives(id) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   if (g_match_inprogress != 1) {
      g_match_inprogress = 0
      
      set_task(1.0, "restart_round", 0, "1", 1)
      all_msg("knife round")
      set_task(3.0, "strip_weapons")
      set_task(4.0, "knife_msg")
   } else {
      client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
   }

   return PLUGIN_CONTINUE
}

public cmd_start(id) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   if (g_match_inprogress != 1) {
      set_task(1.0, "restart_round", 0, "1", 1)
      all_msg("starting match")
      g_match_inprogress = 1
      
      get_filename(SCM_CW)
      server_cmd("exec %s", g_filename)
      client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "CWTG_CFG_LOADED")
      
      set_task(3.0, "restart_round", 0, "1", 1)
      set_task(5.0, "restart_round", 0, "3", 1)
      set_task(9.0, "live_msg")
   } else {
      client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_START_MATCH")
   }
    
   return PLUGIN_CONTINUE
}

public cmd_stop(id) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   if (g_match_inprogress == 1) {
      all_msg("stopping match")
      g_match_inprogress = 0
      
      get_filename(SCM_WARM)
      server_cmd("exec %s", g_filename)
      client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "WRM_CFG_LOADED")
      
      set_task(3.0, "restart_round", 0, "1", 1)
      set_task(6.0, "all_msg", 0, "match stopped", 13)
   } else {
      client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
   }
    
   return PLUGIN_CONTINUE
}

public cmd_rr(id) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   if (g_match_inprogress != 1) {
      set_task(1.0, "restart_round", 0, "1", 1)
      all_msg("restart")
   } else {
      client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_RESTART_MATCH")
   }
    
   return PLUGIN_CONTINUE
}

public strip_weapons() {
   new plist_public[32], pnum_public
   get_players(plist_public, pnum_public)
   for (new i = 0; i < pnum_public; i++) {
      if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
         strip_user_weapons(plist_public[i])
         give_item(plist_public[i], "weapon_knife")
      }
   }
}

public get_filename(filename[]) {

   new dir[128]
    
   get_configsdir(dir, 127)
   format(g_filename, 255, "%s/scm/%s", dir, filename)
    
   if (!file_exists(g_filename)) {
      log_message("SCM: file %s not found", filename)
      return PLUGIN_HANDLED
   }
    
   return PLUGIN_CONTINUE
}

public change_map(map[]) {
   server_cmd("changelevel %s", map)

   return PLUGIN_CONTINUE
}

public restart_round(seconds[]) {
   server_cmd("sv_restartround %s", seconds)

   return PLUGIN_CONTINUE
}

public live_msg() {
   set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
   show_hudmessage(0, "--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---")
   client_print(0, print_chat, "*** Игра - Игра - Игра ***")
   client_print(0, print_chat, "*** Игра - Игра - Игра ***")
   client_print(0, print_chat, "*** Игра - Игра - Игра ***")

   return PLUGIN_CONTINUE
}

public knife_msg() {
   set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
   show_hudmessage(0, "--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---")
   client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
   client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
   client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
   return PLUGIN_CONTINUE
}

public all_msg(msg[]) {
   set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
   show_hudmessage(0, "--- %s ---", msg)
   client_print(0, print_chat, "*** %s ***", msg)

   return PLUGIN_CONTINUE
}

public showhelp(id) {
#if defined ADMINS_ONLY
   if (!access(id, ADMIN_RESERVATION)) {
      client_print(id, print_chat, "[CW] !!! %L", id, "b")
      return PLUGIN_HANDLED
   }
#endif
   client_print(id, print_chat, "[CW] %L", id, "HELP_START_STOP")
   client_print(id, print_chat, "[CW] %L", id, "HELP_RR")
   client_print(id, print_chat, "[CW] %L", id, "HELP_MOTD")
    
   return PLUGIN_CONTINUE
}


Отредактировал: r0no^, - 3.9.2016, 10:11


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 3.9.2016, 10:19
Сообщение #3
Стаж: 10 лет

Сообщений: 674
Благодарностей: 202
Полезность: 537

Спасибо друг, работат.
Вот только если обычный игрок вводит админ команду на сервере выдаёт "
[CW] !!! ML_NOTFOUND: "
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 3.9.2016, 10:33
Сообщение #4


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

Не хватает lang файла


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 3.9.2016, 10:37
Сообщение #5
Стаж: 10 лет

Сообщений: 674
Благодарностей: 202
Полезность: 537

Вот
Прикрепленные файлы:
Прикрепленный файл  scm.txt ( 1,75 килобайт ) Кол-во скачиваний: 10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 3.9.2016, 11:03
Сообщение #6


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

Cкрытый текст
Код
#define ADMINS_ONLY // comment this line to allow SCM commands for all players

#define MAX_MAPS 128 // max number of maps in map list (if you need more maps, just change this value to suits your needs)

#define SCM_DICT "scm.txt"
#define SCM_MAPS "maplist.ini"
#define SCM_CW "cw.cfg"
#define SCM_WARM "warmup.cfg"

// DO NOT EDIT BELOW
#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Simple Clanwar Management"
#define VERSION "1.1"
#define AUTHOR "rhin0"

new g_match_inprogress = 0

new g_mapnames[MAX_MAPS][32]
new g_mapcount

new g_filename[256]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("say", "check_map", 0, "- [CW] check if the user say map change command")
    
    register_clcmd("say /start", "cmd_start", 0, "- [CW] 3 рестарта и начало матча")
    register_clcmd("say /stop", "cmd_stop", 0, "- [cW] Матч остоновлен")
    register_clcmd("say /rr", "cmd_rr", 0, "- [CW] Рестарт раунда")
    register_clcmd("say /knife", "cmd_knives", 0, "- [CW] Раунд на ножах")
    
    register_dictionary(SCM_DICT)
    
    read_maps()
}

#if defined ADMINS_ONLY
public client_putinserver(id) {
    if (access(id, ADMIN_RESERVATION)) {
        if (is_user_bot(id)) return
        set_task(10.0, "showhelp", id)
    } else return
}

public client_disconnect(id) {
    remove_task(id)
}
#else
public client_putinserver(id) {
    if (is_user_bot(id))
        return
    set_task(10.0, "showhelp", id)
}

public client_disconnect(id) {
    remove_task(id)
}
#endif

public read_maps() {
    new textlength
    
    get_filename(SCM_MAPS)
    
    new line = 0
    while (line < MAX_MAPS && read_file(g_filename, line, g_mapnames[line], 30, textlength)) {
        ++line
    }
    log_message("SCM: loaded %i maps", line)
    g_mapcount = line
}

public check_map(id) {
    new said[192]
    read_args(said, 191)
    
    new i = 0
    while (i < g_mapcount) {
        new trash[16], mapname[32]
        strtok(g_mapnames[i], trash, 15, mapname, 31, '_')
        format(mapname, 31, "^"/%s^"", mapname)
        if (equali(said, mapname)) {
            cmd_changemap(id, g_mapnames[i])
        }
        ++i
    }
}

public cmd_changemap(id, mapname[]) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[CW] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    if (g_match_inprogress != 1) {
        set_task(2.0, "change_map", 0, mapname, strlen(mapname))
        
        new message[64]
        format(message, 63, "%L", id, "СМЕНАКАРТЫ", mapname)
        all_msg(message)
    } else {
        client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_CHANGE_MAP")
    }

    return PLUGIN_CONTINUE
}

public cmd_knives(id) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[SCM] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    if (g_match_inprogress != 1) {
        g_match_inprogress = 0
        
        set_task(1.0, "restart_round", 0, "1", 1)
        all_msg("knife round")
        set_task(3.0, "strip_weapons")
        set_task(4.0, "knife_msg")
    } else {
        client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
    }

    return PLUGIN_CONTINUE
}

public cmd_start(id) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[CW] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    if (g_match_inprogress != 1) {
        set_task(1.0, "restart_round", 0, "1", 1)
        all_msg("starting match")
        g_match_inprogress = 1
        
        get_filename(SCM_CW)
        server_cmd("exec %s", g_filename)
        client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "CWTG_CFG_LOADED")
        
        set_task(3.0, "restart_round", 0, "1", 1)
        set_task(5.0, "restart_round", 0, "3", 1)
        set_task(9.0, "live_msg")
    } else {
        client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_START_MATCH")
    }
    
    return PLUGIN_CONTINUE
}

public cmd_stop(id) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[CW] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    if (g_match_inprogress == 1) {
        all_msg("stopping match")
        g_match_inprogress = 0
        
        get_filename(SCM_WARM)
        server_cmd("exec %s", g_filename)
        client_print(0, print_chat, "[CW] !!! %L", LANG_PLAYER, "WRM_CFG_LOADED")
        
        set_task(3.0, "restart_round", 0, "1", 1)
        set_task(6.0, "all_msg", 0, "match stopped", 13)
    } else {
        client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_STOP_MATCH")
    }
    
    return PLUGIN_CONTINUE
}

public cmd_rr(id) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[CW] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    if (g_match_inprogress != 1) {
        set_task(1.0, "restart_round", 0, "1", 1)
        all_msg("restart")
    } else {
        client_print(id, print_chat, "[CW] !!! %L", id, "CANNOT_RESTART_MATCH")
    }
    
    return PLUGIN_CONTINUE
}

public strip_weapons() {
    new plist_public[32], pnum_public
    get_players(plist_public, pnum_public)
    for (new i = 0; i < pnum_public; i++) {
        if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
            strip_user_weapons(plist_public[i])
            give_item(plist_public[i], "weapon_knife")
        }
    }
}

public get_filename(filename[]) {

    new dir[128]
    
    get_configsdir(dir, 127)
    format(g_filename, 255, "%s/scm/%s", dir, filename)
    
    if (!file_exists(g_filename)) {
        log_message("SCM: file %s not found", filename)
        return PLUGIN_HANDLED
    }
    
    return PLUGIN_CONTINUE
}

public change_map(map[]) {
    server_cmd("changelevel %s", map)

    return PLUGIN_CONTINUE
}

public restart_round(seconds[]) {
    server_cmd("sv_restartround %s", seconds)

    return PLUGIN_CONTINUE
}

public live_msg() {
    set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
    show_hudmessage(0, "--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---^n--- Игра - Игра - Игра ---")
    client_print(0, print_chat, "*** Игра - Игра - Игра ***")
    client_print(0, print_chat, "*** Игра - Игра - Игра ***")
    client_print(0, print_chat, "*** Игра - Игра - Игра ***")

    return PLUGIN_CONTINUE
}

public knife_msg() {
    set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
    show_hudmessage(0, "--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---^n--- Раунд на ножах - Раунд на ножах - Раунд на ножах ---")
    client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
    client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
    client_print(0, print_chat, "*** Раунд на ножах - Раунд на ножах - Раунд на ножах ***")
    return PLUGIN_CONTINUE
}

public all_msg(msg[]) {
    set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 6.0, 6.0)
    show_hudmessage(0, "--- %s ---", msg)
    client_print(0, print_chat, "*** %s ***", msg)

    return PLUGIN_CONTINUE
}

public showhelp(id) {
#if defined ADMINS_ONLY
    if (!access(id, ADMIN_RESERVATION)) {
        client_print(id, print_chat, "[CW] !!! %L", id, "NO_ACCESS")
        return PLUGIN_HANDLED
    }
#endif
    client_print(id, print_chat, "[CW] %L", id, "HELP_START_STOP")
    client_print(id, print_chat, "[CW] %L", id, "HELP_RR")
    client_print(id, print_chat, "[CW] %L", id, "HELP_MOTD")
    
    return PLUGIN_CONTINUE
}


Отредактировал: r0no^, - 3.9.2016, 11:05


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 3.9.2016, 11:15
Сообщение #7
Стаж: 10 лет

Сообщений: 674
Благодарностей: 202
Полезность: 537

Спасибо ещё раз Тебе Р0но.
Всё отлично работает!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 4 гостей читают эту тему: