Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

#arz СИСТЕМА КИОСКОВ

Янв
136
142
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Дайте пожалуйста систему киосочков нигде не могу найти
 
Янв
136
142
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
возьми с любого мода аризона и всё хоть с користы вот тебе система киосков
Взял бы, нро где. Если маппинг крашит всё нахуй
 
Янв
136
142
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Взял бы, нро где. Если маппинг крашит всё нахуй
нормально не компилируется. ерорры даёт
 
Янв
136
142
Заблокированный
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
я не знаю может проблема в коде
ага, у тебя есть? код.
 
Июн
135
210
Пользователь
тебе её никто не скинет
Дефайны:
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

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



Если ерроры фикси сам, система на коленке.
 
Май
146
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

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



Если ерроры фикси сам, система на коленке.
это не систему киосков, чат гпт ее не сделает
 
Июл
53
7
Пользователь
Дефайны:
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

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



Если ерроры фикси сам, система на коленке.
эахахахахахас, а сам то тестил?
 
𝚖𝚘𝚛𝚜 𝚌𝚎𝚛𝚝𝚊, 𝚑𝚘𝚛𝚊 𝚒𝚗𝚌𝚎𝚛𝚝𝚊.
Янв
1,614
3,658
Команда форума
Администратор
Сверху