BlackTen, ja ci wszystkiego nie b?d? poprawia?. Poprawi?em ci jeden b??d bo wida? by?o jak byk ?e por?wnujesz ID pojazdu ( number ) z Loginem gracza ( stringem ) wi?c ci to poprawi?em.
Z tym problemem zbytnio nie wiem co ci wykonuje a co nie. Zobacz tak:
Czy wy "PROGRAMI?CI LUA" w og?le potraficie w jakimkolwiek stopniu j. angielski? Przecie? macie pokazane b??dy w debugscripcie, jest jak byk napisane gdzie i jaki jest b??d...
1. outputChatBox - nie wysy?a Ci wiadomo?ci, bo nie ma elementu gracza. W
local urzednik = createPed(17,359.71,173.84,1008.39,270)
setElementInterior(urzednik,3)
setElementDimension(urzednik,1)
setElementData(urzednik,"ped_opis","Urzednik")
local sprzedaz = createMarker(361.83,173.71,1007.10,"cylinder",2.4,0,192,240,200)
setElementInterior(sprzedaz,3)
setElementDimension(sprzedaz,1)
timer=nil
sprzedazz={}
-- SKRYPT
addEventHandler("onMarkerHit",sprzedaz,
function (plr)
outputChatBox("Aby sprzeda? pojazd wpisz /sprzedaj <nick> <id pojazdu> <cena>",plr)
end
)
addCommandHandler("sprzedaj",
function (plr, cmd, target, id, koszt)
if not target and not id and not koszt then
outputChatBox("Poprawne u?ycie /sprzedaj <nick> <id pojazdu> <cena>",plr)
return
end
if not isElementWithinMarker(plr,sprzedaz) then
outputChatBox("Nie jeste? w odpowiednim miejscu.",plr)
return
end
if not target then
outputChatBox("Nie znaleziono gracza o podanym nicku.",plr)
return
end
local koszt = tonumber(koszt)
if not koszt then
outputChatBox("Nie poda?e? ceny pojazdu za jak? chcesz go sprzeda?",plr)
return
end
if not tonumber(id) then
outputChatBox("Nie poda?e? id pojazdu",plr)
return
end
if tonumber(koszt) < 0 then
outputChatBox("Poda?e? z?? cen?!",plr)
return
end
local account = getPlayerAccount(plr)
local wlasciciel = getAccountName(account)
for _,veh in ipairs(getElementsByType("vehicle")) do
if tonumber(getElementData(veh,"car_id")) == tonumber(id) then
if tostring(getElementData(veh,"car_owner")) == tostring( wlasciciel ) then
sprzedazz[target]={plr,target,veh,koszt}
else
outputChatBox("Nie jeste? w?a?cicielem tego pojazdu!",plr)
return
end
end
end
pokazOfertePojazdu(target)
outputChatBox("Oferta wys?ana pomy?lnie!",plr)
end
)
function pokazOfertePojazdu(plr)
if not sprzedazz[plr] then return end
local vehi = sprzedazz[plr][3]
local gracz = getPlayerFromName(plr)
outputChatBox("Otrzyma?e?/a? ofert? kupna pojazdu "..getVehicleNameFromModel(getVehicleModel(vehi))..", za cen? "..sprzedazz[plr][4].." EUR.",gracz,0,255,0)
outputChatBox("ID Pojazdu: "..getElementData(vehi,"car_id")..", przebieg pojazdu: "..math.floor(getElementData(vehi,"pojazd_przebieg")).."",gracz,0,255,0)
outputChatBox("Aby zaakceptowa? wpisz /akceptuje ( masz 30 sekund )",gracz,0,255,0)
timer=setTimer(function()
sprzedazz[plr] = nil
outputChatBox("Oferta wygas?a.",gracz)
removeCommandHandler("akceptuje",akceptujOK)
end,30000,1)
addCommandHandler("akceptuje",akceptujOK)
end
function akceptujOK(plr,cmd)
if not sprzedazz[plr] then return end
local veh=sprzedazz[plr][3]
local cost=sprzedazz[plr][4]
local target=sprzedazz[plr][1]
if cost < 0 then
outputChatBox("* Cena jest nieprawid?owa.", plr)
return
end
if tonumber(cost) > getPlayerMoney(plr) then
outputChatBox("* Nie posiadasz tyle got?wki.", plr)
return
end
givePlayerMoney(target, cost)
takePlayerMoney(plr, cost)
killTimer(timer)
outputChatBox("* Sprzeda? przeprowadzona pomy?lnie.", plr)
outputChatBox("* Sprzeda? przeprowadzona pomy?lnie.", target)
removeCommandHandler("akceptuje", akceptujOK)
wykonajZapytanie(veh,plr)
end
function wykonajZapytanie(veh,plr)
local account = getPlayerAccount(plr)
local login = getAccountName(account)
local id = getElementData(veh,"car_id")
ustawDanePojazdu(veh, id, login)
dbExec(handler, "UPDATE pojazdy SET wlasciciel='"..login.."' WHERE id="..id.."")
end
Oczekujesz pomocy, wprowadzi?e? jakie? zmiany i napisa?e?, ?e nie dzia?a. NIE DZIA?A KT?RA CZĘŚ? KODU? MAMY SI? DOMYSLA?? LUUUUUUUUUUUUUUUUUUUDZIE, U?YJCIE CHOCIA? RAZ KIEDY? M?ZGU...
@edit:
local oferty_sprzedazy = { }
local marker_sprzedazy = createMarker(361.83,173.71,1007.10,"cylinder",2.4,0,192,240,200)
setElementInterior(marker_sprzedazy, 3)
setElementDimension(marker_sprzedazy, 1)
function sprzedaj_cmdHandler(p, c, komu, id, cena)
if not isElementWithinMarker(p, marker_sprzedazy) then
outputChatBox("Nie mo?esz w tym miejscu sprzeda? pojazdu!", p)
return false
end
if not cena or (tonumber(cena) < 1 or tonumber(cena) > 9999999) then
outputChatBox("Prawid?owe u?ycie: /sprzedaj <komu> <id pojazdu> <cena $0 - 999999$>", p)
return false
end
local kupujacy = getPlayerFromName(komu)
if not kupujacy then
outputChatBox("Nie ma takiego gracz", p)
return false
end
for _, v in pairs(getElementsByType("vehicle")) do
if ( tonumber(getElementData(v, "car_id")) == tonumber(id) and tostring(getElementData(v, "car_owner") == tostring(getAccountName(getPlayerAccount(p))) ) then
oferty_sprzedazy[kupujacy] = {
sprzedajacy = p,
pojazd = v,
kwota = tonumber(cena),
timer = setTimer(
function (oferta)
if isTimer(oferty_sprzedazy[oferta].timer) then
outputChatBox("Oferta wygas?a!" oferta)
outputChatBox("Oferta wygas?a!", oferty_sprzedazy[oferta].sprzedajacy)
killTimer(oferty_sprzedazy[oferta].timer)
end
end, 30 * 1000, 1, kupujacy)
}
outputChatBox("Gracz "..getPlayerName(p).." oferuje Ci pojazd: "..getVehicleNameFromModel(getElementModel(v)).." za $"..cena, kupujacy)
outputChatBox("Wpisz /akceptuj, aby przyj?? jego ofert?. Oferta wyga?nie za 30 sekund!", kupujacy)
outputChatBox("Wys?ano ofert? sprzeda?y do "..getPlayerName(kupujacy), p)
return true
end
end
end
function akceptuj_cmdHandler(p, c)
if not oferty_sprzedazy[p] then
outputChatBox("Nie masz ?adnej oferty w chwili obecnej!", p)
return false
end
local pMoney = getPlayerMoney(p)
local pAccount = getAccountName(getPlayerAccount(p))
if oferty_sprzedazy[p].kwota > pMoney then
outputChatBox("Nie posiadasz tylu pieni?dzy!", p)
return false
end
takePlayerMoney(p, oferty_sprzedazy[p].cena)
givePlayerMoney(oferty_sprzedazy[p].sprzedajacy, oferty_sprzedazy[p].cena)
local id = getElementData(oferty_sprzedazy[p].pojazd, "car_id")
ustawDanePojazdu(oferty_sprzedazy[p].pojazd, id, pAccount)
dbExec(handler, "UPDATE pojazdy SET wlasciciel=? WHERE id=?", pAccount, id)
outputChatBox("Zakupi?e? pojazd!", p)
outputChatBox("Gracz "..getPlayerName(p).." przyj?? twoj? ofert? sprzeda?y pojazdu! +$"..oferty_sprzedazy[p].cena, oferty_sprzedazy[p].sprzedajacy)
if isTimer(oferty_sprzedazy[p].timer) then
killTimer(oferty_sprzedazy[p].timer)
end
oferty_sprzedazy[p] = nil
end
addCommandHandler("sprzedaj", sprzedaj_cmdHandler)
addCommandHandler("akceptuj", akceptuj_cmdHandler)
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