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

Wysłany: 2019-10-31, 20:31


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Cze??, dawno mnie tu nie by?o.

Przychodz? dzi? do was z pro?b? o pomoc w sprawie dodania do panelu logowania mo?liwo?ci dla odpowiednich frakcji respienia si? w "ich osobnych spawnach".

Chcia?bym zrobi? tak aby przyk?adowo frakcja SMSA, je?li kliknie w opcje w panelu logowania, "Spawn SMSA" to t? osob? zrespi w ustalone kordy(czyli w tym przypadku baze SMSA), ale ?eby domy?lny gracz nie m?g? tego sobie klikn?? i go tam zrespi, tylko ?eby osoba z danej frakcji mog?a wej?? z t? opcje tylko je?li jest w danej frakcji. A gracz ?eby mia? dost?p tylko do standardowych spawn?w (co ju? jest) czyli Spawn, Przecho itp.

Oto kod z teleport?w jaki aktualnie mam:

--[[
    ResourceOURGme v2
    DevelopersSplit <split.programista@gmail.com>
    You have no right to use this code without my permission.
    (c2015 <split.programista@gmail.com>. All rights reserved.
]]

local screenWscreenH guiGetScreenSize()
local sx,sy=guiGetScreenSize()
local data={ showed=nilbutton={}, info=nilmisc=nil, }

function isMouseIn(psx,psy,pssx,pssy,abx,aby)
    if not isCursorShowing() then return end
    cx,cy=getCursorPosition()
    cx,cy=cx*sx,cy*sy
    if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
        return true,cx,cy
    else
        return false
    end
end

function renderZoneBox()
    if data.info then dxDrawText(data.info, (screenW 0.4414) + 1, (screenH 0.5028) - 1, (screenW 0.6477) + 1, (screenH 0.5278) - 1tocolor(255255255255), 1.00"default-bold""center""center"falsefalsetruefalsefalseend
    dxDrawImage((screenW 0.0000) + 1, (screenH * -0.0000) - 1, (screenW 1.0220) + 1, (screenH 1.0050) - 1"spawn.png"000tocolor(255255255255), false)
end


addEventHandler("onClientClick"root, function(btn,state)
    if btn=="left" and state=="down" then
        if isMouseIn(screenW 0.4367screenH 0.3319screenW 0.1555screenH 0.0597) and data.showed then -- spawn ls
         setElementData(localPlayer,"player:spawn",{-2671.22, -5.666.13})
         closeZones()
        end
        if isMouseIn(screenW 0.4367screenH 0.4306screenW 0.1563screenH 0.0569) and data.showed then -- spawn sf
        local domek=getElementData(localPlayer,"player:house")
        if not domek then
        setElementData(localPlayer,"player:spawn",{-2671.22, -5.666.13})
        outputChatBox("*Nie posiadasz domku")
        end
        closeZones()
        end
        if isMouseIn(screenW 0.4375screenH 0.5319screenW 0.1563screenH 0.0569) and data.showed then -- spawn dom
         setElementData(localPlayer,"player:spawn",{-1915.84883.3935.41})
         outputChatBox("* Pomy?lnie znajdujesz si? na spawnie San Fierro 2")
         closeZones()
        end
    end
end)

function closeZones()
    showChat(true)
    showCursor(false)
    fadeCamera(false)
    setElementAlpha(localPlayer,255)
    stopSound(data.misc)
    data.showed=false
    setPlayerHudComponentVisible("radar",true)
    -- Usuwamy elementy
    triggerServerEvent("core:spawnPlayer"localPlayer)
    removeEventHandler("onClientRender"rootrenderZoneBox)
end

function showZones(misc)
    data.misc=misc
    data.showed=true
    setPlayerHudComponentVisible("all",false)
    guiSetInputMode("no_binds_when_editing")
    addEventHandler("onClientRender"rootrenderZoneBoxend


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 20:41


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

No to dodajesz kolejny warunek sprawdzaj?cy miejsce klikni?cia odpowiadaj?cego danej frakcji.
Potem w tym warunku sprawdzasz, czy ten gracz jest w frakcji np. za pomoc? elementDaty. Je?li nie okre?lasz frakcji gracza zaraz po zalogowaniu to wypada?oby doda? tak? czynno??, ?eby w?a?nie m?c sobie p??niej na tej elementDacie operowa? w panelu logowania.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 21:10


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Doda?em linijke z element dat? lecz nie jestem dodany w sapd i mog? to klikn?? i dzia?a, ale te? nie do?? ?e mnie respi nie b?d?c w sapd to po klikni?ciu ?aduje mnie i mam czarny ekran zamiast zrespi?, pewnie co? ?le z linijk? da?em.

Normalny kod na respienie w logowaniu po klikni?ciu:

        if isMouseIn(screenW 0.4375screenH 0.5319screenW 0.1563screenH 0.0569) and data.showed then -- spawn dom
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na spawnie Los Santos* ")
         closeZones()
        end


Dodany kod z linijk? do SAPD(B??dna raczej) :

        if isMouseIn(screenW 0.4367screenH 0.9506screenW 0.1563screenH 0.0569) and data.showed then -- spawn sapd
                if getElementData(localplayer,"player:duty") == "SAPD" then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
        end
        closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 21:15


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Ustawiasz elementDat? 'player:duty' a dla spawn?w ustawiasz 'player:spawn'. Wystarczy tylko przeanalizowa? sw?j kod w ca?o?ci. Nie ma te? sprawdzania czy gracz nale?y do tej frakcji.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 21:25


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Rozumiem o co ci chodzi.
Da?em taki kod, ale dalej moge si? respi? tam mimo tego ?e nie jestem dodany do SAPD, i nadal gdy si? respie to mam czarny ekran zamiast respienia w tym miejscu

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and data.showed then -- spawn sapd
         setElementData(localPlayer,"player:duty",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 21:31


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Czarny ekran to ju? inna sprawa. Mo?e jakie? b??dy?
Mo?esz klikn?? bo dalej nie sprawdzasz elementDaty od frakcji.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 21:46


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Da?em taki kod ale teraz jak klikam w to miejsce gdzie po kliknieciu ma mnie respic, to nic sie nie dzieje, przed tym jak nie bylem w sapd i po tym jak sie dodalem, nadal nic

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and getElementData(source,'player:duty')=='SAPD' and data.showed then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 22:09


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Bo graczem tutaj nie jest source tylko lokalny gracz (getLocalPlayer()).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-31, 22:16


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Poprawi?em wed?ug tego co napisa?e? na to i nie da si? og?lnie tego teraz klikn?? nie wa?ne czy jestem w sapd czy nie ;/

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and getElementData(getLocalPlayer,'player:duty')=='SAPD' and data.showed then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


[ Dodano: 2019-10-31, 22:47 ]
Zmieni?em kod i lnijki takie jakie napisa?e? (chyba ) na taki: i teraz da si? kliknac zaloguj itp, ale nie da si? klikn?? Spawn baza SAPD

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and getElementData(plr,'player:duty') == 'SAPD' and data.showed then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 00:09


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Bo zmienna "plr" pewnie nie jest zdefiniowana.
'getLocalPlayer' to funkcja, kt?ra zwraca Ci lokalnego gracza (to samo co localPlayer).

getElementData(getLocalPlayer(), 'player:duty')


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 00:50


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Doda?em do kodu t? linijke kt?r? mi da?e? i to wygl?da?o tak:

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569)          getElementData(getLocalPlayer(), 'player:duty') and and data.showed then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end

I nic si? nie zmieni?o, nie dzia?a?o wog?le klikni?cie nadal tego przycisku, po czym zmieni?em po?o?enie twojej linijki i da?o si? klikn?? normalnie ju? przycisk, ale jako sapd i te? bez sapd mo?na teraz, kod aktualny:

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and data.showed then
         getElementData(getLocalPlayer(), 'player:duty')
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 01:07


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Bo doda?e? to totalnie bezmy?lnie. Masz to zamieni? z tym co mia?e?. To Ci zwraca elementDat?, wi?c musisz to por?wna?.

Dla przypomnienia:
 if x_jeden and y_dwa then

U ciebie nie ma and albo jest jako? dziwnie wstawione.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 06:33


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Faktycznie, zmieni?em na prawid?ow? lokalizacje i doda?em and ale za? nie da si? teraz klikn?? przycisku po stronie sapd jak i bez niej.

        if isMouseIn(screenW 0.4375screenH 0.9319screenW 0.1563screenH 0.0569) and getElementData(getLocalPlayer(), 'player:duty')=='SAPD' and data.showed then
         setElementData(localPlayer,"player:spawn",{1096.99, -1619.1613.66})
         outputChatBox("* Pomy?lnie wczyta?e? si? na bazie SAPD* ")
         closeZones()
        end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 13:01


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Klikasz i nic si? nie dzieje? Jakie? b??dy mo?e?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-01, 16:48


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Tak, nic si? kompletnie nie dzieje, ?adnych b??d?w w db3 r?wnie?.

Postaw piwo autorowi tego posta
 

 
Tagi: spawny :: działające :: tylko :: dla :: odpowiedniej :: frakcji
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

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