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

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

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

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

Падает сервер [META] WARNING:

, [META] WARNING: ini: Unable to open plugins file
Статус пользователя drivemaster
сообщение 4.11.2015, 22:45
Сообщение #1


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Доброго времени суток. Тут возникала проблемка, после установки плагина выдачи моделей за убийства Skin System, стал падать сервер при смене карты.

Периодичность падения примерно 3-4 часа.

Т.е. карта заканчивается, лог нормально завершается, но перед завершением идут варнинги метамода:

Код:
L 11/04/2015 - 21:15:09: [META] WARNING: ini: Unable to open plugins file '/home/cstrike/addons/metamod/plugins.ini': Too many open files
L 11/04/2015 - 21:15:09: [META] WARNING: dll: Problem reloading plugins.ini: /home/cstrike/addons/metamod/plugins.ini


Код:
L 11/04/2015 - 21:15:09: Log file closed


Создаётся следующий лог и при прогрузки начальных кваров, во время смены карты останавливается (сервер падает)

Код:
L 11/04/2015 - 21:15:09: Server cvar "mp_kickpercent" = "0.66"
L 11/04/2015 - 21:15:09: Server cvar "mp_limitteams" = "1"
L 11/04/2015 - 21:15:09: Server cvar "mp_logdetail" = "3"
L 11/04/2015 - 21:15:09: Server cvar "mp_logfile" = "1"
L 11/04/2015 - 21:15:09: Server cvar "mp_logmessages" = "1"
L 11/04/2015 - 21:15:09: Server cvar "mp_mapvoteratio" = "0.66"
L 11/04/2015 - 21:15:09: Server cvar "mp_maxrounds" = "0"
L 11/04/2015 - 21:15:09: Server cvar "mp_mirrordamage" = "0"
L 11/04/2015 - 21:15:09: Server cvar "mp_playerid" = "0"
L 11/04/2015 - 21:15:09: Server cv


Можно ли как-то исправить?

Meta list
Код:
linux addons/amxmodx/so/amxmodx_mm_i386.so
linux addons/dproto/so/dproto_i386.so
linux addons/vtc/so/vtc.so
linux addons/fakedetector/so/fakedetector_mm_i386.so
linux addons/localizebugfix/so/localizebugfix_mm_i386.so



Код плагина
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

#define SAVETIME_MIN 0.5
#define SAVETIME_MAX 3.0
#define LOADTIME 2.5

#define MAXWEAPONS 30
#define SKINSPERWEAPONS 10
#define POINTSLEN 6

#define PORT 1

#pragma semicolon 1

new const PLUGIN[] = "Skin System";
new const VERSION[] = "2.33";
new const AUTHOR[] = "DeRoiD";

new KillPoints[31][33], Skin[31][SKINSPERWEAPONS],
vSkinMdl[31][SKINSPERWEAPONS][64], pSkinMdl[31][SKINSPERWEAPONS][64],
SkinName[31][SKINSPERWEAPONS][32], Already[31], Cvar_Save, pSave[3][32][33];
new PointsFile[64], SkinsFile[64];

new const WeaponNames[][] =
{
"", "P228", "", "Scout", "He Grenade", "XM1014", "", "MAC10", "AUG",
"", "Elite", "FiveSeven", "UMP45", "SG550", "Galil", "FAMAS",
"USP", "Glock18", "AWP", "MP5", "M249", "M3", "M4A1", "TMP", "G3SG1",
"", "Deagle", "SG552", "AK47", "Knife", "P90"
};
new const WeaponEntNames[][] =
{
"weapon_p228", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_mac10",
"weapon_aug", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp",
"weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp",
"weapon_g3sg1", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90"
};

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar(PLUGIN, AUTHOR, FCVAR_SERVER);

Cvar_Save = register_cvar("skin_s_savemod", "2");

register_clcmd("say", "Say");
register_clcmd("say_team", "Say");

for(new Num; Num < sizeof WeaponEntNames; Num++)
{
RegisterHam(Ham_Item_Deploy, WeaponEntNames[Num], "WeaponModel", 1);
}

register_forward(FM_ClientUserInfoChanged, "NameChange");
register_dictionary("skinsystem.txt");

