Szerző Téma: setTimer, járműrobbantás  (Megtekintve 3302 alkalommal)

setTimer, járműrobbantás
« Dátum: 2017. November 11. - 15:52:37 »
0
Sziasztok! Enigma egyik topicban írt egy script ötletet, idézem: 
 
\"Csinálj egy olyan scriptet, hogy ha egy autóval bizonyos sebesség felé mész, akkor elindul egy időzítő, mondjuk 10mp. ha lejár, felrobban, viszont ha lelassítasz akkor resetelődik az időzítő, és nem robban fel.
 
Én 2014ben kaptam ezt a feladatot, megmaradt fejben :D\" - Enigma
 
Úgy döntöttem hogy unalomból megvalósítom ezt a scriptet. Írtam is egy szösszenetet, de elakadtam benne. Itt volna a teljes Kliens oldali script.
 

local p = thePlayer
local vh = getPedOccupiedVehicle(getLocalPlayer())   
local kmh = getElementSpeed(vh), getElementSpeed(vh, 0)
local roundedSpeedkmh = math.floor(kmh) == kmh
function Check(p, vh)
if isPedInVehicle then
   vh()
   kmh()
else

end
end
function Speed(kmh)
if kmh == 70 then
   outputChatBox(\"Sebességed 70 km/h! Lassíts le, különben 10 másodpercen belül felrobbansz!\")
   
else

end
end
setTimer(Speed, 10000, 0)

 
 

setTimer, járműrobbantás
« Válasz #1 Dátum: 2017. November 11. - 16:51:09 »
0

local roundedSpeedkmh = math.floor(kmh) == kmh

 
Itt a 2 == helyett egy kell. De hol akadtál el?

setTimer, járműrobbantás
« Válasz #2 Dátum: 2017. November 11. - 16:55:18 »
0
A speed függvényen belül ott van az if ág, hogyan tudom megoldani azt, ha letelik az idő, ami 10 másodperc, felrobbanjon a kocsi?
 
Edit.: Illetve, debugscript 3 kijelzett egy hibát, amit orvosoltam, de még az után is ugyan azt írja:
 
\"rHurW6Y.png\"
 
A kód ahol jelzi a hibát:
 

function Speed(kmh)
if kmh = 70
   outputChatBox(\"Sebességed 70 km/h! Lassíts le, különben 10 másodpercen belül felrobbansz!\")
   blowVehicle(vh)
else

end
end

 
 
« Utoljára szerkesztve: 2017. November 11. - 17:21:45 írta sanyikaHUN15 »

setTimer, járműrobbantás
« Válasz #3 Dátum: 2017. November 11. - 20:48:15 »
0

local roundedSpeedkmh = math.floor(kmh) == kmh

 
Ezt a sort nem igazán értem amúgy. xd
 

local roundedSpeedkmh = math.floor(kmh)

 
Így jobb. A következő hiba pedig értéket akartál adni if-ben az egy darab =-el.
 

if kmh = 70

 
helyett:
 

if kmh == 70 then

 
 
« Utoljára szerkesztve: 2017. November 11. - 20:48:26 írta BlackSy »

setTimer, járműrobbantás
« Válasz #4 Dátum: 2017. November 11. - 21:01:55 »
0
Ezeket javítottam, viszont a debugscript jelzett még egy hibát:
 
ERROR: cb\\sourceS.lua:2: attempt to call global \'getLocalPlayer\' (a nil value)
 
Miért mondja azt, hogy a getLocalPlayer-nek nincs értéke?

setTimer, járműrobbantás
« Válasz #5 Dátum: 2017. November 11. - 21:02:58 »
0
localPlayer-el próbáld.

setTimer, járműrobbantás
« Válasz #6 Dátum: 2017. November 11. - 21:07:50 »
0
Beírtam a localPlayer-t, és most ezeket adta be:
 
\"74QvuKU.png\"

setTimer, járműrobbantás
« Válasz #7 Dátum: 2017. November 11. - 22:49:04 »
+2
Először nézd át az ALAPOKAT, utána írj scripteket szerintem. :D

setTimer, járműrobbantás
« Válasz #8 Dátum: 2017. November 12. - 06:36:39 »
0
Ja, hát néztem én is, elég érdekes, a getElementSpeed nem alap MTA-s funckció, az megvan?

setTimer, járműrobbantás
« Válasz #9 Dátum: 2017. November 19. - 14:58:03 »
0
Idézetet írta: BlackSy date=1510464999


   
      Ja, hát néztem én is, elég érdekes, a getElementSpeed nem alap MTA-s funckció, az megvan?
   


Useful Function
 

function getElementSpeed(theElement, unit)
    -- Check arguments for errors
    assert(isElement(theElement), \"Bad argument 1 @ getElementSpeed (element expected, got \" .. type(theElement) .. \")\")
    local elementType = getElementType(theElement)
    assert(elementType == \"player\" or elementType == \"ped\" or elementType == \"object\" or elementType == \"vehicle\" or elementType == \"projectile\", \"Invalid element type @ getElementSpeed (player/ped/object/vehicle/projectile expected, got \" .. elementType .. \")\")
    assert((unit == nil or type(unit) == \"string\" or type(unit) == \"number\") and (unit == nil or (tonumber(unit) and (tonumber(unit) == 0 or tonumber(unit) == 1 or tonumber(unit) == 2)) or unit == \"m/s\" or unit == \"km/h\" or unit == \"mph\"), \"Bad argument 2 @ getElementSpeed (invalid speed unit)\")
    -- Default to m/s if no unit specified and \'ignore\' argument type if the string contains a number
    unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit))
    -- Setup our multiplier to convert the velocity to the specified unit
    local mult = (unit == 0 or unit == \"m/s\") and 50 or ((unit == 1 or unit == \"km/h\") and 180 or 111.84681456)
    -- Return the speed by calculating the length of the velocity vector, after converting the velocity to the specified unit
    return (Vector3(getElementVelocity(theElement)) * mult).length
end

 
tedd a kódod elejére.

setTimer, járműrobbantás
« Válasz #10 Dátum: 2017. November 19. - 15:38:32 »
+1
Pontosan. Ahogy mondja tekergő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal