PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWep: No Collide STool



stefan1994
23.08.2009, 02:41
Ich bräuchte das No Collide STool nur eben als SWep.


Könnte mir das bitte einer machen bzw. gibt es eine möglichkeit STools sozusagen zu ner SWep konvertieren?


MfG.

Frostdead
23.08.2009, 20:41
Ich bräuchte das No Collide STool nur eben als SWep.


Könnte mir das bitte einer machen bzw. gibt es eine möglichkeit STools sozusagen zu ner SWep konvertieren?


MfG.

Wieso als Swep?
Toolgun reicht doch... :roll:

Pij
23.08.2009, 20:47
Weshalb er es als SWep haben möchte ist doch völlig irrelevant.

stefan1994
23.08.2009, 21:04
Wieso als Swep?
Toolgun reicht doch... :roll:

Damit Leute wie du wenn sie als erstes antworten etwas zum zitieren und blöd fragen haben.....


Ich brauch die Swep für meinen Server, wer hätte sich das nun denken können. :shock:


MfG.

Joker
23.08.2009, 21:35
Ich könnte morgen mal schauen, ob ich so etwas hinbekomme. Welches Viewmodel und welchen Sound (http://wiki.garrysmod.com/?title=Game_Sounds) soll die Waffe haben? Soll die Munition begrenzt sein? Bekomme ich als Gegenleistung etwas?

stefan1994
23.08.2009, 22:15
Viewmodel: HL2 Pistole
Sound: Keine ahnung such dir einen aus, kann ihn ja dann umändern. :P
Munition: Auch egal kann ich dann ja auch ändern...


Du bekommst ein Danke und einen Keks villeicht auch zwei. :D




MfG.

Joker
24.08.2009, 10:28
Ich habe nun ein SWEP erstellt, das bei primären Schüssen denselben Effekt hervorruft wie die sekundäre Funktion des STools. Du kannst den Script beliebig ändern, aber lade es bitte auf keiner Website hoch, da es nur eine schnellgemachte Version dieses SWEPs ist. Ich werde irgendwann eine bessere Version machen und es offiziell hochladen. Die primäre Funktion des STools ist für deine Gegenleistung zu aufwändig um es für SWEP kompatibel umzuschreiben. Ich habe also nur die sekundäre Funktion des STools umgeschrieben.
Ich habe lediglich zufällig Sounds aus der Liste herausgesucht. Du wirst selber passendere Sounds heraussuchen müssen.

Das Addon kannst du aus dem Anhang herunterladen. Es ist für Sandbox optimiert und getestet, aber du kannst es vermutlich auch für andere Gamemodi verwenden, indem du den Ordner "twep_nocollide" in dessen Weapons-Ordner einfügst.

Sei froh, dass ich es für dich gemacht habe. Wenn ich keine Langeweile hätte, hätte ich mir die Mühe auch nicht genommen. Circa 45 Minuten Arbeitszeit.

WeltEnSTurm
24.08.2009, 10:45
Ich habe nun ein SWEP erstellt, das bei primären Schüssen denselben Effekt hervorruft wie die sekundäre Funktion des STools. Du kannst den Script beliebig ändern, aber lade es bitte auf keiner Website hoch, da es nur eine schnellgemachte Version dieses SWEPs ist. Ich werde irgendwann eine bessere Version machen und es offiziell hochladen. Die primäre Funktion des STools ist für deine Gegenleistung zu aufwändig um es für SWEP kompatibel umzuschreiben. Ich habe also nur die sekundäre Funktion des STools umgeschrieben.
Ich habe lediglich zufällig Sounds aus der Liste herausgesucht. Du wirst selber passendere Sounds heraussuchen müssen.

Das Addon kannst du aus dem Anhang herunterladen. Es ist für Sandbox optimiert und getestet, aber du kannst es vermutlich auch für andere Gamemodi verwenden, indem du den Ordner "twep_nocollide" in dessen Weapons-Ordner einfügst.

Sei froh, dass ich es für dich gemacht habe. Wenn ich keine Langeweile hätte, hätte ich mir die Mühe auch nicht genommen. Circa 45 Minuten Arbeitszeit.

What the.. So lang? :o
Ich werds jetzt machen, aber auch mit der normalen Funktion.

Joker
24.08.2009, 10:56
What the.. So lang? :o
Bin auch erst LUA-Anfänger. Wenn du willst, kannst du meinen Script kopieren, was du aber vermutlich nicht brauchst. :gmod:

WeltEnSTurm
24.08.2009, 11:03
Bin auch erst LUA-Anfänger. Wenn du willst, kannst du meinen Script kopieren, was du aber vermutlich nicht brauchst. :gmod:

Oh, ich dacht wegen dem avatar. :gmod:

Aber die erste funktion ist eh ziemlich einfach, du machst außerhalb
SWEP.SelectedEntity,
In primaryattack machst du dann (nach einem check obs valid ist, und man gerade kein entity selected hat)
self.SelectedEntity = tr.Entity, und wenn du schon eins hast:

constraint.Nocollide(bla)
self.SelectedEntity = nil

@Stefan:
Brauchst du die Nocollide All funktion umbedingt? Oder nur die für einzelne Entitys?

Joker
24.08.2009, 11:10
Aber die erste funktion ist eh ziemlich einfach, du machst außerhalb
SWEP.SelectedEntity,
In primaryattack machst du dann (nach einem check obs valid ist, und man gerade kein entity selected hat)
self.SelectedEntity = tr.Entity, und wenn du schon eins hast:

constraint.Nocollide(bla)
self.SelectedEntity = nil
Wie es umzusetzen ist, damit war ich mir schon bewusst, jedoch wollte ich es nicht umsetzen, da mir eins oder zwei Kekse dafür zu wenig sind. Lieber nehme ich mir die Zeit für meine eigenen Projekte. Mit logischen Vorgängen beim Scripten habe ich schon viel Erfahrung. Ich meinte mit Anfänger lediglich, dass ich LUA erst seit einigen Wochen kenne und somit für nötige Befehle ab und zu im Wiki nachschauen muss, weshalb es länger dauert.

stefan1994
24.08.2009, 15:50
Danke :D
*Joker zwei Kekse geb*

Jo das funktioniert schonmal gut...


@WeltEnSTurm

Wenn geht für zwei Entitys wäre noch besser. :D


MfG.

WeltEnSTurm
24.08.2009, 16:05
SWEP.Spawnable = false
SWEP.AdminSpawnable = true

if SERVER then
AddCSLuaFile("shared.lua")
SWEP.Weight = 5
SWEP.AutoSwitchTo = false
SWEP.AutoSwitchFrom = false
end

if CLIENT then
SWEP.PrintName = "NoCollide SWEP"
SWEP.Slot = 5
SWEP.SlotPos = 10
SWEP.DrawCrosshair = true
SWEP.DrawAmmo = false
end

SWEP.Primary.Automatic = false
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Ammo = "none"

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"

SWEP.SelectedEntity = NULL
SWEP.SelectedSound = "" --When selecting an entity first
SWEP.AbortedSound = "Weapon_AR2.Special2" --When deselecting (shooting at it again)
SWEP.NocollidedSound = "ItemBattery.Touch" --When creating the nocollide


local function CheckValid(e)
if e and e:IsValid() and e:GetClass() != "worldspawn" and !e:IsPlayer() and !e:IsNPC() then
return true
end
return false
end

function SWEP:PrimaryAttack()
local tr = self.Owner:GetEyeTrace()
if tr.Hit then
if CheckValid(self.SelectedEntity) then
if tr.Entity == self.SelectedEntity then
self.Weapon:EmitSound(self.AbortedSound)
else
self.Weapon:EmitSound(self.NocollidedSound)
constraint.NoCollide(tr.Entity, self.SelectedEntity, 0, 0)
end
self.SelectedEntity = nil
elseif CheckValid(tr.Entity) then
self.SelectedEntity = tr.Entity
self.Weapon:EmitSound(self.SelectedSound)
end
end
end

function SWEP:SecondaryAttack()
local tr = self.Owner:GetEyeTrace()
if tr.Hit and CheckValid(tr.Entity) then
if (tr.Entity.CollisionGroup == COLLISION_GROUP_WORLD) then
tr.Entity:SetCollisionGroup( COLLISION_GROUP_NONE)
tr.Entity.CollisionGroup = COLLISION_GROUP_NONE
self.Weapon:EmitSound(self.NocollidedSound)
else
tr.Entity:SetCollisionGroup(COLLISION_GROUP_WORLD)
tr.Entity.CollisionGroup = COLLISION_GROUP_WORLD
end
end
end

function SWEP:Reload()
if self.SelectedEntity then
self.Weapon:EmitSound(self.AbortedSound)
self.SelectedEntity = nil
end
end

stefan1994
24.08.2009, 17:39
Yeah sehr geil :D


Vielen Dank, für die Blumen, vielen dank, wie lieb von dir. (ich hoffe ihr kennt alle Tom & Jerry :P)


Aber du könntest den [lua] tag ansstelle des [php] tags verwenden. :D




MfG.

WeltEnSTurm
24.08.2009, 17:43
Yeah sehr geil :D


Vielen Dank, für die Blumen, vielen dank, wie lieb von dir. (ich hoffe ihr kennt alle Tom & Jerry :P)


Aber du könntest den [lua] tag ansstelle des [php] tags verwenden. :D




MfG.

Der macht aber komische > mitten in mein script rein

Stoned
25.08.2009, 06:24
Der macht aber komische > mitten in mein script rein

http://www.garrysmod.de/forum/showthread.php?t=24270