Advertisement
Guest User

Ueberwachungskammeras

a guest
Jan 6th, 2013
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.18 KB | None | 0 0
  1. // Copyrights by SporSeba97
  2.  
  3. #define FILTERSCRIPT
  4.  
  5. #include <a_samp>
  6. #define ueberwachungswagen 413 //die Modell ID der รœ-Wagen
  7. #define MAX_KAMMERA 100 // Maximale Anzahl an Kammeras
  8. #define reichweite 100.0 // Maximale Reichweite der Kammeras
  9.  
  10. // Ab hier nichts mehr aendern, sofern ihr PAWN nicht beherscht
  11.  
  12. #define Rot 0xAA3333AA
  13.  
  14. enum KInfo
  15. {
  16.     Float:PosX,
  17.     Float:PosY,
  18.     Float:PosZ,
  19.     Float:ToX,
  20.     Float:ToY,
  21.     Float:ToZ,
  22.     WagenID,
  23. }
  24. new KammeraInfo[MAX_KAMMERA][KInfo];
  25. new Kammeras[MAX_PLAYERS];
  26. new Wagen[MAX_PLAYERS];
  27. new KammeraID;
  28. new bildtimer[MAX_PLAYERS];
  29. forward bild(playerid,kid);
  30.  
  31. public bild(playerid,kid)
  32. {
  33.     if(!IsPlayerInRangeOfPoint(playerid,reichweite,KammeraInfo[kid][PosX],KammeraInfo[kid][PosY],KammeraInfo[kid][PosZ]))
  34.     {
  35.         KillTimer(bildtimer[playerid]);
  36.         SetCameraBehindPlayer(playerid);
  37.     }
  38.     return 1;
  39. }
  40.  
  41. public OnFilterScriptInit()
  42. {
  43.     print("\n--------------------------------------");
  44.     print(" Ueberwachungswagen by SporSeba97");
  45.     print("--------------------------------------\n");
  46.     return 1;
  47. }
  48.  
  49.  
  50. public OnPlayerCommandText(playerid, cmdtext[])
  51. {
  52.     if(!IsPlayerConnected(playerid)) return 1;
  53.     new idx;
  54.     new cmd[250];
  55.     cmd = strtok(cmdtext, idx);
  56.     new tmp[250];
  57.     if (strcmp("/getkammera", cmdtext, true, 10) == 0)
  58.     {
  59.         if(GetVehicleModel(GetPlayerVehicleID(playerid))==ueberwachungswagen)
  60.         {
  61.             Kammeras[playerid]=10;
  62.             Wagen[playerid]=GetPlayerVehicleID(playerid);
  63.             SendClientMessage(playerid,Rot,"Du hast dir 10 Kammeras geholt, du kannst sie nur in diesem Wagen anschauen");
  64.         }
  65.         else
  66.             SendClientMessage(playerid,Rot,"Du bist in keinem Ueberwacungswagen!");
  67.         return 1;
  68.     }
  69.     if (strcmp(cmd,"/testkammera",true)==0)
  70.     {
  71.         new
  72.             Float:fPX, Float:fPY, Float:fPZ,
  73.             Float:fVX, Float:fVY, Float:fVZ,
  74.             Float:object_x, Float:object_y, Float:object_z;
  75.  
  76.         // Change me to change the scale you want. A larger scale increases the distance from the camera.
  77.         // A negative scale will inverse the vectors and make them face in the opposite direction.
  78.         const
  79.             Float:fScale = 5.0;
  80.  
  81.         GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
  82.         GetPlayerCameraFrontVector(playerid, fVX, fVY, fVZ);
  83.  
  84.         object_x = fPX + floatmul(fVX, fScale);
  85.         object_y = fPY + floatmul(fVY, fScale);
  86.         object_z = fPZ + floatmul(fVZ, fScale);
  87.  
  88.         CreateObject(345, object_x, object_y, object_z, 0.0, 0.0, 0.0);
  89.  
  90.         return 1;
  91.     }
  92.     if(strcmp(cmd,"/kammera",true)==0)
  93.     {
  94.         if(Kammeras[playerid]>0)
  95.         {
  96.             new KID = KammeraID;
  97.             GetPlayerCameraPos(playerid,KammeraInfo[KID][PosX],KammeraInfo[KID][PosY],KammeraInfo[KID][PosZ]);
  98.             GetPlayerCameraFrontVector(playerid,KammeraInfo[KID][ToX],KammeraInfo[KID][ToY],KammeraInfo[KID][ToZ]);
  99.             KammeraInfo[KID][WagenID]=Wagen[playerid];
  100.             Kammeras[playerid]--;
  101.             new string[250];
  102.             format(string,sizeof(string),"Du hast die Kammera Installiert, mehr dir diese ID: %i",KID);
  103.             SendClientMessage(playerid,Rot,string);
  104.             KammeraID++;
  105.         }
  106.         else
  107.             SendClientMessage(playerid,Rot,"Du hast keine Kammeras mehr!");
  108.         return 1;
  109.     }
  110.     if(strcmp(cmd,"/zeigebild",true)==0)
  111.     {
  112.         if(GetVehicleModel(GetPlayerVehicleID(playerid))==ueberwachungswagen)
  113.         {
  114.             tmp = strtok(cmdtext, idx);
  115.             if(!strlen(tmp))
  116.             {
  117.                 SendClientMessage(playerid, Rot, "Benutze /zeigebild [KammeraID]");
  118.                 return 1;
  119.             }
  120.             new KID;
  121.             KID=strval(tmp);
  122.             if(GetPlayerVehicleID(playerid)==KammeraInfo[KID][WagenID])
  123.             {
  124.                 if(!IsPlayerInRangeOfPoint(playerid,reichweite,KammeraInfo[KID][PosX],KammeraInfo[KID][PosY],KammeraInfo[KID][PosZ]))
  125.                 {
  126.                     SendClientMessage(playerid,Rot,"Du bist nicht in Reichweite der Kammera!");
  127.                     return 1;
  128.                 }
  129.                 SetPlayerCameraPos(playerid,KammeraInfo[KID][PosX],KammeraInfo[KID][PosY],KammeraInfo[KID][PosZ]);
  130.                 const
  131.                     Float:fScale = 5.0;
  132.                 new Float:object_x, Float:object_y, Float:object_z;
  133.                 object_x = KammeraInfo[KID][PosX] + floatmul(KammeraInfo[KID][ToX], fScale);
  134.                 object_y = KammeraInfo[KID][PosY] + floatmul(KammeraInfo[KID][ToY], fScale);
  135.                 object_z = KammeraInfo[KID][PosZ] + floatmul(KammeraInfo[KID][ToZ], fScale);
  136.                 SetPlayerCameraLookAt(playerid,object_x,object_y,object_z);
  137.                 bildtimer[playerid]=SetTimerEx("bild",1000,true,"ii",playerid,KID);
  138.             }
  139.             else
  140.                 SendClientMessage(playerid,Rot,"Diese Kammera gehรถrt nicht zu deinem Wagen!");
  141.         }
  142.         else
  143.             SendClientMessage(playerid,Rot,"Du bist in keinem Ueberwachungswagen!");
  144.         return 1;
  145.     }
  146.     if(strcmp(cmd,"/kammeraback",true)==0)
  147.     {
  148.         SetCameraBehindPlayer(playerid);
  149.         SendClientMessage(playerid,Rot,"Die Kammera wurde zurรผck gesetzt");
  150.         KillTimer(bildtimer[playerid]);
  151.         return 1;
  152.     }
  153.     if(strcmp(cmd,"/khelp",true)==0)
  154.     {
  155.         SendClientMessage(playerid,Rot,"Kammera Hilfe:");
  156.         SendClientMessage(playerid,Rot,"/getkammera /kammera /zeigebild /kammeraback /testkammera");
  157.         return 1;
  158.     }
  159.     return 0;
  160. }
  161.  
  162.  
  163. strtok(const string[], &index)
  164. {
  165.     new length = strlen(string);
  166.     while ((index < length) && (string[index] <= ' '))
  167.     {
  168.         index++;
  169.     }
  170.  
  171.     new offset = index;
  172.     new result[20];
  173.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  174.     {
  175.         result[index - offset] = string[index];
  176.         index++;
  177.     }
  178.     result[index - offset] = EOS;
  179.     return result;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement