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

Wysłany: 2020-01-22, 04:55


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Witam, od jakiegos czasu bawie sie troszke w LUA - sa to moje poczatki, dopiero zaczynam ogarniac jak co dziala.
Mam problem z isPedInVehicle
Kod wyglada tak
function spawnInfernus(plr)
    local x,y,getElementPosition(plr)
    if IsPlayerInVehicle(plrthen
        createVehicle(411x+2,y+2,z)
        outputChatBox("Infernus zostal zrespiony",plr,0,255,0)
    else
        outputChatBox("Wyjdz z pojazdu",plr,255,0,0)
    end
end
addCommandHandler("infernus"spawnInfernus)

function spawnTurismo(plr)
    local x,y,getElementPosition(plr)
    if IsPlayerInVehicle(plrthen
        createVehicle(451x+2,y+2,z)
        outputChatBox("Turismo zostalo zrespione",plr,0,255,0)
    else
        outputChatBox("Wyjdz z pojazdu",plr,255,0,0)
    end
end
addCommandHandler("turismo"spawnTurismo)


Bledy przy wpisywaniu komendy /turismo oraz /infernus:

ERROR: tworzeniepojazdow\s.lua:31: attempt to call global 'IsPedInVehicle' (a nil value)
ERROR: tworzeniepojazdow\s.lua:42: attempt to call global 'IsPedInVehicle' (a nil value)


Domyslam sie, ze jest tu jakas prosta sprawa ale nie mam zielonego pojecia co trzeba zrobic. I jakby ktos mial sie doczepic to szukalem w google i posty tutaj na ten temat ale nic nie znalazlem, a przynajmniej nic co by pomoglo.
EDIT:
Blad naprawilem ale wtedy komendy dotycza tylko mnie, jak zrobic aby dotyczylo to gracza ktory wpisuje komende?
function spawnInfernus(plr)
    local x,y,getElementPosition(plr)
    local checkedPlayer getPlayerFromName("Ramzes")
    graczwpojezdzie "Wyjdz z pojazdu"
    if not isPedInVehicle(checkedPlayerthen
        createVehicle(411x+2,y+2,z)
        outputChatBox("Infernus zostal zrespiony",plr,0,255,0)
    else
        outputChatBox(graczwpojezdzie,plr,255,0,0)
    end
end
addCommandHandler("infernus"spawnInfernus)

function spawnTurismo(plr)
    local x,y,getElementPosition(plr)
    local checkedPlayer getPlayerFromName("Ramzes")
    if not isPedInVehicle(checkedPlayerthen
        createVehicle(451x+2,y+2,z)
        outputChatBox("Turismo zostalo zrespione",plr,0,255,0)
    else
        outputChatBox(graczwpojezdzie,plr,255,0,0)
    end
end
addCommandHandler("turismo"spawnTurismo)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 10:17


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

U?ywaj zmiennej plr a nie szukaj gracza po nicku (getPlayerFromName).

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MrVip615
Wysłany: 2020-01-22, 10:57


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Wilq" napisał/a:

U?ywaj zmiennej plr a nie szukaj gracza po nicku (getPlayerFromName).

Dzieki wielkie, dziala.

Mam jeszcze pytanie odnosnie "isPlayerMuted", w innym skrypcie ktory ma robic za mute i unmute (dobre dla praktyki, nauki w sumie) mam problem a konkretnie wyskakuje mi attempt to call global 'isPlayerMuted' (a nil value)
Kod wyglada tak
function mutePlayer(plr,nick,powod)
    local correctusage "Poprawne uzycie: /zmutuj <nick gracza> <powod>"
    if not nick then
        outputChatBox(correctusage,player)
    else
    if not powod then
        outputChatBox(correctusage,player)
    end
    end
    if nick and powod then
        local gracz getPlayerFromName(nick)
        if gracz then
            local admin playerSource
            if not isPlayerMuted(graczthen
                setPlayerMuted(nicktrue)
                outputChatBox("Zostales zmutowany za "..powod.." przez "..admin,nick,255,0,0)
                outputChatBox("Zmutowales gracza "..gracz.." za "..powod,plr,0,255,0)
                outputChatBox("Gracz "..gracz.." zostal zmutowany za "..powod.." przez "..admin,root,255,0,0)
            end
        end
    end
end
addCommandHandler("zmutuj",mutePlayer)

Kompletnie nie wiem co mam zrobic bo probowalem z wieloma rzeczami, player, playerSource itd.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 11:05


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Ogarnij sobie te zmienne, bo korzystasz z kilku a nawet nie s? zdefiniowane.
W tej funkcji musisz poda? gracza (getPlayerFromName), a nie jego nick. Z?a zmienna.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MrVip615
Wysłany: 2020-01-22, 11:53


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Wilq" napisał/a:

Ogarnij sobie te zmienne, bo korzystasz z kilku a nawet nie s? zdefiniowane.
W tej funkcji musisz poda? gracza (getPlayerFromName), a nie jego nick. Z?a zmienna.

Probuje cos zrobic z tym getPlayerFromName i nic
            if not isPlayerMuted(getPlayerFromName(nick)) then
                setPlayerMuted(nicktrue)
zrobilem cos takiego, i probowalem tez inaczej, kombinuje na wiele sposobow i nic...

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 13:16


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wklej kod, w kt?rym poprawi?es te zmienne, zmieni?e? gracz i ca?? reszt?. Po zmianach zobacz na b??dy i wklej je.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MrVip615
Wysłany: 2020-01-22, 20:53


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Blad wyskakuje ciagle ten sam czyli attempt to call global 'isPlayerMuted' (a nil value)
A caly kod wyglada tak:
function mutePlayer(plr,nick,powod)
    gracz getPlayerFromName(nick)
    local correctusage "Poprawne uzycie: /zmutuj <nick gracza> <powod>"
    if not nick then
        outputChatBox(correctusage,player)
    else
    if not powod then
        outputChatBox(correctusage,player)
    end
    end
    if nick and powod then
        if gracz then
            local admin playerSource
            if not isPlayerMuted(getPlayerFromName(nick)) then
                setPlayerMuted(nicktrue)
                outputChatBox("Zostales zmutowany za "..powod.." przez "..admin,nick,255,0,0)
                outputChatBox("Zmutowales gracza "..nick.." za "..powod,plr,0,255,0)
                outputChatBox("Gracz "..nick.." zostal zmutowany za "..powod.." przez "..admin,root,255,0,0)
            end
        end
    end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 21:12


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

M?wi?em, ?eby? zrobi? porz?dek ze zmiennymi, kt?re s? ?le zdefiniowane albo w og?le ich nie ma. W outputChatBoxie u?ywasz player a masz zdefiniowane plr, wiesz w og?le co si? w tym skrypcie dzieje? Odpowied? brzmi chyba nie.

Upewnij si?, ?e jest to strona serwera bo tylko tam dzia?a funkcja 'isPlayerMuted'.

Spr?buj tego kodu:

function mutePlayer(plrnickpowod)
    if (not nickthen
        outputChatBox("Poprawne uzycie: /zmutuj <nick gracza> <powod>"plr)
    end
    if (not powodthen
        outputChatBox("Poprawne uzycie: /zmutuj <nick gracza> <powod>"plr)
    end
    local gracz getPlayerFromName(nick)
    if (not graczthen
        outputChatBox("Poprawne uzycie: /zmutuj <nick gracza> <powod>"plr)
    end
    if (not isPlayerMuted(gracz)) then
        setPlayerMuted(gracztrue)
        outputChatBox("Zostales zmutowany za " .. powod .. " przez " .. getPlayerName(plr), gracz25500)
        outputChatBox("Zmutowales gracza " .. getPlayerName(gracz) .. " za " .. powodplr02550)
        outputChatBox("Gracz " .. getPlayerName(gracz) .. " zostal zmutowany za " .. powod .. " przez " .. getPlayerName(plr), getRootElement(), 25500)
    end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 21:21


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Z twoim kodem po samym wpisaniu /zmutuj 3 razy sie pokazuje /zmutuj <nick gracza> <powod>

Po samym wpisaniu /zmutuj:

Linia 3: Expected number, got non-convertible string. This warning may be an error in future versions.
Linia 6: Expected number, got non-convertible string. This warning may be an error in future versions.
Linia 8: Bad argument @ 'getPlayerFromName' [Expected string at argument 1, got nil]
Linia 10: Expected number, got non-convertible string. This warning may be an error in future versions.
Linia 12: attempt to call global 'isPlayerMuted' (a nil value)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-01-22, 21:35


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Zapytam jeszcze raz, zobacz do mety czy jest to strona serwera. Ile razy mam pisa? to samo, proste polecenie.

Sprawdzaj jeszcze czy d?ugo?? tekstu pod 'nick' i 'powod' jest wi?ksza od 1 za pomoc?

Więcej informacji znajdziesz w Wikipedii MTA:

string.len


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
MrVip615
Wysłany: 2020-01-22, 22:00


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Ups... Faktycznie, mialem po stronie clienta a nie servera, moj blad, wybacz :P
Nadal wyskakuje mnostwo bledow, sprobuje pokombinowac z moim kodem co zrobilem z poprawkami od Ciebie. Dzieki za pomoc, to sa moje pierwsze kroki w LUA wiec tak jak mowilem, dopiero zaczynam ogarniac co i jak :D

Postaw piwo autorowi tego posta
 

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