De/Recoding Weapons: Difference between revisions
mNo edit summary |
RicolOnool (talk | contribs) (monzelr) |
||
Line 1: | Line 1: | ||
ricoloorco | |||
{{Language:de}} | {{Language:de}} | ||
==Einleitung== | ==Einleitung== | ||
Dieses Tutorial beschreibt anhand des [[weapon_smg1|SMG1]]s wie man die Eigenschaften einer Waffe | Dieses Tutorial beschreibt anhand des [[weapon_smg1|SMG1]]s wie man die Eigenschaften einer Waffe ändern kann. | ||
Die Vorgehensweise kann entsprechend bei anderen Waffen angewendet werden. | Die Vorgehensweise kann entsprechend bei anderen Waffen angewendet werden. | ||
'''Was ihr | '''Was ihr benötigt:''' | ||
*Einen Compiler um den Sourcecode zu kompilieren. | *Einen Compiler um den Sourcecode zu kompilieren. | ||
Line 13: | Line 14: | ||
Die Munition im Magazin ist nicht im Source Code definiert, sondern in einem Script. | Die Munition im Magazin ist nicht im Source Code definiert, sondern in einem Script. | ||
Geh' | Geh' zunächst in euren Mod Ordner und öffne den Unterordner scripts. | ||
Darin befinden sich alle Waffenscripts die wir | Darin befinden sich alle Waffenscripts die wir benötigen. | ||
Ãffne nun die Datei | |||
'''weapon_smg1.txt''' | '''weapon_smg1.txt''' | ||
Der | Der für dieses Tutorial wichtige Teil ist folgender: | ||
// Weapon data is loaded by both the Game and Client DLLs. | // Weapon data is loaded by both the Game and Client DLLs. | ||
"printname" "#HL2_SMG1" //Legt den In-Game Namen der Waffe den ihr beim Waffenwechsel angezeigt bekommt fest. | "printname" "#HL2_SMG1" //Legt den In-Game Namen der Waffe den ihr beim Waffenwechsel angezeigt bekommt fest. | ||
"clip_size" "45" //Legt die | "clip_size" "45" //Legt die Grösse des Magazins fest(Primär-Munition). | ||
"clip2_size" "-1" //Legt die | "clip2_size" "-1" //Legt die GröÃe des Magazins fest(Sekundär-Munition). | ||
"default_clip" "45" //Legt fest wieviel Munition die Waffe anfangs im Magazin( | "default_clip" "45" //Legt fest wieviel Munition die Waffe anfangs im Magazin(Primär Munition) hat. | ||
"default_clip2" "-1" //Legt fest wieviel Munition die Waffe | "default_clip2" "-1" //Legt fest wieviel Munition die Waffe zunächst im Magazin(Sekundär Munition) hat. | ||
"primary_ammo" "SMG1" //Legt den Typ der | "primary_ammo" "SMG1" //Legt den Typ der Primär-Munition fest. | ||
"secondary_ammo" "SMG1_Grenade" //Legt den Typ der | "secondary_ammo" "SMG1_Grenade" //Legt den Typ der Sekundär-Munition fest. | ||
Kommen wir zum | Kommen wir zum Abändern dieser: | ||
===Name der Waffe=== | ===Name der Waffe=== | ||
Möchte man den Namen Ãndern, so kann man | |||
"printname" "#HL2_SMG1" | "printname" "#HL2_SMG1" | ||
in | in | ||
"printname" "Minigun" | "printname" "Minigun" | ||
ändern. | |||
<nowiki>#</nowiki>HL2_SMG1 verweist auf eine andere Datei wo die Namen definiert sind. Wir haben den Namen jetzt aber einfach in diesem Script | <nowiki>#</nowiki>HL2_SMG1 verweist auf eine andere Datei wo die Namen definiert sind. Wir haben den Namen jetzt aber einfach in diesem Script geändert. | ||
=== | ===MagazingröÃe=== | ||
Nun | Nun ändern wir die max. Schusszahl pro Magazin indem wir | ||
"clip_size" "45" | "clip_size" "45" | ||
in | in | ||
"clip_size" "100" | "clip_size" "100" | ||
ändern. | |||
Jetzt kann unsere Waffe schon 100 | Jetzt kann unsere Waffe schon 100 Schuà im Magazin tragen. | ||
Würde man jetzt ins Spiel hätte man jedoch im ersten Magazin trotzdem nur 45 Schuss. Ãndern wir also noch | |||
"default_clip" "45" | "default_clip" "45" | ||
zu | zu | ||
Line 62: | Line 63: | ||
===Munitionsart=== | ===Munitionsart=== | ||
Bisher noch nicht | Bisher noch nicht geändert wurden | ||
"primary_ammo" "SMG1" | "primary_ammo" "SMG1" | ||
"secondary_ammo" "SMG1_Grenade" | "secondary_ammo" "SMG1_Grenade" | ||
Diese bestimmen die | Diese bestimmen die primäre und sekundäre Munitionsart der Waffe. | ||
Da wir eine "Minigun" coden entfernen wir den zweiten Feuermodus. | Da wir eine "Minigun" coden entfernen wir den zweiten Feuermodus. | ||
Line 71: | Line 72: | ||
Man | Man könnte nun die primäre Munition einer anderen Waffe nutzen; z.B. | ||
"primary_ammo" "AR2" | "primary_ammo" "AR2" | ||
==Waffen Schaden | ==Waffen Schaden ändern== | ||
So nun kommen wir zum Einstellen des Schadens den eine Waffe bei einem | So nun kommen wir zum Einstellen des Schadens den eine Waffe bei einem Schuà anrichtet! | ||
Der Schaden jeder Waffe wird im Scripts ordner in der jewiligen weapon_ Textdatei festgelegt. | Der Schaden jeder Waffe wird im Scripts ordner in der jewiligen weapon_ Textdatei festgelegt. | ||
Line 86: | Line 87: | ||
"damage" "8" | "damage" "8" | ||
Dort wird also festgelegt das Jeder | Dort wird also festgelegt das Jeder schuà aus der Pistole einen Schaden von 8 Healthpoints macht! | ||
Ãndern wie diesen wert mal wie folgt: | |||
{{Note:de|Diese Zeile steht nur in der Scriptdatei wenn man eine Mod im SDK erstellt hat. In der Datei von HL2 ist diese Zeile nicht vorhanden.}} | {{Note:de|Diese Zeile steht nur in der Scriptdatei wenn man eine Mod im SDK erstellt hat. In der Datei von HL2 ist diese Zeile nicht vorhanden.}} | ||
"damage" "50" | "damage" "50" | ||
Nun macht jeder | Nun macht jeder Schuà aus der Pistole einen Schaden von 50 Healthpoints. | ||
Das war es auch schon wieder mit dem Tutorial | Das war es auch schon wieder mit dem Tutorial für das Waffencoding! | ||
==Die Schussfrequenz | ==Die Schussfrequenz ändern== | ||
Ãffne zunächste die Datei '''Weapon_smg1.cpp'''. | |||
Du findest sie in deinem Sourcecode Ordner in src\game_shared\hl2mp\weapon_smg1.cpp | Du findest sie in deinem Sourcecode Ordner in src\game_shared\hl2mp\weapon_smg1.cpp | ||
Die erste Klasse | Die erste Klasse heiÃt wie folgt: | ||
class CWeaponSMG1 : public CHL2MPMachineGun | class CWeaponSMG1 : public CHL2MPMachineGun | ||
Line 105: | Line 106: | ||
In ihr | In ihr müsst ihr diese Elementfunktion(Methode) finden: | ||
float GetFireRate( void ) | float GetFireRate( void ) | ||
Line 116: | Line 117: | ||
Damit eure Waffe nun schneller/langsamer schiesst | Damit eure Waffe nun schneller/langsamer schiesst müsst ihr den Wert hinter ''return'' nur erhöhen/verringern. | ||
Ãndere den Wert mal in: | |||
float GetFireRate( void ) { return 0.05f; } // | float GetFireRate( void ) { return 0.05f; } // Geändert! (default: 0.065f; //13.3hz) | ||
Kompilierst du nun den Code und kopierst die dlls (sofern nicht automatisch geschehen) in den passenden Ordner so sollte die Waffe im Spiel nun die | Kompilierst du nun den Code und kopierst die dlls (sofern nicht automatisch geschehen) in den passenden Ordner so sollte die Waffe im Spiel nun die geänderte Schussfrequenz haben. | ||
==Maximal-Munition | ==Maximal-Munition verändern== | ||
Im folgenden wird | Im folgenden wird erklärt wie man die maximal mitführbare Primär-Munition erhöhen kann. | ||
Ãffne zunächst folgende Datei: | |||
src\game_shared\hl2mp\'''hl2mp_gamerules.cpp''' | src\game_shared\hl2mp\'''hl2mp_gamerules.cpp''' | ||
Oder im Solution Explorer unter: Source Files -> HL2MP -> hl2mp_gamerules.cpp | Oder im Solution Explorer unter: Source Files -> HL2MP -> hl2mp_gamerules.cpp | ||
Line 140: | Line 141: | ||
Sie definiert die verschiedenen Munitionstypen. | Sie definiert die verschiedenen Munitionstypen. | ||
Z.B. SMG1 ( | Z.B. SMG1 (primäre SMG1 Munition): | ||
def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, 0, 225, BULLET_IMPULSE(200, 1225), 0 ); | def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, 0, 225, BULLET_IMPULSE(200, 1225), 0 ); | ||
Die Definition hat die Form: | Die Definition hat die Form: | ||
Line 148: | Line 149: | ||
Die aktuelle maxAmmo (carry) ist also momentan 225. | Die aktuelle maxAmmo (carry) ist also momentan 225. | ||
Da wir eine "Minigun" coden | Da wir eine "Minigun" coden ändern wir die 225 in 900. | ||
Die Zeile sieht dann | Die Zeile sieht dann folgendermaÃen aus: | ||
def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, | def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, | ||
0, 900, BULLET_IMPULSE(200, 1225), 0 ); | 0, 900, BULLET_IMPULSE(200, 1225), 0 ); | ||
Line 157: | Line 158: | ||
==Startwaffen festlegen== | ==Startwaffen festlegen== | ||
Jetzt haben wir aber beim Spawn noch die Standart-Munitionsmenge. Aber das | Jetzt haben wir aber beim Spawn noch die Standart-Munitionsmenge. Aber das können wir auch umcoden. | ||
Dazu | Dazu müssen wir die zweite cpp öffnen: | ||
src\game_shared\hl2mp\'''hl2mp_player.cpp''' | src\game_shared\hl2mp\'''hl2mp_player.cpp''' | ||
Dort | Dort müssen wir in Zeile 186 eine Methode editieren: | ||
void CHL2MP_Player::GiveDefaultItems( void ) | void CHL2MP_Player::GiveDefaultItems( void ) | ||
bzw: hl -> Source Files -> HL2MP -> hl2mp_player.cpp | bzw: hl -> Source Files -> HL2MP -> hl2mp_player.cpp | ||
Diese legt fest welche Waffen man beim Start bekommt. | Diese legt fest welche Waffen man beim Start bekommt. Für uns ist erstmal nur folgender Teil interessant: | ||
EquipSuit(); // Diese Funktion gibt uns den Anzug! | EquipSuit(); // Diese Funktion gibt uns den Anzug! | ||
// Folgende Methoden geben uns Munition bestimmter Typen! | // Folgende Methoden geben uns Munition bestimmter Typen! | ||
Line 176: | Line 177: | ||
CBasePlayer::GiveAmmo( 10, "357" ); | CBasePlayer::GiveAmmo( 10, "357" ); | ||
//Diese if und else verzweigung sorgt | //Diese if und else verzweigung sorgt dafür das die Combine die Stunsticks und die Rebelen die Brecheisen bekommen! | ||
if ( GetPlayerModelType() == PLAYER_SOUNDS_METROPOLICE || GetPlayerModelType() == PLAYER_SOUNDS_COMBINESOLDIER ) | if ( GetPlayerModelType() == PLAYER_SOUNDS_METROPOLICE || GetPlayerModelType() == PLAYER_SOUNDS_COMBINESOLDIER ) | ||
{ | { | ||
Line 198: | Line 199: | ||
Als Beispiel | Als Beispiel ändern wir die Standartwaffen zu: | ||
''Brecheisen/Stunstick, Revolver, SMG1, Shotgun, Granaten'' | ''Brecheisen/Stunstick, Revolver, SMG1, Shotgun, Granaten'' | ||
Als erstes | Als erstes ändern wir die Munition: | ||
CBasePlayer::GiveAmmo( 200, "Pistol"); | CBasePlayer::GiveAmmo( 200, "Pistol"); | ||
Line 211: | Line 212: | ||
Da wir anstatt der Pistole den Revolver wollen kommentieren wir die Zeile | Da wir anstatt der Pistole den Revolver wollen kommentieren wir die Zeile für die Pistole aus, fügen für den Revolver eine neue ein und fügen für die Shotgun Munition (Buckshot) hinzu: | ||
//CBasePlayer::GiveAmmo( 200, "Pistol"); | //CBasePlayer::GiveAmmo( 200, "Pistol"); | ||
CBasePlayer::GiveAmmo( 30, "357" ); | CBasePlayer::GiveAmmo( 30, "357" ); | ||
Line 220: | Line 221: | ||
Auch hier kommentieren wir die Pistole aus und | Auch hier kommentieren wir die Pistole aus und fügen den Revolver und die Shotgun hinzu: | ||
//GiveNamedItem( "weapon_pistol" ); | //GiveNamedItem( "weapon_pistol" ); | ||
GiveNamedItem( "weapon_357" ); | GiveNamedItem( "weapon_357" ); | ||
Line 229: | Line 230: | ||
== | ==Ãbersicht der Waffen und Munition== | ||
Zum Abschluss noch ein kleiner Anhang; eine Liste der HL2 Waffen- und Munitionsnamen | Zum Abschluss noch ein kleiner Anhang; eine Liste der HL2 Waffen- und Munitionsnamen | ||
Line 247: | Line 248: | ||
GiveNamedItem( "weapon_slam" ); | GiveNamedItem( "weapon_slam" ); | ||
//Anzahl und Typ der Munition | //Anzahl und Typ der Munition für Waffen geben: | ||
CBasePlayer::GiveAmmo( 250, "Pistol"); | CBasePlayer::GiveAmmo( 250, "Pistol"); | ||
CBasePlayer::GiveAmmo( 900, "AR2" ); | CBasePlayer::GiveAmmo( 900, "AR2" ); | ||
Line 260: | Line 261: | ||
Damit ihr auch die verbindung habt, hier eine | Damit ihr auch die verbindung habt, hier eine Ãbersicht wie die Waffen mit der Munition zusammen gehört. Die reihen folge ist genauso wie im HUD! | ||
Fangen wir mit einer Legende an: | Fangen wir mit einer Legende an: | ||
Line 266: | Line 267: | ||
Aufbau der Legende: | Aufbau der Legende: | ||
//Waffe im Spiel( | //Waffe im Spiel(Primär Ammo, Sekundär Ammo) | ||
Befehl zum aufnehmen der Waffe | Befehl zum aufnehmen der Waffe | ||
Befehl zum aufnehmen der Munition der Waffe( | Befehl zum aufnehmen der Munition der Waffe(Primär) | ||
Befehl zum aufnehmen der Munition der Waffe( | Befehl zum aufnehmen der Munition der Waffe(Sekundär) | ||
Jetzt kommen wir zum eigentlichen Aufbau des Codes: | Jetzt kommen wir zum eigentlichen Aufbau des Codes: |
Revision as of 18:49, 6 January 2009
ricoloorco Template:Language:de
Einleitung
Dieses Tutorial beschreibt anhand des SMG1s wie man die Eigenschaften einer Waffe ändern kann.
Die Vorgehensweise kann entsprechend bei anderen Waffen angewendet werden.
Was ihr benötigt:
- Einen Compiler um den Sourcecode zu kompilieren.
Die WaffenScriptdatei
Die Munition im Magazin ist nicht im Source Code definiert, sondern in einem Script.
Geh' zunächst in euren Mod Ordner und öffne den Unterordner scripts.
Darin befinden sich alle Waffenscripts die wir benötigen.
Ãffne nun die Datei
weapon_smg1.txt
Der für dieses Tutorial wichtige Teil ist folgender:
// Weapon data is loaded by both the Game and Client DLLs. "printname" "#HL2_SMG1" //Legt den In-Game Namen der Waffe den ihr beim Waffenwechsel angezeigt bekommt fest. "clip_size" "45" //Legt die Grösse des Magazins fest(Primär-Munition). "clip2_size" "-1" //Legt die GröÃe des Magazins fest(Sekundär-Munition). "default_clip" "45" //Legt fest wieviel Munition die Waffe anfangs im Magazin(Primär Munition) hat. "default_clip2" "-1" //Legt fest wieviel Munition die Waffe zunächst im Magazin(Sekundär Munition) hat. "primary_ammo" "SMG1" //Legt den Typ der Primär-Munition fest. "secondary_ammo" "SMG1_Grenade" //Legt den Typ der Sekundär-Munition fest.
Kommen wir zum Abändern dieser:
Name der Waffe
Möchte man den Namen Ãndern, so kann man
"printname" "#HL2_SMG1"
in
"printname" "Minigun"
ändern.
#HL2_SMG1 verweist auf eine andere Datei wo die Namen definiert sind. Wir haben den Namen jetzt aber einfach in diesem Script geändert.
MagazingröÃe
Nun ändern wir die max. Schusszahl pro Magazin indem wir
"clip_size" "45"
in
"clip_size" "100"
ändern.
Jetzt kann unsere Waffe schon 100 Schuà im Magazin tragen.
Würde man jetzt ins Spiel hätte man jedoch im ersten Magazin trotzdem nur 45 Schuss. Ãndern wir also noch
"default_clip" "45"
zu
"default_clip" "100"
Nun haben wir beim Spawn 1 Magazin = 100 Schuss.
Munitionsart
Bisher noch nicht geändert wurden
"primary_ammo" "SMG1" "secondary_ammo" "SMG1_Grenade"
Diese bestimmen die primäre und sekundäre Munitionsart der Waffe.
Da wir eine "Minigun" coden entfernen wir den zweiten Feuermodus.
"secondary_ammo" "None"
Man könnte nun die primäre Munition einer anderen Waffe nutzen; z.B.
"primary_ammo" "AR2"
Waffen Schaden ändern
So nun kommen wir zum Einstellen des Schadens den eine Waffe bei einem Schuà anrichtet! Der Schaden jeder Waffe wird im Scripts ordner in der jewiligen weapon_ Textdatei festgelegt.
Nehmen wir uns mal die weapon_pistol.txt!
Om oberen Teil steht diese Zeile:
"damage" "8"
Dort wird also festgelegt das Jeder schuà aus der Pistole einen Schaden von 8 Healthpoints macht! Ãndern wie diesen wert mal wie folgt: Template:Note:de
"damage" "50"
Nun macht jeder Schuà aus der Pistole einen Schaden von 50 Healthpoints.
Das war es auch schon wieder mit dem Tutorial für das Waffencoding!
Die Schussfrequenz ändern
Ãffne zunächste die Datei Weapon_smg1.cpp. Du findest sie in deinem Sourcecode Ordner in src\game_shared\hl2mp\weapon_smg1.cpp
Die erste Klasse heiÃt wie folgt:
class CWeaponSMG1 : public CHL2MPMachineGun
In ihr müsst ihr diese Elementfunktion(Methode) finden:
float GetFireRate( void )
Diese wurde von Valve inline gecodet (Direkt in die Klassendeklaration implementiert) und sollte so aussehen:
float GetFireRate( void ) { return 0.065f; } // 13.3hz
Damit eure Waffe nun schneller/langsamer schiesst müsst ihr den Wert hinter return nur erhöhen/verringern.
Ãndere den Wert mal in:
float GetFireRate( void ) { return 0.05f; } // Geändert! (default: 0.065f; //13.3hz)
Kompilierst du nun den Code und kopierst die dlls (sofern nicht automatisch geschehen) in den passenden Ordner so sollte die Waffe im Spiel nun die geänderte Schussfrequenz haben.
Maximal-Munition verändern
Im folgenden wird erklärt wie man die maximal mitführbare Primär-Munition erhöhen kann.
Ãffne zunächst folgende Datei:
src\game_shared\hl2mp\hl2mp_gamerules.cpp
Oder im Solution Explorer unter: Source Files -> HL2MP -> hl2mp_gamerules.cpp
In Zeile 795 findet man die Funktion
CAmmoDef *GetAmmoDef()
Sie definiert die verschiedenen Munitionstypen.
Z.B. SMG1 (primäre SMG1 Munition):
def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, 0, 225, BULLET_IMPULSE(200, 1225), 0 );
Die Definition hat die Form:
// AddAmmoType(name, int damageType, int tracerType, int plr_dmg, int npc_dmg, int carry, float physicsForceImpulse, int nFlags, int minSplashSize, int maxSplashSize )
(aus ammodef.cpp)
Die aktuelle maxAmmo (carry) ist also momentan 225.
Da wir eine "Minigun" coden ändern wir die 225 in 900.
Die Zeile sieht dann folgendermaÃen aus:
def.AddAmmoType("SMG1", DMG_BULLET, TRACER_LINE_AND_WHIZ, 0, 0, 900, BULLET_IMPULSE(200, 1225), 0 );
Fertig zum kompilieren und testen.
Startwaffen festlegen
Jetzt haben wir aber beim Spawn noch die Standart-Munitionsmenge. Aber das können wir auch umcoden.
Dazu müssen wir die zweite cpp öffnen:
src\game_shared\hl2mp\hl2mp_player.cpp
Dort müssen wir in Zeile 186 eine Methode editieren:
void CHL2MP_Player::GiveDefaultItems( void )
bzw: hl -> Source Files -> HL2MP -> hl2mp_player.cpp
Diese legt fest welche Waffen man beim Start bekommt. Für uns ist erstmal nur folgender Teil interessant:
EquipSuit(); // Diese Funktion gibt uns den Anzug! // Folgende Methoden geben uns Munition bestimmter Typen! CBasePlayer::GiveAmmo( 200, "Pistol"); CBasePlayer::GiveAmmo( 250, "SMG1"); CBasePlayer::GiveAmmo( 5, "grenade" ); CBasePlayer::GiveAmmo( 20, "Buckshot"); CBasePlayer::GiveAmmo( 10, "357" ); //Diese if und else verzweigung sorgt dafür das die Combine die Stunsticks und die Rebelen die Brecheisen bekommen! if ( GetPlayerModelType() == PLAYER_SOUNDS_METROPOLICE || GetPlayerModelType() == PLAYER_SOUNDS_COMBINESOLDIER ) { GiveNamedItem( "weapon_stunstick" ); } else if ( GetPlayerModelType() == PLAYER_SOUNDS_CITIZEN ) { GiveNamedItem( "weapon_crowbar" ); } //Diese Funktionen geben uns die eigentlichen Waffen! GiveNamedItem( "weapon_pistol" ); GiveNamedItem( "weapon_smg1" ); GiveNamedItem( "weapon_frag" ); GiveNamedItem( "weapon_physcannon" );
Wir bekommen als Standartwaffen also:
Brecheisen/Stunstick, Physcannon, Pistole, SMG1, Granaten
Als Beispiel ändern wir die Standartwaffen zu:
Brecheisen/Stunstick, Revolver, SMG1, Shotgun, Granaten
Als erstes ändern wir die Munition:
CBasePlayer::GiveAmmo( 200, "Pistol"); CBasePlayer::GiveAmmo( 250, "SMG1"); CBasePlayer::GiveAmmo( 5, "grenade" ); CBasePlayer::GiveAmmo( 20, "Buckshot"); CBasePlayer::GiveAmmo( 10, "357" );
Da wir anstatt der Pistole den Revolver wollen kommentieren wir die Zeile für die Pistole aus, fügen für den Revolver eine neue ein und fügen für die Shotgun Munition (Buckshot) hinzu:
//CBasePlayer::GiveAmmo( 200, "Pistol"); CBasePlayer::GiveAmmo( 30, "357" ); CBasePlayer::GiveAmmo( 250, "SMG1"); CBasePlayer::GiveAmmo( 5, "grenade" ); CBasePlayer::GiveAmmo( 20, "Buckshot"); CBasePlayer::GiveAmmo( 10, "357" );
Auch hier kommentieren wir die Pistole aus und fügen den Revolver und die Shotgun hinzu:
//GiveNamedItem( "weapon_pistol" ); GiveNamedItem( "weapon_357" ); GiveNamedItem( "weapon_smg1" ); GiveNamedItem( "weapon_shotgun" ); GiveNamedItem( "weapon_frag" ); GiveNamedItem( "weapon_physcannon" );
Ãbersicht der Waffen und Munition
Zum Abschluss noch ein kleiner Anhang; eine Liste der HL2 Waffen- und Munitionsnamen
//Nur Waffen geben(Wie im HUD): GiveNamedItem( "weapon_crowbar" ); GiveNamedItem( "weapon_stunstick" ); GiveNamedItem( "weapon_physcannon" ); GiveNamedItem( "weapon_pistol" ); GiveNamedItem( "weapon_357" ); GiveNamedItem( "weapon_smg1" ); GiveNamedItem( "weapon_ar2" ); GiveNamedItem( "weapon_shotgun" ); GiveNamedItem( "weapon_frag" ); GiveNamedItem( "weapon_crossbow" ); GiveNamedItem( "weapon_rpg" ); GiveNamedItem( "weapon_slam" );
//Anzahl und Typ der Munition für Waffen geben: CBasePlayer::GiveAmmo( 250, "Pistol"); CBasePlayer::GiveAmmo( 900, "AR2" ); CBasePlayer::GiveAmmo( 5, "AR2AltFire" ); CBasePlayer::GiveAmmo( 500, "SMG1"); CBasePlayer::GiveAmmo( 5, "smg1_grenade"); CBasePlayer::GiveAmmo( 255, "Buckshot"); CBasePlayer::GiveAmmo( 30, "357" ); CBasePlayer::GiveAmmo( 5, "rpg_round"); CBasePlayer::GiveAmmo( 15, "grenade" ); CBasePlayer::GiveAmmo( 10, "slam" );
Damit ihr auch die verbindung habt, hier eine Ãbersicht wie die Waffen mit der Munition zusammen gehört. Die reihen folge ist genauso wie im HUD!
Fangen wir mit einer Legende an:
Aufbau der Legende:
//Waffe im Spiel(Primär Ammo, Sekundär Ammo) Befehl zum aufnehmen der Waffe Befehl zum aufnehmen der Munition der Waffe(Primär) Befehl zum aufnehmen der Munition der Waffe(Sekundär)
Jetzt kommen wir zum eigentlichen Aufbau des Codes:
//Brecheisen (Keine Munition) GiveNamedItem( "weapon_crowbar" );
//Combine Schlagstock (Keine Munition) GiveNamedItem( "weapon_stunstick" );
//Physcannon(Keine Munition): GiveNamedItem( "weapon_physcannon" );
//Pistole(Pistol): GiveNamedItem( "weapon_pistol" ); CBasePlayer::GiveAmmo( 250, "Pistol");
//Revolver(357): GiveNamedItem( "weapon_357" ); CBasePlayer::GiveAmmo( 30, "357" );
//SMG1(SMG1, smg1_grenade): GiveNamedItem( "weapon_smg1" ); CBasePlayer::GiveAmmo( 500, "SMG1"); CBasePlayer::GiveAmmo( 5, "smg1_grenade");
//AR2(AR2, AR2AltFire): GiveNamedItem( "weapon_ar2" ); CBasePlayer::GiveAmmo( 900, "AR2" ); CBasePlayer::GiveAmmo( 5, "AR2AltFire" );
//Shotgun(Buckshot): GiveNamedItem( "weapon_shotgun" ); CBasePlayer::GiveAmmo( 255, "Buckshot");
//Handgranaten(grenade): GiveNamedItem( "weapon_frag" ); CBasePlayer::GiveAmmo( 15, "grenade" );
//Armbrust(XBowBolt): GiveNamedItem( "weapon_crossbow" ); CBasePlayer::GiveAmmo( 5, "XBowBolt" );
//Raketenwerfer(rpg_round): GiveNamedItem( "weapon_rpg" ); CBasePlayer::GiveAmmo( 5, "rpg_round");
//Slam(slam): GiveNamedItem( "weapon_slam" ); CBasePlayer::GiveAmmo( 10, "slam" );