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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
19 Янв 2025
Сообщения
39
Дайте пожалуйста систему киосочков нигде не могу найти
 
Пользователь
Регистрация
15 Июн 2025
Сообщения
100
тебе её никто не скинет
Дефайны:
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
Сообщения
132
Дефайны:
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
Сообщения
34
Дефайны:
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,267
Сверху