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

Wysłany: 2017-07-25, 17:51


SamsungPLL

Programista lodówek






Wiek: 23
Na forum: 3805 dni
Posty: 123
Nick w MP: SamsungPLL

Piwa: 135

Respekt: 55,3

Witam, chcia?bym zrobi? taki my?l? ?e prosty skrypt na gwiazdki wanted co s? w gta sa gdy zabijemy policjanta lub go staranujemy to dostajemy takie gwiazdki (wanted).
I chcia?bym zrobi? komend? w kt?rej b?dzie mo?na przydzieli? ilo?? takich gwiazdek, w hudzie mia?em jaka? funkcje o nazwie wanted i by?a na false wi?c ju? j? w??czy?em i jest na true.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 18:10


Szymczu

Programista bo tak






Wiek: 27
Na forum: 3434 dni
Posty: 194
Nick w MP: Szymczu

Piwa: 36

Respekt: 120
Respekt: 120


Więcej informacji znajdziesz w Wikipedii MTA:

setPlayerWantedLevel


Więcej informacji znajdziesz w Wikipedii MTA:

getPlayerWantedLevel


addCommandHandler("gwiazdki", function(namevalue)
    if not name and value then return end
    if value or value 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"client)
    else
        local gracz getPlayerFromName(name)
        setPlayerWantedLevel(graczvalue)
    end
end)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
SamsungPLL
Wysłany: 2017-07-25, 18:57


neku^







Wiek: 24
Na forum: 3521 dni
Posty: 461
Nick w MP: neku^

Piwa: 1186

Respekt: 320,5
Respekt: 320,5Respekt: 320,5Respekt: 320,5

Panie Szymczu a c?? to za dziwny zapis?




        local gracz getPlayerFromName(name)
        setPlayerWantedLevel(graczvalue)

Dodatkowo drugim argumentem funkcji jest nazwa komendy(bez '/') a nie warto?ci wprowadzona przez gracza.

Moim zdaniem powinno by? w ten spos?b

addCommandHandler("gwiazdki", function(gracz_value)
    if not gracz or not value then return end
    if not tonumber(valuethen return end -- zapobiegamy wpisania innej warto?ci niliczba
    if value or value 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"client)
    else
        setPlayerWantedLevel(graczvalue)
    end
end)


Tak na sam koniec ta linia spowodowa?a by zako?czenie funkcji gdy gracz wpisa? by jak?? warto??.

    if not name and value then return end

A powinno by?:

    if not name or not value then return end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:12


SamsungPLL

Programista lodówek






Wiek: 23
Na forum: 3805 dni
Posty: 123
Nick w MP: SamsungPLL

Piwa: 135

Respekt: 55,3

a jakbym m?g?bym zrobi? aby tak komenda dzia?a?a tylko dla jedenych z frakcji?
Korzystam z ElementDaty "player:duty"

Podpis

1000 DNI NA FORUM: 28.09.2018r.
100 POSTÓW NA FORUM: 01.12.2017r.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:16


neku^







Wiek: 24
Na forum: 3521 dni
Posty: 461
Nick w MP: neku^

Piwa: 1186

Respekt: 320,5
Respekt: 320,5Respekt: 320,5Respekt: 320,5



addCommandHandler("gwiazdki", function(gracz_value)
    if not getElementData(gracz"player:duty"then return end
    if not gracz or not value then return end
    if not tonumber(valuethen return end -- zapobiegamy wpisania innej warto?ci niliczba
    if value or value 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"client)
    else
        setPlayerWantedLevel(graczvalue)
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:21


Szymczu

Programista bo tak






Wiek: 27
Na forum: 3434 dni
Posty: 194
Nick w MP: Szymczu

Piwa: 36

Respekt: 120
Respekt: 120

Sorka za roztargnienie. Powinno by?.


addCommandHandler("gwiazdki", function(thePlayercmdnamevalue)
    if not name and not value then return end
    if tonumber(value) > or tonumber(value) < 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"client)
    else
        local gracz getPlayerFromName(name)
        setPlayerWantedLevel(graczvalue)
    end
end)


dbn69, Twoj sposob dzia?a tylko na gracza, kt?ry wpisze komend?. My?la?em, ?e autorowi chodzi?o o uniwersaln? komende.


        local gracz getPlayerFromName(name)
        setPlayerWantedLevel(graczvalue)

Ten zapis pobiera element gracza z nicku, podanego w 3 parametrze przy wpisywaniu komendy i nadaje gwiazdki.

Ostatnio zmieniony przez Szymczu 2017-07-25, 19:24, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:22


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

po co -if not gracz-, w ko?cu to gracz kt?ry wpisa? komend? wi?c on by? musi xd

[ Dodano: 2017-07-25, 19:24 ]
chcesz ustawic dla jakeigos gracza?

addCommandHandler("gwiazdki", function(plrcmdnamevalue)
    if not name and not value then return end
    if tonumber(value) > or tonumber(value) < 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"plr)
    else
        local gracz getPlayerFromName(name)
       if setPlayerWantedLevel(graczvaluethen
outputChatBox("Poprawie ustawiono!",plr)
else
outputChatBox("Blad w ustawieniach(zly nick)",plr)
end
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:42


neku^







Wiek: 24
Na forum: 3521 dni
Posty: 461
Nick w MP: neku^

Piwa: 1186

Respekt: 320,5
Respekt: 320,5Respekt: 320,5Respekt: 320,5



addCommandHandler("gwiazdki", function(plrcmdnamevalue)
    if not name and not value then return end
    if tonumber(value) > or tonumber(value) < 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"plr)
    else
        local gracz getPlayerFromName(name)
       if setPlayerWantedLevel(graczvaluethen
outputChatBox("Poprawie ustawiono!",plr)
else
outputChatBox("Blad w ustawieniach(zly nick)",plr)
end
    end
end)

Podstawowy b??d... Powinno by?:


addCommandHandler("gwiazdki", function(plrcmdnamevalue)
    if not name or not value then return end
    if tonumber(value) > or tonumber(value) < 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"plr)
    else
        local gracz getPlayerFromName(name)
       if setPlayerWantedLevel(graczvaluethen
outputChatBox("Poprawie ustawiono!",plr)
else
outputChatBox("Blad w ustawieniach(zly nick)",plr)
end
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:44


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

dbn69, po to jest if z tym setPlayer... jezeli nie bedzie valve to wywali false, nie bedzie nicku to samo wiec i tak bedzie dzialac

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 19:52


SamsungPLL

Programista lodówek






Wiek: 23
Na forum: 3805 dni
Posty: 123
Nick w MP: SamsungPLL

Piwa: 135

Respekt: 55,3

Tak, chce aby nada? to jakiemu? graczowi z innym nickiem.
i chcia?bym to zrobi? pod player:duty SAPD a nie pod samo player:duty

+ skrypt zrobi? po stronie serwera czy clienta?

Podpis

1000 DNI NA FORUM: 28.09.2018r.
100 POSTÓW NA FORUM: 01.12.2017r.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 20:38


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

SamsungPLL, server

addCommandHandler("gwiazdki", function(plrcmdnamevalue)
    if not name and not value then return end
    if not getElementData(plr,"player:duty")=="SAPD" then return end
    if tonumber(value) > or tonumber(value) < 0 then
        outputChatBox("Przedzia? gwiazdek 1-6"plr)
    else
        local gracz getPlayerFromName(name)
       if setPlayerWantedLevel(graczvaluethen
outputChatBox("Poprawie ustawiono!",plr)
else
outputChatBox("Blad w ustawieniach(zly nick)",plr)
end
    end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-25, 22:27


SamsungPLL

Programista lodówek






Wiek: 23
Na forum: 3805 dni
Posty: 123
Nick w MP: SamsungPLL

Piwa: 135

Respekt: 55,3

amited, Szymczu, dbn69, dzi?kuje wszystkim za pomoc :) Zimne piwko dla was :piwo:

[ Dodano: 2017-07-25, 23:02 ]
A jednak jeszcze nie.
Po wpisaniu: /gwiazdki 3 SamsungPLL

mam takiego errora w db3 i nie pojawiaj? si? ?adne gwiazdki
ERROR: [Testowane]/gwiazdeczki/s_gwiazdki.lua:4: attempt to compare number with nil

a jak wpisze: /gwiazdki SamsungPLL 3

WARNING: [Testowane]/gwiazdeczki/s_gwiazdki.lua:8: Bad argument @ 'setPlayerWantedLevel' [Expected element at argument 1, got boolean]

Podpis

1000 DNI NA FORUM: 28.09.2018r.
100 POSTÓW NA FORUM: 01.12.2017r.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-26, 01:20


psychol.







Wiek: 23
Na forum: 3502 dni
Posty: 225
Nick w MP: psychol.

Piwa: 2998

Respekt: 244,5
Respekt: 244,5Respekt: 244,5

Ca?y skrypt:


addCommandHandler("wanted", function(player_toPlayerlevel)
if getElementData(player"player:duty") and getElementData(player"player:duty") == "SAPD" then
if not toPlayer or not level then
outputChatBox("Poprawne u?ycie: /wanted <id/nick> <wanted level>"player25500)
return
end
if not tonumber(level) or level or level 6 then
outputChatBox("Minimum: 1 gwiazdka. Maksimum: 6 gwiazdek."player25500)
return
end
level tonumber(level)
toPlayer findPlayer(toPlayer)
if toPlayer then
outputChatBox("Nadano: "..level.." gwiazdek dla: "..getPlayerName(toPlayer), player02550)
setPlayerWantedLevel(toPlayerlevel)
else
outputChatBox("Nie znaleziono podanego gracza."player25500)
end
else
outputChatBox("Komenda tylko dla frakcji: SAPD"player25500)
end
end)

function findPlayer(name)
if tonumber(namethen
for i,v in ipairs(getElementsByType("player")) do
if getElementData(v"id") and getElementData(v"id") == tonumber(namethen
return v
end
end
else
local player getPlayerFromName(name)
if player then
return player
end
return false
end


Kod jest ca?y autorski, pisane na wklej.org. Je?li znajdziesz jakie? b??dy - pisz.

Podpis


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-26, 13:17


SamsungPLL

Programista lodówek






Wiek: 23
Na forum: 3805 dni
Posty: 123
Nick w MP: SamsungPLL

Piwa: 135

Respekt: 55,3

Wyrzuca?o mi errora jakiego? i doda?em do skryptu na samym ko?cu jeszcze drugiego enda i skrypt si? uruchomi? ale teraz jak nadaje te gwiazdki to nic sie nie pojawia zaden komunikat z outputChatBox ?e nada?em gwiazdki oraz nie nadaje ich a error teraz jest inny:
ERROR: [Testowane]/gwiazdeczki/s_gwiazdki.lua:7: attempt to compare string with number

Podpis

1000 DNI NA FORUM: 28.09.2018r.
100 POSTÓW NA FORUM: 01.12.2017r.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-07-26, 18:40


psychol.







Wiek: 23
Na forum: 3502 dni
Posty: 225
Nick w MP: psychol.

Piwa: 2998

Respekt: 244,5
Respekt: 244,5Respekt: 244,5

addCommandHandler("wanted", function(player_toPlayerlevel)
if not getElementData(player"player:duty") or getElementData(player"player:duty") ~= "SAPD" then return end

if not toPlayer or not level then
outputChatBox("Poprawne u?ycie: /wanted <id/nick> <wanted level>"player25500)
return
end

if not tonumber(level) or tonumber(level) < or tonumber(level) > 6 then
outputChatBox("Minimum: 1 gwiazdka. Maksimum: 6 gwiazdek."player25500)
return
end

level tonumber(level)
toPlayer findPlayer(toPlayer)

if toPlayer then
outputChatBox("Nadano: "..level.." gwiazdek dla: "..getPlayerName(toPlayer), player02550)
setPlayerWantedLevel(toPlayerlevel)
else
outputChatBox("Nie znaleziono podanego gracza."player25500)
end

end)

function findPlayer(name)
if tonumber(namethen

for i,v in ipairs(getElementsByType("player")) do
if getElementData(v"id") and getElementData(v"id") == tonumber(namethen
return v
end
end

else

local player getPlayerFromName(name)
if player then
return player
end

return false
end

Teraz wszystko powinno dzia?a?.

Podpis


Postaw piwo autorowi tego posta
 

 
Tagi: poziom
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Poziom Odpowiedz do tematu

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