Jump to content
  • entries
    14
  • comments
    29
  • views
    12,860

Behind Enemy Line


burgelkat

2,527 views

 Share

Hi ,

Currently I'm planning the next level for Behind Enemy Lines. Since the player has to do part of the level with a sniper rifle, a little preliminary work had to be done. So, Here's my way to tackle this topic with the Addon "FPS Weapon Pack":

The tutorial from tipforeveryone was very helpful to me. You can find it here

https://www.leadwerks.com/community/blogs/entry/1775-realistic-sniper-rifle-scope-in-lua/

i downloaded a Scope frome here :http://www.cadnav.com/3d-models/model-36647.html

and put it as a child to the "vwep m4" and saved it as a prefab "vwep m4_sniper"

it should be look like this

5a48be56f2b74_Screenshot2017-12-3111_37_48.thumb.jpg.ca8c1070dd891545338755158df07db1.jpg

Now you have to ajust the scope

ScopeSetting.jpg.df542a5d197b33939faefc5f0074607b.jpg

But for the scope script to work, an empty script must be inserted in the following places. Thanks to Macklebee for this hint!

image.png.25f937c71b335505b9870df393d1d07b.png

Now you have to change 2 scripts

1. fpsgun.lua

2. fpsplayer.lua

 

1. fpsgun.lua

this script i saved under "FPSGun_Sniper.lua"

then this video helps a lot :https://www.youtube.com/watch?time_continue=628&v=3OqwQSP-2FU

thanks to BluHornet

place this in your fpsgun_sniper.lua

Script.offsetNor=Vec3(0,0,0)
Script.offsetADS=Vec3(0,0,0)--Vec3 "Offset ADS"

the next line put after the function Script:Start()

self.offsetNor = self.offset
self.hasZoom=true

self.hasZoom=true (or false) has been inserted because the ironsight will be active in every weapon, but at Grenade or something else i did not want this.

Since I have difficulty with the sway of the weapon and I have no solution for it currently, I commented under function Script: Draw () the following lines out:

	--self.swayspeed = Math:Curve(speed,self.swayspeed,20)
	--self.swayspeed = math.max(0.5,self.swayspeed)
	--self.amplitude = math.max(2,Math:Curve(speed,self.amplitude,20))

now its time to change the fpsplayer.lua

2. fpsplayer.lua

this line put in at the beginning

Script.ADSmode=false

next place the following lines under the function Script:UpdateWorld()

	if self.weapons[self.currentweaponindex]~=nil and self.weapons[self.currentweaponindex].hasZoom then
		if self.ADSmode == false then
			self.camera:SetFOV(70)
			self.weapons[self.currentweaponindex ].offset = self.weapons[self.currentweaponindex ].offsetNor
		end
		if self.ADSmode == true then
			self.camera:SetFOV(20)
			self.weapons[self.currentweaponindex ].offset = self.weapons[self.currentweaponindex ].offsetADS
			end
	end

and this also in this function (i put this after a lince called "--fire weapon"

	if window:MouseHit(2) then
		if self.weapons[self.currentweaponindex]~= nil then
			if self.ADSmode == false then
				self.ADSmode=true
			else
				self.ADSmode=false
			end
		if self.sound.pickupweapon~=nil then self.sound.pickupweapon:Play() end
	end
	end

if you do not want the ironsight by jump, reload, or carry an item, then paste those lines at the right places

self.ADSmode=false

Since the original crosshair disturbs me in the ironsight, I have inserted "and self.ADSmode==false then" in the function Script:PostRender(context) it should looks like this

	if self.health>0 then
		if self.canUse==true and self.carryingEntity == nil then
			local pickUpX = math.floor((context:GetWidth() - self.image.hand:GetWidth()))/2
			local pickUpY = math.floor((context:GetHeight() - self.image.hand:GetHeight()))/2
			context:SetBlendMode(Blend.Alpha)
			context:DrawImage(self.image.hand, pickUpX, pickUpY)	
		else
			if self.carryingEntity==nil then
				if self.weapons[self.currentweaponindex]~=nil then
					if self.image.crosshair and self.ADSmode==false then
						local crossHairX = math.floor((context:GetWidth() - self.image.crosshair:GetWidth()))/2
						local crossHairY = math.floor((context:GetHeight() - self.image.crosshair:GetHeight()))/2
						context:SetBlendMode(Blend.Alpha)
						context:DrawImage(self.image.crosshair, crossHairX, crossHairY)
					end
				end
			end
		end

 

What follows now are the individual settings for each weapon to get an Ironsight.

M4 Sniper:

image.png.024f746069709184ca6c52f95fdf2c1b.png

in the script:

image.png.737d01c3b32651e9103e1a724c019aa5.png

image.png.b95d99ba31e7c8856c70df17257c6e0e.png

the sniper M4 looks now like this

5a48cda3491d2_Screenshot2017-12-3112_42_26.thumb.jpg.23c6c8f4b859224522d7d9f5110a480c.jpg

5a48cd8f0574f_Screenshot2017-12-3112_42_36.thumb.png.37373fbea24037c2cad8fa9bb38a86fd.png

the m4 without scope

image.png.73598b3a8bb9321794e9a9318cc1de38.png

in the script:

image.png.ddb9e6a1a9db94227d15853d1ac09498.png

image.png.9508944d70f2de50158494df1121b68c.png

it should look like this

image.thumb.png.d6be17990eb861406c2b2a3b048772c3.pngimageproxy.php?img=&key=93667c899a2c8479

the shotgun

image.png.2e15a8ee74abae390602bfc9c9cd6a06.png

in the script

image.png.2147c2be3f1df5350efddf96d8d7390f.png

image.png.9d3e018bbeb54f4f7c07057946555b6d.png

the shotgun look like this

image.thumb.png.ae43110af1dabc4f17e8551297f36f55.png

 

the pistol

image.png.262e606c5446b6eda4d6a8c716c0a0e2.png

in the script

image.png.c6153f475f7fec5588b55a593e4bb267.png

image.png.932c5705a3d9ef13fb076aab0869e17d.png

the pistol look now like this

image.thumb.png.a4c80e1d76f7d8e468a5a400f9e29813.png

 

So, that was my solution. But if you have even better settings, feel free to write in this blog. I hope that this blog helped a bit. Especially to save time to find the settings for the Ironsight.

Have fun.

Greetings burgelkat

 

 

 

  • Like 4
 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...