LoadSkins();
}
public plugin_precache() {
static ConfigsDir[64];
get_localinfo("amxx_configsdir", ConfigsDir, 63);
formatex(PointsFile, 63, "%s/skinsystem/save.ini", ConfigsDir);
formatex(SkinsFile, 63, "%s/skinsystem/skins.cfg", ConfigsDir);

new Len, Line[256], Data[3][48], FileLine;
FileLine = file_size(SkinsFile, 1);
for(new Num = 0; Num < FileLine; Num++)
{
read_file(SkinsFile, Num, Line, 255, Len);
parse(Line, Data[0], 31, Data[1], 47, Data[2], 47);

if(Line[0] == ';' || strlen(Line) < 5)
continue;

remove_quotes(Data[1]);
remove_quotes(Data[2]);

if(containi(Data[1], ".mdl") != -1)
{
precache_model(Data[1]);
}

if(containi(Data[2], ".mdl") != -1)
{
precache_model(Data[2]);
}
}
}
public NameChange(Player)
{
if(!is_user_connected(Player) || get_pcvar_num(Cvar_Save) != 0)
return FMRES_IGNORED;

new OldName[32], NewName[32], Name[32];
get_user_name(Player, Name, 31);
pev(Player, pev_netname, OldName, charsmax(OldName));
if(OldName[0])
{
get_user_info(Player, "name", NewName, charsmax(NewName));
if(!equal(OldName, NewName))
{
remove_task(Player);

LoadPlayer(Player);
LoadPoints(Player);
}
}
return FMRES_IGNORED;
}
public WeaponModel(Weapon) {
new Player = get_pdata_cbase(Weapon, 41, 4);
new WeaponID = cs_get_weapon_id(Weapon);

if(Player > 32 || Player < 1
|| WeaponID < 1 || WeaponID > 30)
{
return HAM_SUPERCEDE;
}

for(new Num = 1; Num < MAXWEAPONS; Num++)
{
if(Num == WeaponID)
{
for(new x; x < Already[WeaponID]; x++)
{
if(KillPoints[WeaponID][Player] >= Skin[WeaponID][x])
{
if(containi(vSkinMdl[WeaponID][x], ".mdl") != -1)
{
set_pev(Player, pev_viewmodel2, vSkinMdl[WeaponID][x]);
}
if(containi(pSkinMdl[WeaponID][x], ".mdl") != -1)
{
set_pev(Player, pev_weaponmodel2, pSkinMdl[WeaponID][x]);
}
}
}
}
}
return HAM_IGNORED;
}
public LoadSkins() {
new File;
File = fopen(SkinsFile, "rt");

if(File)
{
new Line[256], Type[32], Data[5][64];
while(!feof(File))
{
fgets(File, Line, 255);

if(Line[0] == ';' || strlen(Line) < 5)
continue;

parse(Line, Type, 31);

for(new Num = 1; Num < MAXWEAPONS+1; Num++)
{
if(Already[Num] >= SKINSPERWEAPONS)
continue;

if(equali(Type, WeaponNames[Num]))
{
parse(Line, Data[0], 63, Data[1], 63, Data[2], 63, Data[3], 63, Data[4], 63);
copy(vSkinMdl[Num][Already[Num]], 63, Data[1]);
copy(pSkinMdl[Num][Already[Num]], 63, Data[2]);
copy(SkinName[Num][Already[Num]], 31, Data[4]);
Skin[Num][Already[Num]] = str_to_num(Data[3]);
Already[Num]++;
}
}
}
fclose(File);
}
}
public client_death(Killer, Victim, Weapon)
{
if(Killer == Victim
|| Killer > 32 || Killer < 1
|| Weapon == 25 || Weapon == 9
|| Weapon < 1 || Weapon > 30)
{
return PLUGIN_HANDLED;
}

set_task(random_float(SAVETIME_MIN, SAVETIME_MAX), "SavePoints", Killer);
KillPoints[Weapon][Killer]++;

return PLUGIN_CONTINUE;
}
public ShowSkins(Player, i)
{
new MotdTitle[64];
formatex(MotdTitle, 63, "%L", LANG_SERVER, "MOTD1");

new Motd[1024], Line[256];
formatex(Line, 255, "<body bgcolor=^"black^">^n<font color=^"red^">^n");
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<p align=^"center^">%s %s by: %s</p></font>^n<font color=^"greenyellow^">^n", PLUGIN, VERSION, AUTHOR);
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<p align=^"center^">%L:</p></font>^n", LANG_SERVER, "SKINS", WeaponNames[i]);
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<h5>^n<font color=^"white^">^n");
add(Motd, 1023, Line, 255);

for(new Num; Num < MAXWEAPONS; Num++)
{
if(Num != i)
continue;
formatex(Line, 255, "<p>");
add(Motd, 1023, Line, 255);
for(new x; x < SKINSPERWEAPONS; x++)
{
if(strlen(SkinName[Num][x]) < 2)
continue;

formatex(Line, 255, "<br>%s: (%L)", SkinName[Num][x], LANG_SERVER, "KILLS", Skin[Num][x]);
add(Motd, 1023, Line, 255);
}
formatex(Line, 255, "</p>");
add(Motd, 1023, Line, 255);
}

formatex(Line, 255, "^n</h5>^n</font>^n</body>");
add(Motd, 1023, Line, 255);
show_motd(Player, Motd, MotdTitle);
}
public ShowPoints(Player, Target)
{
new Name[32], MotdTitle[64];
get_user_name(Target, Name, 31);

formatex(MotdTitle, 63, "%L", LANG_SERVER, "PKILLS", Name);

new Motd[1024], Line[256];
formatex(Line, 255, "<body bgcolor=^"black^">^n<font color=^"red^">^n");
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<p align=^"center^">%s %s by: %s</p></font>^n<font color=^"white^">^n", PLUGIN, VERSION, AUTHOR);
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<p align=^"center^">%L:</p></font>^n", LANG_SERVER, "PKILLS", Name);
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<font color=^"cyan^">^n");
add(Motd, 1023, Line, 255);
formatex(Line, 255, "<h5>^n");
add(Motd, 1023, Line, 255);

if(Target > 0)
{
formatex(Line, 255, "<p align=^"center^">");
add(Motd, 1023, Line, 255);
new Len;
for(new Num = 1; Num < MAXWEAPONS+1; Num++)
{
if(Num == 2 || Num == 6 || Num == 9 || Num == 25)
{
continue;
}

Len++;

if(Len < POINTSLEN)
{
formatex(Line, 255, " %s: %d |", WeaponNames[Num], KillPoints[Num][Target]);
add(Motd, 1023, Line, 255);
}
else
{
Len = 0;
formatex(Line, 255, " %s: %d</p>^n<p align=^"center^">", WeaponNames[Num], KillPoints[Num][Target]);
add(Motd, 1023, Line, 255);
}
}
formatex(Line, 255, "</p>");
add(Motd, 1023, Line, 255);
}

formatex(Line, 255, "^n</h5>^n</font>^n</body>");
add(Motd, 1023, Line, 255);
show_motd(Player, Motd, MotdTitle);
}
public Say(Player)
{
new Message[32];
read_args(Message, 31);
remove_quotes(Message);

if(equali(Message, "/mykills"))
{
ShowPoints(Player, Player);
}
else if(containi(Message, "/skins") != -1)
{
for(new Num; Num < MAXWEAPONS+1; Num++)
{
if(containi(Message, WeaponNames[Num]) != -1)
{
ShowSkins(Player, Num);
return PLUGIN_HANDLED;
}
}
}
else
{
new TargetName[32], Name[32], Command[32];
parse(Message, Command, 31, TargetName, 31);
if(equali(Command, "/kill"))
{
for(new Target; Target < 32; Target++)
{
if(Target == Player || !is_user_connected(Target))
{
continue;
}

get_user_name(Target, Name, 31);

if((containi(Name, TargetName) != -1))
{
if(equali(Name, TargetName))
ShowPoints(Player, Target);
else if(strlen(TargetName) > 3)
ShowPoints(Player, Target);
return PLUGIN_HANDLED;
}
}
}
}
return PLUGIN_CONTINUE;
}
public client_putinserver(Player)
{
remove_task(Player);
set_task(LOADTIME, "LoadPoints", Player);
}
public client_connect(Player)
{
LoadPlayer(Player);
}
public LoadPoints(Player)
{
if(!is_user_connected(Player))
{
return PLUGIN_HANDLED;
}

new File;
File = fopen(PointsFile, "rt");

if(File)
{
new Line[256];
new LineName[32], Data[31][8];

while(!feof(File))
{
fgets(File, Line, 255);

if(Line[0] == ';' || strlen(Line) < 2)
continue;

parse(Line, LineName, 31);

if(equal(LineName, pSave[get_pcvar_num(Cvar_Save)][Player]))
{
parse(Line, Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,
Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,
Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,
Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,
Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7);

for(new Num = 1; Num < MAXWEAPONS+1; Num++)
{
KillPoints[Num][Player] = str_to_num(Data[Num]);
}
return PLUGIN_HANDLED;
}
}
fclose(File);
}
return PLUGIN_CONTINUE;
}
public SavePoints(Player)
{
if(!is_user_connected(Player))
{
return PLUGIN_HANDLED;
}

new File;
File = fopen(PointsFile, "rt");

if(File)
{
new Line[192], LineNum;

new LineName[32], bool:Found;

while(!feof(File))
{
fgets(File, Line, 191);

if(Line[0] == ';' || strlen(Line) < 2)
continue;

parse(Line, LineName, 31);

if(equal(LineName, pSave[get_pcvar_num(Cvar_Save)][Player]) && !Found)
{
new SaveLine[256], PlayerPoints[256], String[8];

for(new Num = 1; Num < MAXWEAPONS+1; Num++)
{
format(String, 7, "^"%i^" ", KillPoints[Num][Player]);
add(PlayerPoints, 255, String);
}

formatex(SaveLine, 255, "^"%s^" %s", pSave[get_pcvar_num(Cvar_Save)][Player], PlayerPoints);
write_file(PointsFile, SaveLine, LineNum);
Found = true;
return PLUGIN_HANDLED;
}

LineNum++;
}

if(!Found)
{
new SaveLine[256], PlayerPoints[256], String[8];

for(new Num; Num < MAXWEAPONS; Num++)
{
format(String, 7, "^"%i^" ", KillPoints[Num][Player]);
add(PlayerPoints, 255, String);
}

formatex(SaveLine, 255, "^"%s^" %s", pSave[get_pcvar_num(Cvar_Save)][Player], PlayerPoints);
write_file(PointsFile, SaveLine);
return PLUGIN_HANDLED;
}
fclose(File);
}
return PLUGIN_CONTINUE;
}
stock LoadPlayer(Player)
{
new Num;
for(Num = 1; Num < MAXWEAPONS+1; Num++)
{
KillPoints[Num][Player] = 0;
}

for(Num = 0; Num < 2; Num++)
{
pSave[0][Player] = "";
}
get_user_name(Player, pSave[0][Player], 31);
get_user_ip(Player, pSave[1][Player], 31, PORT);
get_user_authid(Player, pSave[2][Player], 31);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/


Отредактировал: drivemaster, - 5.11.2015, 21:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя death_error
сообщение 12.11.2015, 7:22
Сообщение #2
Стаж: 15 лет

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

Cкрытый текст
http://www.stableit.ru/2009/11/too-many-open-files.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя drivemaster
сообщение 12.11.2015, 9:15
Сообщение #3


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Цитата(death_error @ 12.11.2015, 8:18) *
Cкрытый текст
http://www.stableit.ru/2009/11/too-many-open-files.html


Спасибо, но не думаю, что есть необходимость перенастраивать систему, т.к. из 5 - кс 1.6 серверов и 1 - Го сервера, падать начинает лишь 1 и то после установки плагина Скин Систем, после отключения, всё нормализуется. Скорее всего надо оптимизировать код плагина, но в этом я не силён.

Отредактировал: drivemaster, - 12.11.2015, 9:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
EvilSMS
сообщение 12.11.2015, 9:51
Сообщение #4
Стаж: 10 лет

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

drivemaster, у Вас так же путь? linux addons/vtc/so/vtc.so
И проверьте все пути.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Profan
сообщение 12.11.2015, 12:46
Сообщение #5


Стаж: 10 лет
Город: Сочи

Сообщений: 1317
Благодарностей: 403
Полезность: 698

drivemaster, Людям было бы понятнее разобрать вашу проблему если бы Вы корректно составили описание и дали информацию, а от того что вы содержимое кфг файлов сервера выкладываете яснее не станет, тут народ только больше времени своего потеряет, на расспросы и т.д. Возьмите пример того как делается данное обращение на форум, с указанием всех данных которые возможно получить. Ведь чем больше и полнее Вы предоставите фактов, тем быстрее решите свою проблему!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя drivemaster
сообщение 12.11.2015, 14:01
Сообщение #6


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Цитата(EvilSMS @ 12.11.2015, 10:47) *
drivemaster, у Вас так же путь? linux addons/vtc/so/vtc.so
И проверьте все пути.


Что Вас смутило в данном пути?

Цитата
drivemaster, Людям было бы понятнее разобрать вашу проблему если бы Вы корректно составили описание и дали информацию, а от того что вы содержимое кфг файлов сервера выкладываете яснее не станет, тут народ только больше времени своего потеряет, на расспросы и т.д. Возьмите пример того как делается данное обращение на форум, с указанием всех данных которые возможно получить. Ведь чем больше и полнее Вы предоставите фактов, тем быстрее решите свою проблему!

Так я же не писал, что я не понимаю причину падения, проблема указана, это плагин - Skin System.
Я прошу людей разбирающихся в скриптинге посмотреть данный на предмет проблем, которые могут спровоцировать данную ошибку, либо бесплатно, либо платно.

Поэтому смысл выкладывать список всех плагинов, если сервера без данного плагина работают со 100% аптаймом?

Список плагинов
amxbans_core.amxx
fresh_bans.amxx
fb_forwards.amxx
fastdl.amxx
alias_detector058.amxx
hackdetector.amxx
vip_tag.amxx
ping_control.amxx
atac.amxx
atac_cfg.amxx
stop_spam.amxx
afk_control.amxx
instant_autoteambalance.amxx
resetscore.amxx
psstatsassault.amxx
statsx.amxx
statscfg.amxx
stats_logging.amxx
admin_screen.amxx
admin_esp_mini.amxx
admin_gag.amxx
amx_adminlisten.amxx
admin_freelook.amxx
pwr_event_link.amxx
pwr_menu.amxx
pwr_report.amxx
GHW_Message_Disp.amxx
doors_attack.amxx
custom_flashbang_sound.amxx
custom_flashbang2_sound.amxx
custom_gas_sound.amxx
flashbang_dlight.amxx
hostage_voices.amxx
hostage_icon.amxx
precache.amxx
new_weapons.amxx
timeleft.amxx
nextmap.amxx
mapchooser.amxx
admincmd.amxx
adminslots.amxx
;multilingual.amxx
menufront.amxx
cmdmenu.amxx
plmenu.amxx
mapsmenu.amxx
adminchat.amxx
imessage.amxx
adminvote.amxx
restmenu.amxx
pausecfg.amxx
antiflood.amxx
miscstats.amxx
pluginmenu.amxx


Отредактировал: drivemaster, - 12.11.2015, 14:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя counterstrikec4
сообщение 12.11.2015, 22:47
Сообщение #7
Стаж: 15 лет

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

Цитата
Я прошу людей разбирающихся в скриптинге посмотреть данный на предмет проблем, которые могут спровоцировать данную ошибку, либо бесплатно, либо платно.

точно не знаю, но по моему это вам на оленях ответили:
Too many files opened...
Because he used returns before fclose... Remove returns from the file save/load in .sma
handled and continue not needed here.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя drivemaster
сообщение 14.11.2015, 16:15
Сообщение #8


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Цитата(counterstrikec4 @ 12.11.2015, 23:43) *
точно не знаю, но по моему это вам на оленях ответили:
Too many files opened...
Because he used returns before fclose... Remove returns from the file save/load in .sma
handled and continue not needed here.


К сожалению, мне это сообщение мало что дало, поэтому и жду, может кто из наших скриптеров отпишется, по поводу данного кода плагина, может ли он вызывать такое и что именно туда дописать, модифицировать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя counterstrikec4
сообщение 14.11.2015, 16:49
Сообщение #9
Стаж: 15 лет

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

EN знаю плохо!
=======================
[EN] Too many files opened...
[RU] Открыто много файлов...

[EN] Because he used returns before fclose... Remove returns from the file save/load in .sma
[RU] returns используются до fclose... Удалите returns из этого файла и сохраните в .sma

[EN] handled and continue not needed here.
[RU] handled и continue здесь не нужны.
ps.gif как-то так!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: