Seite 6 von 7 ErsteErste ... 234567 LetzteLetzte
Ergebnis 51 bis 60 von 69

Thema: Fragen zu Expression Gate 2?

  1. #51

    Standard AW: Fragen zu Expression Gate 2?

    ja es passiert cleintside aber die e2 funktion geht nur serverside

  2. #52

    Standard AW: Fragen zu Expression Gate 2?

    Ich habe ein schwebendes, sich drehendes Sägeblatt gebaut.
    Später soll es dann auch noch NPCs angreifen, aber das kommt noch.
    Wie schaffe ich es, dass ich die rotationsgeschwindigkeit begrenze?
    Es rotiert immer schneller und irgendwann verlässt der E2 chip dann das Sägeblatt.

    applyTorque kleiner machen bringt nichts, dann dauert es nur länger bis es passiert.

    http://www.wegame.com/watch/sawblade-problem/

    PHP-Code:
    @name SawBlade
    @inputs 
    @outputs
    @persist Entity:entity
    @trigger 

    runOnTick
    (1

    findByModel("models/props_junk/sawblade001a.mdl")
    Entity findClosest(entity():pos())

    Entity:applyTorque(vec(0,0,-10) * Entity:mass())
    Entity:applyForce(vec(0,0,9) * Entity:mass())

    entity():applyTorque(vec(0,0,-10) * entity():mass())
    entity():applyForce(vec(0,0,9) * entity():mass())

    # by Clarity 

  3. #53

    Standard AW: Fragen zu Expression Gate 2?

    -gelöscht, habe die 6. Seite übersehen-

  4. #54

    Standard AW: Fragen zu Expression Gate 2?

    Zitat Zitat von Clarity Beitrag anzeigen
    Es rotiert immer schneller und irgendwann verlässt der E2 chip dann das Sägeblatt.
    Lass die Scheibe nur beschleinigen, wenn sie zu langsam ist:

    PHP-Code:
    if(Entity:angVel():yaw() < 1000) {
       
    Entity:applyTorque(vec(0,0,-10) * Entity:mass())
    } else {
       
    Entity:applyAngForce(-Entity:angVel()*10# Bremst das Prop, ist aber vielleicht nicht unbedingt nötig.



    Was mir noch auffällt: Du lässt jeden Tick das Sägeblatt suchen. Die find-funktionen sind recht rechenintensiv, deswegen wäre es besser, das du nur einmal danach suchst, und es dann speicherst.

    PHP-Code:
    if(!Entity findCanQuery()) {
       
    findByModel("models/props_junk/sawblade001a.mdl")
       
    Entity findClosest(entity():pos())


  5. Folgende 2 Benutzer sagen Danke zu Quabit für den nützlichen Beitrag:


  6. #55

    Standard AW: Fragen zu Expression Gate 2?

    Erstmal danke für den Tipp mit findByModel, wusste ich gar nicht, dass das besonders rechenintensiv ist,
    zudem blieben meine fps (bisher) immer realativ konstant.

    Die Scheibe zu bremsen funktioniert allerdings noch nicht so richtig, selbst mit der else Bedingung.
    Ich habe auch schon if(Entity:angVel():yaw() < 10) eingesetzt. Selbst da verlässt der Chip noch zeitweise
    die Scheibe.

    Sehe ich das richtig, Entity:angVel() gibt die Winkelgeschwindigkeit des Entities als "WinkelVektor" (Angle) zurück. Die Funktion yaw() sorgt dafür, dass nur der winkel in der horizontalen Ebene genommen wird?

    Edit:
    Problem gelöst! Die Scheibe wird ja mit einem negativen Drehmoment beschleunigt, also ist auch yaw negativ.
    Die if-Bedingung muss dann also so lauten: if(Entity:angVel():yaw() > -1000)
    Geändert von Clarity (30.12.2009 um 17:38 Uhr)

  7. #56

    Standard AW: Fragen zu Expression Gate 2?

    Zitat Zitat von Clarity Beitrag anzeigen
    Erstmal danke für den Tipp mit findByModel, wusste ich gar nicht, dass das besonders rechenintensiv ist,
    zudem blieben meine fps (bisher) immer realativ konstant.
    Es gibt die Convars wire_exp2_entFindRate und wire_exp2_playerFindRate, womit man einstellt, wie oft gesucht werden kann. Mit findCanQuery() kann man gucken, ob man gerade suchen "darf".
    Zitat Zitat von Clarity Beitrag anzeigen
    Sehe ich das richtig, Entity:angVel() gibt die Winkelgeschwindigkeit des Entities als "WinkelVektor" (Angle) zurück. Die Funktion yaw() sorgt dafür, dass nur der winkel in der horizontalen Ebene genommen wird?
    Genau

    Zitat Zitat von Clarity Beitrag anzeigen
    Problem gelöst! Die Scheibe wird ja mit einem negativen Drehmoment beschleunigt, also ist auch yaw negativ.
    Die if-Bedingung muss dann also so lauten: if(Entity:angVel():yaw() > -1000)
    Ups, dass hatte ich übersehen. Aber du hast es ja selber rausgefunden

  8. Folgender Benutzer sagt Danke zu Quabit für den nützlichen Beitrag:


  9. #57

    Standard AW: Fragen zu Expression Gate 2?

    Jetzt hänge ich an meinem nächsten Problem...
    Ich will, dass das Sägeblatt horizontal stabilisiert wird,
    aber ich bekomme das nicht hin. Ich habe schon fertige E2s gefunden, die es komplett
    Winkelstabilisieren, aber das will ich ja nicht, es soll sich ja noch um die eigene Achse drehen.

    zB das hier:
    PHP-Code:
    @name Force Test
    runOnTick
    (1)
    Temp=entity(),Entity=(Temp:getConstraints():count() > Temp:isWeldedTo() : Temp)

    Angle=-Entity:angles()*15-Entity:angVel()*2
    Center
    =Entity:massCenter(),Right=Entity:right(),Forward=Entity:forward(),Up=Entity:up()
    Entity:applyForce((vec(0,0,9.015)-Entity:vel())*Entity:mass())
    Leverage=Entity:inertia():length()

    Entity:applyOffsetForceUp   *Angle:pitch(),Center-Forward*Leverage)
    Entity:applyOffsetForce(-Up   *Angle:pitch(),Center+Forward*Leverage)
    Entity:applyOffsetForceRight*Angle:yaw()  ,Center-Forward*Leverage)  # will ich nicht
    Entity:applyOffsetForce(-Right*Angle:yaw()  ,Center+Forward*Leverage)  # und das auch nicht
    Entity:applyOffsetForceUp   *Angle:roll() ,Center-Right  *Leverage)
    Entity:applyOffsetForce(-Up   *Angle:roll() ,Center+Right  *Leverage)
    #Entity:applyAngForce(Angle*Leverage) #This can replace the above 6 lines 
    http://wiki.garrysmod.com/?title=Wir...8by_chinoto.29

    Wenn ich jetzt die zwei zeilen die ich nicht brauche auskommentiere, dann dreht es sich zwar wieder,
    aber es ist absolut nicht mehr stabil in roll und pitch...

    Ist es überhaupt möglich, nur in pitch und roll zu stabilisieren, oder geht das nur, wenn ich auch yaw stabilisiere?

    (Mein alternativplan wäre es, das Sägeblatt über eine Axis mit einer kleinen komplett stabilisierten Platte zu verbinden. Aber diese Lösung fände ich nicht so schön, wie wenn alles in einem Chip geht.)

  10. #58

    Standard AW: Fragen zu Expression Gate 2?

    Zitat Zitat von Clarity Beitrag anzeigen
    Ist es überhaupt möglich, nur in pitch und roll zu stabilisieren, oder geht das nur, wenn ich auch yaw stabilisiere?
    Ich hab gerade was gebastelt. Sägeblatt spawnen und per Entity-Marker mit dem E2 verbinden. Das Sägeblatt schwebt 100 units über der E2, Pitch und Roll werden gehalten und es dreht sich.

    PHP-Code:
    @name 
    @inputs E:entity
    @outputs 
    @persist 
    @trigger 

    runOnTick
    )

    To entity():pos() + vec00100 )

    = ( To E:pos() - E:vel() ) * E:mass()
    = ( -E:angles() - E:angVel() ):setYaw) * E:mass()
    ang01000)

    E:applyForce)
    E:applyAngForce)

    if( 
    E:angVel():yaw() < 1000 ) {
        
    E:applyAngForce)

    Es gibt mehrere Wege das zu realisieren, dass hier ist nur einer

  11. Folgender Benutzer sagt Danke zu Quabit für den nützlichen Beitrag:


  12. #59

    Standard AW: Fragen zu Expression Gate 2?

    Hey danke,

    das ist zwar noch nicht genau das was ich brauche,
    aber wenn ich das verstanden habe wird es mir weiterhelfen denke ich.

    PS: Was meinst du mit dem "Entity-Marker"? Ich habs mit dem Wire Tool verbunden...

    Spoiler:
    Mein bisheriger Stand noch ohne Stabilisierung


    Edit:
    Bei dem Versuch, die Drehzahl bei deinem E2 zu erhöhen, war es auf einmal nicht mehr stabil.
    Das brachte mich auf die Idee, die Drehzahl bei meinem zu verringern, jetzt läuft auch meines stabil.
    Geändert von Clarity (30.12.2009 um 21:22 Uhr)

  13. #60

    Standard AW: Fragen zu Expression Gate 2?

    Zitat Zitat von Clarity Beitrag anzeigen
    PS: Was meinst du mit dem "Entity-Marker"? Ich habs mit dem Wire Tool verbunden...
    Der ist bei Wire -> Detection. Damit kannste ein Prop markieren und dann im E2 auf das markierte Entity zugreifen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •