Seite 7 von 7 ErsteErste ... 34567
Ergebnis 61 bis 69 von 69

Thema: Fragen zu Expression Gate 2?

  1. #61

    Standard AW: Fragen zu Expression Gate 2?

    Was gibt findByClass(S) zurück?
    Bei http://wiki.garrysmod.com/?title=Wire_Expression2 steht, dass es eine Number zurückgibt,
    aber was bedeutet diese Zahl? Bei mir ist sie immer 0 mit findByClass("npc*") und das egal ob NPCs gespawnt
    sind oder nicht...

    Edit:
    Es gibt 1 zurück, wenn welche gefunden wurden, 0 wenn nicht.
    Ich habe die Funktion glaube ich einfach nur öfter aufgerufen als erlaubt.
    Jetzt funktioniert alles, hat sich also erledigt.
    Geändert von Clarity (01.01.2010 um 20:16 Uhr)

  2. #62

    Standard AW: Fragen zu Expression Gate 2?

    Kann man die Zeit, die ein E2 zum finden deines Gegners braucht verkürzen?
    das geht bei mir immer 1-2 Sekunden in denen das E2 noch den Vektor des gerade getöteten
    NPCs anvisiert.


    PHP-Code:
    if (!NPC findCanQuery()) {
                
    NPCFound findByClass("npc*")
                
    NPC findClosest(entity():pos())
            }

            if (
    NPCFound) { 
                if (
    abs(NPC:pos():z() + 40 Sawblade:pos():z()) < 3) {
                    
    # Angreifen!
                    
    TempVec = (((NPC:pos() + vec(0,0,40)) - Sawblade:pos()):normalized()*1500 Sawblade:vel()) * Sawblade:mass()
                    
    Sawblade:applyForce(TempVec)
                }
                else {
                    
    # Zuerst die Höhe anpassen
                    
    Sawblade:applyForce(vec(0,0,(NPC:pos():z() + 40 Sawblade:pos():z())) * 2)
                }
            }
        } 

  3. #63

    Standard AW: Fragen zu Expression Gate 2?

    Du könntest direkt alle NPC´s in einem Array speichern und das dann abarbeiten.

    PHP-Code:
    @persist Npcs:array Target:entity
    interval
    2000 # Zb alle 2 Sekunden eine neues Array erstellen
    runOnTick)

    if( 
    clk() & findCanQuery() ) {
       
    findByClass("npc*"
       
    Npcs findToArray()
    }

    if( !
    Target ) {
       
    Target Npcs:popEntity()
    } else {
       
    # Dein Zielcode


  4. #64

    Standard AW: Fragen zu Expression Gate 2?

    Danke für den Tipp, klingt gut, aber geht immer noch nicht so richtig.

    Ich hab mal ein ganz kleines E2 zum testen geschrieben:

    PHP-Code:
    @name TargetTest
    @inputs 
    @outputs 
    @persist NPC:entity Npcs:array 
    @
    trigger 

    runOnTick
    (1)

    if (
    findCanQuery()) {
        
    findByClass("npc*"
        
    Npcs findToArray()
    }

    if (!
    NPC) { 
        
    NPC Npcs:popEntity()
        
    NPC:setColor(255,0,0)

    Selbst da dauert es 1-2 Sekunden, bis der nächste NPC rot wird, wenn ich den roten getötet habe.
    Es dauert glaube ich einfach zu lange bis der Status von "NPC" sich ändert und "!NPC" wahr wird.
    Kann man das irgendwie umgehen?

  5. #65

    Standard AW: Fragen zu Expression Gate 2?

    PHP-Code:
    holoCreate(1)
    holoPos(1,NPC:pos()+vec(0,0,25))
    holoScale(1,vec(1,1,1))
    holoColor(1,vec(255,255,255))
    holoParent(1,entity())
    holoMaterial(1,"models/XQM/LightLinesGB")

    # Melone suchen...
    if (clk() & findCanQuery()) {
        
    MelonFound findByModel("models/props_junk/watermelon01.mdl")
        
    # Gibt es noch keine Melone, muss erst eine gespawnt werden
        
    if (MelonFound <= 1) {
            
    Spawn 1
            findByModel
    ("models/props_junk/watermelon01.mdl")
        }
        else {
            
    Spawn 0
        
    }
        
    MelonA findToArray()
        if (!
    Melon) { 
            
    # Die erste ist immer der spawner, die zweite daher die richtige
            
    Melon MelonA:removeEntity(2)
        }
        
    Melon:setColor(0,I,0#zum test
        
        # Ziemlich aehnlich wie oben, nur werden nun NPCs gesucht
        
    findByModel("*")
        
    NPCFound findByClass("npc*"
        
    Npcs findToArray()

    Warum ist das Hologramm hier über der Melone und nicht über dem NPC?
    Gehören Melonen auch zur Klasse npc* ?
    Wie kann ich es schaffen, dass ich in "Npcs" auch wirklich nur NPCs speicher?


  6. #66
    Avatar von Sk3y
    Registriert seit
    27.09.2009
    Ort
    Magdeburg

    Standard AW: Fragen zu Expression Gate 2?

    Darauf kann bitte jeder antworten.

    Ich möchte gerne mehrere Entitys zusammenfassend einen befehl geben.
    Code:
    @inputs [ELV ELM ELB ERV ERM ERB]:entity
    
    E1 = (ELM ERV ERB)
    E2 = (ELV ELB ERM)
    Ang1 = -(ang(E1:angles():pitch(),0,0) - ang(CH*10,0,0))*(E1:mass()*10)
    E1:applyAngForce(Ang1*8 + $Ang1*13)
    der Code ist nur ein Beispiel. Funktionieren tut er auch nicht.

    Ist es möglich oben genanntes zu ermöglichen? Falls es von belang ist, das ganze ist mit Entity Maker und Ballsocket verbunden.

    Mfg
    Geändert von Sk3y (01.02.2010 um 03:32 Uhr)

  7. #67
    Horst Avatar von minifisch
    Registriert seit
    02.09.2008
    Ort
    Österreich

    Standard AW: Fragen zu Expression Gate 2?

    Ich bin schon sehr geübt im Umgang mit E2 nur möcht ich eins wissen:

    Man kann mit dem E2 Gate Sounds abspielen (soundPlay()) und auch den Pitch(soundPitch()) regeln!

    Wenn ich aber beides in ein E2 Gate packe und sich der Input von Pitch ändert dann wird der Sound erneut abgespielt .

    Ich möchte einfach nur den Pitch neu durchrechnen lassen (pro Tick) aber der Sound soll nur einmal abgespielt werden bzw im Loop laufen (Motorensound)

    lg
    Gruß
    minifisch

  8. #68

    Standard AW: Fragen zu Expression Gate 2?

    Normal müsste das auch ohne gehen. Kannich vllt mal den Code sehen?
    (Wenn dus nicht schon gelöst hast...)

  9. #69
    My Little Blender: Rendering is Magic Avatar von Mitsuma
    Registriert seit
    07.02.2007

    Standard AW: Fragen zu Expression Gate 2?

    Hier mal ein vllt. etwas schwereres Problem:

    Code:
    @name Mitsuma1
    @inputs W S A D Space Shift Seat:entity
    @outputs CamEnable CamPos:vector CamDir:vector
    @persist Prop:entity
    if( first() | duped() ){
       Prop = entity():isWeldedTo(1)
       Prop:setMass(50000)
    }
    interval(50)
    if(Seat:driver())
    {
        ### ADDED cam-controller settings
        CamEnable = 1
        CamPos = Seat:pos() + 100*Seat:forward() 
        CamDir = Seat:forward()*1000
    
        ###CONTROL ANGLE
        # Perform the accurate angle calculation
        EyeVector = vec(Seat:forward():dot(Seat:driver():eye()),-Seat:right():dot(Seat:driver():eye()),Seat:up():do  t(Seat:driver():eye()))
        DesiredDirectionRight = EyeVector:cross(vec(0,0,1)) 
        DesiredDirection = EyeVector:cross(DesiredDirectionRight)
        LocalDifference1 = vec(Prop:forward():dot(DesiredDirection),Prop:righ  t():dot(DesiredDirection),Prop:up():dot(DesiredDir  ection))
        LocalDifference2 = vec(Prop:forward():dot(DesiredDirectionRight),Prop  :right():dot(DesiredDirectionRight),Prop:up():dot(  DesiredDirectionRight))
        DifAngle = angnorm(ang( LocalDifference1:toAngle():pitch(), LocalDifference1:toAngle():yaw(), LocalDifference2:toAngle():pitch() ))
     
        # Apply force
        Prop:applyAngForce(-ang(-240863457.64829*DifAngle:pitch() + 14042677.51405*Prop:angVel():pitch(),242567860.834  9*DifAngle:yaw() + 14009478.474246*Prop:angVel():yaw(),-19768391.033251*DifAngle:roll() + 1150772.6880888*Prop:angVel():roll()))
    
        # Apply positional force
        Force = (Space-Shift)*90000000*Prop:up() + (D-A)*90000000*Prop:right()+ (W-S)*90000000*Prop:forward() - 50000*Prop:vel()
        Prop:applyForce(Force)
    }
    else
    {
        CamEnable = 0
        # Cancel all angular velocity
        DifAngle = ang(0,0,0)
        Prop:applyAngForce(-ang(-240863457.64829*DifAngle:pitch() + 14042677.51405*Prop:angVel():pitch(),242567860.834  9*DifAngle:yaw() + 14009478.474246*Prop:angVel():yaw(),-19768391.033251*DifAngle:roll() + 1150772.6880888*Prop:angVel():roll()))
        Force = -50000*Prop:vel()
        Prop:applyForce(Force)
    }
    Zum Problem:

    Der Code an sich funktioniert bereits, das Problem ist scheinbar ein Denkfehler.
    Das Prop, an welches es geweldet ist lässt sich wie gewollt drehen, nach Vorne, Hinten, Oben, Unten, Links und Rechts bewegen, jedoch liegt das Problem beim Neigen.

    Zur Zeit bewegt sich das Prop nur von 0° bis -180°. Es soll sich aber von 0° bis 360° bewegen können.
    Der Input ist die Maus mit der man das Sichtfeld verschiebt.

    Das macht das Prop zur Zeit nur:


    Dass soll er aber machen:


    Ein Video zu Verdeutlichung:

    HD ist auch verfügbar.http://www.youtube.com/watch?v=EQRFhPZ_Vrg

Berechtigungen

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