Вопросы

tivan666ban
Активный

дедуги в консоли при подключении к серверу: [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[debug]  Stack pointer (STK) is 0xFFFEC394, heap pointer (HEA) is 0x1B40
[debug] AMX backtrace:
[debug] #0 00000000 in public OnPlayerConnect () in Untitled.amx

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


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

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

  • 0
westronovich
Новичок

@tivan666ban  Жалуется на public. Скиньте что у вас там происходит. Прошу уточнить: когда сервер включается или когда подключается player? :3

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


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

@westronovich 

Спойлер

// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

//================инклуиды================
#include <a_samp>
#include <a_mysql>
#include <crashdetect>
//================переменные================
new MySQL:dbHandle;
new MySQL: g_connection_db;
//================дефайны================
#define Host "127.0.0.1"
#define User "root" // это если вы используете Denwer. Если хостинг указываете другого пользователя.
#define DataBase "samp"
#define Password_SQL ""//Если вы на хостинге ставите пароль,для Denwer пароль не требуется, чуть позже скажу как его установить
#if defined FILTERSCRIPT
//================настройки сервера================
#pragma stacksize 16384

public OnFilterScriptInit()
{
    #pragma stacksize 16384
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else

main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
    dbHandle = mysql_connect(Host,User,Password_SQL,DataBase);// В R41 поменялись местами Пароль и База
    dbHandle = mysql_connect(Host,User,DataBase,Password_SQL);
    switch(mysql_errno())
    {
            case 0: print("Подключение к базе данных удалось");
            case 1044: print("Подключение к базе данных не удалось [Указано неизвестное имя пользователя]");
            case 1045: print("Подключение к базе данных не удалось [Указан неизвестный пароль]");
            case 1049: print("Подключение к базе данных не удалось [Указана неизвестная база данных]");
            case 2003: print("Подключение к базе данных не удалось [Хостинг с базой данных недоступен]");
            case 2005: print("Подключение к базе данных не удалось [Указан неизвестный адрес хостинга]");
            default: printf("Подключение к базе данных не удалось [Неизвестная ошибка. Код ошибки: %d]", mysql_errno());
    }
    return 1;
}

public OnGameModeExit()
{
    mysql_close(dbHandle);
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.37831343.157215.3746);
    SetPlayerCameraPos(playerid, 1958.37831343.157215.3746);
    SetPlayerCameraLookAt(playerid, 1958.37831343.157215.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    static const fmt_str[] = "SELECT * FROM `table_accounts` WHERE `name` = '%s' LIMIT 1";
    new query[sizeof(fmt_str) + MAX_PLAYER_NAME + 2 + 1], player_name[MAX_PLAYERS][MAX_PLAYER_NAME+1];

    GetPlayerName(playerid, player_name[playerid], MAX_PLAYER_NAME+1);

    format(query, sizeof query, fmt_str, player_name[playerid]);
    mysql_tquery(g_connection_db, query, "FindPlayerInTable""i", playerid);

    new rows;
    cache_get_row_count(rows);
    if(!rows) //если аккаунт не найден
    {
        print(" Blank Filterscript by your name here");
    }
    else //иначе
    {
        //...
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/mycommand", cmdtext, true10) == 0)
    {
        // Do something here
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

 

когда я захожу на сервер я спавнюсь выхожу с сервера чтобы посмотреть консоль и там дедуги

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


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

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, player_name[playerid], MAX_PLAYER_NAME);
    new string[256];
    format(string, sizeof(string), "SELECT * FROM `table_accounts` WHERE `name`='%s' LIMIT 1", player_name[playerid]);
    mysql_tquery(g_connection_db,string, "FindPlayerInTable""i", playerid);
    return 1;
}

public FindPlayerInTable(playerid)
{
    new rows;
    cache_get_row_value(rows);
    if(rows)
    {
        print("Аккаунт найден");
    }
    else
    {
        print("Аккаунт не найдет");
    }
    return 1;
}

 

Вот тебе готовый вариант. Замени и то что сказал удали.


1. GetPlayerName нужно ставить в начале, т.к ты используешь переменную player_name до того как server узнает имя, у тебя будет просто пустая строка.
2. Нет смысла создавать static переменную, проще создать обычную вещественную и отформатировать ее сразу потом использовать
3
-----------------------------

 

Спойлер


    new rows;
    cache_get_row_count(rows);
    if(!rows) //если аккаунт не найден
    {
        print(" Blank Filterscript by your name here");
    }
    else //иначе
    {
        //...
    }
    return 1;

 


    Вот это очень не хорошо, ты не делал запрос, и OnPlayerConnect это не тот public куда надо вставлять callback запросов mysql.
--------------------------------------------------------
4. Удали одну из переменных MySQL

 

Спойлер


new MySQL: dbHandle;
new MySQL: sql_connection; // советую удалить эту, так как по стандарту используют dbHandle, выбирай сам.

 


 

 

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


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

@westronovich C:\Users\tolas\OneDrive\Рабочий стол\Важное\SA-MP clear server 0.3.7 new 2023\gamemodes\Untitled.pwn(76) : error 017: undefined symbol "player_name"
C:\Users\tolas\OneDrive\Рабочий стол\Важное\SA-MP clear server 0.3.7 new 2023\gamemodes\Untitled.pwn(76) : warning 215: expression has no effect
C:\Users\tolas\OneDrive\Рабочий стол\Важное\SA-MP clear server 0.3.7 new 2023\gamemodes\Untitled.pwn(76) : error 001: expected token: ";", but found "]"
C:\Users\tolas\OneDrive\Рабочий стол\Важное\SA-MP clear server 0.3.7 new 2023\gamemodes\Untitled.pwn(76) : error 029: invalid expression, assumed zero
C:\Users\tolas\OneDrive\Рабочий стол\Важное\SA-MP clear server 0.3.7 new 2023\gamemodes\Untitled.pwn(76) : fatal error 107: too many error messages on one line

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


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

@tivan666ban 

 

Тебе здесь всё пишут, замени переменную player_name своей либо добавь это.

new player_name[MAX_PLAYERS][MAX_PLAYER_NAME+1];

 

 

Отредактировано пользователем angel_sinvays

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Cawfee
Великий Гуру
12 часов назад, westronovich сказал:

Нет смысла создавать static переменную, проще создать обычную вещественную и отформатировать ее сразу потом использовать

Смысл есть. Проще – не значит лучше. 

 

В 10.04.2024 в 18:03, tivan666ban сказал:

дедуги

У вас случайно не дисграфия?

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


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

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

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба