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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Добавить проверку и команду

Статус пользователя ar7s7yles
сообщение 6.11.2014, 9:00
Сообщение #1
Стаж: 11 лет

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

Доброго времени суток,сообствено просьба:
Не могли бы вы посмотреть лог ошибок и сказать точно что у меня?
Я думаю что надо добавить проверку на жив ли пользователь или нет,но поскольку я тугодум в скриптинге,то могу ошибаться.
Если есть возможность,то добавьте пожалуйста команду /spawn ,которая будет воскрешать игроков и гляньте лог ошибок.
Если впадлу исправлять,то дайте направление куда двигаться.
Заранее спасибо.




Сам плагин
Код:
#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 40 // Количество раундов, после которых последует рестарт карты

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 /csdm", "CheckMode");

// Cvars
pcv_time = register_cvar("mot_time", "21: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, "CSDM мод работает с 21:00 до 9:00 по мск");
else
client_print(id, print_chat, "CSDM мод работает с 21:00 до 9:00 по мск");
}

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, "^4[CSDM by ^4] ^3* RTV не работает в ^"CSDM режиме^"!");
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, "^4[CSDM by ^4] ^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 CSDM режим!^n[By ",szParse[0], szParse[1], szParse[2], szParse[3]);
}


Лог ошибок
[CSTRIKE] Invalid player 5
L 11/05/2014 - 21:09:10: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!
L 11/05/2014 - 21:09:10: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 11/05/2014 - 21:09:13: [CSTRIKE] Invalid player 7
L 11/05/2014 - 21:09:13: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!
L 11/05/2014 - 21:09:13: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 11/05/2014 - 21:09:14: [CSTRIKE] Invalid player 6
L 11/05/2014 - 21:09:14: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!
L 11/05/2014 - 21:09:14: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 11/05/2014 - 21:09:16: Function is not present (function "RemoveBombTarget") (plugin "nightcsdm.amxx")
L 11/05/2014 - 21:09:16: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "set_task") - debug not enabled!
L 11/05/2014 - 21:09:16: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 11/05/2014 - 21:09:16: [CSTRIKE] Invalid player 8
L 11/05/2014 - 21:09:16: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!
L 11/05/2014 - 21:09:16: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя kes
сообщение 6.11.2014, 9:04
Сообщение #2


Стаж: 12 лет

Сообщений: 577
Благодарностей: 547
Полезность: 870

L 11/05/2014 - 21:09:16: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!

Что тут не понятного?

ps.gif debug добавь.

Отредактировал: kes, - 6.11.2014, 9:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lamkaa
сообщение 6.11.2014, 9:08
Сообщение #3
Стаж: 15 лет
Город: Санкт-Петербург


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

Цитата(ar7s7yles @ 6.11.2014, 10:00) *
Доброго времени суток,сообствено просьба:
Не могли бы вы посмотреть лог ошибок и сказать точно что у меня?
Я думаю что надо добавить проверку на жив ли пользователь или нет,но поскольку я тугодум в скриптинге,то могу ошибаться.
Если есть возможность,то добавьте пожалуйста команду /spawn ,которая будет воскрешать игроков и гляньте лог ошибок.
Если впадлу исправлять,то дайте направление куда двигаться.
Заранее спасибо.



В plugins.ini К плагину добавь в конце debug

nightcsdm.amxx debug
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ar7s7yles
сообщение 6.11.2014, 9:27
Сообщение #4
Стаж: 11 лет

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

Цитата(kes @ 6.11.2014, 9:04) *
L 11/05/2014 - 21:09:16: [AMXX] Run time error 10 (plugin "nightcsdm.amxx") (native "cs_set_user_money") - debug not enabled!

Что тут не понятного?

ps.gif debug добавь.


Цитата(lamkaa @ 6.11.2014, 9:08) *
В plugins.ini К плагину добавь в конце debug

nightcsdm.amxx debug


Спасибо,но не пойму что мне даст дебуг режим(настолько я глуп:D)
Или он даст подробный лог ошибок?

Отредактировал: ar7s7yles, - 6.11.2014, 9:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 6.11.2014, 9:28
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

ar7s7yles, он даст полную ошибку.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ar7s7yles
сообщение 6.11.2014, 9:39
Сообщение #6
Стаж: 11 лет

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

Цитата(Bloo @ 6.11.2014, 9:28) *
ar7s7yles, он даст полную ошибку.

лог с дебаг режима

[AMXX] Plugin says: Invalid time in cvar
L 11/06/2014 - 10:35:25: [AMXX] Displaying debug trace (plugin "nightcsdm.amxx")
L 11/06/2014 - 10:35:25: [AMXX] Run time error 1: forced exit
L 11/06/2014 - 10:35:25: [AMXX] [0] nightcsdm.sma::TaskCheckTime (line 146)
L 11/06/2014 - 10:35:25: [AMXX] [1] nightcsdm.sma::EventRoundStart (line 234)

Квары поправил.

Отредактировал: ar7s7yles, - 6.11.2014, 9:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ar7s7yles
сообщение 6.11.2014, 10:44
Сообщение #7
Стаж: 11 лет

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

Закройте,сам решил.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 6.11.2014, 10:48
Сообщение #8


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

ar7s7yles, а остальным рассказать никак?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ar7s7yles
сообщение 6.11.2014, 12:05
Сообщение #9
Стаж: 11 лет

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

Цитата(Bloo @ 6.11.2014, 10:48) *
ar7s7yles, а остальным рассказать никак?

Просто решил не использовать плагин.

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