Witam powie mi kto? jak zrobi? by kas? za zakup pojazdu pobiera?o z bankomatu? oraz podczas odbierania wyp?aty z frakcji te? wp?ywa?o na konto bankowe.
[ Dodano: 2019-02-07, 12:07 ]
Dodaje skrypt na salon:
Musisz usun?? z kodu pobieranie pieni?dzy (takePlayerMoney) i zamieni? na zapytanie do bazy danych do konkretnej tabeli z danymi graczy (ilo?? pieni?dzy).
M?wi?c 'git' masz na my?li, ?e poprawnie pobiera kas? z bankomatu?
Pode?lij prosz? linijk?, w?a?nie t?, w kt?rej zmieni?e? sobie na to aby poprawnie pobiera?o kas? z bazy danych. B?dzie mi ?atwiej pom?c przy reszcie kiedy b?d? wiedzia? od razu co gdzie wpisa?.
Musisz wykona? zapytanie z 'SELECT' z bazy z kas? graczy.
"funkcja" musi by? odpowiednio zrobiona, ?eby zwr?ci?a Ci zapytanie.
Co? jak tutaj:
local ilekasy = exports.skrypt:funkcja("SELECT ilosc_kasy FROM baza_danych WHERE id=" .. uid .. " LIMIT 1")
if ilekasy[1] < cena_pojazdu then
outputChatBox("Masz za ma?o kasy.", gracz)
return
end
ilekasy[1] zale?y tylko od tego, jak wygl?da funkcja, kt?ra zwraca Ci wynik z bazy danych.
Je?li jest tam "return x[1]" to usuwasz [1], je?li "return x" to [1] musi zosta?.
addCommandHandler('kupuje', function(plr, cmd)
local data=plr:getData('vehsell:info')
if not data then return end
if getPlayerMoney(plr) < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
local vehicle=plr:getOccupiedVehicle()
if vehicle then
removePedFromVehicle(vehicle)
end
local cost=data.cost
local model=data.model
local mileage=data.mileage
local pojemnosc=data.pojemnosc
local uid=getElementData(plr,'player:uid') or 0
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET bank_money=bank_money-" .. cost .. " WHERE id=" .. uid .. " LIMIT 1")
if mileage <= 2000 then
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"false",pojemnosc)
else
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"true",pojemnosc)
end
removePedFromVehicle(plr)
fadeCamera(plr,false,1)
setTimer(fadeCamera,1000,1,plr,true,1)
setTimer(setElementPosition,1001,1,plr,-2544.26,-28.30,16.43)
triggerClientEvent(plr,"addNotification",root,string.format("Zakupiles swoj pojazd "..getVehicleNameFromModel(model)..", znajdziesz go w przechowywalni."),"info")
end)
Zmieni?em to z takeplayermoney na
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET bank_money=bank_money-" .. cost .. " WHERE id=" .. uid .. " LIMIT 1")
[ Dodano: 2019-02-08, 14:53 ]
I chodzi tu o 4 linijk?
W tej komendzie co podes?a?e? przed momentem zamie?:
if getPlayerMoney(plr) < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
na
local ilosc_kasy = exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=" .. getElementData(plr, "player:uid") .. " LIMIT 1")
if ilosc_kasy[1] < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
Je?li nie zadzia?a to pode?lij funkcj? "dbGet" ze skryptu ogrpg-db.
Mo?esz te? spr?bowa? zamieni? wtedy 'ilosc_kasy[1]' na 'ilosc_kasy':
local ilosc_kasy = exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=" .. getElementData(plr, "player:uid") .. " LIMIT 1")
if ilosc_kasy < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
function dbGet(...)
if not {...} then return end
local stringe=dbPrepareString(DBHandler,...)
local query=dbQuery(DBHandler, stringe)
local result,num_affected_rows, last_insert_id =dbPoll(query, -1)
return result
end
local ilosc_kasy = exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=" .. getElementData(plr, "player:uid") .. " LIMIT 1")
if ilosc_kasy[1] < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
addCommandHandler('kupuje', function(plr, cmd)
local data=plr:getData('vehsell:info')
if not data then return end
local ilosc_kasy = exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=" .. getElementData(plr, "player:uid") .. " LIMIT 1")
if ilosc_kasy[1] < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
local vehicle=plr:getOccupiedVehicle()
if vehicle then
removePedFromVehicle(vehicle)
end
local cost=data.cost
local model=data.model
local mileage=data.mileage
local pojemnosc=data.pojemnosc
local uid=getElementData(plr,'player:uid') or 0
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET bank_money=bank_money-" .. cost .. " WHERE id=" .. uid .. " LIMIT 1")
if mileage <= 2000 then
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"false",pojemnosc)
else
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"true",pojemnosc)
end
removePedFromVehicle(plr)
fadeCamera(plr,false,1)
setTimer(fadeCamera,1000,1,plr,true,1)
setTimer(setElementPosition,1001,1,plr,-2544.26,-28.30,16.43)
triggerClientEvent(plr,"addNotification",root,string.format("Zakupiles swoj pojazd "..getVehicleNameFromModel(model)..", znajdziesz go w przechowywalni."),"info")
end)
Tak, nawet wtedy. Tutaj wstawiam cz??? kodu z bankomat?w i te? jest tam funkcja dbGet
addEvent("onPlayerRequestATMInfo", true)
addEventHandler("onPlayerRequestATMInfo", resourceRoot, function()
local dbid=getElementData(client,"player:uid")
if not dbid then
triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
return
end
local sr=exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=? LIMIT 1",dbid)
if not sr or #sr < 1 then
triggerClientEvent(client,"doFillATMInfo", resourceRoot, false)
return
end
local sr=sr[1]
triggerClientEvent(client,"doFillATMInfo", resourceRoot, true, tonumber(sr.bank_money))
end)
local kasa=ilosc_kasy[1]
if kasa.bank_money < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
addCommandHandler('kupuje', function(plr, cmd)
local data=plr:getData('vehsell:info')
if not data then return end
local ilosc_kasy = exports["ogrpg-db"]:dbGet("SELECT bank_money FROM ogrpg_users WHERE id=" .. getElementData(plr, "player:uid") .. " LIMIT 1")
local kasa=ilosc_kasy[1]
if kasa.bank_money < data.cost then
outputChatBox("Nie posiadasz wystarczajacej kwoty pieniedzy!", plr)
return
end
local vehicle=plr:getOccupiedVehicle()
if vehicle then
removePedFromVehicle(vehicle)
end
local cost=data.cost
local model=data.model
local mileage=data.mileage
local pojemnosc=data.pojemnosc
local uid=getElementData(plr,'player:uid') or 0
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET bank_money=bank_money-" .. cost .. " WHERE id=" .. uid .. " LIMIT 1")
if mileage <= 2000 then
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"false",pojemnosc)
else
exports["ogrpg-db"]:dbSet("INSERT INTO ogrpg_vehicles (model,ownedPlayer,mileage,registered,pojemnosc,parking) VALUES (?,?,?,?,?,1)", model, getElementData(plr,"player:uid"),mileage,"true",pojemnosc)
end
removePedFromVehicle(plr)
fadeCamera(plr,false,1)
setTimer(fadeCamera,1000,1,plr,true,1)
setTimer(setElementPosition,1001,1,plr,-2544.26,-28.30,16.43)
triggerClientEvent(plr,"addNotification",root,string.format("Zakupiles swoj pojazd "..getVehicleNameFromModel(model)..", znajdziesz go w przechowywalni."),"info")
end)
Dzi?ki wielke! Wszystko dzia?a tak jak powinno Teraz tylko nie wiem dok?adnie jak zrobi? wyp?at? z frakcji do banku aby wp?ywa?a.
tutaj kod
local factions = {
["SAPD"] = 15000,
["SAFD"] = 15000,
["SAMA"] = 15000,
["SARA"] = 15000,
}
function getwyplata(el,md)
local uid = getElementData(el,"player:uid")
local result=exports["ogrpg-db"]:dbGet("SELECT * FROM ogrpg_factions WHERE uid=?", uid)
if #result > 0 then
if factions[result[1].code] then
if getElementData(el,"player:workinjob") and getElementData(el,"player:workinjob") >= 60 then
local money = (factions[result[1].code] * getElementData(el,"player:workinjob"))
local czas = getElementData(el,"player:workinjob")
setElementData(el,"player:workinjob",0)
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET worker=? WHERE id=?", "0", getElementData(el, "player:uid"))
outputChatBox("Trwa przetwarzanie twoich danych...", el)
setTimer ( function()
setElementData(el,"player:workinjob",0)
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET worker=? WHERE id=?", "0", getElementData(el, "player:uid"))
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_factions SET wyplat=wyplat+?, ostatnia_wyplata=now() WHERE uid=?", money, getElementData(el, "player:uid"))
outputChatBox("Otrzymujesz "..money.." PLN za przepracowane na s?u?bie "..czas.." minut!", el)
givePlayerMoney(el,money)
setElementData(el,"player:workinjob",0)
end, 5000, 1)
exports["ogrpg-db"]:dbSet("UPDATE ogrpg_users SET worker=? WHERE id=?", "0", getElementData(el, "player:uid"))
setElementData(el,"player:workinjob",0)
else
outputChatBox("Nie masz przepracowane minimum godziny na s?u?bie!", el)
end
else
outputChatBox("W twojej frakcji nie ma skonfigurowanego otrzymywania wyp?at", el)
end
end
end
addEvent("getwyplata", true)
addEventHandler("getwyplata", resourceRoot, getwyplata)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach