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

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

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

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

Simple Clanwar Management

Статус пользователя Zylex
сообщение 14.2.2016, 17:18
Сообщение #1


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Всем привет. Пожалуйста помогите оптимизировать код плагина и убрать лишние команды scmhelp
и добавить пару функций. нужно сделать так чтоб автоматом меняло команды местами.
Подправить кнайф раунд. на кнайф раунде можно покупать оружие итд
И добавить вот эти функции
Прикрепленный файл  spec.sma ( 1,04 килобайт ) Кол-во скачиваний: 14

Прикрепленный файл  nosay.sma ( 2,42 килобайт ) Кол-во скачиваний: 17

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 14.2.2016, 17:44
Сообщение #2
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

М, а куда все это добавлять? Исходник где?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zylex
сообщение 14.2.2016, 18:02
Сообщение #3


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Цитата(Danjkeee^ @ 14.2.2016, 18:44) *
М, а куда все это добавлять? Исходник где?

извини забыл ;)
Прикрепленный файл  scm.sma ( 11,4 килобайт ) Кол-во скачиваний: 16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 14.2.2016, 18:07
Сообщение #4
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

А чем не устраивают эти функции, когда работают отдельно?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zylex
сообщение 14.2.2016, 18:23
Сообщение #5


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Цитата(Danjkeee^ @ 14.2.2016, 19:07) *
А чем не устраивают эти функции, когда работают отдельно?

dntknw.gif
а что на счёт
и добавить пару функций. нужно сделать так чтоб автоматом меняло команды местами.
Подправить кнайф раунд. на кнайф раунде можно покупать оружие итд
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 14.2.2016, 21:02
Сообщение #6
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

Zylex,
Зачем на кнайф раунде покупать оружие?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zylex
сообщение 15.2.2016, 9:22
Сообщение #7


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Цитата(Danjkeee^ @ 14.2.2016, 22:02) *
Zylex,
Зачем на кнайф раунде покупать оружие?)

я тебе про это и говорю, в плагине код багнутый
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 15.2.2016, 17:25
Сообщение #8
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

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 <cstrike>
#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, "- [SCM] 3 рестарта и начало матча")
    register_clcmd("say /stop", "cmd_stop", 0, "- [SCM] Матч остоновлен")
    register_clcmd("say /rr", "cmd_rr", 0, "- [SCM] Рестарт раунда")
    register_clcmd("say /knife", "cmd_knives", 0, "- [SCM] Раунд на ножах")
    
    register_dictionary(SCM_DICT)
    
    read_maps()
}

#if defined ADMINS_ONLY
public client_disconnect(id) {
    remove_task(id)
}
#else


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, "[SCM] !!! %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, "[SCM] !!! %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, "[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(1.2, "strip_weapons")
        set_task(2.0, "knife_msg")
    } else {
        client_print(id, print_chat, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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")
            cs_set_user_armor(plist_public[i],100,CS_ARMOR_VESTHELM)
            cs_set_user_money(plist_public[i], 0)  
        }
    }
}

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
}


Zylex,
Nosay 100% ЕГО ))))
mix marker rulit)

Zylex,
это не баг!

Отредактировал: XyLiGaN, - 15.2.2016, 17:29
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 15.2.2016, 17:40
Сообщение #9
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

Zylex, Cw Manager (Пост #894615)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zylex
сообщение 15.2.2016, 18:38
Сообщение #10


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Timajkee, я в курсе что это не баг. просто тот кто писал плагин допустил ошибку в коде
если не ошибаюсь за запрет оружия отвечает модуль hamsandwich, а данный модуль в плагине не используется
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 15.2.2016, 18:48
Сообщение #11
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

Цитата(Zylex @ 15.2.2016, 22:38) *
Timajkee, я в курсе что это не баг. просто тот кто писал плагин допустил ошибку в коде
если не ошибаюсь за запрет оружия отвечает модуль hamsandwich, а данный модуль в плагине не используется

вот я тебе дал исходник попробуй у меня не получилось ни че взять
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Zylex
сообщение 15.2.2016, 19:38
Сообщение #12


Стаж: 10 лет

Сообщений: 128
Благодарностей: 6
Полезность: 40

Timajkee, какой ты мне исходник дал? я тебя не понимаю объясняй чётко
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 15.2.2016, 19:53
Сообщение #13
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

Цитата(Zylex @ 15.2.2016, 23:38) *
Timajkee, какой ты мне исходник дал? я тебя не понимаю объясняй чётко

Код:
#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 <cstrike>
#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, "- [SCM] 3 рестарта и начало матча")
register_clcmd("say /stop", "cmd_stop", 0, "- [SCM] Матч остоновлен")
register_clcmd("say /rr", "cmd_rr", 0, "- [SCM] Рестарт раунда")
register_clcmd("say /knife", "cmd_knives", 0, "- [SCM] Раунд на ножах")

register_dictionary(SCM_DICT)

read_maps()
}

#if defined ADMINS_ONLY
public client_disconnect(id) {
remove_task(id)
}
#else


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, "[SCM] !!! %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, "[SCM] !!! %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, "[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(1.2, "strip_weapons")
set_task(2.0, "knife_msg")
} else {
client_print(id, print_chat, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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, "[SCM] !!! %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")
cs_set_user_armor(plist_public[i],100,CS_ARMOR_VESTHELM)
cs_set_user_money(plist_public[i], 0)
}
}
}

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
}


Отредактировал: GOOD FELLOW, - 16.2.2016, 15:06
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 16.2.2016, 17:01
Сообщение #14
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

Zylex,
спек зачем проверку на ALIVE
Он же будет работать только тогда когда ты умер
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: