Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2015-01-09, 19:16


Dryfter







Wiek: 36
Na forum: 4287 dni
Posty: 27

Piwa: 6

Respekt: 50

Client

local w_m={}
--utils
function math.round(numberdecimalsmethod)
decimals decimals or 0
local factor 10 decimals
if (method == "ceil" or method == "floor"then return math[method](number factor) / factor
else return tonumber(("%."..decimals.."f"):format(number)) end
end
function string:split(sep)
local sepfields sep or ":", {}
local pattern string.format("([^%s]+)"sep)
self:gsub(pattern, function(cfields[#fields+1] = c end)
return fields
end
w_m.wnd guiCreateWindow(0.1469,0.1667,0.7344,0.675,"Panel mechanika",true)
w_m.btn_napraw guiCreateButton(0.0277,0.8395,0.3064,0.1327,"Napraw",true,w_m.wnd)
w_m.btn_zamknij guiCreateButton(0.3427,0.8395,0.3064,0.1327,"Zamknij",true,w_m.wnd)
w_m.lbl_info guiCreateLabel(0.60.83950.350.1327""truew_m.wnd)
w_m.lbl_costinfo guiCreateLabel(0.60.83950.350.1327""truew_m.wnd)
guiLabelSetHorizontalAlign(w_m.lbl_info"center"true)
guiLabelSetVerticalAlign(w_m.lbl_info"center")
w_m.grid guiCreateGridList(0.0298,0.0895,0.9383,0.7191,true,w_m.wnd)
guiGridListSetSelectionMode(w_m.grid,1)
guiGridListSetSortingEnabled(w_m.grid,false)
w_m.grid_nazwa guiGridListAddColumn w_m.grid"Nazwa cz??ci"0.3 )
w_m.grid_stan guiGridListAddColumn w_m.grid"Stan cz??ci"0.3 )
w_m.grid_koszt guiGridListAddColumn w_m.grid"Koszt naprawy"0.3 )
guiSetVisible(w_m.wnd,false)
local naprawiany_pojazd=nil
local function kosztNaprawySilnika(v)
local vhp=1000-getElementHealth(v)
local cenapojazdu=getVehicleHandling(v).monetary or 10000
local przebieg=(10000-math.min(getElementData(v,"przebieg") or 5000,9999))/10000
return vhp/1000*cenapojazdu*przebieg*0.002 -- it's that simple
end
local function kosztNaprawyElementu(v)
local cenapojazdu=getVehicleHandling(v).monetary or 10000
local przebieg=(10000-math.min(getElementData(v,"przebieg") or 5000,9999))/10000
return cenapojazdu*przebieg*0.002 -- it's that simple
end
local panele={
[0]="Karoseria lewy prz?d",
[1]="Karoseria prawy prz?d",
[2]="Karoseria lewy ty?",
[3]="Karoseria prawy ty?",
[4]="Szyba przednia",
[5]="Zderzak z przodu",
[6]="Zderzak z ty?u"
}
local stanyPaneli={
[0]="100%",
[1]="66%",
[2]="33%",
[3]="0%",
}
local nazwyDrzwi={
[0]="Maska",
[1]="Baga?nik",
[2]="Drzwi lewy prz?d",
[3]="Drzwi prawy prz?d",
[4]="Drzwi lewy ty?",
[5]="Drzwi prawy ty?"
}
local nazwySwiatel={
[0]="?wiat?o lewy prz?d",
[1]="?wiat?o prawy prz?d",
[2]="?wiat?o lewy ty?",
[3]="?wiat?o prawy ty?"
}
local function fillVehicleData(v)
guiGridListClear(w_m.grid)
do
if getElementHealth(v) ~= 1000 then
local row=guiGridListAddRow(w_m.grid)
guiGridListSetItemText(w_m.grid,row1"Silnik",false,false)
guiGridListSetItemData(w_m.grid,row1, -1)
guiGridListSetItemText(w_m.grid,row2math.round(getElementHealth(v)/10).."%"falsetrue)
guiGridListSetItemText(w_m.grid,row3math.round(math.abs(kosztNaprawySilnika(v))+2).."$"falsetrue)
end
end
for i,panel in pairs(panele) do
local stan getVehiclePanelState(vi)
if stan ~= 0 then
local koszt=kosztNaprawyElementu(v)*(getVehiclePanelState(v,i))/6
local row=guiGridListAddRow(w_m.grid)
guiGridListSetItemText(w_m.grid,row1panel,false,false)
guiGridListSetItemData(w_m.grid,row1i)
local stan=stanyPaneli[getVehiclePanelState(v,i)]
guiGridListSetItemText(w_m.grid,row2stanfalsetrue)
guiGridListSetItemText(w_m.grid,row3math.round(koszt+2).."$"falsetrue)
end
end
-- drzwi
for i=0,do
local stan=getVehicleDoorState(vi)
if stan==or stan==or stan==4 then
local koszt=kosztNaprawyElementu(v)*2/6
local row=guiGridListAddRow(w_m.grid)
guiGridListSetItemText(w_m.grid,row1nazwyDrzwi[i],false,false)
guiGridListSetItemData(w_m.grid,row1i+10)
guiGridListSetItemText(w_m.grid,row2"0%"falsetrue)
guiGridListSetItemText(w_m.grid,row3math.round(koszt+2).."$"falsetrue)
end
end
for i=0,do
local stan=getVehicleLightState(vi)
if stan==1 then
local koszt=kosztNaprawyElementu(v)*2/6
local row=guiGridListAddRow(w_m.grid)
guiGridListSetItemText(w_m.grid,row1nazwySwiatel[i],false,false)
guiGridListSetItemData(w_m.grid,row1i+20)
guiGridListSetItemText(w_m.grid,row2"0%"falsetrue)
guiGridListSetItemText(w_m.grid,row3math.round(koszt+2).."$"falsetrue)
end
end
end
addEventHandler("onClientMarkerHit"resourceRoot, function(el,md)
if not md or el~=localPlayer then return end
local cs=getElementData(source"cs")
if not cs then return end
if getElementData(source"braniekola"then return end
local fid=getElementData(source"faction_id")
local lfid=getElementData(el"faction:id") or -1
if fid~=lfid then return end -- gracz nie jest pracownikiem]]--
local pojazdy=getElementsWithinColShape(cs,"vehicle")
if #pojazdy<1 then
outputChatBox("Na stanowisku naprawczym nie ma ?adnego pojazdu.")
return
end
if #pojazdy>1 then
outputChatBox("Na stanowisku naprawczym jest zbyt du?o pojazd?w.")
return
end
allCost setTimer(function(plr)
end10000el)
fillVehicleData(pojazdy[1])
guiSetEnabled(w_m.btn_naprawfalse)
guiSetText(w_m.lbl_info,"")
guiSetVisible(w_m.wndtrue)
guiSetText(w_m.btn_naprawstring.format("Napraw (%s)"getVehicleName(pojazdy[1])) )
naprawiany_pojazd=pojazdy[1]
end)
addEventHandler("onClientMarkerLeave"resourceRoot, function(el,md)
if el~=localPlayer then return end
guiSetVisible(w_m.wndfalse)
naprawiany_pojazd=nil
if allCost and isTimer(allCostthen killTimer(allCostend
end)
addEventHandler("onClientGUIClick"w_m.btn_zamknij, function()
guiSetVisible(w_m.wndfalse)
naprawiany_pojazd=nil
if allCost and isTimer(allCostthen killTimer(allCostend
endfalse)
addEventHandler("onClientGUIClick"w_m.grid, function()
guiSetText(w_m.lbl_info,"")
selectedRowguiGridListGetSelectedItem w_m.grid) or -1
if (selectedRow<0then
guiSetEnabled(w_m.btn_napraw,false)
return
end
local multirepair = {}
local rows guiGridListGetSelectedItems(w_m.grid)
for k,v in ipairs(rows) do
if (k/== math.round(k/3)) then --kazde 3 wyniki sa takie samepomijamy je
table.insert(multirepair,v)
end
end
totalkoszt 0
for k,v in ipairs(multirepair) do
local koszt guiGridListGetItemText(w_m.gridv.row3)
local koszt koszt:split("$")
local koszt tonumber(koszt[1])
totalkoszt totalkoszt+koszt
end
guiSetText(w_m.lbl_infostring.format("W sumie do zap?aty: %s$",totalkoszt))
guiSetEnabled(w_m.btn_naprawtrue)
end)
local napraw_lu=getTickCount()
addEventHandler("onClientGUIClick"w_m.btn_napraw, function()
if getTickCount()-napraw_lu<1000 then return end
if not naprawiany_pojazd or not isElement(naprawiany_pojazdthen return end
selectedRowguiGridListGetSelectedItem w_m.grid) or -1
if selectedRow<0 then return end
local rows guiGridListGetSelectedItems(w_m.grid)
local multirepair = {}
--musimy sprawdzicczy gracz zaznaczyl KILKA rowowczy JEDEN //karer - takie male udogodnienie
for k,v in ipairs(rows) do
if (k/== math.round(k/3)) then --kazde 3 wyniki sa takie samepomijamy je
table.insert(multirepair,v)
end
end
guiSetText(w_m.lbl_info,"")
if #multirepair == 1 then
local koszt guiGridListGetItemText(w_m.gridselectedRow3)
local koszt koszt:split("$")
local koszt tonumber(koszt[1])
if not koszt then return end
if koszt<=0 then
guiSetText(w_m.lbl_info,"Ta cz??? jest sprawna.")
return
end
-- if koszt>getPlayerMoney(localPlayerthen
-- guiSetText(w_m.lbl_info,"Nie masz tyle got?wki!")
-- return
-- end
local czesc=guiGridListGetItemData(w_m.gridselectedRow1) -- numer panelu lub -1==silnik
napraw_lu=getTickCount()
triggerServerEvent("naprawaElementu"resourceRootnaprawiany_pojazdczesckoszt)
elseif #multirepair > 1 then
for i,v in ipairs(multirepair) do
local selectedRow v.row
local koszt guiGridListGetItemText(w_m.gridselectedRow3)
local koszt koszt:split("$")
local koszt tonumber(koszt[1])
if not koszt then return end
if koszt<=0 then
break
end
-- if koszt>getPlayerMoney(localPlayerthen
-- guiSetText(w_m.lbl_info,"Nie masz tyle got?wki!")
-- return
-- end
local czesc=guiGridListGetItemData(w_m.gridselectedRow1) -- numer panelu lub -1==silnik
napraw_lu=getTickCount()
triggerServerEvent("naprawaElementu"resourceRootnaprawiany_pojazdczesckoszt)
end
else
outputDebugScript("lss-naprawapojazdow> inna wartosc countRows, should't happen.")
end
endfalse)
-- triggerClientEvent(client"refreshVehicleData"resourceRootpojazd)
addEvent("refreshVehicleData"true)
addEventHandler("refreshVehicleData"resourceRoot, function(pojazd)
naprawiany_pojazd=pojazd
fillVehicleData(pojazd)
end)

Serwer:
local strefyNapraw={
--idlewood
warsztatIdlewoodStanowsko11={
cuboid={1846.96, -1784.8914.159},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1854.92,-1780.84,12.55}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=3, -- id frakcji ktora ma do tego dostep
},
warsztatIdlewoodStanowsko12={
cuboid={1846.96, -1775.1714.159},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1854.44,-1772.43,12.65}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=3, -- id frakcji ktora ma do tego dostep
},
warsztatIdlewoodStanowsko2={
cuboid={1892.99, -1784.8914.1521},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1900.45,-1779.93,12.55}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=3, -- id frakcji ktora ma do tego dostep
},
--montgomery
warsztatMontgomeryStanowsko1={
cuboid={1184.08,253.10,19.6386},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1182.39,253.35,18.53}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=18, -- id frakcji ktora ma do tego dostep
},
warsztatMontgomeryStanowsko2={
cuboid={1187.19,260.38,19.6386},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1185.23,261.67,18.53}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=18, -- id frakcji ktora ma do tego dostep
},
warsztatMontgomeryStanowsko3={
cuboid={1190.69,267.41,19.6386},-- cuboid w ktorym musi znalezc sie pojazd
mpos={1188.04,268.48,18.53}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=18, -- id frakcji ktora ma do tego dostep
},
--fernridge
warsztatFernridgeStanowsko1={
cuboid={625.54,-112.51,26614},-- cuboid w ktorym musi znalezc sie pojazd
mpos={634.07,-120.03,24.49}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=12, -- id frakcji ktora ma do tego dostep
},
--blueberry
warsztatBlueberryStanowsko1={
cuboid={98.99,-200.74,1.63514},-- cuboid w ktorym musi znalezc sie pojazd
mpos={105.87,-182.61,0.63}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=19, -- id frakcji ktora ma do tego dostep
},
warsztatBlueberryStanowsko2={
cuboid={83.09,-200.69,1.63514},-- cuboid w ktorym musi znalezc sie pojazd
mpos={91.86,-186.84,0.63}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=19, -- id frakcji ktora ma do tego dostep
},
--palomino creek
warsztatPalominoStanowsko1={
cuboid={2322.59,-192.69,26.49514},-- cuboid w ktorym musi znalezc sie pojazd
mpos={2320.13,-177.73,25.49}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=13, -- id frakcji ktora ma do tego dostep
},
warsztatPalominoStanowsko2={
cuboid={2305.99,-192.79,26.50514},-- cuboid w ktorym musi znalezc sie pojazd
mpos={2303.40,-174.48,25.50}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=13, -- id frakcji ktora ma do tego dostep
},
warsztatPalominoStanowsko3={
cuboid={2289.70,-192.82,26.50614},-- cuboid w ktorym musi znalezc sie pojazd
mpos={2297.36,-175.18,25.50}, -- pozycja markera w ktorym gracz bedzie stal aby naprawiac
faction_id=13, -- id frakcji ktora ma do tego dostep
},
}
for i,v in pairs(strefyNapraw) do
v.cs=createColCuboid(unpack(v.cuboid))
v.marker=createMarker(v.mpos[1], v.mpos[2], v.mpos[3], "cylinder"10,0,0,100)
setElementData(v.marker,"cs",v.cs)
setElementData(v.marker,"faction_id",v.faction_id)
end
-- triggerServerEvent("naprawaElementu"resourceRootnaprawiany_pojazdczesckoszt)
addEvent("naprawaElementu"true)
addEventHandler("naprawaElementu"resourceRoot, function(pojazdczesckoszt)
outputDebugString("Naprawa elementu " .. czesc .. " za " .. koszt)
if koszt>getPlayerMoney(clientthen
return
end
if (czesc==-1then
-- setElementHealth(pojazd1000)
local vps={}
local vds={}
local vls={}
for i=0,do vps[i]=getVehiclePanelState(pojazd,iend
for i=0,do vds[i]=getVehicleDoorState(pojazd,iend
for i=0,do vls[i]=getVehicleLightState(pojazd,iend
fixVehicle(pojazd)
for i=0,do setVehiclePanelState(pojazdivps[i]) end
for i=0,do setVehicleDoorState(pojazdivds[i]) end
for i=0,do setVehicleLightState(pojazdivls[i]) end
triggerClientEvent(client"refreshVehicleData"resourceRootpojazd)
elseif czesc>=and czesc<=6 then
setVehiclePanelState(pojazdczesc0)
triggerClientEvent(client"refreshVehicleData"resourceRootpojazd)
elseif czesc>=10 and czesc<20 then
local drzwi=czesc-10
setVehicleDoorState(pojazddrzwi0)
triggerClientEvent(client"refreshVehicleData"resourceRootpojazd)
elseif czesc>=20 then
local swiatlo=czesc-20
setVehicleLightState(pojazdswiatlo0)
triggerClientEvent(client"refreshVehicleData"resourceRootpojazd)
end
end)


Siema.Ten skrypt mam z XyzzyRP.Mam z nim taki problem ?e nie umiem chyba go u?y?.Usun??em ju? faction_id bo nie wiedzia?em co zrobi? ?eby doda? si? do frakcji ale mam dalej problem z autem na stanowisku.Auto stoi na tym stanowisku co jest podane w kodzie a dalej wy?wietla si? ?e nie stoi tam.Mo?e kto? pom?c?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-10, 10:05


Gerano

Mleko,Kakao,LUA






Wiek: 38
Na forum: 4266 dni
Posty: 187
Nick w MP: Gerano

Piwa: 1460

Respekt: 146,3
Respekt: 146,3

Ostrzeżeń: 100%
jeszcze raz ale powoli sprawdz a dojdziesz jak zrobi? aby mo?na by?o naprawia? nwm a w acl doda?e? t? frakcje co ma naprawia?? bo jak nie to we? to zr?b je?li pomog?em postaw piwko a jak nie b?dzie dzia?a? to napisz to spr?buje

Podpis
BUDOWA SERWERA: XXX

Prace: XXX%
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-10, 10:38


Dryfter







Wiek: 36
Na forum: 4287 dni
Posty: 27

Piwa: 6

Respekt: 50

Pr?bowa?em ale tam nie ma nic o tym jaka to frakcja wi?c potem usun??em wszystkie linijki zwi?zane z frakcja i zacz??o si? co? dzia?.Pokazywa?o si? po wej?ciu w marker ?e na stanowisku nie ma auta a by?o.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-10, 10:40


Gerano

Mleko,Kakao,LUA






Wiek: 38
Na forum: 4266 dni
Posty: 187
Nick w MP: Gerano

Piwa: 1460

Respekt: 146,3
Respekt: 146,3

Ostrzeżeń: 100%
a jak ustali?e? gdzie ma sta? pojazd ? w map editor czy jak

Podpis
BUDOWA SERWERA: XXX

Prace: XXX%
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-01-10, 11:43


Dryfter







Wiek: 36
Na forum: 4287 dni
Posty: 27

Piwa: 6

Respekt: 50

Tam jest takie co? jak cuboid tego miejsca.Ustawi?em auto w tych kordach

Postaw piwo autorowi tego posta
 

 
Tagi: praca :: mechanika
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Praca mechanika Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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
Dodaj temat do Ulubionych
Wersja do druku