Advertisement
Guest User

Untitled

a guest
Apr 19th, 2010
1,158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.56 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. // Credits:
  3. // Script erstellt von Stas
  4. // Offizieller Scripter der Xtreme - RolePlay - Community
  5. // www.xtreme-roleplay.eu
  6. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7. // Includes
  8. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. #include <a_samp>
  10. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  11. // Defines
  12. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  13. // #define DEBUG // Debug Modus - Wenn als Kommentar, dann deaktiviert
  14. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  15. // Waffen
  16. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  17. #define KATANA                  (8)
  18. #define SHOTGUN                 (25)
  19. #define AK47                    (30)
  20. #define M4                      (31)
  21. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  22. // globale Variablen
  23. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  24. enum eWaffenTasche
  25. {
  26.     pWaffe1, // Shotgun
  27.     pWaffe2, // AK47
  28.     pWaffe3, // M4
  29.     pWaffe4, // Katana
  30.     pObject1, // Shotgun
  31.     pObject2, // AK47
  32.     pObject3, // M4
  33.     pObject4 // Katana
  34. }
  35. new SpielerWaffe[MAX_PLAYERS][eWaffenTasche];
  36. new pObjectIDs[55] = {
  37.    -1,  331, 333, 334, 335, 336, 337, 338, 339, 341, 321, // 0 - 10
  38.    322, 323, 324, 325, 326, 342, 343, 344, -1,  -1 , -1 , // 11 - 21
  39.    346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, // 22 - 32
  40.    357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, // 33 - 43
  41.    368, 369, -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , // 44 - 54
  42. };
  43. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44. // CallBacks
  45. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  46. public OnFilterScriptInit() {
  47.     return 1;
  48. }
  49.  
  50. public OnFilterScriptExit() {
  51.     return 1;
  52. }
  53.  
  54. public OnPlayerConnect(playerid)
  55. {
  56.     SpielerWaffe[playerid][pObject4] = 0;
  57.     SpielerWaffe[playerid][pObject4] = 0;
  58.     SpielerWaffe[playerid][pObject4] = 0;
  59.     SpielerWaffe[playerid][pObject4] = 0;
  60.     return 1;
  61. }
  62.  
  63. public OnPlayerStateChange(playerid, newstate, oldstate) {
  64.     if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) {
  65.         new Waffe[13][2];
  66.         for (new index = 0; index < 13; index++) {
  67.             GetPlayerWeaponData(playerid, index, Waffe[index][0], Waffe[index][1]);
  68.             if(Waffe[index][0] == KATANA) {
  69.                 SetzeWaffe(playerid, KATANA);
  70.             }
  71.             else if(Waffe[index][0] == SHOTGUN) {
  72.                 SetzeWaffe(playerid, SHOTGUN);
  73.             }
  74.             else if(Waffe[index][0] == AK47) {
  75.                 SetzeWaffe(playerid, AK47);
  76.             }
  77.             else if(Waffe[index][0] == M4) {
  78.                 SetzeWaffe(playerid, M4);
  79.             }
  80.         }
  81.     }
  82.     return 1;
  83. }
  84.  
  85. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
  86.     if(SpielerWaffe[playerid][pObject1] != 0) {
  87.         DestroyObject(SpielerWaffe[playerid][pObject1]);
  88.         #if defined DEBUG
  89.             printf("Zerstöre Waffe wegen einsteigen ins Auto - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  90.         #endif
  91.         SpielerWaffe[playerid][pObject1] = 0;
  92.     }
  93.     if(SpielerWaffe[playerid][pObject2] != 0) {
  94.         DestroyObject(SpielerWaffe[playerid][pObject2]);
  95.         #if defined DEBUG
  96.             printf("Zerstöre Waffe wegen einsteigen ins Auto - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  97.         #endif
  98.         SpielerWaffe[playerid][pObject2] = 0;
  99.     }
  100.     if(SpielerWaffe[playerid][pObject3] != 0) {
  101.         DestroyObject(SpielerWaffe[playerid][pObject3]);
  102.         #if defined DEBUG
  103.             printf("Zerstöre Waffe wegen einsteigen ins Auto - M4 - %d",SpielerWaffe[playerid][pObject3]);
  104.         #endif
  105.         SpielerWaffe[playerid][pObject3] = 0;
  106.     }
  107.     if(SpielerWaffe[playerid][pObject4] != 0) {
  108.         DestroyObject(SpielerWaffe[playerid][pObject4]);
  109.         #if defined DEBUG
  110.             printf("Zerstöre Waffe wegen einsteigen ins Auto - Katana - %d",SpielerWaffe[playerid][pObject4]);
  111.         #endif
  112.         SpielerWaffe[playerid][pObject4] = 0;
  113.     }
  114.     return 1;
  115. }
  116.  
  117. public OnPlayerUpdate(playerid) {
  118.     new iAktuelleWaffe = GetPlayerWeapon(playerid);
  119.     new iAlteWaffe = GetPVarInt(playerid, "Spieler_AktWaffe");
  120.     if(iAktuelleWaffe != iAlteWaffe) {
  121.         WennSpielerWaffeWechselt(playerid, iAlteWaffe, iAktuelleWaffe);
  122.         SetPVarInt(playerid, "Spieler_AktWaffe", iAktuelleWaffe);
  123.     }
  124.     if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) {
  125.         #if defined DEBUG
  126.             print("Spieler duckt sich");
  127.         #endif
  128.         if(SpielerWaffe[playerid][pObject1] != 0) {
  129.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.3, -0.4, -25.0, 625.0, 0.0);
  130.             #if defined DEBUG
  131.                 printf("Verschiebe Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  132.             #endif
  133.         }
  134.         if(SpielerWaffe[playerid][pObject2] != 0) {
  135.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.3, -0.4, -25.0, 300.0, 0.0);
  136.             #if defined DEBUG
  137.                 printf("Verschiebe Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  138.             #endif
  139.         }
  140.         if(SpielerWaffe[playerid][pObject3] != 0) {
  141.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.3, -0.4, -25.0, 300.0, 0.0);
  142.             #if defined DEBUG
  143.                 printf("Verschiebe Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
  144.             #endif
  145.         }
  146.         if(SpielerWaffe[playerid][pObject4] != 0) {
  147.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.13, 0.0, -25.0, 180.0, 0.0);
  148.             #if defined DEBUG
  149.                 printf("Verschiebe - Katana - %d",SpielerWaffe[playerid][pObject4]);
  150.             #endif
  151.         }
  152.         SetPVarInt(playerid, "Spieler_Geduckt", 1);
  153.     }
  154.     else {
  155.         if(GetPVarInt(playerid, "Spieler_Geduckt")) {
  156.             #if defined DEBUG
  157.                 print("Spieler steht auf");
  158.             #endif
  159.             if(SpielerWaffe[playerid][pObject1] != 0) {
  160.                 AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.23, 0.15, -10.0, 625.0, 0.0);
  161.                 #if defined DEBUG
  162.                     printf("Verschiebe Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  163.                 #endif
  164.             }
  165.             if(SpielerWaffe[playerid][pObject2] != 0) {
  166.                 AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
  167.                 #if defined DEBUG
  168.                     printf("Verschiebe Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  169.                 #endif
  170.             }
  171.             if(SpielerWaffe[playerid][pObject3] != 0) {
  172.                 AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
  173.                 #if defined DEBUG
  174.                     printf("Zerstöre Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
  175.                 #endif
  176.             }
  177.             if(SpielerWaffe[playerid][pObject4] != 0) {
  178.                 AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.18, 0.5, -8.0, 180.0, 0.0);
  179.                 #if defined DEBUG
  180.                     printf("Verschiebe - Katana - %d",SpielerWaffe[playerid][pObject4]);
  181.                 #endif
  182.             }
  183.             SetPVarInt(playerid, "Spieler_Geduckt", 0);
  184.         }
  185.     }
  186.     return 1;
  187. }
  188.  
  189. forward WennSpielerWaffeWechselt(playerid, oldweapon, newweapon);
  190. public WennSpielerWaffeWechselt(playerid, oldweapon, newweapon) {
  191.     // Entferne die Waffe vom Rücken, falls Spieler diese nun auf der Hand hält
  192.     if(newweapon == SHOTGUN) {
  193.         if(SpielerWaffe[playerid][pObject1] != 0) {
  194.             DestroyObject(SpielerWaffe[playerid][pObject1]);
  195.             #if defined DEBUG
  196.                 printf("Zerstöre Waffe - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  197.             #endif
  198.             SpielerWaffe[playerid][pObject1] = 0;
  199.         }
  200.     }
  201.     else if(newweapon == AK47) {
  202.         if(SpielerWaffe[playerid][pObject2] != 0) {
  203.             DestroyObject(SpielerWaffe[playerid][pObject2]);
  204.             #if defined DEBUG
  205.                 printf("Zerstöre Waffe - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  206.             #endif
  207.             SpielerWaffe[playerid][pObject2] = 0;
  208.         }
  209.     }
  210.     else if(newweapon == M4) {
  211.         if(SpielerWaffe[playerid][pObject3] != 0) {
  212.             DestroyObject(SpielerWaffe[playerid][pObject3]);
  213.             #if defined DEBUG
  214.                 printf("Zerstöre Waffe - M4 - %d",SpielerWaffe[playerid][pObject3]);
  215.             #endif
  216.             SpielerWaffe[playerid][pObject3] = 0;
  217.         }
  218.     }
  219.     else if(newweapon == KATANA)
  220.     {
  221.         if(SpielerWaffe[playerid][pObject4] != 0) {
  222.             DestroyObject(SpielerWaffe[playerid][pObject4]);
  223.             #if defined DEBUG
  224.                 printf("Zerstöre Waffe - Katana - %d",SpielerWaffe[playerid][pObject4]);
  225.             #endif
  226.             SpielerWaffe[playerid][pObject4] = 0;
  227.         }
  228.     }
  229.     // Setze die Waffen auf den Rücken
  230.     if(oldweapon == KATANA) {
  231.         SetzeWaffe(playerid, KATANA);
  232.     }
  233.     else if(oldweapon == SHOTGUN) {
  234.         SetzeWaffe(playerid, SHOTGUN);
  235.     }
  236.     else if(oldweapon == AK47) {
  237.         SetzeWaffe(playerid, AK47);
  238.     }
  239.     else if(oldweapon == M4) {
  240.         SetzeWaffe(playerid, M4);
  241.     }
  242. }
  243.  
  244. // private Funktionen
  245. stock SetzeWaffe(playerid, Waffe) {
  246.     if(Waffe == SHOTGUN) {
  247.         if(SpielerWaffe[playerid][pObject1] == 0) {
  248.             SpielerWaffe[playerid][pWaffe1] = SHOTGUN;
  249.             SpielerWaffe[playerid][pObject1] = CreateObject(Waffe_HoleObjectID(SHOTGUN), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  250.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject1], playerid, 0, -0.23, 0.15, -10.0, 625.0, 0.0);
  251.             #if defined DEBUG
  252.                 printf("Packe Waffe auf Ruecken - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  253.             #endif
  254.         }
  255.         else {
  256.             #if defined DEBUG
  257.                 printf("Hat Waffe auf Ruecken - Shotgun - %d",SpielerWaffe[playerid][pObject1]);
  258.             #endif
  259.         }
  260.     }
  261.     else if(Waffe == AK47) {
  262.         if(SpielerWaffe[playerid][pObject2] == 0) {
  263.             SpielerWaffe[playerid][pWaffe2] = AK47;
  264.             SpielerWaffe[playerid][pObject2] = CreateObject(Waffe_HoleObjectID(AK47), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  265.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject2], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
  266.             #if defined DEBUG
  267.                 printf("Packe Waffe auf Ruecken - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  268.             #endif
  269.         }
  270.         else {
  271.             #if defined DEBUG
  272.                 printf("Hat Waffe auf Ruecken - AK47 - %d",SpielerWaffe[playerid][pObject2]);
  273.             #endif
  274.         }
  275.     }
  276.     else if(Waffe == M4) {
  277.         if(SpielerWaffe[playerid][pObject3] == 0) {
  278.             SpielerWaffe[playerid][pWaffe3] = M4;
  279.             SpielerWaffe[playerid][pObject3] = CreateObject(Waffe_HoleObjectID(M4), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  280.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject3], playerid, 0, -0.23, 0.15, -10.0, 300.0, 0.0);
  281.             #if defined DEBUG
  282.                 printf("Packe Waffe auf Ruecken - M4 - %d",SpielerWaffe[playerid][pObject3]);
  283.             #endif
  284.         }
  285.         else {
  286.             #if defined DEBUG
  287.                 printf("Hat Waffe auf Ruecken - M4 - %d",SpielerWaffe[playerid][pObject3]);
  288.             #endif
  289.         }
  290.     }
  291.     else if(Waffe == KATANA) {
  292.         if(SpielerWaffe[playerid][pObject4] == 0) {
  293.             SpielerWaffe[playerid][pWaffe4] = KATANA;
  294.             SpielerWaffe[playerid][pObject4] = CreateObject(Waffe_HoleObjectID(KATANA), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  295.             AttachObjectToPlayer(SpielerWaffe[playerid][pObject4], playerid, 0, -0.18, 0.5, -8.0, 180.0, 0.0);
  296.             #if defined DEBUG
  297.                 printf("Packe Waffe auf Ruecken - Katana - %d",SpielerWaffe[playerid][pObject4]);
  298.             #endif
  299.         }
  300.         else {
  301.             #if defined DEBUG
  302.                 printf("Hat Waffe auf Ruecken - Katana - %d",SpielerWaffe[playerid][pObject4]);
  303.             #endif
  304.         }
  305.     }
  306. }
  307.  
  308. stock Waffe_HoleObjectID(WaffenID) {
  309.     if (WaffenID < 0 || WaffenID > 54) return -1;
  310.     return pObjectIDs[WaffenID];
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement