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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.
3 страниц V  « 2 3

CSDM как ночной режим

Статус пользователя Topgear
сообщение 27.4.2015, 6:55
Сообщение #41


Стаж: 11 лет

Сообщений: 193
Благодарностей: 83
Полезность: 94

Dukkhaz0r, к сожалению тоже не подходящий вариант.
желательно добавить проверку при смене карты, чтоб когда карта сменилась, часть плагинов уже стояла на паузе, а не приходилось ждать минуту, если это возможно конечно. просто не совсем понимаю в скриптинге.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 27.4.2015, 7:38
Сообщение #42


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Topgear, не совсем понял, что вы хотите. Напишите сюда ТЗ, сделаю.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Topgear
сообщение 27.4.2015, 7:52
Сообщение #43


Стаж: 11 лет

Сообщений: 193
Благодарностей: 83
Полезность: 94

Dukkhaz0r, тот вариант с set_task не подходящий потому что часть плагинов которые должны включаться только на дм, он отключает только через минуту после начала карты когда включен паблик, и наоборот. это первое.
Хотелось бы видеть полноценный дм-сервер после 11 вечера. чтоб одни плагины отключились, другие включились и были доступны только определённые карты в это время, а не весь maps.ini
и ещё вопрос, когда происходит отключение плагинов паблика и подгружается дм-мод, не будет падений сервера когда 25-30 человек на сервере. а то такое чувство что как-то некорректно это все подгружается с помощью вот этого плагина.

Отредактировал: Topgear, - 27.4.2015, 7:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 27.4.2015, 9:00
Сообщение #44
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

изначально речь не шла именно о CSDM, поэтому для меня любой респаун после смерти уже ДМ.

CSDM как ночной режим (Пост #764719)

Код:


if( hour >= 23 || hour <= 8 )
{
night = 1
server_cmd("mp_buytime 3")
выключайте нужные плагины через
server_cmd("amxx pause blabla.amxx")

server_cmd("csdm_enable") // если нужно включить
}
else
{
night = 0
server_cmd("csdm_disable")
}


определенные карты, это лучше в вашем мапчузере поправить . чем дописать одно и тоже еще и сюда.

Отредактировал: csnet, - 27.4.2015, 9:01


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя nonamekoff
сообщение 28.4.2015, 17:57
Сообщение #45
Стаж: 12 лет

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

Тоже хочу сделать так себе на сервере,уже давно вот только руки дошли.

И вот как думаю сделать :D

Беру плагин Map on Time ( ставить принудительно нужные карты в определённое время ) карту я взял de_dust2_2x2 изминил на de_dust2_2x22

Дальше derisive.gif

Создаёю папку maps в директории cstrike -> addons -> amxmodx -> configs.
в папке maps создаём файл с названием "plugins-de_dust2_2x22.ini"
и пропишу в нём

block_raund.amxx enabled
csdm_main.amxx.amxx enabled
csdm_equip.amxx enabled
и ещё нужные плагин

Думаю всё получаеться так с 00часов и до 10 утра включаеться карта de_dust2_2x22 и на ней csdm :D

Хочу узнать,у меня получиться?) и что мне ожидать... thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя velesgs
сообщение 7.6.2015, 11:18
Сообщение #46


Стаж: 10 лет
Город: Хмельницкий

Сообщений: 198
Благодарностей: 48
Полезность: < 0

Цитата(bakssoldier @ 2.4.2015, 13:03) *
Скрытый текст
Код:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>
#include <dhudmessage>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define VERSION "3.0"
// #define DBG // Дебаг сообщение в plugin_end
#define AUTORR // Включить или выключить автоматические рестарты карты [По дефолту включены]
#define AUTORR_ROUNDS 30 // Количество раундов, после которых последует рестарт карты

new g_iMaxPlayers;
new g_szCurrentMap[32];

new pcv_time;
new pcv_map;
new pcv_lastround;
new pcv_mp_timelimit;
new pcv_mp_buytime;

new bool:g_bNightMode;
new bool:g_bNeedChange;
#if defined AUTORR
new bool:isFirstRound = true;
new g_roundCount;
#endif
new g_iOldTimelimit, g_iOldBuytime;

new bool:iSpawn[33] = false, bool:iRespawn[33] = false;

new szParse[4][3];

public plugin_init()
{
register_plugin("Map on Time", VERSION, "Flash | neygomon");

register_event("HLTV", "EventRoundStart", "a", "1=0", "2=0");
RegisterHam(Ham_Spawn,"player","fw_PlayerSpawn_Post",1);
#if defined AUTORR
register_event("TextMsg","eventRoundRestart","a","2&#Game_w");
register_event("TextMsg","eventCommencingRestart","a","2&#Game_C");
#endif

register_event("DeathMsg", "DeathMessg", "a");

// RTV Hook
register_clcmd("say rtv", "RtvHook");
register_clcmd("say_team rtv", "RtvHook");
register_clcmd("say /rtv", "RtvHook");
register_clcmd("say_team /rtv", "RtvHook");
register_clcmd("amx_rtv", "RtvHook");

register_clcmd("joinclass", "Spawn");
register_clcmd("say /nm", "CheckMode");

// Cvars
pcv_time = register_cvar("mot_time", "22:00 08:00");
pcv_map = register_cvar("mot_map", "de_dust2_2x2");
pcv_lastround = register_cvar("mot_lastround", "1");
pcv_mp_timelimit = get_cvar_pointer("mp_timelimit");
pcv_mp_buytime = get_cvar_pointer("mp_buytime");

g_iMaxPlayers = get_maxplayers();
get_mapname(g_szCurrentMap, 31);

TaskCheckTime();
set_task(2.0, "CheckAndRemoveBomb");
}

public CheckMode(id)
{
if(g_bNightMode)
client_print(id, print_chat, "------> NightMode RUN");
else
client_print(id, print_chat, "------> NightMode NO");
}

public client_authorized(id)
{
if(g_bNightMode)
remove_user_flags(id, ADMIN_MAP|ADMIN_VOTE);
}

public DeathMessg()
{
if(g_bNightMode)
{
iRespawn[read_data(2)] = true;
set_task(1.0, "fw_PlayerSpawn", read_data(2));
}
}

public Spawn(id)
{
if(g_bNightMode)
{
iSpawn[id] = true;
set_task(2.0, "fw_PlayerSpawn", id);
}
}

public fw_PlayerSpawn_Post(id)
{
if(g_bNightMode)
{
cs_set_user_money(id, 16000);
set_pev(id, pev_takedamage, DAMAGE_NO);
set_task(2.0, "OffProtection", id);
}
}

public OffProtection(id)
set_pev(id, pev_takedamage, DAMAGE_AIM);

public fw_PlayerSpawn(id)
{
if(is_user_alive(id)) return;

switch(get_user_team(id))
{
case 1, 2:
{
if(iRespawn[id])
ExecuteHamB(Ham_CS_RoundRespawn, id);
else if(iSpawn[id])
ExecuteHamB(Ham_Spawn, id);
iRespawn[id] = iSpawn[id] = false;
}
}
}

public TaskCheckTime()
{
new iHour, iMin;
time(iHour, iMin);
new iCurTime = iHour * 60 * 60 + iMin * 60;
new szTime[12];
get_pcvar_string(pcv_time, szTime, 11);
replace_all(szTime, 11, ":", " ");

if(parse(szTime, szParse[0], 2, szParse[1], 2, szParse[2], 2, szParse[3], 2) != 4)
{
set_fail_state("Invalid time in cvar");
return;
}

new iFrom = str_to_num(szParse[0]) * 60 * 60 + str_to_num(szParse[1]) * 60;
new iTo = str_to_num(szParse[2]) * 60 * 60 + str_to_num(szParse[3]) * 60;

if(iFrom < iCurTime || iCurTime < iTo)
{
log_to_file("nightmode.log", "From: %d | CurTime: %d | To: %d", iFrom, iCurTime, iTo);

new szNightMap[32];
get_pcvar_string(pcv_map, szNightMap, 31);
if(!equal(g_szCurrentMap, szNightMap))
{
if(get_pcvar_num(pcv_lastround))
{
set_hudmessage(127, 127, 127, 0.02, 0.21, 0, 5.0, 15.04, 0.0, 0.5, 3);
show_hudmessage(0, "Последний раунд");
g_bNeedChange = true;
}
else
server_cmd("changelevel %s", szNightMap);
return;
}

if(!g_bNightMode)
{
g_iOldTimelimit = get_pcvar_num(pcv_mp_timelimit);
g_iOldBuytime = get_pcvar_num(pcv_mp_buytime);
set_pcvar_num(pcv_mp_timelimit, 0);
set_pcvar_num(pcv_mp_buytime, 2);
RemovePlayersFlags();
g_bNightMode = true;
}
}
else if(g_bNightMode)
{
g_bNightMode = false;
set_pcvar_num(pcv_mp_timelimit, 5 + floatround(get_gametime()) / 60);
}
return;
}

