Tipps zum erstellen von Waffen
	
	
		Hey, ich poste hier nur kleine Tipps.
Als erstes solltet ihr eine Waffe erstellen damit ihr euch erst einmal damit verständlich macht.
Das beste ist natürlich das sdk zu installieren um die Models und Sounds später besser zu finden.
Danach geht in den Ordner von Garry (X:\Steam\SteamApps\SourceMods\gmod9\lua\weapons)
Dort sind alle Garry mod Waffen.
Das einfachste für den Anfang ist es erst einmal eine Referenz zu öffnen dazu geht in den ordern "tpc" und kopiert euch eine Waffe z.B. tpc_mac10.lua in den Ordner weapons
 und nennt diese "mac10.lua" (öffnen tut ihr mit dem Editor/Notepad oder mit dem "WordPad-MFC-Anwendung".
Dann seht ihr folgendes
-- wird gestartet sobald W
So ist dies Funktion dafür verantwortlich, ist von Model zu Model anders.
Somit switcht einfach auf "false" oder "true" um die Model Seite in der First Person zu ändern :
	function getWeaponSwapHands()
		return true;	
	end[/color]
	
Das ist das FOV "Field of view" der First Person Waffe, umso kleiner desto näher ist die Waffe in der First Person
	function getWeaponFOV()
		return 74;	
	end
	
Dies ist der Waffenslot wo die neue Waffe erscheint :
0 = crowbar/grav gun
1 = pistol/357
2 = smg/pulse rifle
3 = shotgun/crossbow
4 = genade/rpg
5 = bugbait
function getWeaponSlot()
	return 3;	
end
	
Die ist die Waffen Höhe im slot 
	function getWeaponSlotPos()
		return 6;	
	end
	
Das sagt wohl alles (Schiessen unter wasser ja "true" oder nein "false"
	function getFiresUnderwater()
		return true;
	end
	
Dies bedeutet, ob die Waffe wie eine Schrotflinte nachgeladen(true) wird oder ein ganzes Magazin (false)
	function getReloadsSingly()
		return false;
	end
	
Das dürfte jedem klar sein, dass ist der schaden der waffe
	function getDamage()
		return 30;
	end
	
Das ist die Schussreihenfolge, umso höher desto langsamer
	function getPrimaryShotDelay()
		return 0.07;
	end
	
Das selbe nur ist primary für die erste Waffen funkt. und secondary die zweite
	function getSecondaryShotDelay()
		return 100;
	end
	
Schießt die Waffe bei halten der Angriffstaste weiter oder muss man immer klicken (zum Beispiel bei einem Revolver)
	function getPrimaryIsAutomatic()
		return true;
	end
	
Das selbe nur ist "primary" für die erste Waffen funkt. und "secondary" die zweite
	function getSecondaryIsAutomatic()
		return true;
	end
	
der streu Radius der Waffe, je höher desto mehr
	function getBulletSpread()
		return vector3( 0.02, 0.02, 0.02 );
	end
	
 Das ist klar oder ? hier wird die sicht des Spielers gekickt.
der erste :
- 1 > bedeutet = hoch
  1 > bedeutet = runter
der zweite :
- 1 > bedeutet = rechts
  1 > bedeutet = links
der dritte :
- 1 > bedeutet = kippt nach links
  1 > bedeutet = kippt nach rechts
	function getViewKick()
		return vector3( -2.0, 0.0, 0.0);
	end
	
 das gleiche wie  getViewKick
	function getViewKickRandom()
		return vector3( 1.4, 2.0, 1.0 );
	end
	
Das first person model (sieht man nur selber)
	function getViewModel( )
		return "models/weapons/v_smg_mac10.mdl";
	end
Das third Person Model (sieht man am Spieler)
	function getWorldModel( )
		return "models/weapons/w_smg_mac10.mdl";
	end
	
 das ist wichtig bei mods, aber später mehr.
Wichtig keine doppelten Namen, so ist weapon_awp schon besetzt usw.
	function getClassName()
		return "weapon_mac10";
	end
 Das ist der munitions-Typ, auch hier gilt primär und sekundär
	function getPrimaryAmmoType()
		return "357";
	end
 Das ist der munitions-Typ, auch hier gilt primär und sekundär
	function getSecondaryAmmoType()
		return "357";
	end
	
 Maximale Munition in der Waffe, auch hier gilt primär und sekundär
	function getMaxClipPrimary()
		return 30;
	end
	
 Maximale Munition in der Waffe, auch hier gilt primär und sekundär. wobei -1 bedeutet keine munition
	function getMaxClipSecondary()
		return -1;
	end
	
Munition in der Waffe beim erhalten, auch hier gilt primär und sekundär. wobei -1 bedeutet keine Munition
	function getDefClipPrimary()
		return 90;
	end
	
Munition in der Waffe beim erhalten, auch hier gilt primär und sekundär. wobei -1 bedeutet keine Munition
	function getDefClipSecondary()
		return -1;
	end
Die Animation wie der Spieler die Waffe hält
	-- pistol, smg, ar2, shotgun, rpg, phys, crossbow, melee, slam, grenade
	function getAnimPrefix()
		return "pistol";
	end
Der Name der Waffe der im hud und in der Konsole angezeigt wird
	function getPrintName()
		return "Mac10";
	end
	
 Sagt alles, auch hier gilt Primär und Sekundär
	-- 0 = Don't override, shoot bullets, make sound and flash
	-- 1 = Don't shoot bullets but do make flash/sounds
	-- 2 = Only play animations
	-- 3 = Don't do anything
	function getPrimaryScriptOverride()
		return 0;
	end
 Sagt alles, auch hier gilt Primär und Sekundär
	function getSecondaryScriptOverride()
		return 3;
	end
Hier findet ihr mehr :
http://gmwiki.garry.tv/index.php/Category:Lua_Bindings
Nun arbeite ich aber weiter an meiner mod  :wink:
die Beispiel Waffe lädt ihr dann so z.B. (der Pfad muss korrekt sein aber .lua ist nicht erforderlich) :
	Code:
	
lua _PlayerGiveSWEP( 1, "weapons/mac10.lua" );
 
	Code:
	
Munitions sorten
    *  AR2
    * AlyxGun
    * Pistol
    * SMG1
    * 357
    * XBowBolt
    * Buckshot
    * RPG_Round
    * SMG1_Grenade
    * SniperRound
    * SniperPenetratedRound
    * Grenade
    * Thumper
    * Gravity
    * Battery
    * GaussEnergy
    * CombineCannon
    * AirboatGun
    * StriderMinigun
    * HelicopterGun
    * AR2AltFire
    * slam
 
	Code:
	
Sounds der waffen
Half-Life 2:
Weapon_357.Single
Weapon_AR2.Single
Weapon_Crossbow.Single
Weapon_Crowbar.Single
Weapon_PhysCannon.Launch
Weapon_PhysCannon.DryFire
Weapon_Physgun.On
Weapon_Pistol.Single
Weapon_RPG.Single
Weapon_Shotgun.Single
Weapon_Shotgun.Double
Weapon_SMG1.Single
Weapon_StunStick.Swing
  
Counter-Strike:
Weapon_AK47.Single
Weapon_AUG.Single
Weapon_AWP.Single
Weapon_DEagle.Single
Weapon_Elite.Single
Weapon_FAMAS.Single
Weapon_FiveSeven.Single
Weapon_G3SG1.Single
Weapon_Galil.Single
Weapon_Glock.Single
Weapon_M3.Single
Weapon_M4A1.Single
Weapon_M4A1.Silenced
Weapon_M249.Single
Weapon_MAC10.Single
Weapon_MP5Navy.Single
Weapon_P90.Single
Weapon_P228.Single
Weapon_Scout.Single
Weapon_SG552.Single
Weapon_TMP.Single
Weapon_UMP45.Single
Weapon_USP.Single
Weapon_XM1014.Single