So, the script works perfect when the server is running 24/7, if i buy something in the shop it takes off the money from the account. But when i restart the server the money will go back to where it was before i bought an item.
Example:I set 20000 money,if i buy a tec-9 it will take off 400, after that i restart the server and the money will be 20000 again.
client.lua
local items = {
--items,cena(K.B.K Points)
porsion1List = {
{"Pistol", 50},
{"Silenced Pistol",150},
{"Desert Eagle",150},
{"Uzi",300},
{"TEC-9",400},
{"MP5",300},
{"AK-47",450},
{"M4",300},
{"Shotgun",400},
{"Sawn-Off Shotgun",400},
{"SPAZ-12 Combat Shotgun",400},
{"Country Rifle",400},
{"Sniper Rifle",400},
{"Grenade",400},
{"Katana",400},
},
porsion2List = {
{"Pistol Ammo",50},
{"Smg Ammo",100},
{"Assault Ammo",125},
{"Shotgun Ammo",100},
{"Sniper Ammo",50},
},
porsion3List = {
{"Bandage",75},
{"Painkiller",125},
{"Morphine",50},
{"Medic Kit",100},
{"Blood Bag",100},
}
}
SHOP = {
button = {},
window = {},
label = {},
tabpanel = {},
tab = {},
panel = {}
}
addEventHandler("onClientResourceStart", resourceRoot,
function()
local screenWidth, screenHeight = guiGetScreenSize()
local windowWidth, windowHeight = 620, 520
local windowX, windowY = (screenWidth / 2) - (windowWidth / 2), (screenHeight / 2) - (windowHeight / 2)
SHOP.window[1] = guiCreateWindow(windowX, windowY, windowWidth, windowHeight, "Nemzeti Dohánybolt", false)
guiWindowSetMovable(SHOP.window[1], false)
guiWindowSetSizable(SHOP.window[1], false)
guiSetProperty(SHOP.window[1], "CaptionColour", "FF075205")
SHOP.label[1] = guiCreateLabel(0.02, 0.69, 0.97, 0.08, "Válaszd ki azt a tárgyat amit megszeretnél venni! \nA fizetőeszköz DP!", true, SHOP.window[1])
guiSetFont(SHOP.label[1], "default-bold-small")
guiLabelSetHorizontalAlign(SHOP.label[1], "center", true)
guiLabelSetVerticalAlign(SHOP.label[1], "center")
SHOP.button[1] = guiCreateButton(0.35, 0.79, 0.30, 0.12, "Vásárlás", true, SHOP.window[1])
guiSetFont(SHOP.button[1], "default-bold-small")
SHOP.tabpanel[1] = guiCreateTabPanel(16, 33, 587, 240, false, SHOP.window[1])
SHOP.tab[1] = guiCreateTab("Fegyverek", SHOP.tabpanel[1])
SHOP.panel[1] = guiCreateGridList(0.01, 0.03, 0.98, 0.92, true, SHOP.tab[1])
guiGridListAddColumn(SHOP.panel[1], "Tárgy", 0.5)
guiGridListAddColumn(SHOP.panel[1], "Ár", 0.5)
for i,v in pairs ( items.porsion1List ) do
local row = guiGridListAddRow ( SHOP.panel[1] )
guiGridListSetItemText ( SHOP.panel[1], row, 1, v[1], false, false )
guiGridListSetItemText ( SHOP.panel[1], row, 2, v[2].."", false, false )
end
SHOP.tab[2] = guiCreateTab("Tárak", SHOP.tabpanel[1])
SHOP.panel[2] = guiCreateGridList(0.01, 0.03, 0.97, 0.92, true, SHOP.tab[2])
guiGridListAddColumn(SHOP.panel[2], "Tárgy", 0.5)
guiGridListAddColumn(SHOP.panel[2], "Ár", 0.5)
for i,v in pairs ( items.porsion2List ) do
local row = guiGridListAddRow ( SHOP.panel[2] )
guiGridListSetItemText ( SHOP.panel[2], row, 1, v[1], false, false )
guiGridListSetItemText ( SHOP.panel[2], row, 2, v[2].."", false, false )
end
SHOP.tab[3] = guiCreateTab("Gyógyító tárgyak", SHOP.tabpanel[1])
SHOP.panel[3] = guiCreateGridList(0.01, 0.03, 0.97, 0.92, true, SHOP.tab[3])
guiGridListAddColumn(SHOP.panel[3], "Tárgy", 0.5)
guiGridListAddColumn(SHOP.panel[3], "Ár", 0.5)
for i,v in pairs ( items.porsion3List ) do
local row = guiGridListAddRow ( SHOP.panel[3] )
guiGridListSetItemText ( SHOP.panel[3], row, 1, v[1], false, false )
guiGridListSetItemText ( SHOP.panel[3], row, 2, v[2].."", false, false )
end
guiSetVisible(SHOP.window[1],false)
addEventHandler ( "onClientGUIClick", SHOP.panel[1], click )
addEventHandler ( "onClientGUIClick", SHOP.panel[2], click )
addEventHandler ( "onClientGUIClick", SHOP.panel[3], click )
addEventHandler ( "onClientGUIClick", SHOP.button[1], buttonClick )
end
)
bindKey ( "f4", "down", function ( )
if getElementData(localPlayer, "logedin") then
-- if getElementData (getLocalPlayer(),"playerlevel") >= 3 then
local state = ( not guiGetVisible (SHOP.window[1]) )
if not getElementData(localPlayer,"shop.viewing") then setElementData(localPlayer,"shop.viewing",1) end
guiSetVisible ( SHOP.window[1], state )
showCursor ( state )
if guiGetVisible(SHOP.window[1]) == false then
removeEventHandler ( "onClientGUIClick", root, onSwitch )
else
addEventHandler ( "onClientGUIClick", root, onSwitch )
end
-- else
-- outputChatBox (" 3!")
-- end
end
end
)
function buttonClick(button,state)
if getElementData(localPlayer, "logedin") then
if button == "left" and state == "up" then
if getElementData(localPlayer,"shop.viewing") then
o = getElementData(localPlayer,"shop.viewing")
local nRow, nColumn = guiGridListGetSelectedItem( SHOP.panel[o] )
if nRow ~= -1 and nColumn ~= - 1 then
local selectedItem = guiGridListGetItemText ( SHOP.panel[o], guiGridListGetSelectedItem ( SHOP.panel[o] ), 1 )
local price = guiGridListGetItemText ( SHOP.panel[o], guiGridListGetSelectedItem ( SHOP.panel[o] ), 2 )
local money = getPlayerMoney(thePlayer)
if (money) >= tonumber(price) then
guiLabelSetColor( SHOP.label[1],255,255,255)
-- guiSetText( SHOP.label[1],"pietiek nauda")
setPlayerMoney(money -tonumber(price))
if selectedItem == "Pistol Ammo" then
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+17)
elseif selectedItem == "Smg Ammo" then
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+50)
elseif selectedItem == "Assault Ammo" then
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+30)
elseif selectedItem == "Shotgun Ammo" then
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+10)
elseif selectedItem == "Sniper Ammo" then
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+10)
else
setElementData(getLocalPlayer(),selectedItem,getElementData(getLocalPlayer(),selectedItem)+1)
end
guiLabelSetColor( SHOP.label[1],10,255,10)
guiSetText( SHOP.label[1],"Sikeresen megvásároltad a "..selectedItem.."tárgyat, maradt még "..(money -tonumber(price)).." DP-d.")
else
outputChatBox("Nincs elég pénzed!",255,0,0)
end
end
else
guiLabelSetColor( SHOP.label[1],255,10,10)
guiSetText( SHOP.label[1],"Gyűjts még "..(price -tonumber(money)).." DP-t")
end
else
guiSetText( SHOP.label[1],"Válassz ki valamit először")
guiLabelSetColor( SHOP.label[1],255,255,255)
end
end
end
function onSwitch()
if source == SHOP.panel[1] then
setElementData(localPlayer,"shop.viewing",1)
elseif source == SHOP.panel[2] then
setElementData(localPlayer,"shop.viewing",2)
elseif source == SHOP.panel[3] then
setElementData(localPlayer,"shop.viewing",3)
end
end
function click ()
if source == SHOP.panel[1] or source == SHOP.panel[2] or source == SHOP.panel[3] then
local selectedItem = guiGridListGetItemText ( source, guiGridListGetSelectedItem ( source ), 1 )
local price = guiGridListGetItemText ( source, guiGridListGetSelectedItem ( source ), 2 )
guiSetText( SHOP.label[1],"Hogy megvásárold a/az "..selectedItem.." tárgyat "..price.." DP-ért, nyomd le a vásárlás gombot!")
guiLabelSetColor( SHOP.label[1],255,255,255)
end
end
server.lua
addEventHandler("onPlayerQuit",root,
function()
local acc = getPlayerAccount(source)
if (acc) and not isGuestAccount(acc) then
local x,y,z = getElementPosition(source)
local money = getPlayerMoney(source)
setAccountData(acc,"PosX",x)
setAccountData(acc,"PosY",y)
setAccountData(acc,"PosZ",z)
setAccountData(acc,"Money",money)
end
end)
addEventHandler("onPlayerLogin",root,
function(_,acc)
local x,y,z = getAccountData(acc,"PosX"),getAccountData(acc,"PosY"),getAccountData(acc,"PosZ")
local Money = getAccountData(acc,"Money") or 0
setPlayerMoney(source,Money)
spawnPlayer(source,x,y,z)
fadeCamera(source, true)
setCameraTarget(source)
end)