Разминка на рандомном оружии., не работает функция в плагине. [РЕШЕНО] |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Разминка на рандомном оружии., не работает функция в плагине. [РЕШЕНО] |
MrTsar |
25.10.2017, 11:43
Сообщение
|
|
Салют, уважаемые.
Вот есть такой плагин: Код: #include <amxmodx> Вот эта вот часть : Код: #if defined STOP_PLUGS должна отвечать за отключение плагинов во время этой самой разминки после смены карты. Но почему то не отключает обозначенные плагины. Может кто подскажет в чем дело? |
|
|
DRW |
25.10.2017, 14:11
Сообщение
|
MrTsar, попробуй этот код
Cкрытый текст #include <amxmodx> #include <reapi> #define WARMUPTIME 40 // Время вармапа #define NUM_RR 1 // Кол-во рестартов #define LATENCY 1.5 // Задержка между рестартами #define DHUD_MESSAGE // Показывать в dhud. Закомментируйте, чтобы был hud #define GIVE_SHIELD 3 // 0 - выключить; 1 - Щит + deagle; 2 - щит + нож; 3 - щит и с диглом и ножом #define STOP_PLUGS // Отключать плагины на время вармапа #define DM_MODE // Бесконечный респавн на время вармапа #define ThFiveHP_ON_KNIFE // Выдает 35HP игрокам, если оружие - НОЖ #if defined STOP_PLUGS new g_arPlugins[][] = // Указывать название файлов, например test.amxx { "test.amxx", "test2.amxx" } #endif new g_szWeapon[32]; new g_iWp; new HookChain:fwd_NewRound, #if defined DM_MODE HookChain:fwd_Killed, #endif HookChain:fwd_Spawn; #if defined DHUD_MESSAGE #if AMXX_VERSION_NUM < 183 #include <dhudmessage> #endif #else new g_iHudSync; #endif public plugin_init() { register_plugin("Random Weapons WarmUP", "2.4.1", "neugomon"); RegisterHookChain(RG_RoundEnd, "fwdRoundEnd", true); DisableHookChain((fwd_NewRound = RegisterHookChain(RG_CSGameRules_RestartRound, "fwdRoundStart", false))); DisableHookChain((fwd_Spawn = RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true))); #if defined DM_MODE DisableHookChain((fwd_Killed = RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilledPost", true))); register_clcmd("joinclass", "clCmdJoinClass"); register_clcmd("menuselect","clCmdJoinClass"); #endif #if !defined DHUD_MESSAGE g_iHudSync = CreateHudSyncObj(); #endif state warmupOff; } public fwdRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay) if(event == ROUND_GAME_COMMENCE) EnableHookChain(fwd_NewRound); public fwdRoundStart() { state warmupOn; BuyZone_ToogleSolid(SOLID_NOT); DisableHookChain(fwd_NewRound); EnableHookChain(fwd_Spawn); #if defined DM_MODE EnableHookChain(fwd_Killed); #endif #if defined STOP_PLUGS PluginController(1); #endif switch((g_iWp = random(4))) { case 0: formatex(g_szWeapon, charsmax(g_szWeapon), "AWP"); case 1: formatex(g_szWeapon, charsmax(g_szWeapon), "Deagle"); case 2: formatex(g_szWeapon, charsmax(g_szWeapon), "Scout"); case 3: formatex(g_szWeapon, charsmax(g_szWeapon), "Grenade"); case 4: formatex(g_szWeapon, charsmax(g_szWeapon), "Knife"); } set_task(1.0, "ShowTimer", .flags = "a", .repeat = WARMUPTIME); } #if defined DM_MODE public clCmdJoinClass(id) <warmupOff> return; public clCmdJoinClass(id) <warmupOn> if(get_member(id, m_iMenu) == Menu_ChooseAppearance) set_task(0.5, "SpawnPlayer", id); #endif public fwdPlayerSpawnPost(const id) { if(!is_user_alive(id)) return; rg_remove_all_items(id); switch(g_iWp) { case 0: { rg_give_item(id, "weapon_awp"); rg_set_user_bpammo(id, WEAPON_AWP, 30); } case 1: { #if GIVE_SHIELD == 1 || GIVE_SHIELD == 3 rg_give_item(id, "weapon_shield"); #endif rg_give_item(id, "weapon_deagle"); rg_set_user_bpammo(id, WEAPON_DEAGLE, 35); } case 2: { rg_give_item(id, "weapon_scout"); rg_set_user_bpammo(id, WEAPON_SCOUT, 90); } case 3: { rg_give_item(id, "weapon_hegrenade"); rg_set_user_bpammo(id, WEAPON_HEGRENADE, 512); } case 4: { #if GIVE_SHIELD == 2 || GIVE_SHIELD == 3 rg_give_item(id, "weapon_shield"); #endif rg_give_item(id, "weapon_knife"); #if defined ThFiveHP_ON_KNIFE set_entvar(id, var_health, 35.0); #endif } } } #if defined DM_MODE public fwdPlayerKilledPost(pVictim) set_task(1.0, "SpawnPlayer", pVictim); #endif public ShowTimer() { static timer = -1; if(timer == -1) timer = WARMUPTIME; switch(--timer) { case 0: { state warmupOff; BuyZone_ToogleSolid(SOLID_TRIGGER); DisableHookChain(fwd_Spawn); #if defined DM_MODE DisableHookChain(fwd_Killed); #endif #if defined STOP_PLUGS PluginController(0); #endif #if NUM_RR > 1 set_task(LATENCY, "SV_Restart", .flags = "a", .repeat = NUM_RR); #else SV_Restart(); #endif timer = -1; } default: { #if defined DHUD_MESSAGE set_dhudmessage(.red = 135, .green = 206, .blue = 235, .x = -1.0, .y = 0.08, .holdtime = 0.9); show_dhudmessage(0, "Разминка на %s!^nРестарт через %d сек", g_szWeapon, timer); #else set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.9, .holdtime = 0.9, .channel = -1); ShowSyncHudMsg(0, g_iHudSync, "Разминка на %s!^nРестарт через %d сек", g_szWeapon, timer); #endif } } } public SV_Restart() set_cvar_num("sv_restart", 1); #if defined DM_MODE public SpawnPlayer(id) { if(!is_user_connected(id)) return; if(is_user_alive(id)) return; switch(get_member(id, m_iTeam)) { case 1, 2: rg_round_respawn(id); } } #endif stock PluginController(stop) { for(new i; i < sizeof g_arPlugins; i++) { if(stop)pause ("ac", g_arPlugins[i]); else unpause("ac", g_arPlugins[i]); } } stock BuyZone_ToogleSolid(const solid) { new entityIndex = 0; while ((entityIndex = rg_find_ent_by_class(entityIndex, "func_buyzone"))) set_entvar(entityIndex, var_solid, solid); }
Отредактировал: DRW, - 25.10.2017, 14:12
сигаретный дым под облака незаметно джин обнял бокал
|
|
|
|
MrTsar |
25.10.2017, 15:02
Сообщение
|
|
|
|
|
Sorokin |
25.10.2017, 18:43
Сообщение
|
|
|
MrTsar |
25.10.2017, 22:31
Сообщение
|
|
|
|
|
MiKi |
26.10.2017, 0:59
Сообщение
|
|
|
|
|
Jack2345 |
26.10.2017, 9:45
Сообщение
|
Success
|
|
|
|
MrTsar |
26.10.2017, 9:59
Сообщение
|
|
так значит вот список amx_plugins с кодом плагина первого поста темы:
amx_plugins Код: AMXBans: Core CS-Bans 1. RoDGeR By Servac amxbans_core.am running Вот список amx_plugins с кодом от DRW со второго поста темы (при котором вообще разминка не работает) amx_plugins Код: AMXBans: Core CS-Bans 1. RoDGeR By Servac amxbans_core.am running |
|
|
MrTsar |
26.10.2017, 10:13
Сообщение
|
|
|
|
|
MrTsar |
26.10.2017, 18:48
Сообщение
|
|
Наверное проблема не решаемая
|
|
|
Legend21 |
26.10.2017, 19:00
Сообщение
|
MrTsar,
А не проще ? Код: server_cmd("amx_pausecfg pause plugins.amxx") Или через систему API Код: native g_plugins ( ) Или Код: if (pause("ac", "plugins.amxx")) Cкрытый текст Код:
public eventRoundStart() <WarmUPStarted>
Отредактировал: Legend21, - 26.10.2017, 19:13
|
|
|
|
MrTsar |
26.10.2017, 20:25
Сообщение
|
|
Legend21, Может и проще, но я не шарю что так можно.
Если я правильно понял, то вместо "plugins.amxx" везде нужно написать плагин который нужно отключить? И если к примеру отключить нужно 2 плагина то сделать так?: Код:
соответственно ниже Код: #if defined STOP_PLUGS
Отредактировал: MrTsar, - 26.10.2017, 20:28
|
|
|
Legend21 |
26.10.2017, 21:15
Сообщение
|
MrTsar,
Верно. Только советую не пользоваться любой паузой плагинов которые имеют соединение с mysqlt - это может привести к ошибкам , да и вообще плагины которые имеют более высокий приоритет чувствительности в коде к примеру API. Сервер может падать с ошибками сегмента и т д
Отредактировал: Legend21, - 26.10.2017, 21:22
|
|
|
|
MrTsar |
27.10.2017, 9:45
Сообщение
|
|
|
|
|
BaHeK |
27.10.2017, 11:38
Сообщение
|
|
А это что такое? Все отключается плагином в первом посте. Чуть-чуть нарушаю http://img-host.su/aoN1.png |
|
|
MrTsar |
27.10.2017, 12:16
Сообщение
|
|
|
|
|