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

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

Зарегистрироваться!
Пользователь
Регистрация
19 Янв 2025
Сообщения
50
Дайте пожалуйста систему киосочков нигде не могу найти
 
Профессионал
Заблокированный
Регистрация
20 Мар 2025
Сообщения
446
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Дайте пожалуйста систему киосочков нигде не могу найти
возьми с любого мода аризона и всё хоть с користы вот тебе система киосков
 
Профессионал
Заблокированный
Регистрация
20 Мар 2025
Сообщения
446
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
нормально не компилируется. ерорры даёт
я не знаю может проблема в коде
 
Профессионал
Заблокированный
Регистрация
20 Мар 2025
Сообщения
446
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
ага, у тебя есть? код.
у меня то нету я не такой павн кодер просто легче взять с любого мода систему и всё
 
Пользователь
Регистрация
15 Июн 2025
Сообщения
114
тебе её никто не скинет
Дефайны:
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
Сообщения
144
Дефайны:
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
Сообщения
52
Дефайны:
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,304
Сверху