Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: World Model change

  1. #1

    Standard World Model change

    Hi!

    Ich habe eine Waffe gebaut, die sich nach einem Rechtsklick ein einen Kampfstab "verwandelt". Damit es sich dann besser kämpfen lässt, schaltet das Spiel dann auf die 3rd-Person Sicht. Soweit klappt auch alles.

    Mein Problem ist jetzt, das ich 2 World Modelle benötige, einmal die eingefahrene und einmal die ausgefahrene Waffe.

    Im Weapon Script lässt sich mit SWEP.WeaponModel allerdings nur einmal das World-Model einstellen.

    Wenn ich versuche die "Variable" z.B. durch Second Fire zu ändern bekomme ich folgenden Fehler: attempt to index global 'SWEP' (a nil value)

    Irgendwie muss das doch machbar sein - Immerhin wurde das ganze bei CSS mit der USP und der M4 ja auch gemacht.

    Dunkelbier

  2. #2

    Standard AW: World Model change

    Zeig die Stelle mit dem Code zum Model-Ändern mal. Vielleicht hast du irgendwo ein Punkt oder so vergessen (kenn mich aber damit auch nicht wirklich aus).
    Vielleicht hilfts ja anderen.

    Vielleicht geht ja so:
    Code:
    function SWEP:SecondaryAttack()
      if(ModelSet == 0) then  //kA ob das ModelSet heist
     
      if(SERVER) then
      self.Owner:SWEP.WorldModel = "model1"; 
      end
     
      ModelSet = 1
     
      else (ModelSet == 1) then
     
      if(SERVER) then
      self.Owner:SWEP.WorldModel = "model2"; 
      end
     
      else
      if(SERVER) then
      self.Owner:SWEP.WorldModel = "model1"; 
      end
     
      ModelSet = 0
    
      end
      end
     
     end
    Vielleicht hab ich zu viele "End"'s hingesetzt, ich weiß auch nicht, obs so funktioniert.

    Hui, Beitrag um 11:11 geschrieben
    Geändert von *DEAD*Pr0no0b (21.06.2007 um 10:19 Uhr)

  3. #3

    Standard AW: World Model change

    Hier mal das Lua Script

    Der unten deaktivierte Teil

    Code:
    if change == false then
       SWEP.WorldModel =  "models/weapons/w_kampflanze.mdl"
      else
        SWEP.WorldModel = "models/weapons/w_kampflanze2.mdl"
    end
    macht das Problem. Ich vermute anhand der Fehlermeldung das man "Global" Variablen anscheinend nicht einfach wieder ändern kann.


    Code:
    if ( SERVER ) then
    
    	AddCSLuaFile( "shared.lua" )
    	
    	SWEP.HoldType			= "ar2"
    	
    end
    
    local change = false
    
    if ( CLIENT ) then
    
    	SWEP.PrintName		= "Forcelance"			
    	SWEP.Author		= "Dunkelbier"
    	SWEP.Slot		= 1
    	SWEP.SlotPos		= 1
    	SWEP.Description	= "The Forcelance from the Scifi-Series Andromeda"
    	SWEP.Purpose		= ""
    	SWEP.Instructions	= "Primary fire: Shoot / Fight \n\nSecondary Fire: Toggle Close combat / distance attack"
    	
    end
    
    SWEP.Spawnable			= true
    SWEP.AdminSpawnable		= true
    
    SWEP.ViewModel			= "models/weapons/v_kampflanze.mdl"
    SWEP.WorldModel			= "models/weapons/w_kampflanze.mdl"
    
    SWEP.Weight			= 5
    SWEP.AutoSwitchTo		= false
    SWEP.AutoSwitchFrom		= false
    
    SWEP.Primary.Recoil		= 2
    SWEP.Primary.Damage		= 0
    SWEP.Primary.NumShots		= 0
    SWEP.Primary.Cone		= 0
    SWEP.Primary.ClipSize		= 45
    SWEP.Primary.Delay		= 0.2
    SWEP.Primary.DefaultClip	= 900
    SWEP.Primary.Automatic		= true
    SWEP.Primary.Ammo		= "ar2"
    
    SWEP.Secondary.Delay		= 1
    SWEP.Secondary.ClipSize		= -1
    SWEP.Secondary.DefaultClip	= -1
    SWEP.Secondary.Automatic	= false
    SWEP.Secondary.Ammo		= "none"
    
    
    /*---------------------------------------------------------
       Primary Attack
    ---------------------------------------------------------*/
    local Right = 3.5
    local Forward = 14
    local Up = -3.2
    local Up2 = -3
    
    local mode = 1
    local pang = false
    
    
    util.PrecacheSound("weapons/V_kampflanze/fire.wav")
    util.PrecacheSound("weapons/V_kampflanze/reload.wav")
    util.PrecacheSound("common/bugreporter_succeeded.wav")
    util.PrecacheSound("npc/turret_floor/ping.wav")
    
    function SWEP:Init()
    mode = 1
    self.Weapon:SetNetworkedBool( "mode1", true )
    
    return true;
    end
    
    function SWEP:Think()
    -- if change == false then
    --   SWEP.WorldModel =  "models/weapons/w_kampflanze.mdl"
    --  else
    --    SWEP.WorldModel = "models/weapons/w_kampflanze2.mdl"
    --end 
    end
    
    function SWEP:PrimaryAttack()
    
    if (SERVER) then
    local trace = self.Owner:GetEyeTrace()
    
    if self.Weapon:Clip1() > 0 then
    self:TakePrimaryAmmo( 1 )
    
    self.Weapon:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
    self.Weapon:EmitSound("weapons/V_kampflanze/fire.wav")
    
    local effectdata = EffectData()
    effectdata:SetOrigin( trace.HitPos )
    effectdata:SetNormal( trace.HitNormal )
    effectdata:SetEntity( trace.Entity )
    effectdata:SetAttachment( trace.PhysicsBone )
    util.Effect( "selection_indicator", effectdata )	
    		
    local effectdata = EffectData()
    effectdata:SetOrigin( trace.HitPos )
    effectdata:SetStart( self.Owner:GetShootPos() )
    effectdata:SetAttachment( 1 )
    effectdata:SetEntity( self.Weapon )
    util.Effect( "ToolTracer", effectdata )
    
    local delay = 0.2
    self.Weapon:SetNextPrimaryFire(CurTime() + delay)
    		
     bullet = {}
     bullet.Num=1
     bullet.Src= self.Owner:GetShootPos()
     bullet.Dir= self.Owner:GetAimVector()
     bullet.Spread=Vector(0,0,0)
     bullet.Tracer=1
     bullet.Force=10
     bullet.Damage= 10
      
    self.Owner:FireBullets(bullet) 
    end
    end
    end
    
    function SWEP:SecondaryAttack()
    if change == false then
    
      game.ConsoleCommand("cam_command 1\n")
      game.ConsoleCommand("cam_idealyaw 0\n")
      game.ConsoleCommand("cam_idealpitch 15\n")
      self.Primary.Automatic = false
      self.Weapon:SetNetworkedBool( "change", true )
      change = true
    
    else
    
      game.ConsoleCommand("cam_command 2\n")
      game.ConsoleCommand("cam_idealyaw 90\n")
      game.ConsoleCommand("cam_idealpitch 0\n")
      self.Primary.Automatic = true
      self.Weapon:SetNetworkedBool( "change", false )
      change = false
    end
    
    	end
    
    function SWEP:Deploy()
    -- self.Owner:EmitSound("laser/dep.wav")
    
      game.ConsoleCommand("cam_command 2\n")
      game.ConsoleCommand("cam_idealyaw 90\n")
      game.ConsoleCommand("cam_idealpitch 0\n")
    
      return true;
    end
    
    function SWEP:Holster()
    -- self.Owner:EmitSound("laser/holster.wav")
    
      game.ConsoleCommand("cam_command 2\n")
      game.ConsoleCommand("cam_idealyaw 90\n")
      game.ConsoleCommand("cam_idealpitch 0\n")
    
      return true;
    end
    
    function SWEP:Reload()
      if change == false then
        self.Weapon:DefaultReload( ACT_VM_RELOAD );
        if self.Weapon:Clip1() < 45 and self:Ammo1() > 0 then
          self.Weapon:EmitSound("weapons/V_kampflanze/reload.wav")
        end
      end
    end

  4. #4

    Standard AW: World Model change

    Hab oben was hinzugefügt, vielleicht hilfts ja

    Code:
    function SWEP:SecondaryAttack()
    if change == false then
    
      game.ConsoleCommand("cam_command 1\n")
      game.ConsoleCommand("cam_idealyaw 0\n")
      game.ConsoleCommand("cam_idealpitch 15\n")
      self.Primary.Automatic = false
      self.Weapon:SetNetworkedBool( "change", true )
      change = true
    
    else
      if change == true then
      game.ConsoleCommand("cam_command 2\n")
      game.ConsoleCommand("cam_idealyaw 90\n")
      game.ConsoleCommand("cam_idealpitch 0\n")
      self.Primary.Automatic = true
      self.Weapon:SetNetworkedBool( "change", false )
      change = false
    end
    Vielleicht muss das so aussehen.
    Geändert von *DEAD*Pr0no0b (21.06.2007 um 10:22 Uhr)

  5. #5

    Standard AW: World Model change

    Also der Teil an den du was eingefügt hast funtioniert ja einwandfrei.

    Deine idee von oben hat leider auchnicht funktioniert, da nach dem Doppelpunkt ja nur Funktionen aufgerufen werden und keine Variablen. Genauergesagt hat er wegen dem Punkt nach dem self.owner: nen fehler gezeigt und wenn ich self.owener:WorldModel schreibe sagt er nur das er die Funktion WorldModel nicht finden kann.

  6. #6

    Standard AW: World Model change

    Wie ich schon sagte, ich kenn mich selber nicht damit aus.
    Kannst ja mal gucken, ob aVon irgendwann mal wieder reinschaut ;D
    Oder vielleicht kann Pac dir helfen.

  7. #7

    Standard AW: World Model change

    Zitat Zitat von Dunkelbier Beitrag anzeigen
    Hier mal das Lua Script

    Der unten deaktivierte Teil

    Code:
    if change == false then
       SWEP.WorldModel =  "models/weapons/w_kampflanze.mdl"
      else
        SWEP.WorldModel = "models/weapons/w_kampflanze2.mdl"
    end
    Setzte mal anstatt von SWEP, self ein, also dass das Ganze dann so aussieht

    PHP-Code:
    if ( change == false then
        self
    .WorldModel "models/weapons/w_kampflanze.mdl"
    else
        
    self.WorldModel "models/weapons/w_kampflanze2.mdl"
    end 

    Wenn das nicht funktioniert versuchst du mal folgendes:

    PHP-Code:
    if ( change == false then
        self
    .Weapon:SetModel"models/weapons/w_kampflanze.mdl" 
    else
        
    self.Weapon:SetModel"models/weapons/w_kampflanze2.mdl" 
    end 

    Ach und Pr0no0b, das was du da oben eingesetzt hast ist falsch, es müsste elseif ( if change == true ) then
    heißen.
    Und das mit den Consolecommands kannst du auch abkürzen indem du einfach alle hintereinander schreibst und sie mit einem
    ; trenst.


  8. #8
    Avatar von Scarecrow
    Registriert seit
    15.12.2005
    Ort
    Nordrhein-Westfalen

    Standard AW: World Model change

    Ich hab da ne kurze Frage: Werden die Models bei SWEPs von selbst auf die PCs der Clienten geladen? Falls nicht, ist es notwendig vorher schon beide Models zu laden, anstatt nur eines, denn es könnte zu nem großen Error-Logo bei den Clienten kommen.
    Welches ist die Höchstgeschwindigkeit einer unbeladenen Schwalbe?

  9. #9

    Standard AW: World Model change

    Zitat Zitat von Scarecrow Beitrag anzeigen
    Ich hab da ne kurze Frage: Werden die Models bei SWEPs von selbst auf die PCs der Clienten geladen? Falls nicht, ist es notwendig vorher schon beide Models zu laden, anstatt nur eines, denn es könnte zu nem großen Error-Logo bei den Clienten kommen.
    Models werden nie automatisch mit übertragen...
    Sonst würde es ja Tage dauern bis man auf einem Server gejoint ist,
    der ziemliche viele Custom SWEPs enthält, welche alle mit einem eigenen Model
    versehen sind


    Was er allerdings noch in seiner SWEP machen kann, ist das er die die w_* Models
    precached.


    util.PrecacheModel( ".............." )

  10. Folgender Benutzer sagt Danke zu Pac_187 für den nützlichen Beitrag:


  11. #10
    Avatar von Scarecrow
    Registriert seit
    15.12.2005
    Ort
    Nordrhein-Westfalen

    Standard AW: World Model change

    Zitat Zitat von Pac_187 Beitrag anzeigen
    ...util.PrecacheModel( ".............." )
    Ganz genau das meine ich! Ich habe es mir schon gedacht, dass man auch SWEP-Models precachen muss/kann. Was mir nicht klar war, ist, ob bei SWEPs alles von "selbst" passiert.

    Ok, ich denke, dass ich mein Exosounds Projekt ein wenig verschiebe und stattdessen mich an SWEPs ranmache
    Welches ist die Höchstgeschwindigkeit einer unbeladenen Schwalbe?

Berechtigungen

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