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

Wysłany: 2015-06-05, 14:30


P.Wiśnia

Programista LUA






Wiek: 25
Na forum: 4186 dni
Posty: 568
Nick w MP: P.Wiśnia

Piwa: 378

Respekt: 100
Respekt: 100

Jak Napisa??

Plik Client


local districtsBus = {

    {-114.79,1152.61,19.59},
    {-113.12,1164.50,19.59},
    {-113.60,1199.11,19.59},
    {-127.06,1201.98,19.58},
    {-196.87,1199.95,19.59},
    {-197.96,1098.40,19.59},
    {-198.57,1004.90,19.57},
    {-296.61,813.30,14.57},
    {-126.70,818.83,20.83},
    {-126.26,757.93,20.73},
    {-290.20,687.47,18.60},
    {-228.52,623.31,10.01},
    {-144.33,629.61,2.10},
    {-128.91,535.68,7.17},
    {-94.20,540.26,6.87},
    {18.04,619.35,8.39},
    {157.71,694.35,6.12},
    {259.92,725.92,7.96},
    {342.65,699.74,8.53},
    {350.67,706.68,8.64},
    {281.32,853.33,19.40},
    {221.27,990.38,28.25},
    {188.80,1142.70,14.67},
    {161.58,1158.86,14.58},
    {119.18,1201.64,18.23},
    {-44.09,1201.39,19.21},
    {-116.03,1201.02,19.59},
    {-119.11,1155.33,19.59},
    {-141.06,1151.08,19.59},
    {-143.07,1128.69,19.75},
}

local jobTarget
local jobMarker
local jobVehicle
local maxTarget = #districtsBus

function finishJob()
    if jobMarker and isElement(jobMarker) then
        destroyElement(jobMarker)
        jobMarker = nil
    end
    
    if jobTarget and isElement(jobTarget) then
        destroyElement(jobTarget)
        jobTarget = nil
        jobTarget = 0
        
    end
    
triggerServerEvent("destroyVeh", localPlayer)

end


function busDriver(el, md)
    if el ~= localPlayer or not md then return end
    if jobTarget > maxTarget and getPedOccupiedVehicle(el) then return end
    if jobTarget == maxTarget and not getPedOccupiedVehicle(el) then return end
    
    if jobTarget == #districtsBus then
        finishJob()
        playSoundFrontEnd(5)
        outputChatBox("* Zako?czy?e?/a? prac?.")
    else
        showMarker()
        playSoundFrontEnd(12)
        triggerServerEvent("givePlayerMoney", localPlayer, 10, 0)
    end
end

function showMarker()
    if jobMarker and isElement(jobMarker) then
        destroyElement(jobMarker)
        jobMarker = nil
    end
    
    jobTarget = jobTarget + 1
    jobMarker = createMarker(districtsBus[jobTarget][1], districtsBus[jobTarget][2], districtsBus[jobTarget][3], "checkpoint", 4, 0, 0, 255)
    
    if districtsBus[jobTarget+1] then
        ile = districtsBus[jobTarget+1]
        setMarkerTarget(jobMarker, ile[1], ile[2], ile[3])
    end
    
    addEventHandler("onClientMarkerHit", jobMarker, busDriver)
end

addEvent("STARTJobBus", true)
addEventHandler("STARTJobBus", resourceRoot, function(veh)
    outputChatBox("* Rozpocz??e?/a? prac?.")
    jobVehicle = veh
    jobTarget = 0
    showMarker()
end)

addEventHandler("onClientResourceStop", resourceRoot, function()
    if jobVehicle and getElementData(localPlayer, "gracz_praca") then
        setElementData(localPlayer, "gracz_praca", false)
    end
end)

addEventHandler("onClientVehicleExit", resourceRoot, function(plr, seat)
    if seat == 0 then
        if plr == localPlayer then
            finishJob()
            outputChatBox("* Zako?czy?e? prac?")
        end
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 14:36


Loop

Inspektor






Wiek: 28
Na forum: 4431 dni
Posty: 311
Nick w MP: Inspektor

Piwa: 201

Respekt: 130
Respekt: 130


local positionVehicles = {
    {2467.77051, 1762.88574, 10.79088},
    {2467.77051-5, 1762.88574, 10.79088},
    {2467.77051-10, 1762.88574, 10.79088},
    {2467.77051-15, 1762.88574, 10.79088},
}

for i,v in ipairs(positionVehicles) do
    local pojazd = createVehicle(437, v[1], v[2], v[3], 1.3, 0.1, 358.8)
    setElementFrozen(pojazd, true)
end

addEventHandler("onVehicleEnter", resourceRoot, function(plr, seat)
    if seat == 0 then
        setElementFrozen(source, false)
        setElementData(plr, "gracz_praca", true)
        outputChatBox("* Rozpocz??e?/a? prac?.", plr)
        triggerClientEvent(plr, "STARTJobBus", resourceRoot)
    end
end)

function respawnVehicles()
    for i,v in ipairs(getElementsByType("vehicle", resourceRoot)) do
        if not getVehicleOccupant(v) then
            respawnVehicle(v)
            setElementFrozen(v, true)
        end
    end
end
setTimer(respawnVehicles, 60000, 0)
addEvent("destroyVeh", true)
addEventHandler("destroyVeh", respawnVehicles)


To jest plik serwer

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 14:40


P.Wiśnia

Programista LUA






Wiek: 25
Na forum: 4186 dni
Posty: 568
Nick w MP: P.Wiśnia

Piwa: 378

Respekt: 100
Respekt: 100

Nie Dzi?a

[ Dodano: 2015-06-05, 14:42 ]
Client

local praca = createMarker (-1759.2,961.0,24.6, "cylinder", 1.0, 255, 0, 0)

local districtsBus = {

    {45.83,1201.23,18.81},
    {-66.73,1201.60,19.59},
    {-68.33,1148.97,19.59},
    {24.26,1144.16,19.59},
    {26.12,1102.61,19.59},
    {-65.06,1101.15,19.59},
    {-185.69,1100.93,19.60},
    {-188.17,1193.49,19.55},
    {-115.97,1196.37,19.59},
    {-117.24,1251.94,17.41},
    {-73.71,1256.68,12.09},
    {64.41,1220.31,18.83}
   
}

local jobTarget
local jobMarker
local jobVehicle
local maxTarget = #districtsBus

function finishJob()
    if jobMarker and isElement(jobMarker) then
        destroyElement(jobMarker)
        jobMarker = nil
    end
    
    if jobTarget and isElement(jobTarget) then
        destroyElement(jobTarget)
        jobTarget = nil
        jobTarget = 0
        
    end
    
triggerServerEvent("destroyVeh", localPlayer)

end


function busDriver(el, md)
    if el ~= localPlayer or not md then return end
    if jobTarget > maxTarget and getPedOccupiedVehicle(el) then return end
    if jobTarget == maxTarget and not getPedOccupiedVehicle(el) then return end
    
    if jobTarget == #districtsBus then
        finishJob()
        playSoundFrontEnd(5)
        outputChatBox("* Zako?czy?e?/a? prac?.")
    else
        showMarker()
        playSoundFrontEnd(12)
        triggerServerEvent("givePlayerMoney", localPlayer, 5, 0)
    end
end

function showMarker()
    if jobMarker and isElement(jobMarker) then
        destroyElement(jobMarker)
        jobMarker = nil
    end
    
    jobTarget = jobTarget + 1
    jobMarker = createMarker(districtsBus[jobTarget][1], districtsBus[jobTarget][2], districtsBus[jobTarget][3], "checkpoint", 4, 0, 0, 255)
    
    if districtsBus[jobTarget+1] then
        ile = districtsBus[jobTarget+1]
        setMarkerTarget(jobMarker, ile[1], ile[2], ile[3])
    end
    
    addEventHandler("onClientMarkerHit", jobMarker, busDriver)
end

addEvent("STARTJobBus", true)
addEventHandler("STARTJobBus", resourceRoot, function(veh)
    outputChatBox("* Rozpocz??e?/a? prac?.")
    jobVehicle = veh
    jobTarget = 0
    showMarker()
end)

addEventHandler("onClientResourceStop", resourceRoot, function()
    if jobVehicle and getElementData(localPlayer, "gracz_praca") then
        setElementData(localPlayer, "gracz_praca", false)
    end
end)

addEventHandler("onClientVehicleExit", resourceRoot, function(plr, seat)
    if seat == 0 then
        if plr == localPlayer then
            finishJob()
            outputChatBox("* Zako?czy?e? prac?")
        end
    end
end)

serwer

local positionVehicles = {
    {2467.77051, 1762.88574, 10.79088},
    {2467.77051-5, 1762.88574, 10.79088},
    {2467.77051-10, 1762.88574, 10.79088},
    {2467.77051-15, 1762.88574, 10.79088},
}

for i,v in ipairs(positionVehicles) do
    local pojazd = createVehicle(437, v[1], v[2], v[3], 1.3, 0.1, 358.8)
    setElementFrozen(pojazd, true)
end

addEventHandler("onVehicleEnter", resourceRoot, function(plr, seat)
    if seat == 0 then
        setElementFrozen(source, false)
        setElementData(plr, "gracz_praca", true)
        outputChatBox("* Rozpocz??e?/a? prac?.", plr)
        triggerClientEvent(plr, "STARTJobBus", resourceRoot)
    end
end)

function respawnVehicles()
    for i,v in ipairs(getElementsByType("vehicle", resourceRoot)) do
        if not getVehicleOccupant(v) then
            respawnVehicle(v)
            setElementFrozen(v, true)
        end
    end
end
setTimer(respawnVehicles, 60000, 0)
addEvent("destroyVeh", true)
addEventHandler("destroyVeh", respawnVehicles) 


[ Dodano: 2015-06-05, 15:08 ]
Nie Dzi?a[color=red][/color]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 16:53


Fanciak

BOT






Wiek: 26
Na forum: 4588 dni
Posty: 728
Nick w MP: Fanciak

Piwa: 1572

Respekt: 500
Respekt: 500

Zobacz czy masz dobrze w meta.xml, najlepiej podaj ca?? zawarto?? jej.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 16:57


piotr172







Wiek: 27
Na forum: 4558 dni
Posty: 130

Piwa: 2329

Respekt: 105,3
Respekt: 105,3

Ty chcesz ?eby praca rozpoczyna?a si? po wej?ciu do pojazdu czy po wej?ciu do markera? No bo u mnie dzia?a.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 17:38


P.Wiśnia

Programista LUA






Wiek: 25
Na forum: 4186 dni
Posty: 568
Nick w MP: P.Wiśnia

Piwa: 378

Respekt: 100
Respekt: 100

Po Wejsciu W Marker

[ Dodano: 2015-06-05, 17:39 ]
A Meta Jest Dobrze

A Ja Chem Zeby Dawalo Pojazd Po Wejsciu W Maker

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-05, 21:04


Fanciak

BOT






Wiek: 26
Na forum: 4588 dni
Posty: 728
Nick w MP: Fanciak

Piwa: 1572

Respekt: 500
Respekt: 500

W evencie onClientMarkerHit dodaj funkcj? tworzenia pojazdu i tepania peda do pojazdu.



Więcej informacji znajdziesz w Wikipedii MTA:

createVehicle



Więcej informacji znajdziesz w Wikipedii MTA:

warpPedIntoVehicle


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-06, 09:07


Loop

Inspektor






Wiek: 28
Na forum: 4431 dni
Posty: 311
Nick w MP: Inspektor

Piwa: 201

Respekt: 130
Respekt: 130

"Fanciak" napisał/a:

W evencie onClientMarkerHit dodaj funkcj? tworzenia pojazdu i tepania peda do pojazdu.


Od kiedy tworzy si? pojazdy po stronie clienta?

U?yj eventu onMarkerHit

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-06, 23:00


P.Wiśnia

Programista LUA






Wiek: 25
Na forum: 4186 dni
Posty: 568
Nick w MP: P.Wiśnia

Piwa: 378

Respekt: 100
Respekt: 100


    end
end

function showMarker())
    local busPed = createPed ( 252, 0, 0, 3 )
    local busVehicle = createVehicle ( 411, 4, 0, 3 )
    warpPedIntoVehicle ( busPed, busVehicle )      
    
    addEventHandler("onClientMarkerHit", jobMarker, busDriver)
end

Takie Co?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-07, 12:53


Loop

Inspektor






Wiek: 28
Na forum: 4431 dni
Posty: 311
Nick w MP: Inspektor

Piwa: 201

Respekt: 130
Respekt: 130

Aidis Takich rzeczy jak autobusy, samochody nigdy nie tworzymy po stronie client. Dlaczego? Dlatego ?e rzeczy po stronie klienta widzi tylko 1 osoba a serwera to ka?dy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-06-07, 15:13


P.Wiśnia

Programista LUA






Wiek: 25
Na forum: 4186 dni
Posty: 568
Nick w MP: P.Wiśnia

Piwa: 378

Respekt: 100
Respekt: 100

Wez Mnie Pls Popraw

Postaw piwo autorowi tego posta
 

 
Tagi: jak :: napisać :: server.lua
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA 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