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

Wysłany: 2020-02-13, 19:53


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Siemka, mam problem z funkcj? setPlayerWantedLevel.
Chce aby gracz, kt?ry ma ponad 50000$ mia? jedn? gwiazdk? i im wi?cej hajsu tym wi?cej gwiazdek, co wida? w kodzie. Lecz tak jak mam to mi nie dzia?a. Wie kto? w czym le?y problem? Kod jest po stronie serwera.

kod:

function gwiazdki(plr)
local pieniadze getElementData(plr"player:money")
if (pieniadze 50000then
setPlayerWantedLevel(plr1)
elseif (pieniadze 100000then
setPlayerWantedLevel(plr2)
elseif (pieniadze 150000then
setPlayerWantedLevel(plr3)
elseif (pieniadze 200000then
setPlayerWantedLevel(plr4)
elseif (pieniadze 250000then
setPlayerWantedLevel(plr5)
elseif (pieniadze 300000then
setPlayerWantedLevel(plr6)
end
end
addEventHandler("onResourceStart"rootgwiazdki)


db3:

WARNINGtest/test_s.lua:2Bad argument 'getElementData' [Expected element at argument 1got resource-data]


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-13, 20:08


Nexisten

Moderator






Wiek: 22
Na forum: 4107 dni
Posty: 551
Nick w MP: Nexisten

Piwa: 1479

Respekt: 287,3
Respekt: 287,3Respekt: 287,3Respekt: 287,3


Więcej informacji znajdziesz w Wikipedii MTA:

onResourceStart

Poczytaj troch?, mo?e sam wpadniesz na Tw?j b??d w kodzie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-13, 21:13


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Nie wiem w czym mo?e by? problem. Nawet jak da?em tak:
addEventHandler ( "onResourceStart",getResourceRootElement(getThisResource()), gwiazdki )

To i tak nie dzia?a, bez tego eventu r?wnie? nic.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-13, 21:18


Szypki_exe







Wiek: 21
Na forum: 3239 dni
Posty: 172

Piwa: 1426

Respekt: 150
Respekt: 150Respekt: 150

"ReMiK1337" napisał/a:

Nie wiem w czym mo?e by? problem. Nawet jak da?em tak:
addEventHandler ( "onResourceStart",getResourceRootElement(getThisResource()), gwiazdki )

To i tak nie dzia?a, bez tego eventu r?wnie? nic.


We? pod uwag? to ?e date "player:money" pobierasz ze skryptu w kt?rym jest ten event, a nie gracza

inaczej:
zmienna "plr" to nie gracz, tylko skrypt w kt?rym jest ten event

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-14, 00:02


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Czyli jakbym da? thePlayer to by?oby dobrze?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-14, 00:21


Gorn5







Wiek: 25
Na forum: 4275 dni
Posty: 22
Nick w MP: Rayzer

Piwa: 6

Respekt: 100
Respekt: 100

thePlayer w tym przypadku to tylko nadanie innej nazwy niezdefiniowanemu argumentowi funkcji, kt?rego tak naprawd? nigdzie nie wywo?ujesz, bo event onResourceStart, opr?cz uruchamianego zasobu, nie przyjmuje ?adnych innych parametr?w, kt?re m?g?by? "na czysto" wykorzysta? w kodzie. Musisz wi?c najpierw okre?li? gracza. Polecam skorzysta? z tego:

Więcej informacji znajdziesz w Wikipedii MTA:

onElementDataChange

W razie gdyby? mia? problemy, zamieszczam nieprzetestowany kod:


function setWantedLevel(dataNameoldValuenewValue)
    if getElementType(source) == "player" and client == source then
        if (dataName == "player:money"then
            if (newValue ~= oldValue and newValue 50000then
                setPlayerWantedLevel(source1)
            elseif (newValue ~= oldValue and newValue 100000then
                setPlayerWantedLevel(source2)
            elseif (newValue ~= oldValue and newValue 200000then
                setPlayerWantedLevel(source3)
            end
        end
    end
end
addEventHandler("onElementDataChange"getRootElement(), setWantedLevel)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Yami
Wysłany: 2020-02-14, 06:31


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Powy?szy kod ma ma?y b??d: sprawdzasz w nim stan 'client', co jest predefiniowane tylko po stronie klienta (event po serwerze).


Je?li jednak dalej wola?by? u?y? eventu onResourceStart, to musisz wykona? p?tl? na wszystkich graczach.

Więcej informacji znajdziesz w Wikipedii MTA:

getElementsByType


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-14, 14:15


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Gorn5, kod niestety nie zbyt dzia?a.

Wilq, nie do ko?ca wiem jak to wykona?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-14, 14:35


Gorn5







Wiek: 25
Na forum: 4275 dni
Posty: 22
Nick w MP: Rayzer

Piwa: 6

Respekt: 100
Respekt: 100

"Wilq" napisał/a:

Powy?szy kod ma ma?y b??d: sprawdzasz w nim stan 'client', co jest predefiniowane tylko po stronie klienta (event po serwerze).

Cytat:

client: The client global variable is set to the client that called setElementData, or nil if it was called on the server.

Jest to zale?ne od strony, na kt?rej nadana zosta?a element data. Je?li mia?oby to miejsce po stronie clienta, warunek mia?by jak najbardziej sens. Jednak skoro kod jest po stronie serwera, powinienem przyj??, ?e autor ma zamiar nada? element dat? r?wnie? po tej samej stronie, wi?c fakt, warunek zb?dny. ;)


function setWantedLevel(dataNameoldValuenewValue)
    if getElementType(source) == "player" then
        if (dataName == "player:money"then
            if (newValue 50000then
                setPlayerWantedLevel(source1)
            elseif (newValue 100000then
                setPlayerWantedLevel(source2)
            elseif (newValue 200000then
                setPlayerWantedLevel(source3)
            end
        end
    end
end
addEventHandler("onElementDataChange"getRootElement(), setWantedLevel)


"ReMiK1337" napisał/a:

Gorn5, kod niestety nie zbyt dzia?a.

Poka? kod, w kt?rym nadajesz wymaganemu elementowi element date.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Yami
Wysłany: 2020-02-14, 18:33


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Gorn5, z systemem pieni?dzy nie jest nic ?le bo wszystko dzia?a, przy kupowaniu itd.

Teraz ten kod co da?e? to nie wa?ne ile mam pieni?dzy to mam jedn? gwiazdke

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-14, 19:16


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Dodaj warunek, kiedy masz wi?cej ni? x pieni?dzy i mniej ni? y w nast?pnym progu pieni??nym.

if (>= 50000) and (100000then


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Yami
Wysłany: 2020-02-15, 09:40


Yami

Mapper / Uczeń LUA






Wiek: 25
Na forum: 3059 dni
Posty: 379

Piwa: 97

Respekt: 235
Respekt: 235Respekt: 235

Dzi?ki wszystkim za pomoc, dzia?a :D

Postaw piwo autorowi tego posta
 

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