Jump to content

burgelkat

Members
  • Posts

    203
  • Joined

  • Last visited

Everything posted by burgelkat

  1. Hi , Top down shooting Game I tried to create during the summer holidays. I wanted to introduce it to the next event, something like "Halloweeen Event" by Josh. At least my Light version. I called the project "Blue Max". Maybe someone still remembers the old game on the Atari 2600. A screenshot I had set on Discord. Light version because my programming skills are very limited and I am still learning and trying hard so there are still bugs in it . You could also "pimp it up". It based on Joshs Game "Astroid" Other wise, I had the days also thought something like "International Karate" but with new Game Engine
  2. if i remeber correct this was c++ if it is possible and someone translate it in lua (i am to bad) this was also a nice effect
  3. it looks like I'm very creative today. Yeah, I have a welder. mhm .. ok .. and what now?
  4. no not yet. But I think if you invest more time, you get a nice explosion. My explosion was only a quick version. I have to spend more time in this. maybe later
  5. https://vfx.productioncrate.com/explosion-vfx-categories.html#_ga=2.63300844.238680612.1515842131-1939002152.1515230501 try this webside.. than make a sprite sheet with the explosion
  6. yes thats the way it is so much fun to create spritesheets for this .. I do not know about you, but I play games now with completely different eyes. "oh, I could try that in leadwerks too .."
  7. burgelkat

    Bird Effect

    Hi, Here is an effect to bring more life into the landscape. I used a sprite sheet with an emitter ..
  8. Here the sprite sheet if someone will use it thx josh will try your hints
  9. ok looks with that nice. at the moment only single-shot looks good .. i have to build a spritesheet without a bullet shell so thats my solution for the moment FPSGun.lua
  10. ok something like this .. (its not perfekt) https://www.dropbox.com/s/atjdn8xc7ef5os8/BehindEnemyLines 2018-03-16 09-19-46-90.avi?dl=0
  11. mhm or the problem is because we create the sprite and hide it .. so the material on the sprite is set and run the spritesheet pictures in the backround .. if i now show the sprite and at this moment the 4th picture is displayed, then it looks bad
  12. thats a good video .. but how can i control the pictures in a sprite sheet? the spritesheet shader like the "firepit" shader from shadmar starts random in the individual pictures of a sprite sheets. In the case of fire this is not a problem, with explosions or with Gun Effects it should begin however with the first picture. I have such a spritesheet (muzzleflash .. a bullet and smokes but it does not start on the first picture. And creating an effect with maybe 20 seperatly bictures is a bit exhausting (I hope you understand my english )
  13. i read this post https://www.leadwerks.com/community/topic/9862-small-entities-fall-through-terrain/ buit if i use force i have to add a Mass so rey cast for this not work
  14. Hi , i will share my solution for the Mortar. Mortar = a Pivot put there this script in (MortarTracking.lua) import "Scripts/Functions/ReleaseTableObjects.lua" import "Scripts/Functions/GetEntityNeighbors.lua" Script.enabled=true--bool "Enabled" Script.trackingrange = 10 Script.tracking=false function Script:Enable()--in if self.enabled==false then self.enabled=true self.component:CallOutputs("Enable") end end function Script:Disable()--in if self.enabled then self.enabled=false self.component:CallOutputs("Disable") end end function Script:UpdatePhysics() if self.enabled then -- load entities within range (5000) of self.entity into "entities", only load entities that have scripts attached local entities = GetEntityNeighbors(self.entity,5000,true) local k,entity -- loop thrrough the result of "entities". k = key, entity = result for k,entity in pairs(entities) do -- only select entities with teamid == 1 ("good") if entity.script.teamid == 1 then -- and if the entity has at least 1 health remaining if entity.script.health>0 then local d = self.entity:GetDistance(entity) self.target = entity end local pos = self.entity:GetPosition() local targetpos = self.target:GetPosition() --if math.abs(targetpos.y-pos.y)<1.5 then if pos:xz():DistanceToPoint(targetpos:xz())<self.trackingrange then self.tracking=false else self.tracking=true end end end if self.tracking==true then self.entity:Point(self.target,2,Time:GetSpeed()*1.5); end end end in Mortar Body = the Model put in the script (Mortar.lua) import "Scripts/Functions/ReleaseTableObjects.lua" import "Scripts/Functions/GetEntityNeighbors.lua" Script.enabled=true--bool "Enabled" --Public Script.target = nil--enemy to shoot Script.teamid=3--choice "Team" "Neutral,Good,Bad" Script.range = 5000 Script.health=100 Script.projectilepath = "Prefabs/projectiles/MortarAmmo.pfb" Script.shoot1sound=""--path "File" "All Supported Files:ogg,wav;Waveform Audio File Format (*.wav):wav;Ogg Vorbis (*.ogg):ogg|Sound" Script.shoot2sound=""--path "File" "All Supported Files:ogg,wav;Waveform Audio File Format (*.wav):wav;Ogg Vorbis (*.ogg):ogg|Sound" Script.shoot3sound=""--path "File" "All Supported Files:ogg,wav;Waveform Audio File Format (*.wav):wav;Ogg Vorbis (*.ogg):ogg|Sound" --Private Script.lastfiretime=0 Script.mode = "idle" Script.lastsearchtime = 0 Script.searchfrequency = 500 Script.firefrequency = 4000 Script.Force1 = Vec3(0,1500,0) Script.Force2 = Vec3(0,2500,0) Script.Force3 = Vec3(0,3000,0) Script.Force4 = Vec3(0,3500,0) Script.range0 = 20 Script.range1 = 30 Script.range2 = 60 Script.range3 = 90 Script.range4 = 110 function Script:Start() --Load sounds self.sound = {} self.sound.shoot = {} if self.shoot1sound~="" then self.sound.shoot[1] = Sound:Load(self.shoot1sound) end if self.shoot2sound~="" then self.sound.shoot[2] = Sound:Load(self.shoot2sound) end if self.shoot3sound~="" then self.sound.shoot[3] = Sound:Load(self.shoot3sound) end self.projectile = Prefab:Load(self.projectilepath) if self.projectile~=nil then self.projectile:Hide() end self.Mortar = self.entity:FindChild("Mortar") --Add muzzleflash to gun self.muzzle = self.entity:FindChild("muzzle") if self.muzzle~=nil then local mtl=Material:Create() mtl:SetBlendMode(5) self.muzzle:SetMaterial(mtl) mtl:Release() self.muzzleflash = Sprite:Create() self.muzzleflash:SetSize(0.35,0.35) local pos=self.muzzle:GetPosition(true) self.muzzleflash:SetPosition(pos,true) self.muzzleflash:SetParent(self.muzzle,true) mtl = Material:Load("Materials/Effects/muzzleflash.mat") if mtl then self.muzzleflash:SetMaterial(mtl) mtl:Release() mtl=nil end local light = PointLight:Create() light:SetRange(5) light:SetColor(1,0.75,0) light:SetParent(self.muzzleflash,flash) if light.world:GetLightQuality()<2 then light:SetShadowMode(0) end self.muzzleflash:Hide() end end function Script:Release() if self.projectile~=nil then self.projectile:Release() self.projectile = nil end end function MortarSearchHook(entity,extra) if entity~=extra then if entity.script~=nil then if entity.script.teamid == 1 then if type(entity.script.health)=="number" then if entity.script.health>0 then local d = extra:GetDistance(entity) if d<extra.script.range then if extra.script.target~=nil then if extra.script:GetDistance(extra.script.target)>d then if extra.script:GetTargetVisible(entity.script) then extra.script.target = entity.script end end else if extra.script:GetTargetVisible(entity.script) then extra.script.target = entity.script end end end end end end end end end function Script:GetTargetVisible(target) if target==nil then target = self.target end if target==nil then return false end local pickinfo = PickInfo() local p0 = self.entity:GetAABB().center local p1 = target.entity:GetAABB().center local pickmode0 = self.entity:GetPickMode() local pickmode1 = target.entity:GetPickMode() self.entity:SetPickMode(0) target.entity:SetPickMode(0) local result = not self.entity.world:Pick(p0,p1,pickinfo,0,false,Collision.LineOfSight) self.entity:SetPickMode(pickmode0) target.entity:SetPickMode(pickmode1) return result end function Script:UpdateWorld() if self.enabled==true then if self.health>=0 then self.component:CallOutputs("Online") local currenttime = Time:GetCurrent() --Stop shooting if target is dead if self.target~=nil then if self.target.health<=0 then self.component:CallOutputs("Idle") self.target = nil end end --Search for target if self.enabled==true then if self.target==nil then if currenttime - self.lastsearchtime > self.searchfrequency then self.lastsearchtime = currenttime local pos = self.entity:GetPosition(true) local aabb = AABB(pos - Vec3(self.range), pos + Vec3(self.range)) self.entity.world:ForEachEntityInAABBDo(aabb,"MortarSearchHook",self.entity) end end end ---------------------deactivated because the Mortar should fire if vegetation hides you----------------- --Continuous visibility test --[[ if self.target~=nil then if currenttime - self.lastsearchtime > self.searchfrequency then self.lastsearchtime = currenttime if self:GetTargetVisible(self.target)==false then self.target = nil return end end end]] ---------------------------------------------------------------------------------------------------------- if self.target~=nil then ---------------------------no need for this (i think)--------------------------------------------------------------- --[[Motion tracking if self.Mortar~=nil then local p0 = self.Mortar:GetPosition(true) local p1 = self.target.entity:GetAABB().center local yplane = p1 - p0 yplane.y=0 self.Mortar:AlignToVector(yplane,1,0.1 / Time:GetSpeed(),0) end]] ---------------------------------------------------------------------------------------------------------- --Shoot if self.muzzle~=nil and self.projectile~=nil then if currenttime - self.lastfiretime > self.firefrequency then self.lastfiretime = currenttime local bullet = self.projectile:Instance() self.muzzleflash:Show() self.muzzleflash:EmitSound(self.sound.shoot[#self.sound.shoot]) self.muzzleflash:SetAngle(math.random(0,360)) self.muzzleflashtime=currenttime if bullet~=nil then bullet:Show() bullet:SetFriction(1000,1000) bullet:SetCollisionType(Collision.Projectile) bullet:SetPosition(self.muzzle:GetPosition(true),true) bullet:SetRotation(self.muzzle:GetRotation(true),true) targetpos = self.target.entity:GetPosition() pos1 = self.entity:GetPosition(true) --if math.abs(targetpos.y-pos1.y)<1.5 then -------------------------------------------------Fire Range--------------------------------------------------------------------- if pos1:xz():DistanceToPoint(targetpos:xz())<self.range1 then System:Print("1") bullet:AddForce(self.Force1) else if pos1:xz():DistanceToPoint(targetpos:xz())<self.range2 then System:Print("2") bullet:AddForce(self.Force2) else if pos1:xz():DistanceToPoint(targetpos:xz())<self.range3 then System:Print("3") bullet:AddForce(self.Force4) else if pos1:xz():DistanceToPoint(targetpos:xz())<self.range4 then System:Print("4") bullet:AddForce(self.Force4) else return 100000 end end end end -------------------------------------------------------------------------------------------------------------------------------- bullet:SetMass(0.4) if bullet.script~=nil then bullet.script.owner = self if type(bullet.script.Enable)=="function" then bullet.script:Enable() end bullet:Turn(Math:Random(-4,4),Math:Random(-4,4),0) end end end end end end if self.health<=0 then self.component:CallOutputs("Offline") end self:UpdateMuzzleFlash() end end function Script:UpdateMuzzleFlash() if self.muzzleflashtime then if Time:GetCurrent()-self.muzzleflashtime<30 then self.muzzleflash:Show() else self.muzzleflash:Hide() end end end function Script:Online()--in if self.enabled==false then self.component:CallOutputs("Online") self.enabled=true end end function Script:Offline()--in if self.enabled==true then self.component:CallOutputs("Offline") self.enabled=false end end for the Ammo search a model like my on http://www.cadnav.com/3d-models/model-42383.html and put the script "MortarAmmo" in Script.movespeed=1000 Script.pickradius=0 Script.damage=10 Script.lifetime=20000 Script.enabled=false--bool "Enabled" function Script:Start() self.sound={} self.sound.ricochet={} self.sound.ricochet[1]=Sound:Load("Sound/Weapons/Explosion.wav") self.sound.ricochet[2]=Sound:Load("Sound/Weapons/Explosion.wav") self.sound.ricochet[3]=Sound:Load("Sound/Weapons/Explosion.wav") self.starttime=Time:GetCurrent() self.emitter={} --Debris emitter - This will throw chunks off of walls and make it look like they are breaking self.emitter[0]=Emitter:Create() self.emitter[0]:SetCollisionType(Collision.Prop)--Enables particle bouncing self.emitter[0]:SetMaterial("Materials/Effects/smoke.mat") self.emitter[0]:SetEmissionVolume(0.05,0.05,0.05) self.emitter[0]:SetColor(0.1,0.1,0.1,1) self.emitter[0]:SetVelocity(5.5,15,5.5,1) self.emitter[0]:SetParticleCount(20) self.emitter[0]:SetReleaseQuantity(20) self.emitter[0]:SetMaxScale(0.9) self.emitter[0]:SetDuration(1500) self.emitter[0]:SetAcceleration(0,-12,0) self.emitter[0]:SetLoopMode(false) self.emitter[0]:Hide() --Smoke emitter - This will provide a soft dust effect around bullet impacts self.emitter[1]=Emitter:Create() self.emitter[1]:SetColor(1,1,1,0.25) self.emitter[1]:SetMaterial("Materials/Effects/smoke.mat") self.emitter[1]:SetEmissionVolume(0.1,0.1,0.1) self.emitter[1]:SetVelocity(0.3,0.3,0.3,1) self.emitter[1]:SetParticleCount(8) self.emitter[1]:SetReleaseQuantity(3) self.emitter[1]:SetMaxScale(15) self.emitter[1]:SetDuration(3800) self.emitter[1]:AddScaleControlPoint(0,0.5) self.emitter[1]:AddScaleControlPoint(1,1) self.emitter[1]:SetRotationSpeed(10) self.emitter[1]:SetLoopMode(false) self.emitter[1]:Hide() --Smoke emitter - This will provide a soft dust effect around bullet impacts self.emitter[2]=Emitter:Create() self.emitter[2]:SetColor(1,1,1,0.25) self.emitter[2]:SetMaterial("Prefabs/Effects/Explosion/explosion.mat") self.emitter[2]:SetEmissionVolume(0.1,0.1,0.1) self.emitter[2]:SetVelocity(0.3,0.3,0.3,1) self.emitter[2]:SetParticleCount(1) self.emitter[2]:SetReleaseQuantity(1) self.emitter[2]:SetMaxScale(25) self.emitter[2]:SetDuration(2500) self.emitter[2]:AddScaleControlPoint(0,0.5) self.emitter[2]:AddScaleControlPoint(1,1) self.emitter[2]:SetRotationSpeed(10) self.emitter[2]:SetLoopMode(false) self.emitter[2]:Hide() end function Script:Enable() if self.enabled==false then self.enabled=true end end function Script:FindScriptedParent(entity,func) while entity~=nil do if entity.script then if type(entity.script[func])=="function" then return entity end end entity = entity:GetParent() end return nil end function Script:UpdateWorld() if self.enabled==false then return end if self.entity:Hidden() then return end local pickinfo=PickInfo() local pos = self.entity:GetPosition(true) local targetpos = Transform:Point(0,0,self.movespeed/60.0 * Time:GetSpeed(),self.entity,nil) local result = self.entity.world:Pick(pos,targetpos,pickinfo,self.pickradius,true,Collision.Projectile) if result then local enemy = self:FindScriptedParent(pickinfo.entity,"Hurt") if enemy then if self.owner then --if self.owner.teamid==enemy.script.teamid then -- result=false --end end if result then if enemy.script.health>0 then enemy.script:Hurt(self.damage,self.owner) end end end if result then self:Explode() --Bullet mark decal local mtl local scale = 2 if enemy~=nil then mtl = Material:Load("Materials/Decals/wound.mat") scale = 0.1 else if pickinfo.surface~=nil then local pickedmaterial = pickinfo.surface:GetMaterial() if pickedmaterial~=nil then rendermode = pickedmaterial:GetDecalMode() end end mtl = Material:Load("Materials/Decals/BombCrater.mat") end local decal = Decal:Create(mtl) decal:AlignToVector(pickinfo.normal,2) decal:Turn(0,0,Math:Random(0,360)) decal:SetScript("Scripts/Objects/Effects/BulletMark.lua") if mtl~=nil then mtl:Release() end decal:SetPosition(pickinfo.position) decal:SetParent(pickinfo.entity) --Apply global scaling local mat = decal:GetMatrix() mat[0] = mat[0]:Normalize() * scale mat[1] = mat[1]:Normalize() * scale mat[2] = mat[2]:Normalize() * scale decal:SetMatrix(mat) decal:EmitSound(self.sound.ricochet[math.random(#self.sound.ricochet)],30) self.entity:Release() else self.entity:SetPosition(targetpos) end else self.entity:SetPosition(targetpos) end if Time:GetCurrent()-self.starttime>self.lifetime then self.entity:Release() end end function Script:Explode() self.entity:EmitSound(self.sound.ricochet[math.random(#self.sound.ricochet)],30) self.emitter[0]:Show() self.emitter[0]:SetPosition(self.entity:GetPosition(true)) self.emitter[0]:Reset() self.emitter[0]:Play() self.emitter[1]:Show() self.emitter[1]:Reset() self.emitter[1]:SetPosition(self.entity:GetPosition(true)) self.emitter[1]:Play() self.emitter[2]:Show() self.emitter[2]:Reset() self.emitter[2]:SetPosition(self.entity:GetPosition(true)) self.emitter[2]:Play() end function Script:Collision(entity, position, normal, speed) self:Explode() end ok so far so good i hope you have fun. at the moment i think the scripts can be better written... for sure the Ammo script because it use the raycast to detect impact. i build in a collision line additional but this is not a perfect solution because the decal works only on pick ok changes from you are welcome in this post
  15. Sorry for the question in this old post this script search every near entity is this right? If i use this on my mortar then it shoots also the merc soldier and not only enemy (player) so i have to change the „turretSearchHook“ is this right?
  16. How did. you import it? Maybe a dump question
  17. thanks Aggror for this hint i think i know where i can do this in the script. by the way thats the prjectile script: Script.movespeed=1000 Script.pickradius=0 Script.damage=10 Script.lifetime=20000 Script.enabled=false--bool "Enabled" function Script:Start() self.sound={} self.sound.ricochet={} self.sound.ricochet[1]=Sound:Load("Sound/Weapons/Explosion.wav") self.sound.ricochet[2]=Sound:Load("Sound/Weapons/Explosion.wav") self.sound.ricochet[3]=Sound:Load("Sound/Weapons/Explosion.wav") self.starttime=Time:GetCurrent() self.emitter={} --Debris emitter - This will throw chunks off of walls and make it look like they are breaking self.emitter[0]=Emitter:Create() self.emitter[0]:SetCollisionType(Collision.Prop)--Enables particle bouncing self.emitter[0]:SetMaterial("Materials/Effects/smoke.mat") self.emitter[0]:SetEmissionVolume(0.05,0.05,0.05) self.emitter[0]:SetColor(0.1,0.1,0.1,1) self.emitter[0]:SetVelocity(5.5,15,5.5,1) self.emitter[0]:SetParticleCount(5) self.emitter[0]:SetReleaseQuantity(5) self.emitter[0]:SetMaxScale(0.9) self.emitter[0]:SetDuration(1500) self.emitter[0]:SetAcceleration(0,-12,0) self.emitter[0]:SetLoopMode(false) self.emitter[0]:Hide() --Smoke emitter - This will provide a soft dust effect around bullet impacts self.emitter[1]=Emitter:Create() self.emitter[1]:SetColor(1,1,1,0.25) self.emitter[1]:SetMaterial("Materials/Effects/smoke.mat") self.emitter[1]:SetEmissionVolume(0.1,0.1,0.1) self.emitter[1]:SetVelocity(0.3,0.3,0.3,1) self.emitter[1]:SetParticleCount(8) self.emitter[1]:SetReleaseQuantity(3) self.emitter[1]:SetMaxScale(15) self.emitter[1]:SetDuration(3800) self.emitter[1]:AddScaleControlPoint(0,0.5) self.emitter[1]:AddScaleControlPoint(1,1) self.emitter[1]:SetRotationSpeed(10) self.emitter[1]:SetLoopMode(false) self.emitter[1]:Hide() --Smoke emitter - This will provide a soft dust effect around bullet impacts self.emitter[2]=Emitter:Create() self.emitter[2]:SetColor(1,1,1,0.25) self.emitter[2]:SetMaterial("Prefabs/Effects/Explosion/explosion.mat") self.emitter[2]:SetEmissionVolume(0.1,0.1,0.1) self.emitter[2]:SetVelocity(0.3,0.3,0.3,1) self.emitter[2]:SetParticleCount(1) self.emitter[2]:SetReleaseQuantity(1) self.emitter[2]:SetMaxScale(25) self.emitter[2]:SetDuration(2500) self.emitter[2]:AddScaleControlPoint(0,0.5) self.emitter[2]:AddScaleControlPoint(1,1) --self.emitter[2]:SetRotationSpeed(10) self.emitter[2]:SetLoopMode(false) self.emitter[2]:Hide() end function Script:Enable()--in if self.enabled==false then self.enabled=true end end function Script:FindScriptedParent(entity,func) while entity~=nil do if entity.script then if type(entity.script[func])=="function" then return entity end end entity = entity:GetParent() end return nil end function Script:UpdateWorld() if self.enabled==false then return end if self.entity:Hidden() then return end local pickinfo=PickInfo() local pos = self.entity:GetPosition(true) local targetpos = Transform:Point(0,0,self.movespeed/60.0 * Time:GetSpeed(),self.entity,nil) local result = self.entity.world:Pick(pos,targetpos,pickinfo,self.pickradius,true,Collision.Projectile) if result then local enemy = self:FindScriptedParent(pickinfo.entity,"Hurt") if enemy then if self.owner then --if self.owner.teamid==enemy.script.teamid then -- result=false --end end if result then if enemy.script.health>0 then enemy.script:Hurt(self.damage,self.owner) end end end if result then self:Explode() --Bullet mark decal local mtl local scale = 2 if enemy~=nil then mtl = Material:Load("Materials/Decals/wound.mat") scale = 0.1 else if pickinfo.surface~=nil then local pickedmaterial = pickinfo.surface:GetMaterial() if pickedmaterial~=nil then rendermode = pickedmaterial:GetDecalMode() end end mtl = Material:Load("Materials/Decals/BombCrater.mat") end local decal = Decal:Create(mtl) decal:AlignToVector(pickinfo.normal,2) decal:Turn(0,0,Math:Random(0,360)) decal:SetScript("Scripts/Objects/Effects/BulletMark.lua") if mtl~=nil then mtl:Release() end decal:SetPosition(pickinfo.position) decal:SetParent(pickinfo.entity) --Apply global scaling local mat = decal:GetMatrix() mat[0] = mat[0]:Normalize() * scale mat[1] = mat[1]:Normalize() * scale mat[2] = mat[2]:Normalize() * scale decal:SetMatrix(mat) decal:EmitSound(self.sound.ricochet[math.random(#self.sound.ricochet)],30) self.entity:Release() else self.entity:SetPosition(targetpos) end else self.entity:SetPosition(targetpos) end if Time:GetCurrent()-self.starttime>self.lifetime then self.entity:Release() end end function Script:Explode() self.emitter[0]:Show() self.emitter[0]:SetPosition(self.entity:GetPosition(true)) self.emitter[0]:Reset() self.emitter[0]:Play() self.emitter[1]:Show() self.emitter[1]:Reset() self.emitter[1]:SetPosition(self.entity:GetPosition(true)) self.emitter[1]:Play() self.emitter[2]:Show() self.emitter[2]:Reset() self.emitter[2]:SetPosition(self.entity:GetPosition(true)) self.emitter[2]:Play() end
  18. Hi, the last weeks in office are very bussy. But today i have some time to work on my project. In Akt 3 i would imlement a Mortar. I found a nice free model that i rework in blender and exported as mdl file also i searched for some sounds and mixed them together. For the sound i use "Audacity" becaus i get some errors in leadwerks with this sound i converted sounds with "Audio online converter" then i work on the scirpts. i use some parts from einlanders grenade script. and changed the projectile script and saved it to Mortal Ammo script. at the moment it is a little buggy and i dont know what i have to chage. i think the problem is in this part: if bullet~=nil then bullet:Show() bullet:SetFriction(10000,10000) bullet:SetCollisionType(Collision.Projectile) bullet:SetPosition(self.muzzle:GetPosition(true),true) bullet:SetRotation(self.muzzle:GetRotation(true),true) bullet:SetMass(1) Force = Vec3(0,3000,0) bullet:AddForce(Force) if bullet.script~=nil then bullet.script.owner = self if type(bullet.script.Enable)=="function" then bullet.script:Enable() end bullet:Turn(Math:Random(-3,3),Math:Random(-3,3),0) the bullet is not always transformed into an explosion when it hits the ground. If it hits the player, then it always works. here is the result. Sometimes it is funny how crazy the bullet goes. But now i have to look video with my daughter so i will work later on it. if anyone knows how i align the force at the distance of the player, about help or hints i would be glad. Also on a note why the bullet does not always explode on the ground, I would be glad. As always sorry for my english. By the way Act 3 is progressing. Below are a few pictures.
  19. Creating a river with the Spline Tool from Aggror. I love this feature. Too bad that there is no possibility to see the result in the editor Edit: and many thanks for shadmars great shader sorry forget this
  20. mhm i geht now this error in steam and leadwerks will not run.. i dont know if bitdefender deleted a file? for 2 days everythins funktion fine
  21. Yes, at the moment i make some fine tunig in the Map "intro" (--> now if the Helicopter lift up the C4 explode) . Looks really nice in my eyes ) and Akt1 Part 2 i will first finish clean with the journal text. After that i can upload it to this
×
×
  • Create New...