PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3 LUA Fragen :)



Styler
21.03.2010, 09:36
OK ich habe ein paar Fragen zu Entities.Ich mache gerade ein paar beliebige Entities:
1.Frage:
Ich will einen Ball drehen lassen dafür benutze ich:

function ENT:Think()
self.Entity:SetAngles(self.Entity:GetAngles() + Angle(0,2,0))
end

Das Problem ist das sich der Ball immer nur in einzelnen kleinen Rucken bewegt und das auch noch sehr langsam.Also meine Frage,wie müsste der Code aussehen damit sich das Entity flüssig und schnell dreht.
2.Frage:
Ich habe eine Pille wenn man die berührt kriegt man +50 HP ich verwende die Touch-Funktion:

function ENT:Touch( activator )
if self.Uses == 0 then
self.Entity:EmitSound(Sound("Styler/pickup-pill.wav"))
activator:SetHealth(activator:Health() + 5)
self.Entity:Remove()
self.Uses = 1
else
self.Entity:Remove()
end
end

Das funktioniert soweit nur ich will das es keine Kollision gibt wenn man es sammelt also das heißt wenn man in dem Entity steht kriegt man +50 HP aber bei mir ist es so das man immer kurz eine Kollision zwischen Entity und Player hat ich habe schon unzählige Kombinationen damit versucht:

self.Entity:PhysicsInit(SOLID_VPHYSICS)
self.Entity:SetMoveType(MOVETYPE_NOCLIP)
self.Entity:SetSolid(SOLID_VPHYSICS)

Ok ich sage nochmal wie ich es haben will:
Wenn man das Entity "berührt" gibt es keinen physikalischen Widerstand aber die Touch-Funktion soll aufgerufen werden
3.Frage:
Die letzte Frage ist auch die einfachste.Wie stellt man beiself.Entity:EmitSound(Sound("Styler/pickup-pill.wav"))die Lautstärke höher,im Moment ist der Sound sehr leise aber er ist da.



Ich freue mich auf Antworten,--Danke
Ich habe keinen Rechtschreibfehler

WeltEnSTurm
21.03.2010, 09:56
Ich habe keinen Rechtschreibfehler

Schön für dich.

http://wiki.garrysmod.com/?title=Physobj
http://wiki.garrysmod.com/?title=Entity.SetTrigger
http://wiki.garrysmod.com/?title=EmitSound

Joker
21.03.2010, 10:02
EDIT: Ninja'd.

Styler
21.03.2010, 15:41
Ok,Danke erstmal Problem 2 und 3 konnte ich lösen nur das mit der flüssigen Rotation kriege ich nicht hin kann mir jemand bitte mal ein Beispiel machen,dafür wäre ich sehr dankbar.

Scarecrow
21.03.2010, 17:28
Es wäre besser, wenn du die flüssige Rotation durch Kräfteeinwirken bewerkstelligst, sprich du machst das Objekt schwerelos und "stubst" es an. Das

Styler
21.03.2010, 17:30
Es wäre besser, wenn du die flüssige Rotation durch Kräfteeinwirken bewerkstelligst, sprich du machst das Objekt schwerelos und "stubst" es an. Das
Hast du gerade vergessen weiterzuschreiben?Also wenn ich damit die Geschwindigkeit konstant halten kann wäre das eine Lösung.

WeltEnSTurm
21.03.2010, 17:33
mach self:GetPhysicsObject():EnableGravity(false) in die init

function ENT:PhysicsUpdate(phys)
phys:SetVelocity(self.DesiredPos-self:GetPos())
local ang=self:GetAngles()
phys:AddAngleVelocity(-phys:GetAngleVelocity()+Vector(-ang.p,-ang.y,60))
end

Styler
21.03.2010, 17:40
Darauf hin antwortet GMod:


entities/sent_crash_kristall/init.lua:53: bad argument #1 to '?' (Vector expected, got nil)


Der Code:

function ENT:PhysicsUpdate(phys)
phys:SetVelocity(self.DesiredPos-self:GetPos())
local ang=self:GetAngles()
phys:AddAngleVelocity(-phys:GetAngleVelocity()+Vector(-ang.p,-ang.y,60))
end

Pac_187
21.03.2010, 18:09
Wird wohl an dem "-" liegen vor dem phys.

WeltEnSTurm
21.03.2010, 18:13
DesiredPos sollte man vorher schon festlegen.

Styler
21.03.2010, 18:41
Was ist DesiredPos oder besser welcher Wert muss darein natürlich weiß ich das DesiredPos Gewünschte Postion heißt

WeltEnSTurm
21.03.2010, 18:46
Ich ziehe mich zurück.

Styler
21.03.2010, 19:08
Ok ich habe die Lösung und für die die es interessiert wie:
Man schreibt unter:

if (self.phys:IsValid()) then
self.phys:Wake()
end

das hin:

self.phys:AddAngleVelocity(Angle(0,0,180))