Вопросы

Вот код мода (я немного странный я все для себя помечаю):

 

Спойлер

#include <a_samp>

#include <mysql>

#include <a_players>

#include <a_vehicles>



// Данные для подключения к БД

new MySQL:sqlHandle;



#define DB_HOST "localhost"

#define DB_USER "root"

#define DB_PASS "password"

#define DB_NAME "samp_db"



// Координаты спавна (ЖДЛС)

#define SPAWN_X 1741.41

#define SPAWN_Y -1861.38

#define SPAWN_Z 13.57

#define SPAWN_ANGLE 270.0



// ID транспортных средств (скутеров)

new scooter[3];



// Статус аренды скутеров

new bool scooterRented[3];

new rentedByPlayer[MAX_PLAYERS];



// Цена аренды скутера

#define RENT_PRICE 500



// Спидометр

new Text:Speedometer[MAX_PLAYERS];



// Статус двигателя

new bool engineStatus[MAX_PLAYERS];



// Инвентарь

new Text:InventoryTextDraw[MAX_PLAYERS];

new bool inventoryVisible[MAX_PLAYERS];

new Text:InventorySlots[MAX_PLAYERS][36];



public OnGameModeInit()

{

    sqlHandle = mysql_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

    if (sqlHandle == MYSQL_INVALID_HANDLE)

    {

        print("Не удалось подключиться к базе данных.");

        return 0;

    }

    print("Успешное подключение к базе данных.");



    // Создание объектов вокруг точки спавна

    CreateObject(1237, SPAWN_X + 5, SPAWN_Y, SPAWN_Z, 0.00.00.0); // Пример объекта

    CreateObject(1237, SPAWN_X - 5, SPAWN_Y, SPAWN_Z, 0.00.00.0); // Еще один пример объекта



    // Создание скутеров

    scooter[0] = CreateVehicle(462, SPAWN_X + 2, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1600);

    scooter[1] = CreateVehicle(462, SPAWN_X + 4, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1600);

    scooter[2] = CreateVehicle(462, SPAWN_X + 6, SPAWN_Y, SPAWN_Z, SPAWN_ANGLE, -1, -1600);



    // Инициализация статуса аренды скутеров

    for (new i = 0; i < 3; i++) {

        scooterRented = false;

        rentedByPlayer = -1;

    }

 

    // Инициализация спидометра и статуса двигателя

    for (new i = 0; i < MAX_PLAYERS; i++) {

        Speedometer = TextDrawCreate(320.0447.0"");

        TextDrawLetterSize(Speedometer, 0.31.2);

        TextDrawTextSize(Speedometer, 100.020.0);

        TextDrawFont(Speedometer, 1);

        TextDrawAlignment(Speedometer, 2);

        TextDrawColor(Speedometer, 0xFFFFFFFF);

        TextDrawSetOutline(Speedometer, 1);

        TextDrawSetProportional(Speedometer, 1);

        TextDrawHideForPlayer(i, Speedometer);

        engineStatus = false;

        inventoryVisible = false;

    }

 

    SetTimer("CheckRentedVehicles"30000true);

 

    // Инициализация инвентаря для всех игроков

    for (new i = 0; i < MAX_PLAYERS; i++)

    {

        InitializeInventory(i);

    }

 

    return 1;

}

 

public OnGameModeExit()

{

    mysql_close(sqlHandle);

    return 1;

}

 

public OnPlayerConnect(playerid)

{

    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Логин""Введите ваш логин:""OK""Cancel");

    return 1;

}

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

    if (dialogid == 1 && response)

    {

        new query[128];

        format(query, sizeof(query), "SELECT password, money FROM users WHERE username='%s'", inputtext);

        mysql_tquery(sqlHandle, query, "OnLoginCheck""d", playerid);

    }

    else if (dialogid == 2 && response)

    {

        new query[256];

        format(query, sizeof(query), "INSERT INTO users (username, password, money) VALUES ('%s', '%s', 1000)", inputtext, inputtext);

        mysql_tquery(sqlHandle, query);

        SendClientMessage(playerid, -1"Вы успешно зарегистрированы!");

        SpawnPlayer(playerid);

        GivePlayerMoney(playerid, 1000); // Выдача 1000$ при регистрации

    }

    else if (dialogid == 3)

    {

        new vehicleid = GetPlayerVehicleID(playerid);

 

        for (new i = 0; i < 3; i++)

        {

            if (vehicleid == scooter)

            {

                if (response)

                {

                    new playerMoney = GetPlayerMoney(playerid);

 

                    if (playerMoney >= RENT_PRICE)

                    {

                        GivePlayerMoney(playerid, -RENT_PRICE); // Списать деньги

                        SendClientMessage(playerid, -1"Вы арендовали скутер.");

                        scooterRented = true// Скутер арендован

                        rentedByPlayer = playerid; // Привязать аренду к игроку

                    }

                    else

                    {

                        SendClientMessage(playerid, -1"У вас недостаточно денег для аренды.");

                        RemovePlayerFromVehicle(playerid);

                    }

                }

                else

                {

                    RemovePlayerFromVehicle(playerid);

                }

                break;

            }

        }

    }

    return 1;

}

 

forward OnLoginCheck(playerid, connection, resultid, extraid);

public OnLoginCheck(playerid, connection, resultid, extraid)

{

    if (mysql_num_rows(resultid) == 0)

    {

        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Регистрация""Введите ваш новый пароль:""OK""Cancel");

    }

    else

    {

        new dbPass[255], playerPass[255];

        new money;

        mysql_fetch_field_row(dbPass, "password", resultid);

        mysql_fetch_field_row_int(money, "money", resultid);

        inputtext[playerid][strlen(inputtext[playerid])] = '\0'// Add null terminator

        inputtext[playerid][sizeof(inputtext[playerid])-1] = '\0'// Ensure it's null terminated

        if (!strcmp(dbPass, inputtext[playerid], false))

        {

            SendClientMessage(playerid, -1"Успешный вход!");

            SpawnPlayer(playerid);

            GivePlayerMoney(playerid, money); // Выдача денег игроку

        }

        else

        {

            SendClientMessage(playerid, -1"Неправильный пароль.");

            Kick(playerid);

        }

    }

    return 1;

}

 

public OnPlayerSpawn(playerid)

{

    SetPlayerPos(playerid, SPAWN_X, SPAWN_Y, SPAWN_Z);

    SetPlayerFacingAngle(playerid, SPAWN_ANGLE);

    return 1;

}

 

public OnPlayerDisconnect(playerid, reason)

{

    for (new i = 0; i < 3; i++)

    {

        if (rentedByPlayer == playerid)

        {

            scooterRented = false;

            rentedByPlayer = -1;

            SetVehiclePos(scooter, SPAWN_X + 2 + 2 * i, SPAWN_Y, SPAWN_Z);

            SetVehicleZAngle(scooter, SPAWN_ANGLE);

        }

    }

    return 1;

}

 

public OnPlayerStateChange(playerid, newstate, oldstate)

{

    if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)

    {

        new vehicleid = GetPlayerVehicleID(playerid);

 

        // Проверка, является ли транспорт скутером

        for (new i = 0; i < 3; i++)

        {

            if (vehicleid == scooter)

            {

                // Если скутер уже арендован

                if (scooterRented && rentedByPlayer != playerid)

                {

                    SendClientMessage(playerid, -1"Этот скутер уже арендован.");

                    RemovePlayerFromVehicle(playerid);

                }

                else

                {

                    ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Аренда скутера""Хотите арендовать этот скутер за 500$?""Арендовать""Отказаться");

                }

             

  break;

            }

        }

    }

 

    if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)

    {

        TextDrawShowForPlayer(playerid, Speedometer[playerid]);

        UpdateSpeedometer(playerid);

        else

    {

        TextDrawHideForPlayer(playerid, Speedometer[playerid]);

    }

    return 1;

}

 

public OnPlayerExitVehicle(playerid, vehicleid)

{

    TextDrawHideForPlayer(playerid, Speedometer[playerid]);

    return 1;

}

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

    // Проверка на кнопку N (завести/заглушить двигатель)

    if ((newkeys & KEY_NO) && IsPlayerInAnyVehicle(playerid))

    {

        new vehicleid = GetPlayerVehicleID(playerid);

        engineStatus[playerid] = !engineStatus[playerid];

        if (engineStatus[playerid])

        {

            SendClientMessage(playerid, -1"Вы завели двигатель.");

        }

        else

        {

            SendClientMessage(playerid, -1"Вы заглушили двигатель.");

        }

    }

 

    // Проверка на кнопку L (закрыть/открыть транспорт)

    if ((newkeys & KEY_LOOK_RIGHT) && IsPlayerInAnyVehicle(playerid))

    {

        new vehicleid = GetPlayerVehicleID(playerid);

        for (new i = 0; i < 3; i++)

        {

            if (vehicleid == scooter)

            {

                if (rentedByPlayer == playerid)

                {

                    ToggleVehicleLocked(vehicleid);

                    SendClientMessage(playerid, -1"Транспорт закрыт/открыт.");

                }

                else

                {

                    SendClientMessage(playerid, -1"Этот транспорт не ваш.");

                }

                break;

            }

        }

    }

 

    // Проверка на кнопку Y (инвентарь)

    if (newkeys & KEY_Y)

    {

        if (inventoryVisible[playerid])

        {

            HideInventory(playerid);

        }

        else

        {

            ShowInventory(playerid);

        }

    }

 

    return 1;

}

 

// Обновление спидометра

forward UpdateSpeedometer(playerid);

public UpdateSpeedometer(playerid)

{

    if (IsPlayerInAnyVehicle(playerid))

    {

        new Float:speed;

        GetVehicleSpeed(GetPlayerVehicleID(playerid), &speed);

        new str[32];

        format(str, sizeof(str), "Скорость: %.2f км/ч", speed * 3.6);

        TextDrawSetString(Speedometer[playerid], str);

        TextDrawShowForPlayer(playerid, Speedometer[playerid]);

    }

    else

    {

        TextDrawHideForPlayer(playerid, Speedometer[playerid]);

    }

    SetTimerEx("UpdateSpeedometer"1000false"d", playerid);

    return 1;

}

 

// Таймер проверки арендованных транспортных средств

public CheckRentedVehicles()

{

    for (new i = 0; i < MAX_PLAYERS; i++)

    {

        if (IsPlayerConnected(i))

        {

            for (new j = 0; j < 3; j++)

            {

                if (GetPlayerVehicleID(i) == scooter[j] && rentedByPlayer[j] != i)

                {

                    Kick(i);

                    break;

                }

            }

        }

    }

    return 1;

}

 

// Получить скорость транспортного средства

stock GetVehicleSpeed(vehicleid, &Float:speed)

{

    new Float:x, Float:y, Float:z;

    GetVehicleVelocity(vehicleid, x, y, z);

    speed = floatsqroot(x*x + y*y + z*z) * 100;

}

 

// Переключение блокировки транспортного средства

stock ToggleVehicleLocked(vehicleid)

{

    new locked = GetVehicleParamsEx(vehicleid);

    if (locked & VEHICLE_PARAMS_EX_DOORS)

    {

        SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNLOCKED);

    }

    else

    {

        SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_UNSET, VEHICLE_PARAMS_LOCKED);

    }

}

 

// Обработка команды /inventory

public OnPlayerCommandText(playerid, cmdtext[])

{

    if (!strcmp("/inventory", cmdtext, true))

    {

        if (inventoryVisible[playerid])

        {

            HideInventory(playerid);

        }

        else

        {

            ShowInventory(playerid);

        }

        return 1;

    }

    return 0;

}

 

// Инициализация инвентаря

stock InitializeInventory(playerid)

{

    InventoryTextDraw[playerid] = TextDrawCreate(320.0240.0"Inventory");

    TextDrawLetterSize(InventoryTextDraw[playerid], 0.51.5);

    TextDrawAlignment(InventoryTextDraw[playerid], 2);

    TextDrawBackgroundColor(InventoryTextDraw[playerid], 255);

    TextDrawFont(InventoryTextDraw[playerid], 2);

    TextDrawSetOutline(InventoryTextDraw[playerid], 1);

    TextDrawSetProportional(InventoryTextDraw[playerid], 1);

    TextDrawSetShadow(InventoryTextDraw[playerid], 0);

 

    for (new i = 0; i < 36; i++)

    {

        new Float:x = 250.0 + (i % 6) * 50.0;

        new Float:y = 150.0 + (i / 6) * 50.0;

        InventorySlots[playerid] = TextDrawCreate(x, y, " ");

        TextDrawLetterSize(InventorySlots[playerid], 1.01.0);

        TextDrawAlignment(InventorySlots[playerid], 2);

        TextDrawBackgroundColor(InventorySlots[playerid], 0x000000FF);

        TextDrawFont(InventorySlots[playerid], 2);

        TextDrawSetOutline(InventorySlots[playerid], 1);

        TextDrawSetProportional(InventorySlots[playerid], 1);

        TextDrawSetShadow(InventorySlots[playerid], 0);

    }

}

 

// Показ инвентаря

stock ShowInventory(playerid)

{

    TextDrawShowForPlayer(playerid, InventoryTextDraw[playerid]);

    for (new i = 0; i < 36; i++)

    {

        TextDrawShowForPlayer(playerid, InventorySlots[playerid]);

    }

    inventoryVisible[playerid] = true;

}

 

// Скрытие инвентаря

stock HideInventory(playerid)

{

    TextDrawHideForPlayer(playerid, InventoryTextDraw[playerid]);

    for (new i = 0; i < 36; i++)

    {

        TextDrawHideForPlayer(playerid, InventorySlots[playerid]);

    }

    inventoryVisible[playerid] = false;

}

 

// Перезапуск спидометра при входе в транспорт

public OnPlayerStateChange(playerid, newstate, oldstate)

{

    if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)

    {

        TextDrawShowForPlayer(playerid, Speedometer[playerid]);

        UpdateSpeedometer(playerid);

    }

    else

    {

        TextDrawHideForPlayer(playerid, Speedometer[pla

yerid]);

    }

    return 1;

}

 

public OnGameModeInit()

{

    // Инициализация инвентаря для всех игроков

    for (new i = 0; i < MAX_PLAYERS; i++)

    {

        InitializeInventory(i);

    }

 

    return 1;

}

 

 

Вот такие ошибки:

filegiged.pwn.old.pwn(24) : error 001: expected token: ";", but found "-identifier-"

filegiged.pwn.old.pwn(34) : error 021: symbol already defined: "bool"

filegiged.pwn.old.pwn(38) : error 021: symbol already defined: "bool"

filegiged.pwn.old.pwn(44) : warning 217: loose indentation

filegiged.pwn.old.pwn(47) : warning 217: loose indentation

filegiged.pwn.old.pwn(49) : warning 217: loose indentation

filegiged.pwn.old.pwn(52) : warning 217: loose indentation

filegiged.pwn.old.pwn(53) : warning 217: loose indentation

filegiged.pwn.old.pwn(56) : warning 217: loose indentation

filegiged.pwn.old.pwn(57) : warning 217: loose indentation

filegiged.pwn.old.pwn(58) : warning 217: loose indentation

filegiged.pwn.old.pwn(61) : warning 217: loose indentation

filegiged.pwn.old.pwn(62) : error 017: undefined symbol "scooterRented"

filegiged.pwn.old.pwn(62) : warning 215: expression has no effect

filegiged.pwn.old.pwn(62) : error 001: expected token: ";", but found "]"

filegiged.pwn.old.pwn(62) : error 029: invalid expression, assumed zero

filegiged.pwn.old.pwn(62) : fatal error 107: too many error messages on one line

 

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPha

se

 

 

7 Errors.

 

 

Я начинающий скриптер, ничего почти не умею, я не знаю как решить эти проюлемы

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

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


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

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

  • 1

@PoierDoras Сделай сам код в ведёшь когда ты пишешь сюда там с верху на д буквами есть < > нажми туда и вставь туда код и отправь мне

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


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

@PoierDoras покажи строчки в файле pawno\include\mysql.inc

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


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

@tivan666ban /**

 * MySQL plugin @MYSQL_PLUGIN_VERSION@

 */

 

 

#if defined mysql_included

 #endinput

#endif

#define mysql_included

 

 

/**

 * Common error codes

 *

 * Client: http://dev.mysql.com/doc/refman/5.5/en/error-messages-client.html

 * Server: http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html

 */

 

#define ER_DBACCESS_DENIED_ERROR 1044

#define ER_ACCESS_DENIED_ERROR 1045

#define ER_UNKNOWN_TABLE 1109

#define ER_SYNTAX_ERROR 1149

#define CR_SERVER_GONE_ERROR 2006

#define CR_SERVER_LOST 2013

#define CR_COMMAND_OUT_OF_SYNC 2014

#define CR_SERVER_LOST_EXTENDED 2055

 

 

enum E_ORM_ERROR

{

 ERROR_INVALID,

 ERROR_OK,

 ERROR_NO_DATA

};

 

enum E_MYSQL_GLOBAL_OPTION

{

 DUPLICATE_CONNECTIONS,

 DUPLICATE_CONNECTION_WARNING

};

 

enum E_MYSQL_OPTION

{

 AUTO_RECONNECT,

 MULTI_STATEMENTS,

 POOL_SIZE,

 SERVER_PORT,

 SSL_ENABLE,

 SSL_KEY_FILE,

 SSL_CERT_FILE,

 SSL_CA_FILE,

 SSL_CA_PATH,

 SSL_CIPHER

};

 

enum E_MYSQL_FIELD_TYPE

{

 MYSQL_TYPE_INVALID = -1,

 MYSQL_TYPE_DECIMAL = 0,

 MYSQL_TYPE_TINY,

 MYSQL_TYPE_SHORT,

 MYSQL_TYPE_LONG,

 MYSQL_TYPE_FLOAT,

 MYSQL_TYPE_DOUBLE,

 MYSQL_TYPE_NULL,

 MYSQL_TYPE_TIMESTAMP,

 MYSQL_TYPE_LONGLONG,

 MYSQL_TYPE_INT24,

 MYSQL_TYPE_DATE,

 MYSQL_TYPE_TIME,

 MYSQL_TYPE_DATETIME,

 MYSQL_TYPE_YEAR,

 MYSQL_TYPE_NEWDATE,

 MYSQL_TYPE_VARCHAR,

 MYSQL_TYPE_BIT,

 MYSQL_TYPE_TIMESTAMP2,

 MYSQL_TYPE_DATETIME2,

 MYSQL_TYPE_TIME2,

 MYSQL_TYPE_JSON = 245,

 MYSQL_TYPE_NEWDECIMAL = 246,

 MYSQL_TYPE_ENUM = 247,

 MYSQL_TYPE_SET = 248,

 MYSQL_TYPE_TINY_BLOB = 249,

 MYSQL_TYPE_MEDIUM_BLOB = 250,

 MYSQL_TYPE_LONG_BLOB = 251,

 MYSQL_TYPE_BLOB = 252,

 MYSQL_TYPE_VAR_STRING = 253,

 MYSQL_TYPE_STRING = 254,

 MYSQL_TYPE_GEOMETRY = 255

};

 

enum E_MYSQL_EXECTIME_UNIT

{

 MILLISECONDS,

 MICROSECONDS

};

 

#define MYSQL_DEFAULT_HANDLE MySQL:1

#define MYSQL_INVALID_HANDLE MySQL:0

#define MYSQL_INVALID_CACHE Cache:0

#define MYSQL_INVALID_ORM ORM:0

 

 

 

// ORM functions

native ORM:orm_create(const table[], MySQL:handle = MYSQL_DEFAULT_HANDLE);

native orm_destroy(ORM:id);

 

native E_ORM_ERROR:orm_errno(ORM:id);

 

native orm_apply_cache(ORM:id, row_idx, result_idx = 0);

 

native orm_select(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...);

native orm_update(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...);

native orm_insert(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...);

native orm_delete(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...);

 

native orm_load(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...) = orm_select;

native orm_save(ORM:id, const callback[] = "", const format[] = "", {ORM, Float, _}:...);

 

native orm_addvar_int(ORM:id, &var, const columnname[]);

native orm_addvar_float(ORM:id, &Float:var, const columnname[]);

native orm_addvar_string(ORM:id, var[], var_maxlen, const columnname[]);

 

native orm_clear_vars(ORM:id);

native orm_delvar(ORM:id, const columnname[]);

native orm_setkey(ORM:id, const columnname[]);

 

 

// MySQL functions

native MySQL:mysql_connect(const host[], const user[], const password[], const database[], MySQLOpt:option_id = MySQLOpt:0);

native MySQL:mysql_connect_file(const file_name[] = "mysql.ini");

native mysql_close(MySQL:handle = MYSQL_DEFAULT_HANDLE);

 

