Advertisement
Guest User

Enter/Exit-System by Firerfan

a guest
Jun 29th, 2011
549
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.53 KB | None | 0 0
  1. #include <a_samp>
  2. #pragma tabsize 0
  3. new sendfstring[200];
  4. #define SendFormatMessage(%1,%2,%3,%4) format(sendfstring,128,(%3),%4); SendClientMessage((%1), (%2) ,sendfstring)
  5. /*
  6.     ** Enters-System
  7.     ** Copyright (c) by Firerfan
  8.     ** Lizenz: CC BY-NC-SA 3.0
  9.     ** Informationen: http://creativecommons.org/licenses/by-nc-sa/3.0/de/
  10.  
  11.     ** Neue Eingänge hinzufügen
  12.         1. sucht "new enters"
  13.         2. öffnet eine weitere Klammer darunter und fügt folgende Daten ein:
  14.             {Aussen_X,Aussen_Y,Aussen_Z,Innen_X,Innen_Y,Innen_Z,InteriorID,Virtuelle-Welt,"Text beim Enter-Pickup"}
  15.             Bitte beachten: Hinter jedem Enter muss ein Komma sein, ausser bei dem letzten!
  16.         3. Server restarten & Benutzen ;)
  17.  
  18.     ** Kontakt:
  19.         Skype: firerfan96
  20.         E-Mail: firerfan@googlemail.com
  21. */
  22. //==============================================================================================
  23. // ALLGEMINE EINSTELLUNGEN
  24. #define MAX_ENTERS 1 // Auf die Anzahl der Einträge setzen
  25. #define E_COLOR 0x008080FF // Eure Farbe für die 3D-Texte an den Ein/Ausgängen
  26. new Float:E_Distance = 15.0; // Anzeigeweite des 3D-Textes
  27. new Float:E_enterdist = 1.0; // In welcher Reichweite man die Taste drücken muss
  28. new debugg = 1; // 0 = Kein Debugg | 1 = Debugg
  29. //==============================================================================================
  30. enum e_info
  31. {
  32.     Float:a_x,
  33.     Float:a_y,
  34.     Float:a_z,
  35.     Float:i_x,
  36.     Float:i_y,
  37.     Float:i_z,
  38.     interior,
  39.     world,
  40.     etext[70]
  41. }
  42. //==============================================================================================
  43. // EIN- UND AUSGÄNGE
  44. new enters[MAX_ENTERS][e_info] = {
  45.     {0.0,0.0,0.0,   0.0,0.0,0.0,    0,0,"Test"}
  46. };
  47. //==============================================================================================
  48. public OnFilterScriptInit()
  49. {
  50.     if(debugg == 0)
  51.     {
  52.         #pragma unused sendfstring
  53.     }
  54.     print("\n--------------------------------------");
  55.     print("     Enters-System by Firerfan");
  56.     print("--------------------------------------\n");
  57.     for(new i=0; i<MAX_ENTERS; i++)
  58.     {
  59.          CreatePickup(1239,1,enters[i][a_x],enters[i][a_y],enters[i][a_z],-1);
  60.          CreatePickup(1239,1,enters[i][i_x],enters[i][i_y],enters[i][i_z],-1);
  61.          Create3DTextLabel(enters[i][etext],E_COLOR,enters[i][a_x],enters[i][a_y],enters[i][a_z],E_Distance,enters[i][world]);
  62.     }
  63.     return 1;
  64. }
  65. public OnFilterScriptExit()
  66. {
  67.     return 1;
  68. }
  69. public OnPlayerCommandText(playerid, cmdtext[])
  70. {
  71.     if(!strcmp(cmdtext,"/enter") || !strcmp(cmdtext,"/exit"))
  72.     {
  73.         SendClientMessage(playerid,E_COLOR,"** Nutze die Enter-Taste!");
  74.     }
  75.     return 0;
  76. }
  77. public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
  78. {
  79.     if(newkeys == KEY_SECONDARY_ATTACK)
  80.     {
  81.         for(new i = 0;i<sizeof(enters);i++)
  82.         {
  83.             if(IsPlayerInRangeOfPoint(playerid,E_enterdist,enters[i][a_x],enters[i][a_y],enters[i][a_z]))
  84.             {
  85.                 SetPlayerInterior(playerid,enters[i][interior]);
  86.                 SetPlayerVirtualWorld(playerid,enters[i][world]);
  87.                 SetPlayerPos(playerid,enters[i][i_x],enters[i][i_y],enters[i][i_z]);
  88.                 if(debugg == 1)
  89.                 {
  90.                     SendFormatMessage(playerid,E_COLOR,"[DEBUGG]: Enter mit der ID %d genutzt!",i);
  91.                 }
  92.             }
  93.             else if(IsPlayerInRangeOfPoint(playerid,E_enterdist,enters[i][i_x],enters[i][i_y],enters[i][i_z]) && GetPlayerVirtualWorld(playerid) == enters[i][world])
  94.             {
  95.                 SetPlayerInterior(playerid,0);
  96.                 SetPlayerVirtualWorld(playerid,0);
  97.                 SetPlayerPos(playerid,enters[i][a_x],enters[i][a_y],enters[i][a_z]);
  98.                 if(debugg == 1)
  99.                 {
  100.                     SendFormatMessage(playerid,E_COLOR,"[DEBUGG]: Enter mit der ID %d genutzt!",i);
  101.                 }
  102.             }
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement