-
Posts
24 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by The 4th Doctor
-
-
Yeah, me too! Used all the Blitz products back in the day! @Alienhead Long time, No see or hear for over a month?!?? I'm glad to see you're still alive and doing well! Haven't seen you on discord. And have sent you several messages and received no replies...?!??
-
Ultra Engine 0.9.8 Adds Material Painting, Tessellation, and a First-person Shooter Template
The 4th Doctor commented on Admin's blog entry in Leadwerks News
The First-person Shooter Template isn't available yet for those with the Lua/Ultra engine option correct? -
Man they responded very quickly since yesterday when I had written them that email following up on your suggestion. I hope the response shows some promise and encouragement for you on the possibility of a 3D World Studio 6 development. That is good news and a positive one too!
-
I plan on joining.. See you there!
-
Josh, I had written an email and contacted the development team as you suggested and informed them of the possibility of 3D World Studio 6 development and am hoping they spread the word. As soon as you get that Kickstarter page up let me know so I can put in my contribution to it's development.
-
If you start that Kickstarter campaign anytime soon let me know and I'll go and support it and also spread the word.
-
@Alienhead - You still got that baby out in all that mess?!??
-
I would most 100% buy it guaranteed!!
-
Also.. You bottom comment in your posts: " My job is to make tools you love, with the features you want, and performance you can't live without. "
-
You would be amazed on how many people I have already talked to that talk a lot about your past and current map editors and would be willing to buy them alone just to have a decent map editor to created content for use in modding or other selected 3D engines. I also on occasion use the wicked engine at times.. But the only map editor I found that even remotely comes close to being useful if an unknown map editor called MapScape 2.24 which is ok... But not near the level of polish and functionality that you have created in your map editors. I have been talking to @Alienhead which he has already done some great work for me.. I was going to pay to have a couple plugins made to use with the Leadwerks editor to mainly be able to export map level content to use in my modding. But then I seen the importers and exporters in 3D World Studio and just wondered how difficult it would be to bring them over to use with either Leadwerks or Ultra editors?
-
What is interesting here is that 3D World Studio will not run on windows 10.. However, Josh, your first map editor Cartography Shop 4.1 runs perfectly just fine without any issues whatsoever.. Very strange huh?! However the CSG functions in Cartography Shop 4.1 are not as good as 3D World Studio's though. Examples below... Cartography Shop 4.1 shows the CSG operation failed to successfully carve out the cylinder brush in the hollow box brush resulting in missing sections of the box brush mesh. 3D World Studio 5.6 show the cylinder carve was successful, but has some faces showing clipping where the CSG operation occurred but the texture mapping appears to be ok though. Also, I got 3D World Studio to run in a VM machine ( Virtual Box by Oracle ) with Windows XP SP3 installed on the Virtual machine. The only drawl back to this method to get it to run on my windows 10 PC is the camera view in the perspective view runs crazy and you cannot control the camera movements which makes it difficult to use still.. And lastly, we have Leadwerks Editor 4.6 which show the CSG carve 100% successful with no clipping of the brush box mesh and all texture mapping 100% correct!! I do wish though Josh, that you would of included the imports and exports plugins that are present in 3D World Studio so one could use the Leadwerks editor 4.6 to be able to export a map level created in Leadwerks editor to either .X or .DBO format just like 3D World Studio has! There is other applications I use and this would be awesome to use Leadwerks CSG editor to mod maps with as I am use to it and prefer it over the many others out there. How difficult would it be to bring those import & export plugins from 3D World Studio over to the Leadwerks editor and use them to import and export content map levels out of the Leadwerks editor?
-
-
-
In need of at least 2 plug-ins to be developed for me for either Ultra or Leadwerks.. If anyone is interested.. I pay via either Venmo or CashApp as that payment method is easier than Paypal which I am not a huge fan of.. Anyone interested just simply send me a private message to learn more about the plugins details or hit me up on discord and will discuss the same. Thanks to all that replies and God bless! Opportunity has been filled!
-
-
Good afternoon Ladies and Gentlemen, Due to a current business venture I have going on right now with my friend and business colleague.. I am not able to dedicate enough time to my gaming project to write the much needed custom Lua scripts for both character AI and game functionality. So I gave it some thought on it and decided that I would offer a unique opportunity to a talented individual to write some custom Lua scripts for my gaming project and would compensate them well for their time and talent. If anyone might be interested in this opportunity please comment below and we will discuss it further. Many thanks in advance for your time in responding and helping out with the project's development. God bless all!
-
Josh's Turret AI Script not working...
The 4th Doctor replied to The 4th Doctor's topic in Programming
I'll give it a try and see what happens. Thanks for your quick reply Josh! God bless.. -
Good morning All, Just wanted to ask if any of you kind folks happen to know if Josh ever managed to complete his Turret AI script as I had copied it and tried to use it but with errors unfortunately... I keep getting the following error on his script -----> " Script Error - attempt to call method 'GetDistance' (a nil value) - Line 83 Does anyone know if Josh ever fixed and completed this script or no?! Or if one of you good gentlemen/ladies might have a turret AI script of your own or know where I might find one to use for a gun turret in my level would be very much appreciated indeed! Here is the same code I found on Josh's blog here ------> Building Turret AI: Part 2 As a convenience I have posted Josh's code below also! Thanks and God bless all! --Public Script.target = nil--enemy to shoot Script.range = 20 Script.health=100 Script.projectilepath = "Prefabs/Projectiles/tracer.pfb" Script.shoot1sound=""--path "Fire 1 sound" "Wav file (*.wav):wav|Sound" Script.shoot2sound=""--path "Fire 2 sound" "Wav file (*.wav):wav|Sound" Script.shoot3sound=""--path "Fire 3 sound" "Wav file (*.wav):wav|Sound" --Private Script.lastfiretime=0 Script.mode = "idle" Script.lastsearchtime=0 Script.searchfrequency = 500 Script.firefrequency = 50 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.turret = self.entity:FindChild("turret") --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 TurretSearchHook(entity,extra) if entity~=extra then if entity.script~=nil 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 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.health>=0 then local currenttime = Time:GetCurrent() --Stop shooting if target is dead if self.target~=nil then if self.target.health<=0 then self.target = nil end end --Search for target 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,"TurretSearchHook",self.entity) end end --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 --Motion tracking if self.turret~=nil then local p0 = self.turret:GetPosition(true) local p1 = self.target.entity:GetAABB().center local yplane = p1 - p0 yplane.y=0 self.turret: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:SetPosition(self.muzzle:GetPosition(true),true) bullet:SetRotation(self.muzzle:GetRotation(true),true) 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) end end end end end end self:UpdateMuzzleFlash() 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
-
Thank you gentlemen for your very kind assistance here. I have tried one of those scripts and the Medkit is working just fine! I am still learning the Lua language and see it have similarities to that of C which I use to code in a very long time ago! I'm a little rusty mind you.. But in time I'm sure I'll catch on to it and know my way around better. I sincerely appreciate your very kind help and quick response. God bless!
-
Good afternoon all, I have recently been playing around with the Leadwerks engine 4.6 and working with the AI & Events.map that is a FPS demo game. I have since bought all the asset packs from Leadwerks on Steam and downloaded a medical kit and tried to look around for a lua script that will add/replenish the player's health after he has taken damage from the crawler enemies in the demo level. I couldn't find any script like that available in the workshop and so far here in the forums unless I haven't looked good enough.. :-p I had tried the ChatGPT to see what it could come up with and got the following for this below.. If this doesn't look right, or it will not work well, or needs corrected, could someone kind enough show the proper way this should be written or better yet.. If someone already has a lua script for this exact thing that would be appreciated too! The Lua Script from ChatGPT for this: -- Define variables (assuming these are already defined) local player = { x = 100, y = 100, speed = 100, health = 100, maxHealth = 100 } local healthPickup = { x = 50, y = 50, radius = 10, active = true } -- Function to check if player collides with health pickup local function checkCollision(px, py, pr, hx, hy, hr) local dx = px - hx local dy = py - hy local distance = math.sqrt(dx * dx + dy * dy) return distance < pr + hr end -- Function to handle player picking up health local function pickupHealth() if healthPickup.active and checkCollision(player.x, player.y, 5, healthPickup.x, healthPickup.y, healthPickup.radius) then if player.health < player.maxHealth then player.health = player.health + 25 -- Increase health by 25 (adjust as needed) if player.health > player.maxHealth then player.health = player.maxHealth -- Cap health at maxHealth end healthPickup.active = false -- Deactivate the health pickup after it's been used end end end -- Update function (called every frame) function love.update(dt) pickupHealth() -- Check for health pickup -- Example movement for player (replace with your own player movement logic) if love.keyboard.isDown("right") then player.x = player.x + player.speed * dt elseif love.keyboard.isDown("left") then player.x = player.x - player.speed * dt end -- Example code for checking player's health if player.health <= 0 then -- Game over or respawn logic can go here player.health = player.maxHealth end end -- Drawing function (called every frame) function love.draw() -- Draw player love.graphics.circle("fill", player.x, player.y, 5) -- Draw health pickup if it's active if healthPickup.active then love.graphics.circle("line", healthPickup.x, healthPickup.y, healthPickup.radius) end -- Display player's health love.graphics.print("Health: " .. player.health, 10, 10) end