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

Wysłany: 2021-01-26, 21:18


xyzzz^

A nic






Wiek: 18
Na forum: 1993 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 308

Respekt: 81

Ostrzeżeń: 100%
Zrobi?em system leveli tak:


addEventHandler('onPlayerLogin',root,function(_,acc)
    local EXP getAccountData(acc,'EXP') or 0
    setElementData(source,'EXP',tonumber(EXP))
    local LEVEL getAccountData(acc,'LEVEL') or 1
    setElementData(source,'LEVEL',tonumber(LEVEL))
end)

addEventHandler('onPlayerQuit',root,function()
    local acc getPlayerAccount(source)
    if not acc then return end
    setAccountData(acc,'EXP',tonumber((getElementData(source,'EXP') or 0)))
    setAccountData(acc,'LEVEL',tonumber((getElementData(source,'LEVEL') or 1)))
end)


addCommandHandler('level',function(plr)
    local exp getElementData(plr,'EXP') or 0
    local level getElementData(plr,'LEVEL') or 1
    outputChatBox("Masz : "..exp.." EXP oraz "..level.." Level"plr)
end)

addCommandHandler('ustaw.EXP',function(player,cmd,target,ilosc)
    local acc getPlayerAccount(player)
    if not acc then return end
    if isObjectInACLGroup ("user."..getAccountName(acc), aclGetGroup "Admin" ) ) then
        local target getPlayerFromName(target)
        if not target then
            outputChatBox("#dddddd*#FF0000 Nie wybrano celu!",player,255,0,0,true)
            return
        end
        if not tonumber(iloscthen
            outputChatBox("#dddddd*#FF0000 Nie podano ilosci EXP!",player,255,0,0,true)
            return
        end
        setElementData(target,'EXP',tonumber(ilosc))
        outputChatBox('Ustawiono '..ilosc..' #dddddd EXP graczu o nicku #FF0000'..getPlayerName(target):gsub("#%x%x%x%x%x%x",""),player,255,255,0,true)
    end
end)

addEvent("levelUP"true)
addEventHandler("levelUP"root, function(player)
    if getElementData(player"EXP") > 100 then 
        setElementData(player"EXP", (getElementData(player"EXP") or ) - 100)
        setElementData(player"LEVEL", (getElementData(player"LEVEL") or ) + 1)
        outputChatBox(" NEW LEVEL "player)
    end 
end)

function up (hitElement)
    triggerEvent("levelUP"roothitElement)
 end
 
 setTimer(up1000)


EXP i level sie zapisuj?, lecz podczas zapisu jest taki b??d


https://cdn.discordapp.com/attachments/534003980242518026/803719218931564565/unknown.png
linijka 42 to
if getElementData(player, "EXP") > 100 then

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-26, 21:31


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wykonuj?c funkcj? up musisz poda? zmienn? gracza (hitElement), w timerze nic takiego nie robisz.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-26, 21:40


xyzzz^

A nic






Wiek: 18
Na forum: 1993 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 308

Respekt: 81

Ostrzeżeń: 100%
"Wilq" napisał/a:

Wykonuj?c funkcj? up musisz poda? zmienn? gracza (hitElement), w timerze nic takiego nie robisz.

ale b??d nie pokazuje timera, tylko linijke 42, kt?r? poda?em wy?ej
robi?c tak:

 setTimer(function(hitElement)
    triggerEvent("levelUP"roothitElement)
 end1000)

dalej jest b??d linijki 42

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-26, 23:28


VVirmex

Sgrypter luja






Wiek: 21
Na forum: 3365 dni
Posty: 281
Nick w MP: AxyZ

Piwa: 234

Respekt: 110
Respekt: 110

Pr?bujesz por?wna? elementdat? z liczb? - jest 1 opcja kt?ra zawsze dla mnie dzia?a?a.

Spr?bowa? taki zapis:

if tonumber(getElementData(player"EXP")) > 100 then

ALBO

if getElementData(player"EXP") >= 100 then

ALBO

if tonumber(getElementData(player"EXP")) >= 100 then


Albo elementdata nie zosta?a nadana na gracza/?r?d?o pobierania elementdaty jest niepoprawne

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 09:10


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

No i gdzie definiujesz 'hitElement'? No bo dalej to jest false - pobierasz element date z elementu pod zmienn? 'hitElement' pod kt?r? nic nie masz bo w triggerze nic nie wprowadzi?e?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 10:44


xyzzz^

A nic






Wiek: 18
Na forum: 1993 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 308

Respekt: 81

Ostrzeżeń: 100%
"Wilq" napisał/a:

No i gdzie definiujesz 'hitElement'? No bo dalej to jest false - pobierasz element date z elementu pod zmienn? 'hitElement' pod kt?r? nic nie masz bo w triggerze nic nie wprowadzi?e?.


to jak mam j? zdefiniowa?? Event sam widzisz co ma robi?, do eventu zrobilem tak samo w innym skrypcie i dzia?a

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 10:53


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Masz 2 wyj?cia:
p?tla na grzaczach

Więcej informacji znajdziesz w Wikipedii MTA:

getElementsByType

albo

Więcej informacji znajdziesz w Wikipedii MTA:

getPlayerFromName


Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 11:58


xyzzz^

A nic






Wiek: 18
Na forum: 1993 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 308

Respekt: 81

Ostrzeżeń: 100%
local player getElementsByType("player")

function up (hitElement)
for i,hitElement in ipairs(player) do
    triggerEvent("levelUP"roothitElement)
 end
 
 setTimer(up1000)

tak?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 12:11


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wtedy w samej funkcji up nie potrzebujesz hitElement

Zmienn? 'player' przenie? do funkcji up ?eby pobiera? bie??c? list? graczy

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 12:19


xyzzz^

A nic






Wiek: 18
Na forum: 1993 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 308

Respekt: 81

Ostrzeżeń: 100%
Mam to zrobi? tak: jak rozumiem


function up ()
local player getElementsByType("player")
for i,user in ipairs(player) do
    triggerEvent("levelUP"rootuser)
 end
 
 setTimer(up1000)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 13:13


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Moze by?, tylko nie radz? robi? takiego kodu co 100ms w niesko?czono??. R?b to co np. d?u?sz? chwil?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-27, 14:52


_jvneczek







Wiek: 22
Na forum: 4326 dni
Posty: 1513
Nick w MP: _jvneczek

Piwa: 3949

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5

Nie lepiej zrobi? przy nadawaniu, ?eby po prostu sprawdza?o? Du?o lepsz? opcj? by?o by stworzenie funkcji w kt?rej po prostu nadajesz graczowi danemu expa, do tego warunek sprawdzaj?cy kt?ry je?li wykryje powy?ej 100, to po prostu dodaje lvl etc? B?dzie to du?o lepsze ni? nie potrzebny timer z p?tl? na graczy, wtedy po prostu w tym gdzie chcesz u?y? ten exp, robisz export z nadawaniem graczowi expa i tyle.

Postaw piwo autorowi tego posta
 

 
Tagi: getelementdata
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