public RtvHook(id)
{
if(g_bNightMode)
{
client_print_color(id, 0, "^1[^4NightMode^1] ^3* RTV не работает в ^"Ночном режиме^"!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
#if defined AUTORR
public eventCommencingRestart()
isFirstRound = true;

public eventRoundRestart()
g_roundCount = 0;
#endif
public EventRoundStart()
{
if(g_bNeedChange)
{
message_begin(MSG_ALL, SVC_INTERMISSION);
message_end();
set_task(3.0, "DelayChangeMap");
}
if(g_bNightMode)
{
#if defined AUTORR
if(isFirstRound)
{
isFirstRound = false;
g_roundCount = 0;
}
g_roundCount++;
new maxrounds = AUTORR_ROUNDS;
new round;
round = maxrounds - g_roundCount;
if(round > 0 && g_roundCount != 0)
client_print_color(0, 0, "^1[^4NightMode^1] ^4До авторестарта карты осталось^3 %d ^4раундов ^1[^4Тек. раунд:^3 %d ^1| ^4Всего:^3 %d^1]", round, g_roundCount, maxrounds);
else if(g_roundCount >= maxrounds)
server_cmd("restart");
#endif
set_task(5.0, "RemoveBombTarget");
hud_message();
}
TaskCheckTime();
}

public DelayChangeMap()
{
new szNightMap[32]; get_pcvar_string(pcv_map, szNightMap, 31);
server_cmd("changelevel %s", szNightMap);
}

public plugin_end()
{
if(g_iOldTimelimit || g_iOldBuytime)
{
set_pcvar_num(pcv_mp_timelimit, g_iOldTimelimit);
set_pcvar_num(pcv_mp_buytime, g_iOldBuytime);
#if defined DBG
log_to_file("nightmode_debug.log", "[plugin_end] g_iOldTimelimit: %d | timelimit: %d", g_iOldTimelimit, get_pcvar_num(pcv_mp_timelimit));
#endif
}
}

RemovePlayersFlags()
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(is_user_connected(i))
remove_user_flags(i, ADMIN_MAP|ADMIN_VOTE);
}
}

public CheckAndRemoveBomb()
{
if(!g_bNightMode) return;

new entList[][] = { "func_bomb_target", "info_bomb_target" };

for(new i ; i < sizeof entList ; ++i)
{
new ent
while((ent = fm_find_ent_by_class(ent,entList[i])))
{
if(fm_is_valid_ent(ent))
fm_remove_entity(ent)
}
}
}

stock hud_message()
{
set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.2, 0, 1.5, 3.0, 0.0, 0.0, false);
show_dhudmessage(0, "C %d:%d до %d:%d ночной режим!^nВ стиле CSDM",szParse[0], szParse[1], szParse[2], szParse[3]);
}


Работает, но не компилится правильно ***
show_dhudmessage(0, "C %d:%d до %d:%d ночной режим!^nВ стиле CSDM",szParse[0], szParse[1], szParse[2], szParse[3]);
ругается на эту строчку что тут не так?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kadun
сообщение 7.6.2015, 11:33
Сообщение #47


Стаж: 12 лет

Сообщений: 222
Благодарностей: 43
Полезность: 156

Код:
show_dhudmessage(0, "C %d:%d до %d:%d ночной режим!^nВ стиле CSDM", szParse[0], szParse[1], szParse[2], szParse[3]);

",szParse[0]," на ", szParse[0]," видимо...

Отредактировал: kadun, - 7.6.2015, 11:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
antiradius
сообщение 7.6.2015, 12:40
Сообщение #48
Стаж: 10 лет

Сообщений: 34
Благодарностей: 19
Полезность: 0

velesgs, то что szParse[0] и тд.. это строки, а не числа..
szParse[0] -> str_to_num(szParse[0])

ну или %d заменить на %s, но не уверен что будет то что надо :D

Отредактировал: antiradius, - 7.6.2015, 12:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя velesgs
сообщение 7.6.2015, 13:17
Сообщение #49


Стаж: 10 лет
Город: Хмельницкий

Сообщений: 198
Благодарностей: 48
Полезность: < 0

Код
show_dhudmessage(0, "C %d:%d до %d:%d ночной режим!^nВ стиле CSDM", szParse[0], szParse[1], szParse[2], szParse[3]);

В общем в таком виде, все нормально компилируется, и работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя riva2014
сообщение 29.2.2016, 14:38
Сообщение #50


Стаж: 11 лет

Сообщений: 125
Благодарностей: 10
Полезность: 64

Нечего сложного в этом нет . Ну почти )))
Сегодня протестирую последний штрих и если будет всё ок , то можно будет не только в определённое время запускать , а дать право выбора игрокам .
P.S Ни какие приватные плагины при этом не нужны , всё в свободном доступе лежит .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
danisimus
сообщение 28.2.2020, 22:21
Сообщение #51
Стаж: 17 лет

Сообщений: 1324
Благодарностей: 376
Полезность: 172

А как на гангейм прописать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V  « 2 3
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: