Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
Пользователь
Регистрация
19 Янв 2025
Сообщения
51
Дайте пожалуйста систему киосочков нигде не могу найти
 
Активный из XenForo
Активный
Регистрация
20 Мар 2025
Сообщения
630
Пользователь
Регистрация
15 Июн 2025
Сообщения
115
тебе её никто не скинет
Дефайны:
Pawn:
// ========== Конфигурация ларьков ========== 
#define MAX_LARKS        50      // Макс. количество ларьков 
#define LARK_PRICE       25000   // Цена покупки ларька 
#define LARK_TAX         500     // Ежедневный налог 

// Типы ларьков 
enum E_LARK_DATA { 
    bool:larkExists, 
    larkOwner[MAX_PLAYER_NAME], 
    larkPrice, 
    Float:larkPos[4],  // X, Y, Z, Angle 
    larkVW, larkInt, 
    larkMoney, 
    larkPickup, 
    Text3D:larkLabel 
}; 

new Larks[MAX_LARKS][E_LARK_DATA];

/rcon:

Pawn:
CMD:createlark(playerid, params[]) { 
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Недостаточно прав."); 

    new idx = -1; 
    for(new i = 0; i < MAX_LARKS; i++) { 
        if(!Larks[i][larkExists]) { 
            idx = i; 
            break; 
        } 
    } 
    if(idx == -1) return SendClientMessage(playerid, COLOR_ERROR, "Достигнут лимит ларьков."); 

    GetPlayerPos(playerid, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2]); 
    GetPlayerFacingAngle(playerid, Larks[idx][larkPos][3]); 
    Larks[idx][larkVW] = GetPlayerVirtualWorld(playerid); 
    Larks[idx][larkInt] = GetPlayerInterior(playerid); 
    Larks[idx][larkExists] = true; 
    Larks[idx][larkOwner] = "Государство"; 
    Larks[idx][larkMoney] = 0; 

    // Создание пикапа и 3D-метки 
    Larks[idx][larkPickup] = CreateDynamicPickup(1272, 23, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], Larks[idx][larkVW], Larks[idx][larkInt]); 
    Larks[idx][larkLabel] = CreateDynamic3DTextLabel("Ларёк\n{FFFFFF}Владелец: Государство\n{00FF00}Нажмите {FFFFFF}ALT", COLOR_YELLOW, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], 15.0); 

    SendClientMessage(playerid, COLOR_SUCCESS, "Ларёк успешно создан!"); 
    return 1; 
}

Менюшка ларька:

Pawn:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {  
    if((newkeys & KEY_WALK)) {  
        for(new i = 0; i < MAX_LARKS; i++) {  
            if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) {  
                ShowLarkMenu(playerid, i);  
                break;  
            }  
        }  
    }  
    return 1;  
}  

ShowLarkMenu(playerid, larkid) {  
    new str[256];  
    format(str, sizeof(str),  
        "{FFA500}Ларёк #{%d}\nВладелец: {FFFFFF}%s\n\n" \  
        "{00FF00}1. {FFFFFF}Купить воду ($50)\n" \  
        "{00FF00}2. {FFFFFF}Купить бургер ($120)\n" \  
        "{00FF00}3. {FFFFFF}Купить сигареты ($200)\n" \  
        "{00FF00}4. {FFFFFF}Купить энергетик ($100)",  
        larkid, Larks[larkid][larkOwner]  
    );  

    ShowPlayerDialog(playerid, DIALOG_LARK_MENU, DIALOG_STYLE_LIST, "Меню ларька", str, "Купить", "Отмена");  
    SetPVarInt(playerid, "CurrentLark", larkid);  
}

Обработка диалога в OnDoalpgResponse

Pawn:
if(dialogid == DIALOG_LARK_MENU) { 
    if(!response) return 1; 

    new larkid = GetPVarInt(playerid, "CurrentLark"); 
    if(larkid == -1 || !Larks[larkid][larkExists]) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Ларёк не найден."); 

    switch(listitem) { 
        case 0: GivePlayerMoney(playerid, -50); Larks[larkid][larkMoney] += 50; GivePlayerItem(playerid, ITEM_WATER); 
        case 1: GivePlayerMoney(playerid, -120); Larks[larkid][larkMoney] += 120; GivePlayerItem(playerid, ITEM_BURGER); 
        case 2: GivePlayerMoney(playerid, -200); Larks[larkid][larkMoney] += 200; GivePlayerItem(playerid, ITEM_CIGARETTES); 
        case 3: GivePlayerMoney(playerid, -100); Larks[larkid][larkMoney] += 100; GivePlayerItem(playerid, ITEM_ENERGYDRINK); 
    } 

    SendClientMessage(playerid, COLOR_SUCCESS, "Покупка совершена!"); 
    return 1; 
}

Покупка игроком ларька:

Pawn:
CMD:buylark(playerid, params[]) { 
    for(new i = 0; i < MAX_LARKS; i++) { 
        if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) { 
            if(strcmp(Larks[i][larkOwner], "Государство") != 0) return SendClientMessage(playerid, COLOR_ERROR, "Этот ларёк уже куплен!"); 
            if(GetPlayerMoney(playerid) < LARK_PRICE) return SendClientMessage(playerid, COLOR_ERROR, "У вас недостаточно денег!"); 

            GivePlayerMoney(playerid, -LARK_PRICE); 
            GetPlayerName(playerid, Larks[i][larkOwner], MAX_PLAYER_NAME); 

            // Обновляем метку 
            UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {00FF00}%s", i, Larks[i][larkOwner])); 

            SendClientMessage(playerid, COLOR_SUCCESS, "Вы купили этот ларёк!"); 
            return 1; 
        } 
    } 
    SendClientMessage(playerid, COLOR_ERROR, "Вы не рядом с ларьком."); 
    return 1; 
}

Сбор прибыли:

Pawn:
forward OnLarkTaxUpdate(); 
public OnLarkTaxUpdate() { 
    for(new i = 0; i < MAX_LARKS; i++) { 
        if(Larks[i][larkExists] && strcmp(Larks[i][larkOwner], "Государство") != 0) { 
            if(Larks[i][larkMoney] >= LARK_TAX) { 
                Larks[i][larkMoney] -= LARK_TAX; 
            } else { 
                // Ларёк возвращается государству, если не платит налог 
                Larks[i][larkOwner] = "Государство"; 
                UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {FF0000}Государство", i)); 
            } 
        } 
    } 
    return 1; 
}

Сохранение в MySQL:

Pawn:
// Сохранение 
SaveLarks() { 
    for(new i = 0; i < MAX_LARKS; i++) { 
        if(Larks[i][larkExists]) { 
            new query[512]; 
            format(query, sizeof(query), 
                "INSERT INTO larks (id, owner, price, posX, posY, posZ, angle, vw, interior, money) VALUES (%d, '%s', %d, %f, %f, %f, %f, %d, %d, %d) ON DUPLICATE KEY UPDATE owner='%s', money=%d", 
                i, Larks[i][larkOwner], Larks[i][larkPrice], Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2], Larks[i][larkPos][3], Larks[i][larkVW], Larks[i][larkInt], Larks[i][larkMoney], 
                Larks[i][larkOwner], Larks[i][larkMoney] 
            ); 
            mysql_query(query); 
        } 
    } 
} 

// Загрузка 
LoadLarks() { 
    new rows = cache_num_rows(); 
    for(new i = 0; i < rows; i++) { 
        cache_get_value_name_int(i, "id", idx); 
        cache_get_value_name(i, "owner", Larks[idx][larkOwner]); 
        cache_get_value_name_float(i, "posX", Larks[idx][larkPos][0]); 
        // ... остальные параметры 

        // Создание объекта и метки 
        Larks[idx][larkPickup] = CreateDynamicPickup(...); 
        Larks[idx][larkLabel] = CreateDynamic3DTextLabel(...); 
    } 
}

OFFTOP

Посмотрел сообщения парня на чье сообщение отвечаю - не одной помощи, онли оффтоп



Если ерроры фикси сам, система на коленке.
 
Пользователь
Регистрация
18 Май 2024
Сообщения
146
Дефайны:
Pawn:
// ========== Конфигурация ларьков ==========
#define MAX_LARKS        50      // Макс. количество ларьков
#define LARK_PRICE       25000   // Цена покупки ларька
#define LARK_TAX         500     // Ежедневный налог

// Типы ларьков
enum E_LARK_DATA {
    bool:larkExists,
    larkOwner[MAX_PLAYER_NAME],
    larkPrice,
    Float:larkPos[4],  // X, Y, Z, Angle
    larkVW, larkInt,
    larkMoney,
    larkPickup,
    Text3D:larkLabel
};

new Larks[MAX_LARKS][E_LARK_DATA];

/rcon:

Pawn:
CMD:createlark(playerid, params[]) {
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Недостаточно прав.");

    new idx = -1;
    for(new i = 0; i < MAX_LARKS; i++) {
        if(!Larks[i][larkExists]) {
            idx = i;
            break;
        }
    }
    if(idx == -1) return SendClientMessage(playerid, COLOR_ERROR, "Достигнут лимит ларьков.");

    GetPlayerPos(playerid, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2]);
    GetPlayerFacingAngle(playerid, Larks[idx][larkPos][3]);
    Larks[idx][larkVW] = GetPlayerVirtualWorld(playerid);
    Larks[idx][larkInt] = GetPlayerInterior(playerid);
    Larks[idx][larkExists] = true;
    Larks[idx][larkOwner] = "Государство";
    Larks[idx][larkMoney] = 0;

    // Создание пикапа и 3D-метки
    Larks[idx][larkPickup] = CreateDynamicPickup(1272, 23, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], Larks[idx][larkVW], Larks[idx][larkInt]);
    Larks[idx][larkLabel] = CreateDynamic3DTextLabel("Ларёк\n{FFFFFF}Владелец: Государство\n{00FF00}Нажмите {FFFFFF}ALT", COLOR_YELLOW, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], 15.0);

    SendClientMessage(playerid, COLOR_SUCCESS, "Ларёк успешно создан!");
    return 1;
}

Менюшка ларька:

Pawn:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { 
    if((newkeys & KEY_WALK)) { 
        for(new i = 0; i < MAX_LARKS; i++) { 
            if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) { 
                ShowLarkMenu(playerid, i); 
                break; 
            } 
        } 
    } 
    return 1; 
} 

ShowLarkMenu(playerid, larkid) { 
    new str[256]; 
    format(str, sizeof(str), 
        "{FFA500}Ларёк #{%d}\nВладелец: {FFFFFF}%s\n\n" \ 
        "{00FF00}1. {FFFFFF}Купить воду ($50)\n" \ 
        "{00FF00}2. {FFFFFF}Купить бургер ($120)\n" \ 
        "{00FF00}3. {FFFFFF}Купить сигареты ($200)\n" \ 
        "{00FF00}4. {FFFFFF}Купить энергетик ($100)", 
        larkid, Larks[larkid][larkOwner] 
    ); 

    ShowPlayerDialog(playerid, DIALOG_LARK_MENU, DIALOG_STYLE_LIST, "Меню ларька", str, "Купить", "Отмена"); 
    SetPVarInt(playerid, "CurrentLark", larkid); 
}

Обработка диалога в OnDoalpgResponse

