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

Wysłany: 2017-02-09, 16:41


Kuksss

guwno






Wiek: 22
Na forum: 3922 dni
Posty: 102
Nick w MP: guwnp

Piwa: 732

Respekt: 70,5

Ostrzeżeń: 100%
Client:
local marker = createMarker(87.25388, 1183.62219, 18.66406 - 2.4, "cylinder", 2, 102, 72, 225)

local wm={}
wm.window=guiCreateWindow(0.25, 0.26, 0.51, 0.42, "Praca dorywcza", true)
guiWindowSetSizable(wm.window, false)
guiWindowSetMovable(wm.window, false)
guiSetVisible(wm.window, false)
wm.elo=guiCreateLabel(0.02,0.1,0.94,0.92,"Egzampul egzampul",true,wm.window)
wm.button=guiCreateButton(0.57, 0.75, 0.39, 0.20, "Rozpocznij prac?!", true, wm.window)
wm.exit=guiCreateButton(0.040, 0.75, 0.39, 0.20, "Zamknij", true, wm.window)

addEventHandler("onClientMarkerHit",marker,function(el,md) 
    if not md or el~=localPlayer then return end
 if guiGetVisible(wm.window) == false then
        guiSetVisible(wm.window, true)
        showCursor(true)
    end
end)

function if2()
    if guiGetVisible(wm.window) == true then
        guiSetVisible(wm.window, false)
        showCursor(false)
    end
end
addEventHandler("onClientGUIClick", wm.button, if2)

function greetingCommand ( commandName )
    triggerServerEvent("onTrigger", resourceRoot)
end
addEventHandler ( "onClientGUIClick", wm.button, greetingCommand )

function if3()
    if guiGetVisible(wm.window) == true then
        guiSetVisible(wm.window, false)
        showCursor(false)
    end
end
addEventHandler("onClientGUIClick", wm.exit, if3)

--wazniejsze

m1,b1 = nil

function usunblip()
    destroyElement(b1)
    destroyElement(m1)
    outputChatBox("Dostarczy?e?/a? ?adunek na miejsce! pozosta?o: 2/3", 0, 255, 0)
end

function blipandcos()
    m1 = createMarker(-71.79092, 1202.96021, 19.59375, "checkpoint", 2, 255, 0, 0)
    b1 = createBlipAttachedTo(m1, 12)
    addEventHandler("onClientMarkerHit", m1, usunblip)
end
addEventHandler("onClientGUIClick", wm.button, blipandcos)

--dalszy etap
m2,b2 = nil

function usunblipax()
    destroyElement(b2)
    destroyElement(m2)
    outputChatBox("Dostarczy?e?/a? ?adunek na miejsce! pozosta?o: 1/3", 0, 255, 0)
end

function blipandcosx()
    m2 = createMarker(-197.56477, 1145.69250, 19.59375, "checkpoint", 2, 255, 0, 0)
    b2 = createBlipAttachedTo(m2, 12)
    addEventHandler("onClientMarkerHit", m2, usunblipax)
end
addEventHandler("onClientMarkerHit", m1, blipandcosx)

Server:
function handler ()  
    pojazd=createVehicle(602, 47.44180, 1176.72131, 18.66406)
    warpPedIntoVehicle(client, pojazd)
end
addEvent( "onTrigger", true )
addEventHandler( "onTrigger", resourceRoot, handler )

function cosik(vehicle, seat, jacked)
    destroyElement(pojazd)
    outputChatBox("Zako?czy?e?/a? prac?!", getRootElement(), 255, 0, 0)
end
addEventHandler("onPlayerVehicleExit", getRootElement(), cosik)


Mam kilka pyta?.
Dlaczego gdy jeden gracz wjedzie w marker, innym on te? znika?
Dlaczego nie pojawia si? kolejny punkt roz?adunku po wjechaniu w pierwszy?
Dlaczego pojazd po wyj?ciu z niego znika tylko jednemu graczowi, a innym zostaje?

Za pomoc stawiam :piwo: i daj? R* !

Podpis
c***
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-02-09, 20:13


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

Du?o b??d?w masz w swojej pracy, 0 zabezpiecze?. Zr?b tablic? z kordami marker?w i zastosuj to:

local tablicaZpunktami = {

{2130.7321777344, 895.86938476563, 10.8203125},
{1609.6518554688, 2231.4582519531, 10.22998619079},
{2624.4873046875, 1134.0263671875, 10.476633071899},

}
-- tutaj losujesz punkty i dajesz do nich markery oraz blip
rnd=punkt[math.random(#tablicaZpunktami )]
        pmarker=createMarker(rnd[1], rnd[2], rnd[3], "checkpoint", 3, 255, 0, 0 )
        pblip=createBlip(rnd[1], rnd[2], rnd[3], 41)



Pami?taj ?e w lua dzia?aj? eventy ze wszystkich skrypt?w na raz wi?c je?eli zastosujesz:

addEventHandler("onPlayerVehicleExit", getRootElement(), cosik)

To usunie ka?dy pojazd.

Lepiej zr?b marker z prac? po stronie serwera i z tego triggerowa? gui.
Tutaj jak usun?? blip w kt?ry gracz wjedzie (kod nie jest m?j,ale jest idealnym przyk?adem jak to zrobi?):

local missionBlip
local missionPickup
local missionVehicle
local missionTank

local function finishJob(missionValue)
    if isElement(missionBlip) then
        destroyElement(missionBlip)
        missionBlip=nil
    end
    if isElement(missionMarker) then
        destroyElement(missionMarker)
        missionMarker=nil
    end
    if missionValue then
        setElementData(localPlayer,"player:job",false) -- -v
        triggerServerEvent("dune:stopJOB", localPlayer, missionVehicle) -- element daty, zrobione po to aby gracz nie mogl brac kilka prac na raz oraz aby nie mogl brac tej samej pracy 2x
        missionVehicle=nil
        missionMarker=nil
        missionBlip=nil
    end
end


Ostatnia rzecz to zabezpieczenie skryptu przed bugowaniem. Musisz dopisa? kod w kt?rym praca si? zako?czy gdy:
-gracz zginie
-wyjdzie z serwera
-'Wasted'
-wyjdzie z pojazdu
-kiedy praca(zas?b) zostanie zastopowany.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-02-10, 14:46


Kuksss

guwno






Wiek: 22
Na forum: 3922 dni
Posty: 102
Nick w MP: guwnp

Piwa: 732

Respekt: 70,5

Ostrzeżeń: 100%
amited, Zrobilem
local marker = createMarker(87.25388, 1183.62219, 18.66406 - 2.4, "cylinder", 2, 102, 72, 225)

local wm={}
wm.window=guiCreateWindow(0.25, 0.26, 0.51, 0.42, "Praca dorywcza", true)
guiWindowSetSizable(wm.window, false)
guiWindowSetMovable(wm.window, false)
guiSetVisible(wm.window, false)
wm.elo=guiCreateLabel(0.02,0.1,0.94,0.92,"Egzampul egzampul",true,wm.window)
wm.button=guiCreateButton(0.57, 0.75, 0.39, 0.20, "Rozpocznij prac?!", true, wm.window)
wm.exit=guiCreateButton(0.040, 0.75, 0.39, 0.20, "Zamknij", true, wm.window)

addEventHandler("onClientMarkerHit",marker,function(el,md) 
    if not md or el~=localPlayer then return end
 if guiGetVisible(wm.window) == false then
        guiSetVisible(wm.window, true)
        showCursor(true)
    end
end)

function if2()
    if guiGetVisible(wm.window) == true then
        guiSetVisible(wm.window, false)
        showCursor(false)
    end
end
addEventHandler("onClientGUIClick", wm.button, if2)

function greetingCommand ( commandName )
    triggerServerEvent("onTrigger", resourceRoot)
end
addEventHandler ( "onClientGUIClick", wm.button, greetingCommand )

function if3()
    if guiGetVisible(wm.window) == true then
        guiSetVisible(wm.window, false)
        showCursor(false)
    end
end
addEventHandler("onClientGUIClick", wm.exit, if3)

--wazniejsze


tablicaZpunktami = {

{-230.23724, 1202.44141, 19.59375},

}
rnd=punkt[math.random(#tablicaZpunktami )]
        pmarker=createMarker(rnd[1], rnd[2], rnd[3], "checkpoint", 3, 255, 0, 0 )
        pblip=createBlip(rnd[1], rnd[2], rnd[3], 12)
        
    
local missionBlip
local missionPickup
local missionVehicle
local missionTank

local function finishJob(missionValue)
    if isElement(missionBlip) then
        destroyElement(missionBlip)
        missionBlip=nil
    end
    if isElement(missionMarker) then
        destroyElement(missionMarker)
        missionMarker=nil
    end
    if missionValue then
        setElementData(localPlayer,"player:job",false) -- -v
        missionVehicle=nil
        missionMarker=nil
        missionBlip=nil
    end
end

W cliencie, ale nadal nie dzia?a, teraz nawet nie tworzy blipa. :/

Podpis
c***
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-02-10, 16:29


amited







Wiek: 26
Na forum: 3855 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

Kuksss, Jak to ma dzia?a? jak skopiowa?e? wszystko co wklei?em z poprzedniego postu? To missionVale i reszte wywal to s? locale oraz tam dalej jest funkcja kt?ra ko?czy prac? oraz niszczy markery i blipy.

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-02-11, 10:55


Kuksss

guwno






Wiek: 22
Na forum: 3922 dni
Posty: 102
Nick w MP: guwnp

Piwa: 732

Respekt: 70,5

Ostrzeżeń: 100%
amited, Chodzi mi o to, ?eby by?y tylko 3 punkty, p??niej trzeba by by?o odjecha? do pocz?tku i dopiero wtedy odebra? wynagrodzenie.

Podpis
c***
Postaw piwo autorowi tego posta
 

 
Tagi: praca :: dorywcza
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 dorywcza 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