Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.
Зарегистрироваться!возьми с любого мода аризона и всё хоть с користы вот тебе система киосковДайте пожалуйста систему киосочков нигде не могу найти
Взял бы, нро где. Если маппинг крашит всё нахуйвозьми с любого мода аризона и всё хоть с користы вот тебе система киосков
нормально не компилируется. ерорры даётВзял бы, нро где. Если маппинг крашит всё нахуй
я не знаю может проблема в коденормально не компилируется. ерорры даёт
ага, у тебя есть? код.я не знаю может проблема в коде
у меня то нету я не такой павн кодер просто легче взять с любого мода систему и всёага, у тебя есть? код.
Дефайны:тебе её никто не скинет
// ========== Конфигурация ларьков ==========
#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];
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;
}
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);
}
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;
}
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;
}
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;
}
// Сохранение
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(...);
}
}
Ерроры очень легко фиксить, особенно в 2025 году. Гугл в помощь.нормально не компилируется. ерорры даёт
это не систему киосков, чат гпт ее не сделаетДефайны:
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(...); } }
Если ерроры фикси сам, система на коленке.
Кто сказал что не сделает?это не систему киосков, чат гпт ее не сделает
чатгпт ничего о системе киосков с арз ничего не знаетКто сказал что не сделает?![]()
эахахахахахас, а сам то тестил?Дефайны:
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(...); } }
Если ерроры фикси сам, система на коленке.
эахахахахахас, а сам то тестил?
Кто сказал что не сделает?![]()