Pawn:
if(dialogid == DIALOG_LARK_MENU) {
    if(!response) return 1;

    new larkid = GetPVarInt(playerid, "CurrentLark");
    if(larkid == -1 || !Larks[larkid][larkExists]) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Ларёк не найден.");

    switch(listitem) {
        case 0: GivePlayerMoney(playerid, -50); Larks[larkid][larkMoney] += 50; GivePlayerItem(playerid, ITEM_WATER);
        case 1: GivePlayerMoney(playerid, -120); Larks[larkid][larkMoney] += 120; GivePlayerItem(playerid, ITEM_BURGER);
        case 2: GivePlayerMoney(playerid, -200); Larks[larkid][larkMoney] += 200; GivePlayerItem(playerid, ITEM_CIGARETTES);
        case 3: GivePlayerMoney(playerid, -100); Larks[larkid][larkMoney] += 100; GivePlayerItem(playerid, ITEM_ENERGYDRINK);
    }

    SendClientMessage(playerid, COLOR_SUCCESS, "Покупка совершена!");
    return 1;
}

Покупка игроком ларька:

Pawn:
CMD:buylark(playerid, params[]) {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) {
            if(strcmp(Larks[i][larkOwner], "Государство") != 0) return SendClientMessage(playerid, COLOR_ERROR, "Этот ларёк уже куплен!");
            if(GetPlayerMoney(playerid) < LARK_PRICE) return SendClientMessage(playerid, COLOR_ERROR, "У вас недостаточно денег!");

            GivePlayerMoney(playerid, -LARK_PRICE);
            GetPlayerName(playerid, Larks[i][larkOwner], MAX_PLAYER_NAME);

            // Обновляем метку
            UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {00FF00}%s", i, Larks[i][larkOwner]));

            SendClientMessage(playerid, COLOR_SUCCESS, "Вы купили этот ларёк!");
            return 1;
        }
    }
    SendClientMessage(playerid, COLOR_ERROR, "Вы не рядом с ларьком.");
    return 1;
}

Сбор прибыли:

Pawn:
forward OnLarkTaxUpdate();
public OnLarkTaxUpdate() {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(Larks[i][larkExists] && strcmp(Larks[i][larkOwner], "Государство") != 0) {
            if(Larks[i][larkMoney] >= LARK_TAX) {
                Larks[i][larkMoney] -= LARK_TAX;
            } else {
                // Ларёк возвращается государству, если не платит налог
                Larks[i][larkOwner] = "Государство";
                UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {FF0000}Государство", i));
            }
        }
    }
    return 1;
}

Сохранение в MySQL:

Pawn:
// Сохранение
SaveLarks() {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(Larks[i][larkExists]) {
            new query[512];
            format(query, sizeof(query),
                "INSERT INTO larks (id, owner, price, posX, posY, posZ, angle, vw, interior, money) VALUES (%d, '%s', %d, %f, %f, %f, %f, %d, %d, %d) ON DUPLICATE KEY UPDATE owner='%s', money=%d",
                i, Larks[i][larkOwner], Larks[i][larkPrice], Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2], Larks[i][larkPos][3], Larks[i][larkVW], Larks[i][larkInt], Larks[i][larkMoney],
                Larks[i][larkOwner], Larks[i][larkMoney]
            );
            mysql_query(query);
        }
    }
}

// Загрузка
LoadLarks() {
    new rows = cache_num_rows();
    for(new i = 0; i < rows; i++) {
        cache_get_value_name_int(i, "id", idx);
        cache_get_value_name(i, "owner", Larks[idx][larkOwner]);
        cache_get_value_name_float(i, "posX", Larks[idx][larkPos][0]);
        // ... остальные параметры

        // Создание объекта и метки
        Larks[idx][larkPickup] = CreateDynamicPickup(...);
        Larks[idx][larkLabel] = CreateDynamic3DTextLabel(...);
    }
}

OFFTOP

Посмотрел сообщения парня на чье сообщение отвечаю - не одной помощи, онли оффтоп



Если ерроры фикси сам, система на коленке.
это не систему киосков, чат гпт ее не сделает
 
Пользователь
Регистрация
18 Июл 2025
Сообщения
53
Дефайны:
Pawn:
// ========== Конфигурация ларьков ==========
#define MAX_LARKS        50      // Макс. количество ларьков
#define LARK_PRICE       25000   // Цена покупки ларька
#define LARK_TAX         500     // Ежедневный налог

// Типы ларьков
enum E_LARK_DATA {
    bool:larkExists,
    larkOwner[MAX_PLAYER_NAME],
    larkPrice,
    Float:larkPos[4],  // X, Y, Z, Angle
    larkVW, larkInt,
    larkMoney,
    larkPickup,
    Text3D:larkLabel
};

new Larks[MAX_LARKS][E_LARK_DATA];

/rcon:

Pawn:
CMD:createlark(playerid, params[]) {
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Недостаточно прав.");

    new idx = -1;
    for(new i = 0; i < MAX_LARKS; i++) {
        if(!Larks[i][larkExists]) {
            idx = i;
            break;
        }
    }
    if(idx == -1) return SendClientMessage(playerid, COLOR_ERROR, "Достигнут лимит ларьков.");

    GetPlayerPos(playerid, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2]);
    GetPlayerFacingAngle(playerid, Larks[idx][larkPos][3]);
    Larks[idx][larkVW] = GetPlayerVirtualWorld(playerid);
    Larks[idx][larkInt] = GetPlayerInterior(playerid);
    Larks[idx][larkExists] = true;
    Larks[idx][larkOwner] = "Государство";
    Larks[idx][larkMoney] = 0;

    // Создание пикапа и 3D-метки
    Larks[idx][larkPickup] = CreateDynamicPickup(1272, 23, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], Larks[idx][larkVW], Larks[idx][larkInt]);
    Larks[idx][larkLabel] = CreateDynamic3DTextLabel("Ларёк\n{FFFFFF}Владелец: Государство\n{00FF00}Нажмите {FFFFFF}ALT", COLOR_YELLOW, Larks[idx][larkPos][0], Larks[idx][larkPos][1], Larks[idx][larkPos][2], 15.0);

    SendClientMessage(playerid, COLOR_SUCCESS, "Ларёк успешно создан!");
    return 1;
}

Менюшка ларька:

Pawn:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { 
    if((newkeys & KEY_WALK)) { 
        for(new i = 0; i < MAX_LARKS; i++) { 
            if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) { 
                ShowLarkMenu(playerid, i); 
                break; 
            } 
        } 
    } 
    return 1; 
} 

ShowLarkMenu(playerid, larkid) { 
    new str[256]; 
    format(str, sizeof(str), 
        "{FFA500}Ларёк #{%d}\nВладелец: {FFFFFF}%s\n\n" \ 
        "{00FF00}1. {FFFFFF}Купить воду ($50)\n" \ 
        "{00FF00}2. {FFFFFF}Купить бургер ($120)\n" \ 
        "{00FF00}3. {FFFFFF}Купить сигареты ($200)\n" \ 
        "{00FF00}4. {FFFFFF}Купить энергетик ($100)", 
        larkid, Larks[larkid][larkOwner] 
    ); 

    ShowPlayerDialog(playerid, DIALOG_LARK_MENU, DIALOG_STYLE_LIST, "Меню ларька", str, "Купить", "Отмена"); 
    SetPVarInt(playerid, "CurrentLark", larkid); 
}

Обработка диалога в OnDoalpgResponse

Pawn:
if(dialogid == DIALOG_LARK_MENU) {
    if(!response) return 1;

    new larkid = GetPVarInt(playerid, "CurrentLark");
    if(larkid == -1 || !Larks[larkid][larkExists]) return SendClientMessage(playerid, COLOR_ERROR, "Ошибка: Ларёк не найден.");

    switch(listitem) {
        case 0: GivePlayerMoney(playerid, -50); Larks[larkid][larkMoney] += 50; GivePlayerItem(playerid, ITEM_WATER);
        case 1: GivePlayerMoney(playerid, -120); Larks[larkid][larkMoney] += 120; GivePlayerItem(playerid, ITEM_BURGER);
        case 2: GivePlayerMoney(playerid, -200); Larks[larkid][larkMoney] += 200; GivePlayerItem(playerid, ITEM_CIGARETTES);
        case 3: GivePlayerMoney(playerid, -100); Larks[larkid][larkMoney] += 100; GivePlayerItem(playerid, ITEM_ENERGYDRINK);
    }

    SendClientMessage(playerid, COLOR_SUCCESS, "Покупка совершена!");
    return 1;
}

Покупка игроком ларька:

Pawn:
CMD:buylark(playerid, params[]) {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2])) {
            if(strcmp(Larks[i][larkOwner], "Государство") != 0) return SendClientMessage(playerid, COLOR_ERROR, "Этот ларёк уже куплен!");
            if(GetPlayerMoney(playerid) < LARK_PRICE) return SendClientMessage(playerid, COLOR_ERROR, "У вас недостаточно денег!");

            GivePlayerMoney(playerid, -LARK_PRICE);
            GetPlayerName(playerid, Larks[i][larkOwner], MAX_PLAYER_NAME);

            // Обновляем метку
            UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {00FF00}%s", i, Larks[i][larkOwner]));

            SendClientMessage(playerid, COLOR_SUCCESS, "Вы купили этот ларёк!");
            return 1;
        }
    }
    SendClientMessage(playerid, COLOR_ERROR, "Вы не рядом с ларьком.");
    return 1;
}

Сбор прибыли:

Pawn:
forward OnLarkTaxUpdate();
public OnLarkTaxUpdate() {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(Larks[i][larkExists] && strcmp(Larks[i][larkOwner], "Государство") != 0) {
            if(Larks[i][larkMoney] >= LARK_TAX) {
                Larks[i][larkMoney] -= LARK_TAX;
            } else {
                // Ларёк возвращается государству, если не платит налог
                Larks[i][larkOwner] = "Государство";
                UpdateDynamic3DTextLabelText(Larks[i][larkLabel], COLOR_YELLOW, sprintf("Ларёк #{FFFFFF}%d\nВладелец: {FF0000}Государство", i));
            }
        }
    }
    return 1;
}

Сохранение в MySQL:

Pawn:
// Сохранение
SaveLarks() {
    for(new i = 0; i < MAX_LARKS; i++) {
        if(Larks[i][larkExists]) {
            new query[512];
            format(query, sizeof(query),
                "INSERT INTO larks (id, owner, price, posX, posY, posZ, angle, vw, interior, money) VALUES (%d, '%s', %d, %f, %f, %f, %f, %d, %d, %d) ON DUPLICATE KEY UPDATE owner='%s', money=%d",
                i, Larks[i][larkOwner], Larks[i][larkPrice], Larks[i][larkPos][0], Larks[i][larkPos][1], Larks[i][larkPos][2], Larks[i][larkPos][3], Larks[i][larkVW], Larks[i][larkInt], Larks[i][larkMoney],
                Larks[i][larkOwner], Larks[i][larkMoney]
            );
            mysql_query(query);
        }
    }
}

// Загрузка
LoadLarks() {
    new rows = cache_num_rows();
    for(new i = 0; i < rows; i++) {
        cache_get_value_name_int(i, "id", idx);
        cache_get_value_name(i, "owner", Larks[idx][larkOwner]);
        cache_get_value_name_float(i, "posX", Larks[idx][larkPos][0]);
        // ... остальные параметры

        // Создание объекта и метки
        Larks[idx][larkPickup] = CreateDynamicPickup(...);
        Larks[idx][larkLabel] = CreateDynamic3DTextLabel(...);
    }
}

OFFTOP

Посмотрел сообщения парня на чье сообщение отвечаю - не одной помощи, онли оффтоп



Если ерроры фикси сам, система на коленке.
эахахахахахас, а сам то тестил?
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Команда форума
Администратор
Регистрация
21 Янв 2023
Сообщения
1,384
Сверху