Advertisement
Guest User

PrecisionFix

a guest
Apr 23rd, 2015
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.44 KB | None | 0 0
  1. #define NOMBRE_DEL_MAPA     "Mapa"
  2. #define EXTENSION           ".pwn"
  3.  
  4. // Precisión usada en las coordenadas del mapa a exportar
  5.  
  6. #define PRECISION           "2"
  7.  
  8. #include <a_samp>
  9.  
  10. // Librería YSI - https://github.com/Misiur/YSI-Includes/archive/YSI.tl.zip
  11. // Dependencias (amx_assembly - carpeta "amx") - https://github.com/Zeex/amx_assembly/archive/master.zip
  12. #include <YSI_Data\y_iterate>
  13.  
  14.  
  15. // Límite de objetos
  16.  
  17. #undef MAX_OBJECTS
  18. #define MAX_OBJECTS     15000
  19.  
  20. enum objects@data
  21. {
  22.     ModelID,
  23.     Float:X,
  24.     Float:Y,
  25.     Float:Z,
  26.     Float:RX,
  27.     Float:RY,
  28.     Float:RZ,
  29. }
  30.  
  31. new OBJECTS_DATA[MAX_OBJECTS][objects@data];
  32.  
  33. new Iterator:ClonedObject<MAX_OBJECTS>;
  34.  
  35. new File:MAP;
  36.  
  37.  
  38. clone_CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  39. {
  40.     static current_object@id = -1;
  41.  
  42.     current_object@id ++;
  43.  
  44.     OBJECTS_DATA[current_object@id][ModelID]    =   modelid;
  45.     OBJECTS_DATA[current_object@id][X]          =   x;
  46.     OBJECTS_DATA[current_object@id][Y]          =   y;
  47.     OBJECTS_DATA[current_object@id][Z]          =   z;
  48.     OBJECTS_DATA[current_object@id][RX]         =   rx;
  49.     OBJECTS_DATA[current_object@id][RY]         =   ry;
  50.     OBJECTS_DATA[current_object@id][RZ]         =   rz;
  51.  
  52.     Iter_Add(ClonedObject, current_object@id);
  53.     return true;
  54. }
  55.  
  56.  
  57. #if defined _ALS_CreateDynamicObject
  58.     #undef CreateDynamicObject
  59. #else
  60.     #define _ALS_CreateDynamicObject
  61. #endif
  62.  
  63. #define CreateDynamicObject clone_CreateDynamicObject
  64.  
  65.  
  66. public OnFilterScriptInit()
  67. {
  68.     Iter_Clear(ClonedObject);
  69.  
  70.     // Tus objetos van aquí;
  71.  
  72.     CreateDynamicObject(2000, 1178.56995, -1323.48999, 14.13000,   90.00000, 90.00000, 0.00000);
  73.  
  74.     // - - - - - -
  75.  
  76.     // Nunca después de esta función:
  77.     FixObjectsPrecision();
  78. }
  79.  
  80.  
  81. FixObjectsPrecision()
  82. {
  83.     MAP = fopen(""NOMBRE_DEL_MAPA""EXTENSION"");
  84.  
  85.     new current_object@str[256];
  86.  
  87.     foreach(new co@id : ClonedObject)
  88.     {
  89.         //new tmp = (co@id - 1);
  90.  
  91.         format(
  92.         current_object@str,
  93.         sizeof(current_object@str),
  94.         "CreateDynamicObject(%d, %0."PRECISION"f, %0."PRECISION"f, %0."PRECISION"f, %0."PRECISION"f, %0."PRECISION"f, %0."PRECISION"f);",
  95.         OBJECTS_DATA[co@id][ModelID],
  96.         OBJECTS_DATA[co@id][X],
  97.         OBJECTS_DATA[co@id][Y],
  98.         OBJECTS_DATA[co@id][Z],
  99.         OBJECTS_DATA[co@id][RX],
  100.         OBJECTS_DATA[co@id][RY],
  101.         OBJECTS_DATA[co@id][RZ]
  102.         );
  103.  
  104.         strcat(current_object@str, "\r\n");
  105.         fwrite(MAP, current_object@str);
  106.     }
  107.  
  108.     fclose(MAP);
  109.  
  110.     printf(""NOMBRE_DEL_MAPA""EXTENSION" exportado. (%d objetos arreglados)", Iter_Count(ClonedObject));
  111.     return true;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement