Search the Community
Showing results for tags 'melee'.
Found 2 results
Hey guys we have made a good melee weapon code, with help of some people on the forums and some goofing around on our part. It was working fine up until about 2 weeks ago, then it had an error on line 28 in the code saying "attempting to compare nil value". If you guys could help tell me what I am doing wrong that would be amazing. This is part of a melee/rpg pack I am working on for you guys to be able to use (featured in my game). Here is the code, feel free to use it but do tell me how to fix it @.@ import "Scripts/AnimationManager.lua" Script.offset = Vec3(.5,-.5,.3) --vec3 "Offset" --used to set the location of the weapon in relationship to the fpsplayer's camera Script.bulletrange=3 Script.bulletforce=10 Script.bulletdamage=24 function Script:Start() --self.entity:SetRotation(45,180,0) --cant set it here unless you change the fpsplayer script -- fpsplayer script sets the weapons rotation to (0,0,0) after it has been loaded self.fired = 0 -- self.animationmanager = AnimationManager:Create(self.entity)--sets up animationmanager end function Script:Fire() --using this just so i dont have to mess with the fpsplayer script self.animationmanager:SetAnimationSequence("swing",0.05,300,1) --Parameters = (sequence, speed, blendtime, mode) -- sequence equal to "swing" animation in model -- speed controls how fast to play animation -- blendtime controls how fast it changes from the previous animation -- mode controls whether animation plays once or loops. --App.camera:Pick() if (App.window:MouseDown(1)) then --self.picksphere:Hide() local pickinfo = PickInfo() --local p = self:GetMousePosition() local p = App.window:GetMousePosition() if (self.entity.location < bulletrange) then if entity.script.enemy==true then entity.script:Hurt(self.bulletdamage) else System:Print("nope") end end end end function Script:Reload() --using this becaue inherent fpsplayer script calls this function when R is hit self.animationmanager:SetAnimationSequence("idle",0.05,300,1) end function Script:BeginJump() -- called from fpsplayer end function Script:BeginLand() -- called from fpsplayer end function Script:Draw() self.entity:SetRotation(45,180,0) --settting the model's rotation to be able to see it --Animate the weapon self.animationmanager:Update() end function Script:Release() end
I have made a simple collision based melee combat system, it seems to work fine, you can take it if you want. But I also have a question about it. As you can see on the video below, weapon collider moves with a small latency, can I do anything to make it follow weapon model faster? Or is it the best result I can get? (Sorry for the video quality) Here is the main code: The idea is very simple: when player equips sword the sword prefab is being loaded and attached to the hand bone. The sword prefab has a sword model and an extra object with collider (WeaponTrigger). Also there is a blood point in the prefab to create blood particles in it's coordinates, but that doesn't matter. In WeaponTrigger start function this entity is being separated from the sword model and in UpdatePhysics it's being moved to the sword model position. Obviously, when this trigger collides with something we can hurt it and stop attack animation.