Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Credits:
- // Script erstellt von Stas
- // Offizieller Scripter der Xtreme - RolePlay - Community
- // www.xtreme-roleplay.eu
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Includes
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- #include <a_samp>
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Defines
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // #define DEBUG // Debug Modus - Wenn als Kommentar, dann deaktiviert
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Waffen
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- #define KATANA (8)
- #define SHOTGUN (25)
- #define AK47 (30)
- #define M4 (31)
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // globale Variablen
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- enum eWaffenTasche
- {
- pWaffe1, // Shotgun
- pWaffe2, // AK47
- pWaffe3, // M4
- pWaffe4, // Katana
- pObject1, // Shotgun
- pObject2, // AK47
- pObject3, // M4
- pObject4 // Katana
- }
- new SpielerWaffe[MAX_PLAYERS][eWaffenTasche];
- new pObjectIDs[55] = {
- -1, 331, 333, 334, 335, 336, 337, 338, 339, 341, 321, // 0 - 10
- 322, 323, 324, 325, 326, 342, 343, 344, -1, -1 , -1 , // 11 - 21
- 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, // 22 - 32
- 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, // 33 - 43
- 368, 369, -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , // 44 - 54
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // CallBacks
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- public OnFilterScriptInit() {
- return 1;
- }
- public OnFilterScriptExit() {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SpielerWaffe[playerid][pObject4] = 0;
- SpielerWaffe[playerid][pObject4] = 0;
- SpielerWaffe[playerid][pObject4] = 0;
- SpielerWaffe[playerid][pObject4] = 0;
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) {
- new Waffe[13][2];
- for (new index = 0; index < 13; index++) {
- GetPlayerWeaponData(playerid, index, Waffe[index][0], Waffe[index][1]);
- if(Waffe[index][0] == KATANA) {
- SetzeWaffe(playerid, KATANA);
- }
- else if(Waffe[index][0] == SHOTGUN) {
- SetzeWaffe(playerid, SHOTGUN);
- }
- else if(Waffe[index][0] == AK47) {
- SetzeWaffe(playerid, AK47);
- }
- else if(Waffe[index][0] == M4) {
- SetzeWaffe(playerid, M4);
- }
- }
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
- if(SpielerWaffe[playerid][pObject1] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject1]);
- #if defined DEBUG
- printf("Zerstöre Waffe wegen einsteigen ins Auto - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- SpielerWaffe[playerid][pObject1] = 0;
- }
- if(SpielerWaffe[playerid][pObject2] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject2]);
- #if defined DEBUG
- printf("Zerstöre Waffe wegen einsteigen ins Auto - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- SpielerWaffe[playerid][pObject2] = 0;
- }
- if(SpielerWaffe[playerid][pObject3] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject3]);
- #if defined DEBUG
- printf("Zerstöre Waffe wegen einsteigen ins Auto - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- SpielerWaffe[playerid][pObject3] = 0;
- }
- if(SpielerWaffe[playerid][pObject4] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject4]);
- #if defined DEBUG
- printf("Zerstöre Waffe wegen einsteigen ins Auto - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- SpielerWaffe[playerid][pObject4] = 0;
- }
- return 1;
- }
- public OnPlayerUpdate(playerid) {
- new iAktuelleWaffe = GetPlayerWeapon(playerid);
- new iAlteWaffe = GetPVarInt(playerid, "Spieler_AktWaffe");
- if(iAktuelleWaffe != iAlteWaffe) {
- WennSpielerWaffeWechselt(playerid, iAlteWaffe, iAktuelleWaffe);
- SetPVarInt(playerid, "Spieler_AktWaffe", iAktuelleWaffe);
- }
- if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) {
- #if defined DEBUG
- print("Spieler duckt sich");
- #endif
- if(SpielerWaffe[playerid][pObject1] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.3, -0.4, -25.0, 625.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject2] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.3, -0.4, -25.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject3] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.3, -0.4, -25.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject4] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.13, 0.0, -25.0, 180.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- }
- SetPVarInt(playerid, "Spieler_Geduckt", 1);
- }
- else {
- if(GetPVarInt(playerid, "Spieler_Geduckt")) {
- #if defined DEBUG
- print("Spieler steht auf");
- #endif
- if(SpielerWaffe[playerid][pObject1] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.23, 0.15, -10.0, 625.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject2] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject3] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Zerstöre Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- }
- if(SpielerWaffe[playerid][pObject4] != 0) {
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.18, 0.5, -8.0, 180.0, 0.0);
- #if defined DEBUG
- printf("Verschiebe - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- }
- SetPVarInt(playerid, "Spieler_Geduckt", 0);
- }
- }
- return 1;
- }
- forward WennSpielerWaffeWechselt(playerid, oldweapon, newweapon);
- public WennSpielerWaffeWechselt(playerid, oldweapon, newweapon) {
- // Entferne die Waffe vom Rücken, falls Spieler diese nun auf der Hand hält
- if(newweapon == SHOTGUN) {
- if(SpielerWaffe[playerid][pObject1] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject1]);
- #if defined DEBUG
- printf("Zerstöre Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- SpielerWaffe[playerid][pObject1] = 0;
- }
- }
- else if(newweapon == AK47) {
- if(SpielerWaffe[playerid][pObject2] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject2]);
- #if defined DEBUG
- printf("Zerstöre Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- SpielerWaffe[playerid][pObject2] = 0;
- }
- }
- else if(newweapon == M4) {
- if(SpielerWaffe[playerid][pObject3] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject3]);
- #if defined DEBUG
- printf("Zerstöre Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- SpielerWaffe[playerid][pObject3] = 0;
- }
- }
- else if(newweapon == KATANA)
- {
- if(SpielerWaffe[playerid][pObject4] != 0) {
- DestroyObject(SpielerWaffe[playerid][pObject4]);
- #if defined DEBUG
- printf("Zerstöre Waffe - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- SpielerWaffe[playerid][pObject4] = 0;
- }
- }
- // Setze die Waffen auf den Rücken
- if(oldweapon == KATANA) {
- SetzeWaffe(playerid, KATANA);
- }
- else if(oldweapon == SHOTGUN) {
- SetzeWaffe(playerid, SHOTGUN);
- }
- else if(oldweapon == AK47) {
- SetzeWaffe(playerid, AK47);
- }
- else if(oldweapon == M4) {
- SetzeWaffe(playerid, M4);
- }
- }
- // private Funktionen
- stock SetzeWaffe(playerid, Waffe) {
- if(Waffe == SHOTGUN) {
- if(SpielerWaffe[playerid][pObject1] == 0) {
- SpielerWaffe[playerid][pWaffe1] = SHOTGUN;
- SpielerWaffe[playerid][pObject1] = CreateObject(Waffe_HoleObjectID(SHOTGUN), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.23, 0.15, -10.0, 625.0, 0.0);
- #if defined DEBUG
- printf("Packe Waffe auf Ruecken - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- }
- else {
- #if defined DEBUG
- printf("Hat Waffe auf Ruecken - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
- #endif
- }
- }
- else if(Waffe == AK47) {
- if(SpielerWaffe[playerid][pObject2] == 0) {
- SpielerWaffe[playerid][pWaffe2] = AK47;
- SpielerWaffe[playerid][pObject2] = CreateObject(Waffe_HoleObjectID(AK47), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Packe Waffe auf Ruecken - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- }
- else {
- #if defined DEBUG
- printf("Hat Waffe auf Ruecken - AK47 - %d",SpielerWaffe[playerid][pObject2]);
- #endif
- }
- }
- else if(Waffe == M4) {
- if(SpielerWaffe[playerid][pObject3] == 0) {
- SpielerWaffe[playerid][pWaffe3] = M4;
- SpielerWaffe[playerid][pObject3] = CreateObject(Waffe_HoleObjectID(M4), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
- #if defined DEBUG
- printf("Packe Waffe auf Ruecken - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- }
- else {
- #if defined DEBUG
- printf("Hat Waffe auf Ruecken - M4 - %d",SpielerWaffe[playerid][pObject3]);
- #endif
- }
- }
- else if(Waffe == KATANA) {
- if(SpielerWaffe[playerid][pObject4] == 0) {
- SpielerWaffe[playerid][pWaffe4] = KATANA;
- SpielerWaffe[playerid][pObject4] = CreateObject(Waffe_HoleObjectID(KATANA), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.18, 0.5, -8.0, 180.0, 0.0);
- #if defined DEBUG
- printf("Packe Waffe auf Ruecken - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- }
- else {
- #if defined DEBUG
- printf("Hat Waffe auf Ruecken - Katana - %d",SpielerWaffe[playerid][pObject4]);
- #endif
- }
- }
- }
- stock Waffe_HoleObjectID(WaffenID) {
- if (WaffenID < 0 || WaffenID > 54) return -1;
- return pObjectIDs[WaffenID];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement