• 0

[закрыто] Мой сервер в клиенте самп отображается как выключенный

Вопросы

tivan666ban
Активный

Мой сервер в клиенте самп отображается как выключенный, если что все остальные сервера в клиенте самп отображаются нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 ответов на этот вопрос

  • 0
tivan666ban
Активный

----------

Loaded log file: "server_log.txt".

----------

 

SA-MP Dedicated Server

----------------------

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

 

[17:24:08] 

[17:24:08] Server Plugins

[17:24:08] --------------

[17:24:08] Loading plugin: mysql.so

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
tivan666ban
Активный

echo Executing Server Config...

lanmode 0

rcon_password changem

maxplayers 10

bind 185.189.15.22

port 3808

hostname SA-MP 0.3 Server

gamemode0 Untitled 1

plugins mysql sscanf log-core

announce 1

query 1

weburl www.sa-mp.com

maxnpc 0

onfoot_rate 40

incar_rate 40

weapon_rate 40

stream_distance 300.0

 

stream_rate 1000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Sleash
Завсегдатый

@tivan666ban Попробуйте изменить файл server.cfg на такой:

echo Executing Server Config...
lanmode 0
rcon_password changem
maxplayers 10
bind 185.189.15.22
port 3808
hostname SA-MP 0.3 Server
gamemode0 Untitled 1
plugins mysql.so sscanf.so log-core.so
announce 1
query 1
weburl www.sa-mp.com
maxnpc 0
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

@tivan666ban, если это всё, что выдает в консоли, то дам пару советов. Рекомендую установить плагин crashdetect, это поможет в вычислении проблемы. Файл log-core.so (если он в папке plugins) перенести в корень сервера и НЕ подключать его в server.cfg. Плагин mysql сам находит файл log-core в корне сервера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
tivan666ban
Активный

Я чё то сделал теперь вот так

----------

Loaded log file: "server_log.txt".

----------

 

SA-MP Dedicated Server

----------------------

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

 

[11:17:30] 

[11:17:30] Server Plugins

[11:17:30] --------------

[11:17:30] Loading plugin: mysql

[11:17:30] Failed (plugins/mysql: cannot open shared object file: No such file or directory)

[11:17:30] Loading plugin: sscanf

[11:17:30] Failed (plugins/sscanf: cannot open shared object file: No such file or directory)

[11:17:30] Loading plugin: crashdetect

[11:17:30] Failed (plugins/crashdetect: cannot open shared object file: No such file or directory)

[11:17:30] Loading plugin: log-core2

[11:17:30] Failed (plugins/log-core2: cannot open shared object file: No such file or directory)

[11:17:30] Loaded 0 plugins.

 

[11:17:30] 

[11:17:30] Filterscripts

[11:17:30] ---------------

[11:17:30] Loaded 0 filterscripts.

 

[11:17:30] Script[gamemodes/Untitled.amx]: Run time error 19: "File or function is not found"

[11:17:30] Number of vehicle models: 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@tivan666ban,

 

  В 10/28/2023 в 08:19, tivan666ban сказал:

Я чё то сделал теперь вот так

Читать далее...  

Что значит "че то"? У вас в каталоге plugins файлы mysql.so, sscanf.so присутствуют?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
tivan666ban
Активный

Да. Ой не чё то а я вспомнил что этот хостинг на Винде и поэтому убрал в server.cfg .so

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@tivan666ban, замечательно, а в файле конфигурации убрали у плагинов расширения .so? В каталоге plugins позаботились о том, чтобы там были файлы mysql.dll, sscanf.dll, crashdetect.dll, log-core2.dll?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру
  В 10/28/2023 в 09:38, tivan666ban сказал:

этот хостинг на Винде

Читать далее...  

Уточните эту информацию.

 

  В 10/28/2023 в 08:19, tivan666ban сказал:

cannot open shared object file: No such file or directory

Читать далее...  

Операционные системы Windows NT не выдают такую ошибку в консоль.Безусловно, в Windows NT, как и в Unix-системах, есть файлы динамических библиотек, но, как правило, в Windows их называют динамические библиотеки (или динамически слинкованные/скомпанованные библиотеки, откуда и расширение dll - dynamic-link library), а в Unix-системах их называют shared object (откуда и расширение so). В тексте ошибки сказано именно про shared object, что и вызывает сомнения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
tivan666ban
Активный

@Cawfee Я раньше кидал на этот хостинг моды где в server.cfg не прописано .so и у меня всё работало

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@tivan666ban, уровень хостинга оставляет желать лучшего, поскольку его руководство нигде не опубликовало нормальное описание предлагаемых услуг. Но я не поленился потратить время и тыкнуть на кнопку автоустановки предлагаемого там сервера. Можно заметить, что в его конфигурационном файле используется расширение .so, что говорит о том, что сервер запущен под управлением ОС Unix-подобной системы. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@tivan666ban, на локальной машине ваш сервер нормально запускается без каких-либо изменений. Перепроверьте файл конфигурации (точно ли на хостинг загружена последняя версия этого файла), а также содержимое каталога plugins. Кроме того, обращаю ваше внимание, что плагин crashdetect должен размещаться первым в списке плагинов:

plugins crashdetect.so mysql.so sscanf.so log-core2.so

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@tivan666ban, во всяком случае в логах больше нет информации об ошибках – это уже хорошо. Касаемо того, что сервер отображается как выключенный, попробуйте убрать привязку к IP-адресу.

  В 10/24/2023 в 18:59, Sleash сказал:

bind 185.189.15.22

Читать далее...  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру

@ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ., не вижу в этом ничего обязательного. Сервер по умолчанию будет использовать локальный адрес вычислительной машины (то есть loopback-адрес и сетевой адрес исходя из сетевых настроек сетевой карты). Другой вопрос, что у сервера может быть несколько глобальных сетевых адресов...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Senwik
      От Senwik
      Здравствуйте,где можно скачать КРМП 0.3.7 не бета тест?
    • breznov
      От breznov
      Доброго времени суток уважаемые форумчане !
      Хочу попросить помощь у вас, у меня проблемы с сохранением лидерки в базу данных, код:
       
      new FactionName[32] = "Скинхеды"; new Float:FactionHQX = 123.45, Float:FactionHQY = 678.90, Float:FactionHQZ = 10.11; new FactionMembers[MAX_PLAYERS]; new FactionRank[MAX_PLAYERS]; new FactionLeader = -1; // ID лидера (-1 означает, что лидера нет) new FactionDeputy = -1; // ID заместителя (-1 означает, что заместителя нет)

       
      #define FACTION_SKINHEDS 1 #define LEADER_INFO_DIALOG 1


       
      new const FactionRankNames[][] = {     "Новичок",     "Боец",     "Стрелок",     "Головорез",     "Бригадир",     "Доверенное лицо",     "Советник",     "Заместитель",     "Консильери",     "Дон" };  
      public OnGameModeInit():

       
      public OnGameModeInit() {     ConnectMySQL();     DisableInteriorEnterExits();     EnableStuntBonusForAll(0);     SetGameModeText("Armade RP v2.0");     SendRconCommand("hostname "SERVER_NAME" by Didenko");     LoadMapping();     Iter_Clear(Admins_ITER);     Iter_Clear(Question_ITER);     actor1 = CreateActor(159, 1800.0490, 2506.0791, 15.8725, 269.5358);     ApplyActorAnimation(actor1, "PED", "ROADROSS_FEMALE", 4.1, 1, 1, 1, 0, 0);     Create3DTextLabel("{FFFFFF}Нажмите {ffff00}L.ALT{FFFFFF} чтобы начать взаимодействие", COLOR_GREEN, 1800.0490, 2506.0791, 15.8725, 10.0, 0, 1);     //======================[ Пикапы ]==================================     magazvhod1 = CreatePickup(1318, 23, 2074.3257,1838.3256,12.5391, -1);     magazvihod1 = CreatePickup(1318, 23, -25.5779,-184.9357,1003.5469, -1);     SetTimer("SecondUpdate", 1000, true);     SetTimer("MinuteUpdate", 60000, true);     LoadFactionsData(); // Загружаем данные о фракциях и лидерах     return 1; }
       
      Стоки:

       
      stock LoadFactionsData() {     print("LoadFactionsData: Starting to load factions data...");     new query[64];     format(query, sizeof(query), "SELECT id, FactionLeader FROM factions");     mysql_tquery(dbHandle, query, "LoadFactionsData_Callback");     print("LoadFactionsData: Query sent.");     return 1; } forward LoadFactionsData_Callback(MySQL:handle, Cache:result); public LoadFactionsData_Callback(MySQL:handle, Cache:result) {     new rows = cache_num_rows();     printf("LoadFactionsData_Callback: Number of rows loaded: %d", rows);     if(rows > 0)     {         for(new i = 0; i < rows; i++)         {             cache_set_result(0);             new factionID, factionLeaderID;             if (!cache_get_value_name_int(i, "id", factionID)) {                 printf("[ERROR] LoadFactionsData_Callback: Failed to get 'id' for row %d", i);                 continue; // Переходим к следующей итерации, если не удалось получить ID             }             if (!cache_get_value_name_int(i, "FactionLeader", factionLeaderID)) {                 printf("[ERROR] LoadFactionsData_Callback: Failed to get 'FactionLeader' for row %d", i);                 continue; // Переходим к следующей итерации, если не удалось получить FactionLeader             }             printf("LoadFactionsData_Callback: Row %d: factionID = %d, factionLeaderID = %d", i, factionID, factionLeaderID);             if(factionLeaderID != 0)             {                 FactionLeader = factionLeaderID;                 FactionRank[factionLeaderID] = 10;                 printf("LoadFactionsData_Callback: Setting FactionLeader to %d and rank to 10.", factionLeaderID);                 // Не вызываем здесь SetPlayerSkin, пока не подключится игрок                 //if(IsPlayerConnected(factionLeaderID))                 //{                 //    SetPlayerSkin(factionLeaderID, 115);                 //    PlayerSkin[factionLeaderID] = 115;                 //}             }         }     }     else {         print("LoadFactionsData_Callback: No factions data found in the database.");     }     return 1; } stock SetFactionLeader(playerid, targetid) {     if(player_info[playerid][ADMIN] < 5)     {         SendClientMessage(playerid, CG, "Вы не являетесь администратором!");         return 1;     }     // Убираем старого лидера     if(FactionLeader != -1)     {         FactionRank[FactionLeader] = 1; // Понижаем ранг старого лидера     }     // Назначаем нового лидера     FactionLeader = targetid;     FactionRank[targetid] = 10;     // Сохраняем ID лидера в базу данных     new query[128];     format(query, sizeof(query), "UPDATE factions SET FactionLeader = '%d' WHERE id = '1'", targetid); // Замените '1' на ID вашей фракции, если у вас их несколько     mysql_tquery(dbHandle, query);     new szString[128];     format(szString, sizeof(szString), "Игрок %s назначен лидером фракции!", targetid);     SendClientMessage(playerid, 0x00FF00AA, szString);     SendClientMessage(targetid, 0x00FF00AA, "Вы назначены лидером фракции!");     // Выдаем скин 115     SetPlayerSkin(targetid, 115);     PlayerSkin[targetid] = 115; // Обновляем массив PlayerSkin     SPD(playerid, DLG_LEADERINFO1, DIALOG_STYLE_LIST, "Информация необходимая к прочтению", "{FF0000}!!!ПРОЧИТАТЬ!!!\n{0089ff}[1]{ffffff} Команды лидера", "Выбрать", "Закрыть");     return 1; } stock SetFactionDeputy(playerid, targetid) {     // Проверка на то, является ли игрок админом     if(player_info[playerid][ADMIN] > 5)     {         SendClientMessage(playerid, CG, "Вы не являетесь администратором!");         return 1;     }     // Убираем старого заместителя     if(FactionDeputy != -1) FactionRank[FactionDeputy] = 1; // Понижаем ранг старого заместителя     // Назначаем нового заместителя     FactionDeputy = targetid;     FactionRank[targetid] = 9; // Устанавливаем ранг 9 (Консильери)     new szString[128];     format(szString, sizeof(szString), "Игрок %d назначен заместителем фракции!", targetid);     SendClientMessage(playerid, 0x00FF00AA, szString);     SendClientMessage(targetid, 0x00FF00AA, "Вы назначены заместителем фракции!");     return 1; } // Функция проверки, является ли игрок лидером stock IsPlayerLeader(playerid) {     if(playerid == FactionLeader)     {         return 1;     }     return 0; } // Функция проверки, является ли игрок заместителем stock IsPlayerDeputy(playerid) {     if(playerid == FactionDeputy)     {         return 1;     }     return 0; } // Функция вступления во фракцию stock JoinFaction(playerid, inviterid) {     // Проверяем, состоит ли игрок уже в какой-либо фракции     for(new i = 0; i < MAX_PLAYERS; i++)     {         if(FactionMembers[playerid] != 0)         {             SendClientMessage(playerid, 0xFF0000AA, "Вы уже состоите в другой фракции!");             return 1;         }     }     // Добавляем игрока во фракцию     FactionMembers[playerid] = FACTION_SKINHEDS;     FactionRank[playerid] = 1; // Рядовой (Новичок) - Устанавливаем ранг     new szString[128];     format(szString, sizeof(szString), "Вы вступили в '%s' по приглашению игрока %d!", FactionName, inviterid);     SendClientMessage(playerid, 0x00FF00AA, szString);     format(szString, sizeof(szString), "Игрок %d вступил в '%s' по вашему приглашению!", playerid, FactionName);     SendClientMessage(inviterid, 0x00FF00AA, szString);     return 1; } stock LeaveFaction(playerid) {     if(!IsPlayerInFaction(playerid, FACTION_SKINHEDS))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не состоите в этой фракции!");         return 1;     }     FactionMembers[playerid] = 0; // Обнуляем ID фракции (0 - значит, не состоит)     FactionRank[playerid] = 0;     SendClientMessage(playerid, 0x00FF00AA, "Вы покинули Семью Рейес!");     return 1; } stock GetFactionRank(playerid) {     return FactionRank[playerid]; } stock SetFactionRank(playerid, targetid, rank) {     // Проверка на то, является ли игрок лидером или заместителем     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права устанавливать ранги!");         return 1;     }     // Проверка на то, чтобы ранг не был слишком высоким     if(rank > 10 || rank < 1)     {         SendClientMessage(playerid, 0xFF0000AA, "Неверный ранг!");         return 1;     }     FactionRank[targetid] = rank;     new szString[128];     format(szString, sizeof(szString), "Вы установили ранг '%s' для игрока %d", FactionRankNames[rank - 1], targetid); // Получаем название из массива     SendClientMessage(playerid, 0x00FF00AA, szString);     format(szString, sizeof(szString), "Вам установлен ранг '%s' игроком %d", FactionRankNames[rank - 1], playerid); // Получаем название из массива     SendClientMessage(targetid, 0x00FF00AA, szString);     return 1; } // Функция проверки, состоит ли игрок во фракции stock IsPlayerInFaction(playerid, factionid) {     if(FactionMembers[playerid] == factionid)     {         return 1;     }     return 0; }
      Ну и команды естественно:

       
      // Команда для установки ранга (пример, только для лидеров) CMD:setrank(playerid, cmdtext[]) {     new targetid, rank;     if(sscanf(cmdtext, "dd", targetid, rank))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setrank [ID игрока] [Ранг]");         return 1;     }     SetFactionRank(playerid, targetid, rank);     return 1; } // Команда информации о фракции CMD:factioninfo(playerid, cmdtext[]) {     new szString[256];     format(szString, sizeof(szString), "Название: %s, Штаб-квартира: %.2f %.2f %.2f", FactionName, FactionHQX, FactionHQY, FactionHQZ);     SendClientMessage(playerid, 0x00FF00AA, szString);     return 1; } CMD:setleader(playerid, cmdtext[]) {     new targetid;     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setleader [ID игрока]");         return 1;     }     SetFactionLeader(playerid, targetid);     return 1; } CMD:setdeputy(playerid, cmdtext[]) {     new targetid;     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setdeputy [ID игрока]");         return 1;     }     SetFactionDeputy(playerid, targetid);     return 1; } // -------------------------------------------------------------------------- // Команда для приглашения игрока во фракцию (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:invite(playerid, cmdtext[]) {     new targetid;     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права приглашать игроков!");         return 1;     }     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /invite [ID игрока]");         return 1;     }     // Добавим проверку на приглашение самого себя     if(playerid == targetid)     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не можете пригласить самого себя!");         return 1;     }     JoinFaction(targetid, playerid);     return 1; } // -------------------------------------------------------------------------- // Команда для исключения игрока из фракции (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:uninvite(playerid, cmdtext[]) {     new targetid;     if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid))     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права исключать игроков!");         return 1;     }     if(sscanf(cmdtext, "d", targetid))     {         SendClientMessage(playerid, 0xFF0000AA, "Используйте: /uninvite [ID игрока]");         return 1;     }     // Добавим проверку на исключение самого себя     if(playerid == targetid)     {         SendClientMessage(playerid, 0xFF0000AA, "Вы не можете увольнять самого себя!");         return 1;     }     if(!IsPlayerInFaction(targetid, FACTION_SKINHEDS))     {         SendClientMessage(playerid, 0xFF0000AA, "Этот игрок не состоит в вашей фракции!");         return 1;     }     LeaveFaction(targetid);     return 1; }

      Ребят, не судите строго пожалуйста, делал с помощью ChatGPT, помогите пожалуйста сохранение лидерки и заместителя сделать