Witam, chcia?bym aby po up?ywie 120 sek Funkcja setTimer poprostu tak jakby si? zatrzymywa?a albo co? w ten dese?. Chcia?bym tak zrobi? aby by?o to bardziej optymalne. Ch?tnie te? poczytam jak to lepiej napisa?
U?ywam w skrypcie funkcji SetTimer i pomimo ustawionego interwa?u na powiedzmy 5000 ms, funkcja wykonuje si? po czasie d?u?szym ni? zadeklarowany (czasem po 10 sekundach, czasem po 2 minutach) a czasem nawet nie wykonuje si? wcale. Czy spotka? si? kto? w swojej "karierze" programisty aby funkcja "SetTimer" tak "lagowa?a" podczas gry?
My?la?em, ?e mo?e jest to kwestia gamemoda (nawalone timer?w) lecz to nie to - za?adowa?em skrypt na chyba najczystszej mapie jaka tylko mo?e by? ("grandlarc") i efekt jest dok?adnie taki sam.
Aby znale?? problem kt?ra funkcja konkretnie nie dzia?a pos?u?y?em si? wysy?aniem log?w na czat z poszczeg?lnych callback?w, ewidentnie funkcja SetTimer ma "laga".
Pr?bowa?em stawia? serwer na innym sprz?cie - objawy identyczne.
WItam jak u?y? tutaj setTimer aby auto da?o si? spawni? co 5 sekund.
addEvent("event", true) addEventHandler("event", root, function(plr, veh)
if not veh then return end
local x, y, z = getElementPosition ( plr )
if getElementData(source,"created:Vehicle") then
destroyElement(getElementData(source, "created:Vehicle")) end
pojazd = createVehicle(getVehicleModelFromName(veh), x+2, y, z) setElementData(source, "created:Vehicle", pojazd) end)
addEventHandler("onPlayerQuit", root, function()
if getElementData(source, "created:Vehicle") then
destroyElement(getElementData(source, "created:Vehicle")) end
end)
Siema, mam malutki problem z funkcj? setTimer, a dok?adnie skrypt powinien dawa? got?weczk? co 1min i 0,5min, ale daje tak jakby losowo albo po d?u?szym czasie... Mo?e mi kto? to wyja?ni? jak ustawi? aby dawa?o co 30 minut or 15 min
[lua]setTimer(function()
local players=getElementsByType('player')
for _, p in pairs(players) do
if getElementData(p, "player:online") and tonumber(getElementData(p, "player:online")) > 20 then
if getElementData(p, "player:online") == 20 then
local hour = getElementData(localPlayer,"player:hours") or 0
setElementData(localPlayer,"player:hours",hour+1)
end
setElementData(p, "player:online", 0)
if getElementData(p, "player:premium") then
local rp = math.random(1,5)
local rp2 = getElementData(g, "player:srp")
setElementData(g, "player:srp", rp+rp2)
triggerEvent("givePlayerMoney", p, 2500, false)
outputChatBox("* [PREMIUM] Otrzymujesz 2 500 PLN i "..rp.." za 30 minut gry!", p)
end
end
end
end, 60000, 0)
setTimer(function()
local players=getElementsByType('player')
for _, p in pairs(players) do
if getElementData(p, "player:online") and tonumber(getElementData(p, "player:online")) > 20 then
if getElementData(p, "player:online") == 20 then
local hour = getElementData(localPlayer,"player:hou...
przychodz? z zapytaniem w jaki spos?b za??czy? setTimer na okre?lon? funkcje b?d? linijke. Nie mam poj?cia w jaki spos?b to wykona?, bardzo przyda?a by mi si? taka wiedza.
function pomagamySamraytan(el)
if el ~= localPlayer then
Timer = getElementData(el, "czasPrzesylki") or 0
dxDrawText("Tw?j czas: "..Timer.."", 674, 493, 1260, 557, tocolor(0, 0, 0, 255), 1.00, fuckYouMonter, "left", "top", true, false, false, false, false) end
end
((Wszystko dzia?a pokazuje DxDrawText tylko wskazuje ciagle 0))
s-side
addEvent("zapiszToCzas", true) addEventHandler("zapiszToCzas", getRootElement(), function(el)
if not getElementType(el) ~= "player" then return end
setTimer(function(el) czas = getElementData(el, "czasPrzesylki") or 0
setElementData(el, "czasPrzesylki", czas+1) end, 1000, 0 ) end)
"Nie nalicza si? ten 1 czy nawet 2 itp"
Pomocy to wszystko sam napisa?em i nie wiem gdzie le?y b??d
Hej, wiecie moze co zrobic, zeby mozna bylo uzyc tej komendy tylko raz na dzien lub raz na 24h? Z gory dzieki.
Kod:
local function opoznienie() outputChatBox("Mam, znalaz?em dla Ciebie skrzynke pelna skarbow! Wbij jutro ponownie, napewno cos dla Ciebie przygotuje...", 0, 128, 128, source) end
local function dilej() outputChatBox("Skrzynka z wynagrodzeniem za codzienne logowanie zostala otwarta!", 0, 255, 0, source) end
local function dziennyKesz() outputChatBox("Przygotowuje skrzynke dla Ciebie...!", 255, 0, 255, source) local dzwiekNaWpisanieCmd = playSound("https://s107.123apps.com/aconv/d/s107sgUnsLE1.mp3", source) setSoundVolume(dzwiekNaWpisanieCmd, 1) setTimer(function() destroyElement(dzwiekNaWpisanieCmd) end, 6700, 1) givePlayerMoney(16500, source)
setTimer(opoznienie, 2500, 1) setTimer(dilej, 3500, 1) end
addCommandHandler("odbierzskrzynke", dziennyKesz)
[lua]bindKey("mouse1", "down", function()
if not getElementData(localPlayer, "gui:listonosz") or getElementData(localPlayer, "gui:listonosz") ~= true then return end
if isMouseIn(404*px, 447*py, 227*px, 38*py) then
zrobione = 0
triggerServerEvent("create:listonosz", localPlayer)
showCursor(false)
setElementData(localPlayer, "gui:listonosz", nil)
setElementData(localPlayer, "praca", "listonosz")
for i,v in ipairs(punktyListonosza) do
local markerList = createMarker(v[1], v[2], v[3]-1, "cylinder", 1, 29, 10 ,100)
local blipList = createBlipAttachedTo(markerList, 41)
addEventHandler("onClientMarkerHit", markerList, function(hit)
--setPedAnimation(localPlayer,"COP_AMBIENT", "Copbrowse_nod", -1, true, false )
triggerServerEvent("anim", localPlayer, true)
if hit ~= localPlayer then return end
if isPedInVehicle(localPlayer) then outputChatBox("Nie moĹĽesz siedzie?‡ w pojeĹşdzie!", 255, 0, 0) return end
zrobione = zrobione+1
destroyElement(source)
destroyElement(blipList)
outputChatBox("Odniesiono list do skrzynki, wykonano: "..tostring(zrobione).."/3")
setElementFrozen(veh, true)
setTimer ( function()
end, 5000, 1 )
...
Witam ot?? mam problem z timerem ciagle wywala b?ad w db3 table index is nill, gdy mam setTimer a jak dam addCommandHandler to wszystko dziala. Za pomoc stawiam Zimne Piwerko
Kod:
local sprawdzenie = {}
function dodaj(element) local ranga = exports.ddsysgrup:getPlayerGroup(element)
if ranga == "Siema" then
outputChatBox("dziala", element) sprawdzenie[element] = 1 else sprawdzenie[element] = 0
end
end
setTimer(dodaj, 5000, 0)
cze??, mam ma?y b??d gdy? po uruchomioniu skryptu kt?ry pobra?em (system bot?w) to w db3 spami du?? ilo?ci? b??d?w kt?re brzmi?:
Expected positive value, got negative. This warning may be an error in future versions.
Witam,jestem bardzo zielony w lua,mam do was pytanie,mo?e dla was oczywiste,wyjasni mi ktos jak dodac timer do komendy np na czat dla vipow ? /p (premium-cmd na czat) zeby spamu nie by?o,chce ustawic wiadomosc co 15s na osobe ;C pomoze ktos? stawiam zimnego/pozdrawiam
Cze?? wszystkim, chcia?bym prosi? o pomoc, przyk?ad..
Chcia?bym stworzy? funkcj?, kt?ra b?dzie dzia?a?a na zasadzie, gdy osoba sama sobie doda bro?, albo dostanie w jakim? czasie, to zostaje wyrzucona z serwera...
Przyk?adowo gracz sobie dodaje M4 w ci?gu sekundy i go wywala z serwera ;d
Nie wiem, czy takie co? jest mo?liwe, ale mo?e kto? co? poradzi, rzucam pifkami i respektem ^^
mam straszne problemy z umieszczeniem timera do komendy tepania na spawn, oczywiscie chodzi o to ze piszemy komende i po jakims czasie zostajemy przeteleportowani, ale ni cholery nie wiem jak go umiescic
function TpToSpawn ( thePlayer )
setElementPosition (thePlayer, -202, -221, 1.421)
end
addCommandHandler ("spawn", TpToSpawn)
Witam mam problem bo chcialbym zeby ponizsza funkcja wykonywala sie z opoznieniem 5 sekund.Czyli po wybuchnieciu auta za 5 sekund ono zniknie.Probowalem takie cos zrobic ale nie dziala.
function wybuch ()
destroyElement(source)
end
addEventHandler("onVehicleExplode", root,wybuch)
setTimer ( wybuch, 5000, 1)
Witam, mam pro?b? ot?? przerobi?em sobie pewien skrypt na suszark? z community i wszystko dzia?a, ale chcia?bym tam doda? timer na 15 sekund od zmierzenia predkosci. Chodzi o to, ?e po wystawieniu mandatu trzeba czeka? 15 sekund a? zrobi si? kolejny(aby nie bugowali kasy)
Kod:
Ze wzgl?du na to, ?e nie chc? aby kto? sobie zgapi? kod poka?? tylko wymagan? ko?c?wk? (je?li do timera potrzeba ca?y kod to m?w)
if speed > 60 then
outputChatBox ( "Zarejestrowa?e? gracza kt?ry przekroczy? pr?dko??, jego predkosc to "..speed.." km/h i otrzymales 15$", source, 255, 0, 0, true )
givePlayerMoney(source, 15)
takePlayerMoney(target, 20)
end
end
end
end
end
addEventHandler ( "onPlayerTarget", root, checkSpeed )
Witam. Mam taki problem, ot?? przerabia?em m?j stary system respektu na system g?odu i natrafi?em na problem. Gdy odpal? skrypt to jest dobrze bo usuwa 1 punkt w minut?, ale drugi raz ju? nie usunie. po 100 ustawia na 99 i dalej ju? si? nie ruszy. Wiecie o co chodzi? Przecie? setTimer jest ustawiony na niesko?czono?? razy
local player = getLocalPlayer ()
local data = getElementData(player, "Respekt") or 100
function resp_minuta ()
setElementData (player, "Respekt", data - 1)
end
setTimer (resp_minuta, 60*1000, 0)
function sprawdz_poziom_glodu ()
glod = getElementData (player, "Respekt")
if glod == 0 then
killPlayer (player)
outputChatBox ("* Umar?e? z g?odu! Trzeba by?o co? zje??!", 255, 0, 0)
elseif glod == 10 then
outputChatBox ("Powoli robisz si? g?odny. Znajd? co? do jedzenia!")
end
end
setTimer (sprawdz_poziom_glodu, 60*1000, 0)[/lua]
Czesc mam pytanko czy da sie zrobic randomowego settimera ? a jesli tak to czy podalibyscie kod bo probuje zrobic skrypt na rozwiazane sznurowki. skrypt ma dzialac tak ze randomowo od 2-20minut rozwiazuja sie sznurowki i nie mozna biegac. Aby zawiazac trzeba kliknac e i odpala sie animacja. Tylko jak dac ten randomowy timer? za pomoc
witam mam problem poniewa? nie wiem jak zrobi? tak ?eby co 5 minut odejmowa?o warto?? 1 z ElementDaty(ka?demu graczowi na serwerze) chyba ze kto? ma 0 to nie odejmuje.
pr?bowa?em tak ale nie dzia?a
function trzezwienie() local data = getElementData(source, "alko") setElementData(getRootElement(), "alko", data - 1) end
setTimer(trzezwienie, 60000*5, 0)
Nie dziala timer dla zmniejszania glodu dla gracza powyzej id 0, tylko dla id 0 dziala. Czytalem mnostwo tematow, ale zaden mi nie pomogl, dlatego pisze tutaj.
Wyrzuca blad ze nie ma zdefinowanego playerid. Wrzucilem timer do "OnPlayerConnect". Ju? nie wyrzuca warningow przy konwertowaniu, lecz nadal nie zabiera zarcia, tylko dla id 0. Macie pomysl jak to naprawic ?
Witam. To Znowu ja. Prosz? o pomoc chce zrobi? skrypt kt?ry po jakim? tam czasie po wej?ciu na serwer wykonuje dan? mu funkcje. Wygl?da?o by to Tak: Gracz W chodzi na serwer i po ilu? sekundach po logowaniu daje mu np. Bronie. Bardzo mi zale?y na op??nieniu funkcji.
Cze??, pracuj? nad jednym skryptem jednak mam problem, chcia?em aby po naci?ni?ciu gui buttona uruchamia? si? timer oraz progressbar, jednak ten nie chce ruszy?, kiedy pytam si? go ile ju? min??o uwa?a, ?e wcale go nie aktywowa?em.
Witam, mam komende kick z text drawem i chc? aby wy?wietla?a si? 5 sek po nadaniu kary dla wszystkich. Text draw jest ju? ca?kiem gotowy, jednak problem tkwi w set Timerze, poniewa? kiedy go ustawiam nic si? nie wy?wietla. Mo?ecie mi pom?c?