Jump to content

AggrorJorn

Members
  • Posts

    4,816
  • Joined

  • Last visited

Posts posted by AggrorJorn

  1. @Josh: that's so awesome and quite a coincedence.

     

    I'm actually working on a script to get the doors to open dynamicly, just like in the Penumbra series. I was planning to do this as well for the drawers you are making now.

     

    This script is for the entity or is it an adeption to the fpscontroller?

  2. I'm trying to push an object forward. To do this I use the AddForceAddPoint command. I've searched the rest of the forum and I kind a get stuck with difining the force.

    	pick=CameraPick(camera,Vec3(GraphicsWidth()/2,GraphicsHeight()/2,2.0),0,0)
    if pick~=nil then
    	if MouseDown(1)==1 then
    		centerY=(GraphicsHeight()/2)
    		if (centerY >= currentY) then 
    			texty = 1
    			campos = EntityPosition(fw.main.camera);
    			force= Vec3(pick.x-campos.x,pick.y-campos.y,pick.z-campos.z)
    			NormalizeVec3(force);
    			force.x=10
    			force.y=0
    			force.z=0
    			entity:AddForceAtPoint(force,pick.entity)

     

    When I hold down the left mouse button and try to move a box, I recieve the error: index for obect is a valid filed or method.

    Can someone tell me what I'm doing wrong here?

  3. Now that I have a direction I can look into I can start puzzeling. I've created this sofar:

     

    before main loop:

    currentY = MouseY()

    main loop:

    centerY=(GraphicsHeight()/2)
    		if (centerY >= currentY) then 
    			texty = 1
    		elseif (centerY <= currentY) then 
    			texty = 2
    		else
    			texty = 0			end

     

    after the update:

    fw:Update()
    
    --get the current Mouse Y position	
    currentY = MouseY()

  4. I assume you are going to buy a license of the program?

     

    most of the tutorial on the leadwerks frontpage should help you get going for a few weeks. After that. try to make some content, (models, animations). If you are going for the sdk with LUA integration then I can suggest looking around in the example levels to see how lua files are set up. when you are familiar with programming you could try to start with very short game scripts or so. Also, make good use of the forum, don't hesitate to ask here and there.

  5. it doesn't appear when saving. It happens when I press run. I normally press run to update the file so that every instance in the scene gets the new code. I could use the save button and nothing is wrong. I just wonderd what happens with the code when I run the script (F5). It does this every time I run it.

  6. The firepit code:

    require("scripts/class")
    
    local class=CreateClass(...)
    class.sound=LoadSound('abstract::campfire_01_15.wav')
    
    function class:CreateObject(model)
    local object=self.super:CreateObject(model)
    
    object.model.aabb.x0=-5
    object.model.aabb.x1=5
    object.model.aabb.y0=-5
    object.model.aabb.y1=5
    object.model.aabb.z0=-5
    object.model.aabb.z1=5
    
    --Create light
    object.light=CreatePointLight(4,model)
    object.light:SetColorf(1,0.6,0.25,1,1)
    object.light:SetPositionf(0,0.8,0,0)
    object.light:SetShadowOffset(0,0.91,0)
    object.light:SetShadowmapSize(1024)
    
    --Create emitters
    if world_transparency~=nil then
    	if world_main~=nil then
    		SetWorld(world_transparency)
    
    		object.heathaze=CreateEmitter(10,4500,Vec3(0,1,0),0,object.model)
    		object.heathaze:SetPositionf(-136,52,-662,0)
    		object.material_heathaze=LoadMaterial('abstract::heathaze.mat',0)
    		object.heathaze:Paint(object.material_heathaze,0)
    		object.heathaze:SetRadius(0.25,0.25)
    		object.heathaze:SetWaver(1)
    		object.heathaze:SetOrder(1,0)
    		object.heathaze:SetVelocity(Vec3(0,0.375,0),Vec3(0,0.05,0))
    		object.heathaze:SetRotationSpeed(0.05)
    		object.heathaze:SetArea(Vec3(0.2,0.0,0.2))
    		object.heathaze:SetPositionf(0,0.50,0,0)
    
    		object.fire=CreateEmitter(25,750,Vec3(0,1,0),0,object.model)
    		object.fire:SetPositionf(0,0.25,0,0)
    		object.fire:Paint(LoadMaterial('abstract::fire.mat'),0)
    		object.fire:SetRadius(0.4,0.1)
    		object.fire:SetColorf(0.2,0.2,0.2,1,1)
    		object.fire:SetWaver(1)
    		object.fire:SetVelocity(Vec3(0,1.5,0),Vec3(0,0.05,0))
    		object.fire:SetRotationSpeed(0.01)
    		object.fire:SetArea(Vec3(0.2,0.1,0.2))
    
    		object.sparks=CreateEmitter(5,800,Vec3(0,1,0),0,object.model)
    		object.sparks:Paint(LoadMaterial('abstract::fire.mat'),0)
    		object.sparks:SetRadius(0.01,0.01)
    		object.sparks:SetColorf(1,0.6,0.25,1,1)
    		object.sparks:SetVelocity(Vec3(0,1.5,0),Vec3(0.05,0.5,0.05))
    		object.sparks:SetRotationSpeed(0.1)
    		object.sparks:SetArea(Vec3(0.4,0.0,0.4))
    		object.sparks:SetWaver(5)
    		object.sparks:SetPositionf(0,0.25,0,0)
    
    		SetWorld(world_main)
    	end
    end
    
    --Emit fire sound
    if class.sound~=nil then object.model:EmitSound(class.sound,10,1,1) end
    
    --Declare initial values
    object.fluctuation=100.0
    object.smoothedfluctuation=5.0
    
    function object:SetKey(key,value)
    	if key=="color" then
    	elseif key=="intensity" then
    	else
    		return self.super:SetKey(key,value)
    	end
    	return 1
    end
    
    --Force the bounding box to be bigger
    function object:UpdateMatrix()
    	object.model.aabb.x0=object.model.mat.tx-5
    	object.model.aabb.x1=object.model.mat.tx+5
    	object.model.aabb.y0=object.model.mat.ty-5
    	object.model.aabb.y1=object.model.mat.ty+5
    	object.model.aabb.z0=object.model.mat.tz-5
    	object.model.aabb.z1=object.model.mat.tz+5
    	object.model.aabb:Update()
    end
    
    function object:GetKey(key,value)
    	if key=="color" then
    	elseif key=="intensity" then
    	else
    		return self.super:GetKey(key,value)
    	end
    	return value
    end
    
    function object:Render()
    	self.fluctuation=self.fluctuation+math.random(-100,100)/1000.0*AppSpeed()
    	self.fluctuation=math.min(2.2,self.fluctuation)
    	self.fluctuation=math.max(0.2,self.fluctuation)
    	self.smoothedfluctuation=Curve(self.fluctuation,self.smoothedfluctuation,5.0/AppSpeed())
    	self.light:SetColorf(1.0*self.smoothedfluctuation,0.6*self.smoothedfluctuation,0.25*self.smoothedfluctuation,1,0)
    end
    
    end
    
    

  7. I have copied the firepit code to my own firepit. The code is besides some default value exactly the same. However when you run the code you get the message : Table index is nill. Also the class.lua is opened with the line selected: classtable[modelreference]=class.

     

    The object appears to be working normally but I wonder what the error message means.

  8. I also tried to make my own messages: "LightOn" and "lightOf". This way I can call the entity.light instead of hiding the the lamp. It's the same as show and hide, but the difference is is that I can call light entities that are in a fixed position like the cagelight. But also here: I can only turn it off and not back on.

  9. The script I'm using is an entire copy of the original switch. It is exactly the same now, appart from the messages "activate" and " deactivate", which I replaced with Hide and Show. The base.lua message function looks like this.

    if message=="hide" then
    	entity.model:Hide()
    	entity.hidden=1
    elseif message=="show" then
    	entity.model:Show()
    	entity.hidden=0

     

    I have added the entity.hidden=1 and entity.hidden=0 here.

×
×
  • Create New...