NPC продавец // Ответ другим пользователям

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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
11 Май 2025
Сообщения
18

Многие говорят что я работаю по GPT. Но это не так , долгое время уже я работаю над такими языками программирования как Java и Pawn , изучение новых языков таких как Lua. У меня есть отзывы , все мои работы начинаются с 2020 года. Я участвовал в разработке такого самп проекта как Ru State. Многое время общался с Ильей программистом крутым. Занимаюсь айпи ченжем , на данный момент я Владимир Жириновский это мой псевдоним в вк, я являюсь известным ddos ченжером который смог взломать множество сайтов из команды nova344. Все вопросы которые вы хотите задать мы можем обсудить в моей личке. Ну а сегодня я хочу поделиться с вами скриптом NPC продавца. Именно Npc написан на самой той системе LUA , код снизу пощну​

Серверная часть ( setcer.lua)
-- Создание NPC-продавца
function createSellerNPC()
local skinID = 20 -- ID скина продавца (например, 20 - обычный NPC)
local x, y, z = 123.45, -456.78, 901.23 -- Координаты спавна
local seller = createPed(skinID, x, y, z)
setPedRotation(seller, 90.0) -- Поворот NPC
setElementData(seller, "isSeller", true) -- Метка для идентификации
end

-- Список товаров
local shopItems = {
{ id = 1, name = "Бургер", price = 10 },
{ id = 2, name = "Вода", price = 5 },
{ id = 3, name = "Аптечка", price = 50 }
}

-- Обработка покупки
addEvent("onPlayerBuyItem", true)
addEventHandler("onPlayerBuyItem", root, function(itemID)
local playerMoney = getPlayerMoney(client)
local item = shopItems[itemID]

if not item then return end

if playerMoney >= item.price then
takePlayerMoney(client, item.price)
-- Выдача предмета (пример для оружия/предметов)
if item.id == 3 then
givePlayerHealth(client, 100) -- Аптечка восстанавливает здоровье
else
givePlayerWeapon(client, item.id, 1) -- Пример для других предметов
end
outputChatBox("[Магазин] Вы купили: " .. item.name, client, 0, 255, 0)
else
outputChatBox("[Магазин] Недостаточно денег!", client, 255, 0, 0)
end
end)

-- Создать NPC при старте ресурса
addEventHandler("onResourceStart", resourceRoot, createSellerNPC)

Клиентская часть ( client.lua)
-- Открыть GUI магазина
function showShopGUI()
local screenW, screenH = guiGetScreenSize()
local window = guiCreateWindow(screenW/2 - 150, screenH/2 - 200, 300, 400, "Магазин", false)
guiWindowSetSizable(window, false)

local grid = guiCreateGridList(10, 30, 280, 300, false, window)
guiGridListAddColumn(grid, "Товар", 0.6)
guiGridListAddColumn(grid, "Цена", 0.3)

for _, item in ipairs(shopItems) do
local row = guiGridListAddRow(grid)
guiGridListSetItemText(grid, row, 1, item.name, false, false)
guiGridListSetItemText(grid, row, 2, "$" .. item.price, false, false)
guiGridListSetItemData(grid, row, 1, item.id)
end

local buyButton = guiCreateButton(10, 340, 280, 30, "Купить", false, window)
addEventHandler("onClientGUIClick", buyButton, function()
local selectedRow = guiGridListGetSelectedItem(grid)
if selectedRow ~= -1 then
local itemID = guiGridListGetItemData(grid, selectedRow, 1)
triggerServerEvent("onPlayerBuyItem", localPlayer, itemID)
guiSetVisible(window, false)
destroyElement(window)
end
end)
end

-- Взаимодействие с NPC
addEventHandler("onClientClickPed", root, function(button, state, _, _, _, _, ped)
if button == "left" and state == "down" then
if getElementData(ped, "isSeller") then
if getDistanceBetween(localPlayer, ped) < 3 then
showShopGUI()
else
outputChatBox("Подойдите ближе к продавцу!", 255, 0, 0)
end
end
end
end)

Вот вам код , код я написал в 2023 году , первый тест проходил на сервере сампа Manezy , мой личный сервер который я пытался продвинуть но позже закрыл из за нехватки онлайна.​

 
Wagner Group's
Профессионал
Регистрация
26 Сен 2022
Сообщения
278
вспоминается видос про "пиздабола"
 
Сверху