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

Wysłany: 2013-01-06, 13:13


Adrian1545







Wiek: 30
Na forum: 5646 dni
Posty: 78
Nick w MP: [sXc]Lexon

Piwa: 125

Respekt: 55

Witam, posiadam taki o to skrypt, i problem polega na tym i? je?eli go zrestartuje to wszyscy maj? 0 score. Tak samo je?li zrestartuje serwer. W czym mo?e by? problem ?

Kod:

addEventHandler('onResourceStart',getResourceRootElement(),
function()
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Score")
for theKey,thePlayer in ipairs(getElementsByType ( "player" )) do
setElementData(thePlayer,"Score",0)
end
end)

addEventHandler('onPlayerJoin',getRootElement(),
function()

setElementData(source,"Score",0)
end)

function addScore(points)
setElementData(source, "points", getElementData(source, "points") + points)
end

addEvent("addScore", true)
addEventHandler("addScore", getRootElement(), addScore)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-06, 14:52


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Kod:


addEventHandler('onResourceStart',getResourceRootElement(),
function()
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Score")
for theKey,thePlayer in ipairs(getElementsByType ( "player" )) do
setElementData(thePlayer,"Score",0)
end
end)

W/w kod wykonuje si? za ka?dym razem gdy odpalisz zas?b ew. go zrestartujesz. Musisz w takim wypadku zapisa? do jakiego? zew. ?r?d?a (plik, baza danych etc.) dane, a potem przy uruchomieniu zasobu wczyta? te dane i przypisa? odpowiedniemu graczowi. Skoro jest to tw?j kod to czemu nie wiesz jak dzia?a?

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-06, 15:06


Adrian1545







Wiek: 30
Na forum: 5646 dni
Posty: 78
Nick w MP: [sXc]Lexon

Piwa: 125

Respekt: 55

To nie jest m?j kod, napisa?em ?e posiadam taki o to skrypt. A mo?esz powiedzie? jak to zrobi? ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-06, 16:17


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Ja Ci? mog? tylko nakierowa? (co zreszt? uczyni?em). Reszt? ju? musisz sam zrobi?. Albo poszperaj po tym forum i poszukaj mo?e znajdziesz jaki? poradnik lub zajrzyj na wiki i sugeruj si? przyk?adami. Ew. czekaj na gotowca.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-06, 16:19


Adrian1545







Wiek: 30
Na forum: 5646 dni
Posty: 78
Nick w MP: [sXc]Lexon

Piwa: 125

Respekt: 55

A m?g?by? mi powiedzie? czego mam u?y? aby zosta?o to zapisane w oddzielnym pliku ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-06, 17:46


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Ka?dy zas?b to oddzielny program. Program zapisuje dane do zmiennych ew. tabel czyli lokuje jakie? informacje w pami?ci komputera. Podczas zamykania programu kasowana jest ca?a pami?? (RAM). Nale?y i jest wr?cz wskazane zapisa? wa?ne informacje w pami?ci ROM czyli takiej, kt?ra mo?e by? przechowywana, przetwarzana itp. przez u?ytkownika.

Na ch?opski rozum - je?eli np. masz konta w grze i powiedzmy dany gracz otrzyma? jakie? tam punkty to zapisujesz na dysku (pliku lub baza danych) informacje dot. jego konta, a potem przy ponownym starcie programu wczytujesz te dane.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-08, 19:34


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

setAccountData lub SQL

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-08, 20:36


Adrian1545







Wiek: 30
Na forum: 5646 dni
Posty: 78
Nick w MP: [sXc]Lexon

Piwa: 125

Respekt: 55

a m?g?by? mi to dopisa? ? Zale?y mi na tym, a nie potrafie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-08, 20:53


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

Ja ci ewentualnie mog? podpowiedzie? jak takie co? zrobi?. Bo tutaj nie odwalamy roboty za innych.

1. Na pocz?tek:
Kod:

addEventHandler('onResourceStart',getResourceRootElement(),
function()
call(getResourceFromName("scoreboard"), "addScoreboardColumn", "Score")
for theKey,thePlayer in ipairs(getElementsByType ( "player" )) do
setElementData(thePlayer,"Score",0)
end
end)


Kod:


setElementData(thePlayer,"Score",0) - Ustawia ci zawsze elementdata przy restarcie 0 wi?c tutaj ja bym zrobi? warunek.
(je?li konto gracza(thePlayer) nie jest kontem go?cia to pobiera dane z Account data i ustawia setElementData
U?yjesz:
setElementData
setAccountData
isGuestAccount
getPlayerAccount


2.
Dodajesz zdarzenie onPlayerLogin (gracz = source)
Pobierasz dane z account data (getAccountData)
Podstawiasz do elementData (setElementData)
Mo?esz zrobi? warunek ?e je?li gracz nie posiada accountdata to wtedy tworzysz setAccountData(account,"Punkty",0)


3. Dodajesz zdarzenie onPlayerQuit kt?re b?dzie zapisywa? score gracza przy wyj?ciu r?wnie? gracz = source
[Pomy?l nie dasz rady to doko?cze]

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-13, 23:59


pidbulxd







Wiek: 28
Na forum: 5230 dni
Posty: 135
Nick w MP: Word

Piwa: 540

Respekt: 60

Skrypt na zapisywanie score:
?eby dzia?a? on normalnie, przed zrestartowaniem zasobu gracze musz? wyj?? z serwera. Wtedy do dane zapisz? si? do bazy danej serwera.


function onPlayerLogin ()
        local playeraccount getPlayerAccount source )
        if ( playeraccount then
                if not isGuestAccount playeraccount then
                        local playerpkt getAccountData playeraccount"points" )
                        --local playermoney getAccountData playeraccount"s.HandMoney" )
            --setPlayerMoneygetRootElement(), playermoney )
                        if ( playerpkt then
                                setElementData(source"Score"tonumber(playerpkt))
                                --setElementData(source"Kasa"tonumber(playermoney))
                --setPlayerMoneygetRootElement(), playermoney )

                        end
                end
        end
end

function onPlayerQuit ()
        local playeraccount getPlayerAccount source )
        if ( playeraccount then
                if not isGuestAccount playeraccount then
                        local playerpkt getElementData source"Score" )
                       -- local playermoney getPlayerMoney(source)
            --setAccountData playeraccount"s.HandMoney"playermoney )
                        if ( playerpkt then
                                setAccountData playeraccount"points"playerpkt )
                               -- setAccountData playeraccount"s.HandMoney"playermoney )
                        end
                end
        end
end

addEventHandler "onPlayerLogin"getRootElement (), onPlayerLogin )
addEventHandler "onPlayerQuit"getRootElement (), onPlayerQuit )
addEventHandler ("onResourceRestart"getRootElement (), onPlayerQuit )
addEventHandler ("onResourceStop"getRootElement (), onPlayerQuit )


Pozdrowienia :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-15, 15:45


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

Pitbul jest to ma?o sensowny skrypt. Nie lepiej do eventu OnResourceStop doda? p?tle pobieraj?c? wszystkich graczy i zapisa? dane tak jak w przypadku onPlayerQuit

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-15, 16:35


pidbulxd







Wiek: 28
Na forum: 5230 dni
Posty: 135
Nick w MP: Word

Piwa: 540

Respekt: 60

Oski, ten skrypt jest ?atwiejszy dla nowych w LUA. Ja go osobi?cie u?ywam i dzia?a dobrze.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-01-15, 18:10


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

Tak zgodze sie z tym, lecz niema sensu stosowania:
Kod:


addEventHandler ("onResourceRestart", getRootElement (), onPlayerQuit )
addEventHandler ("onResourceStop", getRootElement (), onPlayerQuit )


Poniewa? to nic nie da.
Wystarczy zrobi? funkcj? pobieraj?c? wszystkich graczy w p?tli.

Postaw piwo autorowi tego posta
 

 
Tagi: score :: restart
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