PDA

Просмотр полной версии : [Вопрос] Сервер не грузит дальше filterscript



Stane
03.11.2015, 18:24
Сервер не грузит дальше filterscript
Вот такая вот беда. На локалке все отлично работает.
Это на хосте


SA-MP Dedicated Server
----------------------
v0.3x-R2, (C)2005-2013 SA-MP Team

[17:16:15]
[17:16:15] Server Plugins
[17:16:15] --------------
[17:16:15] Loading plugin: sscanf.so
[17:16:15]

[17:16:15] ===============================

[17:16:15] sscanf plugin loaded.

[17:16:15] Version: 2.8.1

[17:16:15] (c) 2012 Alex "Y_Less" Cole

[17:16:15] ===============================

[17:16:15] Loaded.
[17:16:15] Loading plugin: mysql.so
[17:16:15] plugin.mysql: R20 successfully loaded.
[17:16:15] Loaded.
[17:16:15] Loading plugin: streamer.so
[17:16:15]

*** Streamer Plugin v2.7.5.2 by Incognito loaded ***

[17:16:15] Loaded.
[17:16:15] Loading plugin: dc_cmd.so
[17:16:15] Daniel's CMD plugin v2.8
[17:16:15] (c) 2014 Daniel_Cortez
[17:16:15] www.pro-pawn.ru
[17:16:15] Loaded.
[17:16:15] Loaded 4 plugins.

[17:16:15]
[17:16:15] Ban list
[17:16:15] --------
[17:16:15] Loaded: samp.ban
[17:16:15]
[17:16:15]
[17:16:15] Filterscripts
[17:16:15] ---------------
[17:16:15] Loading filterscript 'yom_buttons.amx'...

Это на локалке

SA-MP Dedicated Server
----------------------
v0.3.7, (C)2005-2015 SA-MP Team

[19:23:58]
[19:23:58] Server Plugins
[19:23:58] --------------
[19:23:58] Loading plugin: sscanf
[19:23:58]

[19:23:58] ===============================

[19:23:58] sscanf plugin loaded.

[19:23:58] Version: 2.8.1

[19:23:58] (c) 2012 Alex "Y_Less" Cole

[19:23:58] ===============================

[19:23:58] Loaded.
[19:23:58] Loading plugin: mysql
[19:23:58] plugin.mysql: R20 successfully loaded.
[19:23:58] Loaded.
[19:23:58] Loading plugin: streamer
[19:23:58]

*** Streamer Plugin v2.7.5.2 by Incognito loaded ***

[19:23:58] Loaded.
[19:23:58] Loading plugin: dc_cmd
[19:23:58] Daniel's CMD plugin v2.8
[19:23:58] (c) 2014 Daniel_Cortez
[19:23:58] www.pro-pawn.ru
[19:23:58] Loaded.
[19:23:58] Loaded 4 plugins.

[19:23:58]
[19:23:58] Ban list
[19:23:58] --------
[19:23:58] Loaded: samp.ban
[19:23:58]
[19:23:58]
[19:23:58] Filterscripts
[19:23:58] ---------------
[19:23:58] Loading filterscript 'yom_buttons.amx'...
[19:23:58] Loaded 1 filterscripts.

[19:23:58] - Подключение к базе `dimanBZe` успешно
[19:23:58] function 'mysql_debug' is deprecated, use 'mysql_log' instead.
[19:23:58] ----------------------------------

[19:23:58] (c) 2015 by LRP (vk.com/lndrp)
[19:23:58] ----------------------------------

[19:23:58] Number of vehicle models: 59
[19:23:58] ************** [MySQL INFO] **************
[19:23:58] [MySQL]: Гангзон загружено - 132
[19:23:58] [MySQL]: Домов загружено - 311
[19:23:58] [MySQL]: Бизнесов загружено - 21
[19:23:58] [MySQL]: Предприятий загружено - 2
[19:23:58] ************** [MySQL INFO] **************

Daniel_Cortez
03.11.2015, 20:57
Если на локалке (в Windows) сервер работает нормально, а на хостинге (Linux) нет - это признак того, что краш происходит из-за выхода за пределы буфера в одной из нативных функций.
Вот один из примеров такого кода, который будет работать на локальном сервере (Windows), но выдаст краш на хостинге (Linux):


new string[8];
format(string, 256, "Sample text");

Обратите внимание: в объявлении массива string указан размер в 8 ячеек. При этом в format указано, якобы в массиве этих ячеек 256. Второй параметр в format нужен для того, чтобы функция знала, где массив заканчивается, и не вышла за его пределы. Если указать размер больше, чем на самом деле, функция может выйти за пределы массива - а там может быть, что угодно.
Исправляется такая ошибка очень просто:


new string[8];
format(string, sizeof(string), "Sample text");

Указав в format размер массива с помощью sizeof вы вряд ли ошибётесь (разве что если укажете в sizeof не тот массив - но вы же не будете создавать кучу массивов с похожими названиями, правда?)
Но имейте в виду, что ошибки могут быть не только с использованием format, но и с другими строковыми функциями: strcat, strmid, etc.

Stane
03.11.2015, 21:41
Попробую.