Jump to content

Jazz

Members
  • Posts

    265
  • Joined

  • Last visited

Posts posted by Jazz

  1. Here's the function for the staff I did in this old video. Offsets were trial and error and need changing for each model. It's called in UpdateWorld() That was my only attempt so there's probably a better way.

    function Script:AttachWeapon()
    	if self.fingerBone == nil then
    		self.fingerBone = self.entity:FindChild("Bone R Finger11")
    		if self.fingerBone == nil then
    			Debug:Error("Finger bone to attach weapon to not found.")
    		end
    	end
    	local fingerPos = self.fingerBone:GetPosition(true)
    	local fingerRot = self.entity:GetRotation(true)
    
    	local tscale = self.entity:GetScale()
    	local fPos = Transform:Point(0.01 / tscale.x, .02 / tscale.y, .03 / tscale.z, self.fingerBone, nil) --offset
    
    	playerInfo[ourID].weaponEntity:SetPosition(fPos.x, fPos.y, fPos.z, true)
    	playerInfo[ourID].weaponEntity:SetRotation(fingerRot.x-23, fingerRot.y, fingerRot.z, true)
    end

     

    • Like 1
  2. 5 hours ago, macklebee said:

    Both of those work fine, even though there is no reason to use 'string.format()' in your example.

    Drawtext is bugged when used with the built in GUI. Looks like a gui redraw issue.

    The following shows the problem. Hit escape for menu, then click outside the buttons.
     

    import("Scripts/Menu.lua")
    
    window = Window:Create("example",0,0,800,600)
    context = Context:Create(window)
    world = World:Create()
    light = DirectionalLight:Create()
    light:SetRotation(45,45,0)
    camera = Camera:Create()
    camera:SetPosition(0,0,-3)
    
    counter = 1400
    toggle = 0
    myfont = Font:Load("Fonts/arial.ttf", 16)
    context:SetFont(myfont)
    
    clip = 10
    Ammo = 100
    
    local gamemenu = BuildMenu(context)
    
    gamemenu.newbutton:SetText("RESUME GAME")
    window:HideMouse()
    
    while window:Closed()==false do
    	if gamemenu:Update()==false then return end
    
    	if toggle==1 then counter = counter + 10 end
    	if toggle==0 then counter = counter - 10 end
    	if counter>=1400 then toggle = 0 end
    	if counter<=10 then toggle = 1 end
    
    	if gamemenu:Hidden() then
    		Time:Update()
    		world:Update()
    	end
    	world:Render()
    
    	context:SetBlendMode(Blend.Alpha)
    	context:SetColor(1,0,0,.5)
    	context:DrawRect(38,30,300,300,1,30)
    	context:SetColor(0,1,1,1)
    	context:DrawText(string.format("Ammo1: "..clip.. " | " ..Ammo), 100, 80)
    	context:SetColor(1,0,0,.5)
    	context:DrawText(string.format("%.0f",counter),38,30,300,300,Text.VCenter+Text.Center)
    	context:SetColor(1,1,1,1)
    	context:DrawText(string.format("Ammo2: "..clip.. " | " ..Ammo), 30, 100, 300, 250, Text.VCenter+Text.Center)
    	context:SetColor(0,1,1,1)
    	context:DrawText(string.format("Ammo3: "..clip.. " | " ..Ammo), 100, 300)
    	context:SetBlendMode(Blend.Solid)
    	context:Sync(true)
    end

     

    • Like 2
    • Confused 1
  3. or just update your project to any of the available versions, beta (Ver4.4), stable (Ver4.3), or Ver4.1. This latest issue was caused by an "optimization" in the Ver4.2 that was resolved within a week or two and was never part of the Ver4.3 stable release.

     

    This does occur in the latest (4.4) beta. The attached map should show this if you run it and don't move the player.

    04-Moving Platforms.rar

  4. Been a while since I used it but I believe you just have to set the monitor's material to use the same texture you set for the camera, which would probably be monitor.mat.

    edit: Just tested. I set a csg to greengrid.mat and the camera's render texture to greengrid.tex. This is looking at it with the FPS player.

    post-12583-0-14550500-1492038139_thumb.jpg

  5. Have you thought about using SetVelocity to set the character's vertical velocity to zero when they jump?

     

    Vec3 v = player->GetVelocity()

    v.y=0

    player->SetVelocity(v)

     

    This works but the jump is still not high enough. The y velocity is negative on a downward sloped jump. The following seems to work but note I didn't test it very much...

     

    local tmp = self.entity:GetVelocity()

    if tmp.y < 0 then

    tmp.y = math.abs(tmp.y) --compensate for negative velocity

    self.entity:SetVelocity(tmp)

    end

    • Upvote 1
×
×
  • Create New...