Ghecco

Pawn | Sistema Telecamera | adm[Da fixare] - x BrunoNapoli97

May 3rd, 2020
886
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #define DIALOG_TELECAMERE           (ID)
  3. #define DIALOG_NOMETELECAMERAID     (ID)
  4. #define DIALOG_NOMETELECAMERA       (ID)
  5. #define DIALOG_RIMUOVITELECAMERA    (ID)
  6. #define DIALOG_SPOSTATELECAMERA     (ID)
  7. #define DIALOG_RIPARATELECAMERA     (ID)
  8. #define DIALOG_GOTOTELECAMERA       (ID)
  9.  
  10.  
  11.  
  12. define MAX_TELECAMERE (10)
  13. #define DIRECTORY_TELECAMERE "PrisonRoleplay/Telecamere/%d.ini"
  14. enum telecamerainfo
  15. {
  16.     Nome[50],
  17.     OggettoID,
  18.     Float:TPosX,
  19.     Float:TPosY,
  20.     Float:TPosZ,
  21.     Float:TRotX,
  22.     Float:TRotY,
  23.     Float:TRotZ,
  24.     Float:LookPosX,
  25.     Float:LookPosY,
  26.     fLOAT:LookPosZ,
  27.     Interior,
  28.     VirtualWorld,
  29.     Stato = false,
  30.     LabelID,
  31.  
  32. };
  33. new Telecamera[MAX_TELECAMERE][telecamerainfo];
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. if (strcmp("/editortelecamere", cmdtext, true, 10) == 0)
  45. {
  46.     if(Utente[playerid][LivelloAdmin] <= 3 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Non hai i permessi adatti per accedere a questo comando.");
  47.     {
  48.         new str_dialogtelecamere[512];
  49.         strcat(str_dialogtelecamere, "{FFFFFF}Crea telecamera\n", sizeof(str_dialogtelecamere));
  50.         strcat(str_dialogtelecamere, "{FFFFFF}Elimina telecamera\n", sizeof(str_dialogtelecamere));
  51.         strcat(str_dialogtelecamere, "{FFFFFF}Sposta telecamere\n", sizeof(str_dialogtelecamere));
  52.         strcat(str_dialogtelecamere, "{FFFFFF}Modifica Nome telecamera\n", sizeof(str_dialogtelecamere));
  53.         strcat(str_dialogtelecamere, "{FFFFFF}Ripara telecamera\n", sizeof(str_dialogtelecamere));
  54.         strcat(str_dialogtelecamere, "{FFFFFF}Gotati alla telecamera\n", sizeof(str_dialogtelecamere));
  55.         ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  56.     }
  57.     else return SendClientMessage(playerid,-1,"{FF0000}Errore:{FFFFFF} Devi effettuare l'accesso ad un account prima di poter utlilizzare questo comando.");
  58.     return 1;
  59. }
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72. if(dialogid == DIALOG_EDITORTELECAMERE)
  73. {
  74.     if(response)
  75.     {
  76.         switch(listitem)
  77.         {
  78.             case 0:
  79.             {
  80.                 for(new id; id < MAX_TELECAMERE+1; id++)
  81.                 {
  82.                     if(id >= MAX_CELLE) return SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il massimo di celle creabili é stato raggiunto.");
  83.  
  84.                     if(VerificaTelecamere(id) == 1)
  85.                     {
  86.                         new Float:PosX, Float:PosY, PosZ;
  87.  
  88.                         GetPlayerPos(playerid, PosX, PosY, PosY);
  89.  
  90.                         Telecamera[id][OggettoID] = CreateDynamicObject(1886, PosX, PosY, PosY,  0.00000, 0.00000, 0.00000, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));     
  91.                         EditDynamicObject(playerid, Telecamera[id][OggettoID]); //permette di modificare la posizione dell'oggetto.
  92.  
  93.                         new Float: PosModelloCreatoX, Float:PosModelloCreatoY, Float:PosModelloCreatoZ;
  94.                         GetInFrontOfObject(Telecamera[id][OggettoID], PosModelloCreatoX, PosModelloCreatoY, PosModelloCreatoZ, 1.0);
  95.                         SetPlayerPos(playerid, PosModelloCreatoX, PosModelloCreatoY, PosModelloCreatoZ);
  96.                         SetPVarInt(playerid, "IDTelecamera", id);
  97.                         SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} La telecamera %d é stata creata con successo, modifica la sua posizione.");
  98.                         SendClientMessage(playerid, -1, "{FFFFFF} Ricordati quando clicchi sul FLOPPY di trovarti nella direzione in cui vuoi che la telecamera guardi.");
  99.  
  100.                         ModificaOggetto[playerid] = 6;
  101.                         break;                     
  102.                     }
  103.                 }
  104.             }
  105.             case 1:ShowPlayerDialog(playerid, DIALOG_RIMUOVITELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi cancellare", "Elimina", "Annulla");
  106.             case 2:ShowPlayerDialog(playerid, DIALOG_SPOSTATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi spostare", "Prosegui", "Annulla");
  107.             case 3:ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi rinominare", "Prosegui", "Annulla");
  108.             case 4:ShowPlayerDialog(playerid, DIALOG_RIPARATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi riparare", "Ripara", "Annulla");
  109.             case 5:ShowPlayerDialog(playerid, DIALOG_GOTOTELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera da cui vuoi gotarti", "Gotati", "Annulla");
  110.         }
  111.     }
  112. }
  113.  
  114.  
  115.  
  116. if(dialogid == DIALOG_NOMETELECAMERAID)
  117. {
  118.     if(response)
  119.     {
  120.         new idtelecamera = strval(inputtext);
  121.         new filetelecamera[256];
  122.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, idtelecamera);
  123.  
  124.         if(!strlen(inputtext))
  125.         {
  126.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Nessun id della telecamera é stato assegnato.");
  127.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi rinominare", "Prosegui", "Annulla");
  128.             return 1;
  129.         }
  130.  
  131.         if(!IsNumeric(inputtext))
  132.         {
  133.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il valore inserito non é un valore numerico.");
  134.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi rinominare", "Prosegui", "Annulla");
  135.             return 1;
  136.         }
  137.  
  138.         if(dini_Exists(filetelecamera))
  139.         {
  140.             SetPVarInt(playerid, "IDTelecamera", idtelecamera);
  141.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}Nome Telecamera", "{FFFFFF}Inserisci il nome che vuoi dare alla telecamera", "Prosegui", "Annulla");
  142.         }
  143.         else
  144.         {
  145.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi rinominare", "Prosegui", "Annulla");
  146.             SendClientMessageFormatted(playerid, -1, "{FF0000}Errore:{FFFFFF} la Telecamera %d non é esistente.", idtelecamera);
  147.         }
  148.         return 1;
  149.     }
  150.     else ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  151.     return 1;
  152. }
  153.  
  154.  
  155. if(dialogid == DIALOG_NOMETELECAMERA)
  156. {
  157.     if(response)
  158.     {
  159.         new telecameraid = GetPVarInt(playerid, "IDTelecamera");
  160.         if(!strlen(inputtext))
  161.         {
  162.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Non hai inserito nessun nome da assegnare alla telecamera.");
  163.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}Nome Telecamera", "{FFFFFF}Inserisci il nome che vuoi dare alla telecamera", "Prosegui", "Annulla");
  164.         }
  165.         else if(strlen(inputtext) >= 50)
  166.         {
  167.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Hai inserito troppi caratteri per il nome da assegnare alla telecamera (MAX 50).");
  168.             ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}Nome Telecamera", "{FFFFFF}Inserisci il nome che vuoi dare alla telecamera", "Prosegui", "Annulla");
  169.         }
  170.         else
  171.         {
  172.             SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} Alla Telecamera %d é stato assegnato il nome '%s'.", idtelecamera, inputtext);
  173.             format(Telecamera[telecameraid][Nome], 50, "%s", inputtext);
  174.             SalvaTelecameraSingola(telecameraid);
  175.         }
  176.     }
  177.     else ShowPlayerDialog(playerid, DIALOG_NOMETELECAMERAID, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi rinominare", "Prosegui", "Annulla");
  178.     DeletePVar(playerid, "IDTelecamera");
  179.     return 1;
  180. }
  181.  
  182.  
  183. if(dialogid == DIALOG_RIMUOVITELECAMERA)
  184. {
  185.     if(response == 1)
  186.     {
  187.         new idtelecamera = strval(inputtext);
  188.         new filetelecamera[256];
  189.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, idtelecamera);
  190.  
  191.         if(!strlen(inputtext))
  192.         {
  193.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Nessun id della telecamera é stato assegnato.");
  194.             ShowPlayerDialog(playerid, DIALOG_RIMUOVITELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi cancellare", "Elimina", "Annulla");
  195.             return 1;
  196.         }
  197.  
  198.         if(!IsNumeric(inputtext))
  199.         {
  200.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il valore inserito non é un valore numerico.");
  201.             ShowPlayerDialog(playerid, DIALOG_RIMUOVITELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi cancellare", "Elimina", "Annulla");
  202.             return 1;
  203.         }
  204.  
  205.         if(dini_Exists(filetelecamera))
  206.         {
  207.             ResettaTelecamera(idtelecamera);
  208.             dini_Remove(filetelecamera);
  209.  
  210.             SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} La Telecamera %d é stata eliminata con successo.", idtelecamera);
  211.         }
  212.         else
  213.         {
  214.             ShowPlayerDialog(playerid, DIALOG_RIMUOVITELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi cancellare", "Elimina", "Annulla");
  215.             SendClientMessageFormatted(playerid, -1, "{FF0000}Errore:{FFFFFF} la Telecamera %d non é esistente.", idtelecamera);
  216.         }
  217.         return 1;
  218.     }
  219.     else ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  220. }
  221.  
  222.  
  223. if(dialogid == DIALOG_SPOSTATELECAMERA)
  224. {
  225.     if(response == 1)
  226.     {
  227.         new telecameraid = strval(inputtext);
  228.         new filetelecamera[256];
  229.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, telecameraid);
  230.  
  231.         if(!strlen(inputtext))
  232.         {
  233.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Nessun id telecamera é stato assegnato.");
  234.             ShowPlayerDialog(playerid, DIALOG_SPOSTATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi spostare", "Prosegui", "Annulla");
  235.             return 1;
  236.         }
  237.  
  238.         if(!IsNumeric(inputtext))
  239.         {
  240.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il valore inserito non é un valore numerico.");
  241.             ShowPlayerDialog(playerid, DIALOG_SPOSTATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi spostare", "Prosegui", "Annulla");
  242.             return 1;
  243.         }
  244.  
  245.         if(dini_Exists(filetelecamera))
  246.         {
  247.             new Float:Posizionex, Float:Posizioney, Float:Posizionez;
  248.             SetDynamicObjectPos(Telecamera[telecameraid][OggettoID], Posizionex, Posizioney, Posizionez);
  249.  
  250.             ModificaOggetto[playerid] = 7;
  251.             SetPVarInt(playerid, "IDTelecamera", telecameraid);
  252.  
  253.             EditDynamicObject(playerid, Telecamera[telecameraid][OggettoID]);
  254.             SendClientMessage(playerid, -1, "{FFFFFF} Ricordati quando clicchi sul FLOPPY di trovarti nella direzione in cui vuoi che la telecamera guardi.");
  255.        
  256.         }
  257.         else
  258.         {
  259.             ShowPlayerDialog(playerid, DIALOG_SPOSTATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi spostare", "Prosegui", "Annulla");
  260.             SendClientMessageFormatted(playerid, -1, "{FF0000}Errore:{FFFFFF} la Telecamera %d non é esistente.", idtelecamera);
  261.         }
  262.     }
  263.     else ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  264.     return 1;
  265. }
  266.  
  267.  
  268. if(dialogid == DIALOG_RIPARATELECAMERA)
  269. {
  270.     if(response)
  271.     {
  272.         new idtelecamera = strval(inputtext);
  273.         new filetelecamera[256];
  274.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, idtelecamera);
  275.  
  276.         if(!strlen(inputtext))
  277.         {
  278.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Nessun id della telecamera é stato assegnato.");
  279.             ShowPlayerDialog(playerid, DIALOG_RIPARATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi riparare", "Ripara", "Annulla");
  280.             return 1;
  281.         }
  282.  
  283.         if(!IsNumeric(inputtext))
  284.         {
  285.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il valore inserito non é un valore numerico.");
  286.             ShowPlayerDialog(playerid, DIALOG_RIPARATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi riparare", "Ripara", "Annulla");
  287.             return 1;
  288.         }
  289.  
  290.         if(dini_Exists(filetelecamera))
  291.         {
  292.             Telecamera[idtelecamera][Stato] = true;
  293.             SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} La Telecamera %d é stata riparata con successo.", idtelecamera);
  294.  
  295.             SalvaTelecameraSingola(idtelecamera);
  296.         }
  297.         else
  298.         {
  299.             ShowPlayerDialog(playerid, DIALOG_RIPARATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi riparare", "Ripara", "Annulla");
  300.             SendClientMessageFormatted(playerid, -1, "{FF0000}Errore:{FFFFFF} la Telecamera %d non é esistente.", idtelecamera);
  301.         }
  302.     }
  303.     else ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  304. }
  305.  
  306.  
  307. if(dialogid == DIALOG_GOTOTELECAMERA)
  308. {
  309.     if(response)
  310.     {
  311.         new idtelecamera = strval(inputtext);
  312.         new filetelecamera[256];
  313.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, idtelecamera);
  314.  
  315.         if(!strlen(inputtext))
  316.         {
  317.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Nessun id della telecamera é stato assegnato.");
  318.             ShowPlayerDialog(playerid, DIALOG_GOTOTELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera da cui vuoi gotarti", "Gotati", "Annulla");
  319.             return 1;
  320.         }
  321.  
  322.         if(!IsNumeric(inputtext))
  323.         {
  324.             SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Il valore inserito non é un valore numerico.");
  325.             ShowPlayerDialog(playerid, DIALOG_GOTOTELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera da cui vuoi gotarti", "Gotati", "Annulla");
  326.             return 1;
  327.         }
  328.  
  329.         if(dini_Exists(filetelecamera))
  330.         {
  331.             SetPlayerPos(playerid, Telecamera[idtelecamera][TPosX], Telecamera[idtelecamera][TPosY], Telecamera[idtelecamera][TPosZ]);
  332.             SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} Ti sei gotato alla Telecamera %d ('%s').", idtelecamera, Telecamera[idtelecamera][Nome]);
  333.  
  334.         }
  335.         else
  336.         {
  337.             ShowPlayerDialog(playerid, DIALOG_RIPARATELECAMERA, DIALOG_STYLE_INPUT, "{FFFFFF}ID Telecamera", "{FFFFFF}Inserisci l'ID della telecamera che vuoi riparare", "Ripara", "Annulla");
  338.             SendClientMessageFormatted(playerid, -1, "{FF0000}Errore:{FFFFFF} la Telecamera %d non é esistente.", idtelecamera);
  339.         }
  340.     }
  341.     else ShowPlayerDialog(playerid, DIALOG_EDITORTELECAMERE, DIALOG_STYLE_LIST, "{FFFFFF}Editor telecamere",str_dialogtelecamere, "Seleziona", "Chiudi");
  342. }
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353. case 6: //creazione Telecamera
  354. {
  355.     new idtelecamera = GetPVarInt(playerid, "IDTelecamera");
  356.  
  357.     if(response == EDIT_RESPONSE_CANCEL) //se annulli la posizione
  358.     {
  359.         DestroyDynamicObject(Telecamere[idtelecamera][OggettoID]);
  360.         SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Hai annullato la modifica della posizione della telecamera.");
  361.         ResettaTelecamera(idtelecamera);
  362.         DeletePVar(playerid, "IDTelecamera");
  363.         ModificaOggetto[playerid] = 0;
  364.         return 1;
  365.     }
  366.     else if(response == EDIT_RESPONSE_FINAL)
  367.     {
  368.         new str_filetelecamere[256], str_cellalabel[256], Float:playerposx, Float:playerposy, Float:playerposz;
  369.         format(str_filetelecamere, sizeof(str_filetelecamere), DIRECTORY_CELLE, idtelecamera);
  370.         GetPlayerPos(playerid, playerposx, playerposy, playerposz);
  371.  
  372.         Telecamera[idtelecamera][TPosX] = x;
  373.         Telecamera[idtelecamera][TPosY] = y;
  374.         Telecamera[idtelecamera][TposZ] = z;
  375.  
  376.         Telecamera[idtelecamera][TRotX] = rx;
  377.         Telecamera[idtelecamera][TRotY] = ry;
  378.         Telecamera[idtelecamera][TRotZ] = rz;
  379.  
  380.         Telecamera[idtelecamera][LookPosX] = playerposx;
  381.         Telecamera[idtelecamera][LookPosY] = playerposy;
  382.         Telecamera[idtelecamera][LookPosZ] = playerposz;
  383.  
  384.         Telecamera[idtelecamera][Interior] = GetPlayerInterior(playerid);
  385.         Telecamera[idtelecamera][VirtualWorld] = GetPlayerVirtualWorld(playerid);
  386.         Telecamera[idtelecamera][Stato] = true;
  387.  
  388.         SetDynamicObjectPos(Telecamera[idtelecamera][OggettoID], x, y, z);
  389.         SetDynamicObjectRot(Telecamera[idtelecamera][OggettoID], rx, ry, rz);
  390.  
  391.         format(str_cellalabel, sizeof(str_cellalabel), "Telecamera #%d\nStato:{32CD32} Attiva", idtelecamera);
  392.         Telecamera[idtelecamera][LabelID] = Create3DTextLabel(str_cellalabel, -1, x, y, z, 3.0, GetPlayerVirtualWorld(playerid), 0);
  393.  
  394.         SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} La Telecamera %d é stata creata con successo.", idtelecamera);
  395.  
  396.         Dini_Create(str_filetelecamere);
  397.         SalvaTelecameraSingola(idtelecamera);
  398.         ModificaOggetto[playerid] = 0;
  399.  
  400.     }
  401. }
  402. case 7: // sposta telecamera
  403. {
  404.     new idtelecamera = GetPVarInt(playerid, "IDTelecamera");
  405.  
  406.     if(response == EDIT_RESPONSE_CANCEL)
  407.     {
  408.         SendClientMessage(playerid, -1, "{FF0000}Errore:{FFFFFF} Hai annullato la modifica della posizione della telecamera.");
  409.  
  410.         DeletePVar(playerid, "IDTelecamera");
  411.         ModificaOggetto[playerid] = 0;
  412.  
  413.         return 1;
  414.     }
  415.     else if(response == EDIT_RESPONSE_FINAL)
  416.     {
  417.         ResettaTelecamera(idtelecamera);
  418.  
  419.         new str_filetelecamere[256], str_cellalabel[256], Float:playerposx, Float:playerposy, Float:playerposz;
  420.         format(str_filetelecamere, sizeof(str_filetelecamere), DIRECTORY_CELLE, idtelecamera);
  421.         GetPlayerPos(playerid, playerposx, playerposy, playerposz);
  422.  
  423.         Telecamera[idtelecamera][OggettoID] = objectid;
  424.  
  425.         Telecamera[idtelecamera][TPosX] = x;
  426.         Telecamera[idtelecamera][TPosY] = y;
  427.         Telecamera[idtelecamera][TposZ] = z;
  428.  
  429.         Telecamera[idtelecamera][TRotX] = rx;
  430.         Telecamera[idtelecamera][TRotY] = ry;
  431.         Telecamera[idtelecamera][TRotZ] = rz;
  432.  
  433.         Telecamera[idtelecamera][LookPosX] = playerposx;
  434.         Telecamera[idtelecamera][LookPosY] = playerposy;
  435.         Telecamera[idtelecamera][LookPosZ] = playerposz;
  436.  
  437.         Telecamera[idtelecamera][Interior] = GetPlayerInterior(playerid);
  438.         Telecamera[idtelecamera][VirtualWorld] = GetPlayerVirtualWorld(playerid);
  439.         Telecamera[idtelecamera][Stato] = true;
  440.  
  441.         SetDynamicObjectPos(Telecamera[idtelecamera][OggettoID], x, y, z);
  442.         SetDynamicObjectRot(Telecamera[idtelecamera][OggettoID], rx, ry, rz);
  443.  
  444.         format(str_cellalabel, sizeof(str_cellalabel), "Telecamera #%d\nStato:{32CD32} Attiva", idtelecamera);
  445.         Telecamera[idtelecamera][LabelID] = Create3DTextLabel(str_cellalabel, -1, x, y, z, 3.0, GetPlayerVirtualWorld(playerid), 0);
  446.  
  447.         SendClientMessageFormatted(playerid, -1, "{32CD32}Successo:{FFFFFF} La Telecamera %d é stata spostata con successo.", idtelecamera);
  448.  
  449.         SalvaTelecameraSingola(idtelecamera);
  450.         ModificaOggetto[playerid] = 0;
  451.     }
  452. }
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459. stock SalvaTelecameraSingola(telecameraid)
  460. {
  461.     new filetelecamera[256];
  462.     format(filetelecamera, sizeof(filetelecamera), DIRECTORY_CELLE, telecameraid);
  463.  
  464.     if(dini_Exists(filetelecamera))
  465.     {
  466.         dini_Set(filetelecamera, "Nome Telecamera", Telecamera[telecameraid][Nome]);
  467.         dini_FloatSet(filetelecamera, "TPosX", Telecamera[telecameraid][TPosX]);
  468.         dini_FloatSet(filetelecamera, "TPosY", Telecamera[telecameraid][TPosY]);
  469.         dini_FloatSet(filetelecamera, "TPosZ", Telecamera[telecameraid][TPosZ]);
  470.         dini_FloatSet(filetelecamera, "TRotX", Telecamera[telecameraid][TRotX]);
  471.         dini_FloatSet(filetelecamera, "TRotY", Telecamera[telecameraid][TRotY]);
  472.         dini_FloatSet(filetelecamera, "TRotZ", Telecamera[telecameraid][TRotZ]);
  473.         dini_FloatSet(filetelecamera, "LookPosX", Telecamera[i][LookPosX]);
  474.         dini_FloatSet(filetelecamera, "LookPosY", Telecamera[i][LookPosY]);
  475.         dini_FloatSet(filetelecamera, "LookPosZ", Telecamera[i][LookPosZ]);
  476.         dini_IntSet(filetelecamera, "Interior", Telecamera[telecameraid][Interior]);
  477.         dini_IntSet(filetelecamera, "VirtualWorld", Telecamera[telecameraid][VirtualWorld]);
  478.         dini_BoolSet(filetelecamera, "Stato", Telecamera[telecameraid][Stato]);
  479.  
  480.         printf("Telecamera ID: %d Salvata. (Nome: %s)", telecameraid, Telecamera[telecameraid][Nome]);
  481.     }
  482.     return 1;
  483. }
  484.  
  485. stock SalvaTelecamere()
  486. {
  487.     for(new i = 0; i < MAX_TELECAMERE+1; i++)
  488.     {
  489.         new filetelecamera[256];
  490.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, i);
  491.         if(dini_Exists(filetelecamera))
  492.         {
  493.             dini_Set(filetelecamera, "Nome Telecamera", Telecamera[i][Nome]);
  494.             dini_FloatSet(filetelecamera, "TPosX", Telecamera[i][TPosX]);
  495.             dini_FloatSet(filetelecamera, "TPosY", Telecamera[i][TPosY]);
  496.             dini_FloatSet(filetelecamera, "TPosZ", Telecamera[i][TPosZ]);
  497.             dini_FloatSet(filetelecamera, "TRotX", Telecamera[i][TRotX]);
  498.             dini_FloatSet(filetelecamera, "TRotY", Telecamera[i][TRotY]);
  499.             dini_FloatSet(filetelecamera, "TRotZ", Telecamera[i][TRotZ]);
  500.             dini_FloatSet(filetelecamera, "LookPosX", Telecamera[i][LookPosX]);
  501.             dini_FloatSet(filetelecamera, "LookPosY", Telecamera[i][LookPosY]);
  502.             dini_FloatSet(filetelecamera, "LookPosZ", Telecamera[i][LookPosZ]);
  503.             dini_IntSet(filetelecamera, "Interior", Telecamera[i][Interior]);
  504.             dini_IntSet(filetelecamera, "VirtualWorld", Telecamera[i][VirtualWorld]);
  505.             dini_BoolSet(filetelecamera, "Stato", Telecamera[i][Stato]);
  506.  
  507.             printf("Telecamera ID: %d Salvata. (Nome: %s)", i, Telecamera[i][Nome]);
  508.         }
  509.     }
  510.     return 1;
  511. }
  512.  
  513. stock CaricaTelecamere()
  514. {
  515.     for(new i = 0; i < MAX_CELLE+1; i++)
  516.     {
  517.         new filetelecamera[256], str_telecameralabel[256];
  518.         format(filetelecamera, sizeof(filetelecamera), DIRECTORY_TELECAMERE, i);
  519.  
  520.         if(dini_Exists(filetelecamera))
  521.         {
  522.             strmid(Telecamera[i][Nome], dini_Get(filetelecamera, "Nome"), false, strlen(dini_Get(filetelecamera, "Nome")), 50);
  523.  
  524.             Telecamera[i][TPosX] = dini_Float(filetelecamera,"TPosX");
  525.             Telecamera[i][TPosY] = dini_Float(filetelecamera,"TPosY");
  526.             Telecamera[i][TPosZ] = dini_Float(filetelecamera,"TPosZ");
  527.  
  528.             Telecamera[i][TRotX] = dini_Float(filetelecamera,"TRotX");
  529.             Telecamera[i][TRotY] = dini_Float(filetelecamera,"TRotY");
  530.             Telecamera[i][TRotZ] = dini_Float(filetelecamera,"TRotZ");
  531.  
  532.             Telecamera[i][LookPosX] = dini_Float(filetelecamera,"LookPosX");
  533.             Telecamera[i][LookPosY] = dini_Float(filetelecamera,"LoookPosY");
  534.             Telecamera[i][LookPosZ] = dini_Float(filetelecamera,"LookPosZ");
  535.  
  536.             Telecamera[i][Interior] = dini_Int(filetelecamera,"Interior");
  537.             Telecamera[i][VirtualWorld] = dini_Int(filetelecamera,"VirtualWorld");
  538.  
  539.             Telecamera[i][Stato] = dini_Bool(filetelecamera,"Stato");
  540.  
  541.             format(str_telecameralabel, sizeof(str_telecameralabel, "Telecamera #%d\nStato: %s", (Telecamera[i][Stato] == true) ? ("{D3D3D3}Attiva{FFFFFF}") : ("{FF0000}Disattivata{FFFFFF}"));)
  542.             Telecamera[i][LabelID] = Create3DTextLabel(str_cellalabel, -1, Telecamera[i][TPosX], Telecamera[i][TPosY], Telecamera[i][TPosZ], 3.0, Telecamera[i][VirtualWorld], 0);
  543.             Telecamera[i][OggettoID] = CreateDynamicObject(1886, Telecamera[i][TPotX], Telecamera[i][TPosY], Telecamera[i][TPosZ], Telecamera[i][TRotX], Telecamera[i][TRotY], Telecamera[i][TRotZ], Telecamera[i][VirtualWorld], Telecamera[i][Interior]);
  544.            
  545.  
  546.             printf("Telecamera ID: %d Caricato. (Nome: %s)", i, Telecamera[i][PlayerName]);
  547.         }
  548.     }
  549.     return 1;
  550. }
  551.  
  552. stock ResettaTelecamera(telecameraid)
  553. {
  554.     DestroyDynamicObject(Telecamera[telecameraid][OggettoID]);
  555.     Delete3DTextLabel(Telecamera[telecameraid][LabelID]);
  556.  
  557.     Telecamera[telecameraid][OggettoID] = 0;
  558.     Telecamera[telecameraid][LabelID] = 0;
  559.     Telecamera[telecameraid][TPosX] = 0.0;
  560.     Telecamera[telecameraid][TPosY] = 0.0;
  561.     Telecamera[telecameraid][TPosZ] = 0.0;
  562.     Telecamera[telecameraid][TRotX] = 0.0;
  563.     Telecamera[telecameraid][TRotY] = 0.0;
  564.     Telecamera[telecameraid][TRotZ] = 0.0;
  565.     Telecamera[idtelecamera][LookPosX] = 0.0;
  566.     Telecamera[idtelecamera][LookPosY] = 0.0;
  567.     Telecamera[idtelecamera][LookPosZ] = 0.0;
  568.     Telecamera[telecameraid][Interior] = 0;
  569.     Telecamera[telecameraid][VirtualWorld] = 0;
  570.     Telecamera[telecameraid][Stato] = true;
  571.  
  572.     format(Telecamera[telecameraid][Nome], 50, "");
  573.     return 1;
  574. }
  575. stock VerificaTelecamere(cellaid)
  576. {
  577.     new filetelecamere[256];
  578.     format(filetelecamere, sizeof(filetelecamere), DIRECTORY_TELECAMERE, telecamereid);
  579.     if(!dini_Exists(filetelecamere)) return 1;
  580.     else return 0;
  581. }
RAW Paste Data