
DzMG-LV
Members-
Posts
58 -
Joined
-
Last visited
Everything posted by DzMG-LV
-
Doesn't work, now marker doesnt appear
-
Now it's show text and fade camera, but the car still is not clean after cleaning.
-
So i use carwash script, but when i drive to wash it, it doesn't clean the car. Anyone can help? I've got this error Bad argument @ 'getPlayerOccupiedVehicle' [Expected ped at argument 1, got vehicle] Client: local myShader = dxCreateShader("texture.fx") addEventHandler("onClientElementDataChange", root, function (dataName) if (getElementType(source) == "vehicle") and (dataName == "Cleaned") then engineApplyShaderToWorldTexture(myShader, "vehiclegrunge256", source) engineApplyShaderToWorldTexture(myShader, "?emap*", source) end end) addEventHandler("onClientElementDataChange", root, function (dataName) for _, vehicle in ipairs(getElementsByType("vehicle")) do if (getElementData(vehicle, "Cleaned") then engineApplyShaderToWorldTexture(myShader, "vehiclegrunge256", vehicle) engineApplyShaderToWorldTexture(myShader, "?emap*", vehicle) end end end) Server: local x,y,z = 1911.2, -1776, 12 local Marker = createMarker(x, y, z, "cylinder", 5, 255, 0, 0, 150) local gate = createObject(968, 1915.5, -1771.80, 13, 0, -90) local gate1 = createObject(968, 1915.5, -1780.85, 16, 0, -90) addEventHandler("onMarkerHit", Marker, function (hitPlayer, matchingDimension) local theVehicle = getPlayerOccupiedVehicle(hitPlayer) if (theVehicle) then setElementData(source, "Cleaned", true) fadeCamera(source, false, 2.5, 0, 0, 0) setTimer(fadeCamera, 2500, 1, source, true, 2.5) moveObject(gate, 9000, 1915.5, -1771.80, 16) moveObject(gate1, 2000, 1915.5, -1780.85, 13) outputChatBox("Your Welcome in car wash", source, 0, 255, 255) end end) addEventHandler("onMarkerLeave", Marker, function () moveObject(gate, 2000, 1915.5, -1771.80, 13) moveObject(gate1, 9000, 1915.5, -1780.85, 16) end)
-
Thanks, its working now.
-
I need to fetch DATE from mysql table into the gridlist text, but i dont know how to. Anyone can help?
-
Still doesnt work local ped = createPed ( 120, -353.5361328125, -426.357421875, 6.944408416748 ) local tree = createObject ( 618, -353.5361328125, -426.357421875, 6.944408416748, 0, 0, 0 ) setElementFrozen ( ped ) attachElements ( ped, tree, 0, 0, 0 ) function onDamageTree(attacker,weapon) if attacker and isElement(attacker) and getElementType(attacker) == "player" then if weapon and weapon == 9 then if (getElementHealth(ped) <= 0) then object = createObject ( 618, -353.5361328125, -426.357421875, 12.944408416748, 0, 0, 0 ) end end end end addEventHandler("onPlayerDamage",getRootElement(),onDamageTree)
-
Hmm, i cant kill ped, allways 100hp
-
Script is on server side.
-
Okey so i created the Ped, Tree and then attached them, i dont know function to create if the ped is attacked with chainsaw then destroy tree, can u help me? function tree() local ped = createPed ( 120, -353.5361328125, -426.357421875, 6.944408416748 ) local tree = createObject ( 618, -353.5361328125, -426.357421875, 6.944408416748, 0, 0, 0 ) setPedFrozen ( ped ) attachElements ( ped, tree, 0, 0, 0 ) end addEventHandler ( "onResourceStart", resourceRoot, tree )
-
Hi, i want to make lumberjack script like this: What functions i need to use to: If i have only chainsaw i can destroy tree, make tree like ped so when u chainsaw it only then it will destroys, to create it and after 20 min when it's destroyed it grows up again. Thanks
-
Hey, so i want in my roleplay server when players can change their driving style from default to example 2. He can change it with cmd /drivestyle (1 or 2) 1-Default 2-With one hand How can i make it? Any example or One hand driving animation? Thanks
-
So i want make for my RP server script when you drive 10k miles, tire's will blow up. Sometimes front left/right, sometimes rear right/left for that i will use math.random function. But how can i make when exactly you have driven 10k miles the tire will blow?
-
I mean if i have sentinel it has max speed 160km/h, if i add item it will set to 190km/h
-
So i want to make a tuning part script for RP Server, but how i can make it when it will add +30km/h for speed? I need to use setVehicleHandling but i don't know how to make it when it add's +30km/h... Thanks!
-
I use triggerServerEvent("destroyPizza", localPlayer) for addPizza i use triggerServerEvent("addPizza", localPlayer) it work's
-
So i made pizza delivery script. Object attach's why it don't work's when i try to destroy it? code: function pizzaHand() local pizza = createObject ( 1271, 0, 0, 0 ) exports.bone_attach:attachElementToBone(pizza,source,12,0.081,0.05,0.01,0,-70,0) end addEvent("addPizza", true) addEventHandler("addPizza", root, pizzaHand) function destroyPizza() destroyElement(pizzaHand) end addEvent("destroyPizza", true) addEventHandler("destroyPizza", root, destroyPizza)
-
Any help?
-
Hey so i can destroy only objects which is allready in map, but how can i make when i can destroy mapped objects too? client: local length = 3 function onClientPlayerWeaponSwitch( prevSlot, newSlot ) if getPedWeapon( localPlayer, newSlot ) == 15 then addEventHandler( "onClientPreRender", root, onClientChainsawRender ) else removeEventHandler( "onClientPreRender", root, onClientChainsawRender ) end end function onClientChainsawRender() local x, y, z = getElementPosition( localPlayer ) local _, _, rz = getElementRotation( localPlayer ) local tx = x + - ( length ) * math.sin( math.rad( rz ) ) local ty = y + length * math.cos( math.rad( rz ) ) local tz = z if getControlState( "fire" ) and getPedWeapon( localPlayer ) == 15 then local hit, hitX, hitY, hitZ, hitElement, normalX, normalY, normalZ, material, lighting, piece, worldID, worldX, worldY, worldZ, worldRX, worldRY, worldRZ, worldLODID = processLineOfSight( x, y, z, tx, ty, tz, true, false, false, true, true, false, false, false, localPlayer, true, false ) if worldID and not startwoodtick and treelist[worldID] then local treename = treelist[worldID].name local interior = getElementInterior( localPlayer ) if not startwoodtick then local anora = findDaVowel( treename ) startwoodtick = getTickCount() triggerServerEvent( "onPlayerChopTree", localPlayer, worldID, worldX, worldY, worldZ, worldRX, worldRY, worldRZ, worldLODID, interior ) outputChatBox( "You chopped down " .. anora .. " " .. treename, 0, 150, 0, false ) end end if worldID then --dxDrawText( worldID, 300, 300 ) end end if startwoodtick then currenttick = getTickCount() - startwoodtick if currenttick >= 2000 then chopping = false startwoodtick = nil end --dxDrawText( currenttick, 300, 300 ) end --dxDrawLine3D( x, y, z, tx, ty, tz ) end function findDaVowel( string ) if vowels[string.sub( string:lower(), 1, 1 )] then return "an" else return "a" end end addEventHandler( "onClientPlayerWeaponSwitch", localPlayer, onClientPlayerWeaponSwitch ) server: addEvent( "onPlayerChopTree", true ) function onPlayerChopTree( worldID, worldX, worldY, worldZ, worldRX, worldRY, worldRZ, worldLODID, interior ) removeWorldModel( worldID, 3, worldX, worldY, worldZ, interior ) removeWorldModel( worldLODID, 3, worldX, worldY, worldZ, interior ) local _, _, rz = getElementRotation( client ) local tree = createObject( worldID, worldX, worldY, worldZ, worldRX, worldRY, worldRZ ) setTimer( setElementCollisionsEnabled, 1000, 1, tree, false ) moveObject( tree, 4000, worldX, worldY, worldZ, 0, 87, 0, "OutBounce" ) setTimer( destroyElement, 4000, 1, tree ) end addEventHandler( "onPlayerChopTree", root, onPlayerChopTree ) treelist: vowels = { ["a"] = true, ["e"] = true, ["i"] = true, ["o"] = true, ["u"] = true } treelist = { -- Palm trees [618] = { name = "Sabal Palm" }, [621] = { name = "Mexican Palmetto" }, [620] = { name = "Alexandra Palm" }, [740] = { name = "King Palm" }, [645] = { name = "Nameless Palm" }, [739] = { name = "Nameless Palm" }, --[1308] = { name = "Lamppost" }, --[3244] = { name = "fucking Powerline" }, }
-
So i have problem, the trees spawn, everything is okey, but i can''t destroy them. No errors client: ae=addEvent aeh=addEventHandler tse=triggerServerEvent lp=localPlayer sendtick = getTickCount() local trees = {} local peds = {} local blips = {} addEvent("recTree",true) addEventHandler("recTree",localPlayer,function(tree) table.insert(trees,tree) if getElementData(localPlayer,"job") == 7 then local x,y,z = getElementPosition(tree) blips[tree] = createBlip(x,y,z,0) end --tse("desTree",lp,tree) end) addEvent("remTree",true) addEventHandler("remTree",lp,function(tree) for k,v in pairs(trees) do if v == tree then table.remove(trees,k) destroyElement(blips[tree]) end end end) addEvent("treeFall",true) addEventHandler("treeFall",localPlayer,function( ... ) local tree = createObject( ... ) local x,y,z = getElementPosition(tree) --[[setTimer(function() local rx = getElementRotation(tree) local x,y,z = getElementPosition(tree) setElementPosition(tree,x,y,z-0.3) setElementRotation(tree,rx-1,0,0) end,50,111)--]] setElementCollisionsEnabled(tree,false) moveObject(tree,6000,x,y,z-10,0,90,90) setTimer(function() local x,y,z = getElementPosition(tree) moveObject(tree,5000,x,y,z-5) setTimer(destroyElement,5000,1,tree) --if blips[tree] then destroyElement(blips[tree]) end end,6000,1) end) addEventHandler("onClientPedDamage",root,function(atk,wep) if getElementData(source,"l") and wep ~= 9 then cancelEvent() end end) server: local treeE = {} local peds = {} local trees = {} local made = {} local treei={} local addX={ [696]=0.5 } local addY={ [696]=0 } addEventHandler("onPlayerWeaponSwitch",root,function(i) if getElementData(source,"job") == 7 then setTimer(function() if isElement(source) then giveWeapon(source,9,1,true) end end,500,1) end end) local lumberRanks = { {"Wood Collector",0}, {"Seasonal Woodcutter",50}, {"Constant Lumberjack",450}, {"Forest Woodcutter",1000}, {"Head Lumberjack",2000}, {"Lumberjack at Charge",2500}, {"Senior Woodcutter",3600}, {"Lead Lumberjack",5000}, {"Wooden King",7000}, } function pedWasted(killer) if getElementData(killer,"job") == 7 then exports.global:giveMoney(killer,400) end local deadCount=0 local tree = peds[source] for k,v in pairs(peds) do if v==tree then destroyElement(k) end end local x,y,z = getElementPosition(tree) local model = getElementModel(tree) made[treei[tree]]=false triggerClientEvent("remTree", tree) destroyElement(tree) triggerClientEvent("treeFall", model, x,y,z) makeTree(math.random(#trees)) end function circle(r,s,cx,cy) xVals = {} yVals = {} for i=1,s-1 do xVals[i] = (cx+r*math.cos(math.pi*i/s*2-math.pi/2)) yVals[i] = (cy+r*math.sin(math.pi*i/s*2-math.pi/2)) end end function makeTree(i) if made[i] then return end local x,y,z = unpack(trees[i]) local model = 696 made[i]=true x=x-3 local tree=createObject(model,x,y,z) treei[tree]=i local x,y,z = getElementPosition(tree) x=x+addX[model] y=y+addY[model] circle(1.5,6,x,y) for k,v in pairs(xVals) do x,y=v,yVals[k] local ped = createPed(0,x,y,z) setElementAlpha(ped,0) setElementFrozen(ped,true) setElementData(ped,"l",true) peds[ped]=tree addEventHandler("onPedWasted", ped, pedWasted) end triggerClientEvent("recTree", tree) end addCommandHandler("mt",makeTree) addEvent("onServerPlayerLogin",true) addEventHandler("onServerPlayerLogin",root,function() for k,v in pairs(treei) do if isElement(k) then triggerClientEvent(source, "recTree",source,k) end end end) function tc(nam, ... ) for k,v in pairs(getElementsByType("player")) do triggerClientEvent(v,nam,v, ... ) end end --[[ addEvent("desTree",true) addEventHandler("desTree",root,function(e) destroyElement(e) end) --]] --[[local file = xmlLoadFile("pos.xml") if not file then file = xmlCreateFile("pos.xml",'positions') end addCommandHandler('maptree', function (pSource) local x,y,z = getElementPosition(pSource) local node = xmlCreateChild(file,'position') xmlNodeSetAttribute(node,'x',x) xmlNodeSetAttribute(node,'y',y) xmlNodeSetAttribute(node,'z',z) xmlSaveFile(file) createMarker(x,y,z,"arrow",1) end) --]] function loads() local rootnode = xmlLoadFile("pos.xml") for i,pos in ipairs(xmlNodeGetChildren(rootnode)) do local x = xmlNodeGetAttribute(pos,"x") local y = xmlNodeGetAttribute(pos,"y") local z = xmlNodeGetAttribute(pos,"z") trees[i]={x,y,z} end for i=1,40 do makeTree(math.random(#trees)) end end setTimer(function() loads() end,1000,1)
-
addEventHandler("onClientResourceStart", getResourceRootElement(), function() dayzVersion = "MTA:DayZ a0.6 r193" versionLabel = guiCreateLabel(1, 1, 0.3, 0.3, dayzVersion, true) guiSetSize(versionLabel, guiLabelGetTextExtent(versionLabel), guiLabelGetFontHeight(versionLabel), false) x, y = guiGetSize(versionLabel, true) guiSetPosition(versionLabel, 1 - x, 1 - y * 1.8, true) guiSetAlpha(versionLabel, 0.5) end) snipertxd = engineLoadTXD("mods/sniper.txd") engineImportTXD(snipertxd, 285) sniperdff = engineLoadDFF("mods/sniper.dff", 285) engineReplaceModel(sniperdff, 285) snipertxd = engineLoadTXD("mods/civilian.txd") engineImportTXD(snipertxd, 179) sniperdff = engineLoadDFF("mods/civilian.dff", 179) engineReplaceModel(sniperdff, 179) snipertxd = engineLoadTXD("mods/bandit3.txd") engineImportTXD(snipertxd, 180) sniperdff = engineLoadDFF("mods/bandit3.dff", 180) engineReplaceModel(sniperdff, 180) snipertxd = engineLoadTXD("mods/bandit2.txd") engineImportTXD(snipertxd, 288) sniperdff = engineLoadDFF("mods/bandit2.dff", 288) engineReplaceModel(sniperdff, 288) snipertxd = engineLoadTXD("mods/standart.txd") engineImportTXD(snipertxd, 73) sniperdff = engineLoadDFF("mods/standart.dff", 73) engineReplaceModel(sniperdff, 73) snipertxd = engineLoadTXD("mods/femalestandard.txd") engineImportTXD(snipertxd, 191) sniperdff = engineLoadDFF("mods/femalestandard.dff", 191) engineReplaceModel(sniperdff, 191) snipertxd = engineLoadTXD("mods/hero.txd") engineImportTXD(snipertxd, 210) sniperdff = engineLoadDFF("mods/hero.dff", 210) engineReplaceModel(sniperdff, 210) itemTXD = engineLoadTXD("items/army_clothes.txd") engineImportTXD(itemTXD, 1247) itemDFF = engineLoadDFF("items/army_clothes.dff", 1247) engineReplaceModel(itemDFF, 1247) itemTXD = engineLoadTXD("items/sniper_clothes.txd") engineImportTXD(itemTXD, 1213) itemDFF = engineLoadDFF("items/sniper_clothes.dff", 1213) engineReplaceModel(itemDFF, 1213) itemTXD = engineLoadTXD("items/civilian_clothes.txd") engineImportTXD(itemTXD, 1241) itemDFF = engineLoadDFF("items/civilian_clothes.dff", 1241) engineReplaceModel(itemDFF, 1241) itemTXD = engineLoadTXD("items/standard_clothes.txd") engineImportTXD(itemTXD, 1577) itemDFF = engineLoadDFF("items/standard_clothes.dff", 1577) engineReplaceModel(itemDFF, 1577) itemTXD = engineLoadTXD("items/beans_can.txd") engineImportTXD(itemTXD, 2601) itemDFF = engineLoadDFF("items/beans_can.dff", 2601) engineReplaceModel(itemDFF, 2601) itemTXD = engineLoadTXD("items/first_aid_kit.txd") engineImportTXD(itemTXD, 2891) itemDFF = engineLoadDFF("items/first_aid_kit.dff", 2891) engineReplaceModel(itemDFF, 2891) itemTXD = engineLoadTXD("items/heat_pack.txd") engineImportTXD(itemTXD, 1576) itemDFF = engineLoadDFF("items/heat_pack.dff", 1576) engineReplaceModel(itemDFF, 1576) itemTXD = engineLoadTXD("items/pain_killers.txd") engineImportTXD(itemTXD, 2709) itemDFF = engineLoadDFF("items/pain_killers.dff", 2709) engineReplaceModel(itemDFF, 2709) itemTXD = engineLoadTXD("items/pasta_can.txd") engineImportTXD(itemTXD, 2770) itemDFF = engineLoadDFF("items/pasta_can.dff", 2770) engineReplaceModel(itemDFF, 2770) itemTXD = engineLoadTXD("items/pistol_ammo.txd") engineImportTXD(itemTXD, 3013) itemDFF = engineLoadDFF("items/pistol_ammo.dff", 3013) engineReplaceModel(itemDFF, 3013) itemTXD = engineLoadTXD("items/shotgun_ammo.txd") engineImportTXD(itemTXD, 2358) itemDFF = engineLoadDFF("items/shotgun_ammo.dff", 2358) engineReplaceModel(itemDFF, 2358) itemTXD = engineLoadTXD("items/backpack_small.txd") engineImportTXD(itemTXD, 3026) itemDFF = engineLoadDFF("items/backpack_small.dff", 3026) engineReplaceModel(itemDFF, 3026) itemTXD = engineLoadTXD("items/smg_ammo.txd") engineImportTXD(itemTXD, 2041) itemDFF = engineLoadDFF("items/smg_ammo.dff", 2041) engineReplaceModel(itemDFF, 2041) itemTXD = engineLoadTXD("items/sniper_ammo.txd") engineImportTXD(itemTXD, 2358) itemDFF = engineLoadDFF("items/sniper_ammo.dff", 2358) engineReplaceModel(itemDFF, 2358) itemTXD = engineLoadTXD("items/soda_can.txd") engineImportTXD(itemTXD, 2647) itemDFF = engineLoadDFF("items/soda_can.dff", 2647) engineReplaceModel(itemDFF, 2647) itemTXD = engineLoadTXD("items/water_bottle.txd") engineImportTXD(itemTXD, 2683) itemDFF = engineLoadDFF("items/water_bottle.dff", 2683) engineReplaceModel(itemDFF, 2683) itemTXD = engineLoadTXD("items/assault_ammo.txd") engineImportTXD(itemTXD, 1271) itemDFF = engineLoadDFF("items/assault_ammo.dff", 1271) engineReplaceModel(itemDFF, 1271) itemTXD = engineLoadTXD("items/backpack_alice.txd") engineImportTXD(itemTXD, 1248) itemDFF = engineLoadDFF("items/backpack_alice.dff", 1248) engineReplaceModel(itemDFF, 1248) itemTXD = engineLoadTXD("items/backpack_coyote.txd") engineImportTXD(itemTXD, 1252) itemDFF = engineLoadDFF("items/backpack_coyote.dff", 1252) engineReplaceModel(itemDFF, 1252) itemTXD = engineLoadTXD("items/backpack_czech.txd") engineImportTXD(itemTXD, 1575) itemDFF = engineLoadDFF("items/backpack_czech.dff", 1575) engineReplaceModel(itemDFF, 1575) itemTXD = engineLoadTXD("items/tent.txd") engineImportTXD(itemTXD, 3243) itemDFF = engineLoadDFF("items/tent.dff", 3243) engineReplaceModel(itemDFF, 3243) itemTXD = engineLoadTXD("items/wirefence.txd") engineImportTXD(itemTXD, 983) itemDFF = engineLoadDFF("items/wirefence.dff", 983) engineReplaceModel(itemDFF, 983) weaponTXD = engineLoadTXD("items/camera.txd") engineImportTXD(weaponTXD, 367) weaponDFF = engineLoadDFF("items/camera.dff", 367) engineReplaceModel(weaponDFF, 367) weaponTXD = engineLoadTXD("items/katana.txd") engineImportTXD(weaponTXD, 339) weaponDFF = engineLoadDFF("items/katana.dff", 339) engineReplaceModel(weaponDFF, 339) function playerStatsClientSite() if getElementData(getLocalPlayer(), "logedin") then toggleControl("radar", false) showPlayerHudComponent("clock", false) showPlayerHudComponent("radar", false) showPlayerHudComponent("money", false) showPlayerHudComponent("health", false) showPlayerHudComponent("breath", false) if getElementData(getLocalPlayer(), "Map") >= 1 then toggleControl("radar", true) end if 1 <= getElementData(getLocalPlayer(), "GPS") then showPlayerHudComponent("radar", true) end if 1 <= getElementData(getLocalPlayer(), "Watch") then showPlayerHudComponent("clock", true) end end end setTimer(playerStatsClientSite, 1000, 0) function playerZoom(key, keyState) if key == "n" then if getElementData(getLocalPlayer(), "Night Vision Goggles") > 0 then if nightvision then nightvision = false setCameraGoggleEffect("normal") do local hour, minutes = getTime() if gameplayVariables.enablenight then setClientNight(hour, minutes) end end else nightvision = true setCameraGoggleEffect("nightvision") setFarClipDistance(1000) end end elseif key == "i" and 0 < getElementData(getLocalPlayer(), "Infrared Goggles") then if infaredvision then infaredvision = false setCameraGoggleEffect("normal") if gameplayVariables.enablenight then setClientNight(hour, minutes) end else infaredvision = true setCameraGoggleEffect("thermalvision") if gameplayVariables.enablenight then setClientNight(hour, minutes) end end end end bindKey("n", "down", playerZoom) bindKey("i", "up", playerZoom) function setClientNight(hour, minutes) if hour == 21 then setSkyGradient(0, 100 / minutes, 196 / minutes, 136 / minutes, 170 / minutes, 212 / minutes) setFarClipDistance(120 + (880 - minutes * 14.6)) setFogDistance(-150 + (250 - minutes * 4.16)) elseif hour == 7 then setSkyGradient(0, 1.6 * minutes, 638.9599999999999, 307.35999999999996, 481.1, 748.36) setFarClipDistance(120 + minutes * 14.6) setFogDistance(-150 + minutes * 4.16) elseif hour == 22 or hour == 23 then setSkyGradient(0, 0, 0, 0, 0, 0) setFarClipDistance(120) setFogDistance(-150) elseif hour >= 0 and hour <= 7 then setSkyGradient(0, 0, 0, 0, 0, 0) setFarClipDistance(120) setFogDistance(-150) else setSkyGradient(0, 100, 196, 136, 170, 212) setFarClipDistance(1000) setFogDistance(100) end end function getGroundMaterial(x, y, z) local hit, hitX, hitY, hitZ, hitElement, normalX, normalY, normalZ, material = processLineOfSight(x, y, z, x, y, z - 10, true, false, false, true, false, false, false, false, nil) return material end function isInBuilding(x, y, z) local hit, hitX, hitY, hitZ, hitElement, normalX, normalY, normalZ, material = processLineOfSight(x, y, z, x, y, z + 10, true, false, false, true, false, false, false, false, nil) if hit then return true end return false end function isObjectAroundPlayer2(thePlayer, distance, height) material_value = 0 local x, y, z = getElementPosition(thePlayer) for i = math.random(0, 360), 360 do local nx, ny = getPointFromDistanceRotation(x, y, distance, i) local hit, hitX, hitY, hitZ, hitElement, normalX, normalY, normalZ, material = processLineOfSight(x, y, z + height, nx, ny, z + height, true, false, false, false, false, false, false, false) if material == 0 then material_value = material_value + 1 end if material_value > 40 then return 0, hitX, hitY, hitZ end end return false end function isObjectAroundPlayer(thePlayer, distance, height) local x, y, z = getElementPosition(thePlayer) for i = math.random(0, 360), 360 do local nx, ny = getPointFromDistanceRotation(x, y, distance, i) local hit, hitX, hitY, hitZ, hitElement, normalX, normalY, normalZ, material = processLineOfSight(x, y, z + height, nx, ny, z + height) if material == 0 then return material, hitX, hitY, hitZ end end return false end function getPointFromDistanceRotation(x, y, dist, angle)