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