Wysłany: 2021-01-26, 21:18
xyzzz^
A nic
Wiek: 18 Na forum: 1993 dni Posty: 319
Nick w MP: Aspyk21
Piwa : 308
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 ( ilosc ) then
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 0 ) - 100 )
setElementData ( player , "LEVEL" , ( getElementData ( player , "LEVEL" ) or 1 ) + 1 )
outputChatBox ( " NEW LEVEL " , player )
end
end )
function up ( hitElement )
triggerEvent ( "levelUP" , root , hitElement )
end
setTimer ( up , 100 , 0 )
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
Wysłany: 2021-01-26, 21:31
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Wykonuj?c funkcj? up musisz poda? zmienn? gracza (hitElement), w timerze nic takiego nie robisz.
Wysłany: 2021-01-26, 21:40
xyzzz^
A nic
Wiek: 18 Na forum: 1993 dni Posty: 319
Nick w MP: Aspyk21
Piwa : 308
"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" , root , hitElement )
end , 100 , 0 )
dalej jest b??d linijki 42
Wysłany: 2021-01-26, 23:28
VVirmex
Sgrypter luja
Wiek: 21 Na forum: 3365 dni Posty: 281
Nick w MP: AxyZ
Piwa : 234
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
Wysłany: 2021-01-27, 09:10
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
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?.
Wysłany: 2021-01-27, 10:44
xyzzz^
A nic
Wiek: 18 Na forum: 1993 dni Posty: 319
Nick w MP: Aspyk21
Piwa : 308
"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
Wysłany: 2021-01-27, 10:53
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Masz 2 wyj?cia:
p?tla na grzaczach
albo
Wysłany: 2021-01-27, 11:58
xyzzz^
A nic
Wiek: 18 Na forum: 1993 dni Posty: 319
Nick w MP: Aspyk21
Piwa : 308
local player = getElementsByType ( "player" )
function up ( hitElement )
for i , hitElement in ipairs ( player ) do
triggerEvent ( "levelUP" , root , hitElement )
end
setTimer ( up , 100 , 0 )
tak?
Wysłany: 2021-01-27, 12:11
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Wtedy w samej funkcji up nie potrzebujesz hitElement
Zmienn? 'player' przenie? do funkcji up ?eby pobiera? bie??c? list? graczy
Wysłany: 2021-01-27, 12:19
xyzzz^
A nic
Wiek: 18 Na forum: 1993 dni Posty: 319
Nick w MP: Aspyk21
Piwa : 308
Mam to zrobi? tak: jak rozumiem
function up ()
local player = getElementsByType ( "player" )
for i , user in ipairs ( player ) do
triggerEvent ( "levelUP" , root , user )
end
setTimer ( up , 100 , 0 )
Wysłany: 2021-01-27, 13:13
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Moze by?, tylko nie radz? robi? takiego kodu co 100ms w niesko?czono??. R?b to co np. d?u?sz? chwil?.
Wysłany: 2021-01-27, 14:52
_jvneczek
Wiek: 22 Na forum: 4325 dni Posty: 1513
Nick w MP: _jvneczek
Piwa : 3949
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.
Tagi: getelementdata
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: