• 0
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

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

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


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

@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
Спойлер

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

@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

@tivan666ban 

 

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

new player_name[MAX_PLAYERS][MAX_PLAYER_NAME+1];

 

 

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

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


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

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

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

 

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

дедуги

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

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


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

@Cawfee Зачем вы меня обзываете?

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


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

@tivan666ban Это не оскорбление)

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


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

@angel_sinvays спасибо

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


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

@tivan666ban, вопрос разрешен?

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • Bolotovka
      От Bolotovka
      Ку, короче при компиляции мода вылазит ошибка fatal error 100: cannot read from file: "gamemode/gardens" самого gardens нету, я бы хотел спросить есть ли он у кого то?