native mysql_unprocessed_queries(MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_global_options(E_MYSQL_GLOBAL_OPTION:type, value);

 

native MySQLOpt:mysql_init_options();

native mysql_set_option(MySQLOpt:option_id, E_MYSQL_OPTION:type, ...);

 

native mysql_pquery(MySQL:handle, const query[], const callback[] = "", const format[] = "", {MySQL, Float,_}:...);

native mysql_tquery(MySQL:handle, const query[], const callback[] = "", const format[] = "", {MySQL, Float,_}:...);

native Cache:mysql_query(MySQL:handle, const query[], bool:use_cache = true);

native mysql_tquery_file(MySQL:handle, const file_path[], const callback[] = "", const format[] = "", {MySQL, Float,_}:...);

native Cache:mysql_query_file(MySQL:handle, const file_path[], bool:use_cache = false);

 

native mysql_errno(MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_error(destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_escape_string(const source[], destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_format(MySQL:handle, output[], max_len, const format[], {MySQL, Float,_}:...);

native mysql_set_charset(const charset[], MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_get_charset(destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

native mysql_stat(destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

 

 

 

// Cache functions

native cache_get_row_count(&destination);

native cache_get_field_count(&destination);

native cache_get_result_count(&destination);

native cache_get_field_name(field_index, destination[], max_len = sizeof(destination));

native E_MYSQL_FIELD_TYPE:cache_get_field_type(field_index);

native cache_set_result(result_index);

 

stock cache_num_rows()

{

 new row_count;

 cache_get_row_count(row_count);

 return row_count;

}

stock cache_num_fields()

{

 new field_count;

 cache_get_field_count(field_count);

 return field_count;

}

stock cache_num_results()

{

 new result_count;

 cache_get_result_count(result_count);

 return result_count;

}

 

 

// overload macros for cache_get_value natives

#define cache_get_value(%1) (_:MSCGV0:MSCGV1:MSCGV2:cache_get_ovrld_value(%1))

#define MSCGV0:MSCGV1:MSCGV2:cache_get_ovrld_value(%1,"%2",%3) cache_get_value_name(%1,#%2,%3)

#define MSCGV1:MSCGV2:cache_get_ovrld_value(%1,%8string%9:%2,%3) cache_get_value_name(%1,%2,%3)

#define MSCGV2:cache_get_ovrld_value(%1,%2,%3) cache_get_value_index(%1,%2,%3)

 

#define cache_get_value_int(%1) (_:MSCGVI0:MSCGVI1:MSCGVI2:cache_get_value_int_ovrld(%1))

#define MSCGVI0:MSCGVI1:MSCGVI2:cache_get_value_int_ovrld(%1,"%2",%3) cache_get_value_name_int(%1,#%2,%3)

#define MSCGVI1:MSCGVI2:cache_get_value_int_ovrld(%1,%8string%9:%2,%3) cache_get_value_name_int(%1,%2,%3)

#define MSCGVI2:cache_get_value_int_ovrld(%1,%2,%3) cache_get_value_index_int(%1,%2,%3)

 

#define cache_get_value_float(%1) (_:MSCGVF0:MSCGVF1:MSCGVF2:cache_get_value_float_ovrld(%1))

#define MSCGVF0:MSCGVF1:MSCGVF2:cache_get_value_float_ovrld(%1,"%2",%3) cache_get_value_name_float(%1,#%2,%3)

#define MSCGVF1:MSCGVF2:cache_get_value_float_ovrld(%1,%8string%9:%2,%3) cache_get_value_name_float(%1,%2,%3)

#define MSCGVF2:cache_get_value_float_ovrld(%1,%2,%3) cache_get_value_index_float(%1,%2,%3)

 

#define cache_get_value_bool(%1) cache_get_value_int(%1)

 

#define cache_is_value_null(%1) (_:MSCIVN0:MSCIVN1:MSCIVN2:cache_is_value_null_ovrld(%1))

#define MSCIVN0:MSCIVN1:MSCIVN2:cache_is_value_null_ovrld(%1,"%2",%3) cache_is_value_name_null(%1,#%2,%3)

#define MSCIVN1:MSCIVN2:cache_is_value_null_ovrld(%1,%8string%9:%2,%3) cache_is_value_name_null(%1,%2,%3)

#define MSCIVN2:cache_is_value_null_ovrld(%1,%2,%3) cache_is_value_index_null(%1,%2,%3)

 

 

native cache_get_value_index(row_idx, column_idx, destination[], max_len = sizeof(destination));

native cache_get_value_index_int(row_idx, column_idx, &destination);

native cache_get_value_index_float(row_idx, column_idx, &Float:destination);

native cache_get_value_index_bool(row_idx, column_idx, &bool:destination) = cache_get_value_index_int;

native cache_is_value_index_null(row_idx, column_idx, &bool:destination);

 

native cache_get_value_name(row_idx, const column_name[], destination[], max_len = sizeof(destination));

native cache_get_value_name_int(row_idx, const column_name[], &destination);

native cache_get_value_name_float(row_idx, const column_name[], &Float:destination);

native cache_get_value_name_bool(row_idx, const column_name[], &bool:destination) = cache_get_value_name_int;

native cache_is_value_name_null(row_idx, const column_name[], &bool:destination);

 

native Cache:cache_save();

native cache_delete(Cache:cache_id);

native cache_set_active(Cache:cache_id);

native cache_unset_active();

native bool:cache_is_any_active();

native bool:cache_is_valid(Cache:cache_id);

 

native cache_affected_rows();

native cache_insert_id();

native cache_warning_count();

 

native cache_get_query_exec_time(E_MYSQL_EXECTIME_UNIT:unit = MICROSECONDS);

native cache_get_query_string(destination[], max_len = sizeof(destination));

 

 

// Forward declarations

forward OnQueryError(errorid, const error[], const callback[], const query[], MySQL:handle);

 

 

// Deprecated functions

 

#if !defined E_LOGLEVEL

enum E_LOGLEVEL

{

 NONE = 0,

 DEBUG = 1,

 INFO = 2,

 WARNING = 4,

 ERROR = 8,

 

 ALL = ERROR | WARNING | INFO | DEBUG

};

#endif

 

#pragma deprecated Configuring log levels is now done through the "log-config.yml" file

stock mysql_log(E_LOGLEVEL:loglevel = ERROR | WARNING)

{

 #pragma unused loglevel

}

 

 

 

Если что сори, что может я такой тупой, я прям ничего не знаю о Павно и ничего не умею, я учус и хочу научиться делать мода и сделать свой хороший мод

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


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

залей код на пасту или под спойлер в код, это не читабельно :bravo:

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


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

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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