PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWep: Zoom



aliensoldier
30.05.2010, 14:44
Hi Leute,
ich habe mich neulig mal etwas mehr mit dem Erstellen von Models
beschäftigt und mir eine Magnum 357 mit Zielvorrichtung gebastelt.
Das Model ist in Ordnung, allerdings habe ich keine Ahnung wie ich
die Zoomfunktion über das sekundäre Feuer (Mausklick rechts)
hinbekomme.
Wäre nett wenn mir da jemand helfen würde der etwas mehr
Erfahrung mit Lua hat :)
Danke im Vorraus!

RP-01
30.05.2010, 14:50
Benutze die Funktion player.SetFOV (http://wiki.garrysmod.com/?title=Player.SetFOV) dazu.
Damit es schöner aussieht kannst du ja noch ein Overlay mit einbinden.

aliensoldier
30.05.2010, 16:12
Und wie bekomm ich das da rein?

xXGaunXx
30.05.2010, 17:20
Und wie bekomm ich das da rein?

Steht doch auf der Seite:

function SWEP:SecondaryAttack()
-- We have already defined Zoomed as being false.
if (!Zoomed) then -- The player is not zoomed in

Zoomed = true -- Now he is
if SERVER then
self.Owner:SetFOV( 45, 0.3 ) -- SetFOV is serverside only
end
else -- If he is

Zoomed = false -- We tell the SWEP that he is not
if SERVER then
self.Owner:SetFOV( 0, 0.3 ) -- Setting to 0 resets the FOV
end
end
end

Und wenn das dir immer noch nicht hilft, dann würde ich mir als erstes das komplette Tutorial ansehen und durcharbeiten.
http://wiki.garrysmod.com/?title=Lua_Tutorial_Series

aliensoldier
30.05.2010, 17:40
Das weiss ich ja.
Aber was ich nicht weiss ist wie man das Overlay dazu bekommt...

RP-01
30.05.2010, 17:46
Sieh dich mal in der Render (http://wiki.garrysmod.com/?title=Render)-Abteilung um.

aliensoldier
30.05.2010, 17:52
Da find ich nun nich wirklich viel...

RP-01
30.05.2010, 18:52
Du solltest dich durch die Liste arbeiten und raussuchen was villeicht nützlich sein könnte.

aliensoldier
31.05.2010, 13:43
Ich hab mir das angeguckt, aber die meisten Seiten waren noch garnicht fertig
oder nicht verfügbar.

RP-01
31.05.2010, 13:57
Dann versuchs mit diesen (http://wiki.garrysmod.com/?title=Surface) Funktionen. Das ist noch viel einfacher.

aliensoldier
31.05.2010, 16:07
Ich krieg's immer noch nich hin.
Sorry wenn ich euch hier etwas nerve, aber ich fang grad erst mit LUA an...

RP-01
31.05.2010, 16:27
Wenn du gerade erst anfängst solltest du dir villeicht zuerst die ganzen Tutorials durchlesen bevor du drauf los scriptest.
Dann wird dir bestimmt einiges klarer.

Die wichtigste Seite für dich ist lua.gts-stolberg.de/. Da findest du alles was du zu Lua vorerst wissen musst.
Wie der Rest funktioniert siehst du in anderen Scripts für GMod.

aliensoldier
01.06.2010, 15:41
OK, hab mir ein paar Sachen durchgelesen.
Aber jetzt gibt es noch ein anderes Problem:
Die SWEP ist verdammt ungenau.Das Teil ist so ungenau, dass man sein Ziel
nicht mal trifft wenn man sich direkt davor stellt...

RP-01
01.06.2010, 17:11
Wenn du die normalen Bullets (http://wiki.garrysmod.com/?title=Entity.FireBullets) benutzt, setz das Spread einfach geringer.

aliensoldier
02.06.2010, 18:06
OK Danke, es funktioniert.
Ich dachte es würde mit SWEP.Primary.Spread = 0 klappen.
Aber das hat kein bisschen geändert...
Doppelpost:
Mein LUA-Script sieht jetzt so aus (Brick natürlich erstmal zum Testen):



-- Secondary Attack (+Attack2 is pressed)
function SWEP:SecondaryAttack()
-- We have already defined Zoomed as being false.
if (!Zoomed) then -- The player is not zoomed in

Zoomed = true -- Now he is
if SERVER then
self.Owner:SetFOV( 35, 0.3 ) -- SetFOV is serverside only
if CLIENT then
surface.GetTextureID("Brick/brickfloor001a")
local tex = surface.GetTextureID("Brick/brickfloor001a") // Gets the texture id for the brick texture
local function drawBrickTexture()
surface.SetTexture(tex)
surface.SetDrawColor(255,255,255,255) // Makes sure the image draws with all colors
surface.DrawTexturedRect(ScrW()*0.5-32,ScrH()*0.5-32,64,64)
end
hook.Add("HUDPaint","DrawTheBricks",drawBrickTexture)

end
else -- If he is

Zoomed = false -- We tell the SWEP that he is not
if SERVER then
self.Owner:SetFOV( 0, 0.3 ) -- Setting to 0 resets the FOV
end
end
end


Jetzt spuckt die Konsole aber immer diesen Fehler aus:



addons\selbstgemachtes\lua\weapons\weapon_357scope \shared.lua:170: 'end' expected (to close 'function' at line 115) near '<eof>'



Wie kann ich das korrigieren?