Advertisement
Guest User

By Shomy

a guest
Jan 12th, 2018
725
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. /*
  2. DINAMICNO KREIRANJE ZONA
  3. BY SHOMY
  4.  
  5. Potreban folder "Zone" u Vasem scriptfiles folderu
  6. */
  7.  
  8. // INCLUDE //
  9.  
  10. #include < a_samp >
  11. #include < YSI\y_ini >
  12. #include < YSI\y_commands >
  13. #include < sscanf2 >
  14.  
  15. // DEFINE //
  16.  
  17. #define MAX_ZONE 20
  18. #define ZONE_FILE "/Zone/%d.ini"
  19. #undef MAX_PLAYERS
  20. #define MAX_PLAYERS 50 // Prilagoditi
  21.  
  22. // ENUM //
  23.  
  24. enum zInfo
  25. {
  26. Float:PosX,
  27. Float:PosY,
  28. Float:PosX1,
  29. Float:PosY1,
  30. Boja
  31. }
  32.  
  33. // NEW //
  34.  
  35. new ZonaInfo[ MAX_ZONE ][ zInfo ], KreiraneZone = 0, ZonaC[ sizeof(ZonaInfo) ], bool:KreiraZonu[ MAX_PLAYERS ];
  36.  
  37. // PUBLIC //
  38.  
  39. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  40. {
  41. if(newkeys == KEY_YES)
  42. {
  43. if(KreiraZonu[ playerid ])
  44. {
  45. new Float:X,Float:Y,Float:Z;
  46. GetPlayerPos(playerid, X,Y,Z);
  47. ZonaC[ KreiraneZone+1 ] = GangZoneCreate(ZonaInfo[ KreiraneZone+1 ][ PosX ], ZonaInfo[ KreiraneZone+1 ][ PosY ], X, Y);
  48. GangZoneShowForAll(ZonaC[ KreiraneZone+1 ], ZonaInfo[ KreiraneZone+1 ][ Boja ]);
  49. ZonaInfo[ KreiraneZone+1 ][ PosX1 ] = X;
  50. ZonaInfo[ KreiraneZone+1 ][ PosY1 ] = Y;
  51. KreiraZonu[ playerid ] = false;
  52. SaveZona(ZonaC[ KreiraneZone+1 ]);
  53. }
  54. }
  55. return 1;
  56. }
  57. forward OcitajZonu(id, name[], value[]);
  58. public OcitajZonu(id, name[], value[])
  59. {
  60. INI_Float("LokacijaX1", ZonaInfo[ id ][ PosX ]);
  61. INI_Float("LokacijaY1", ZonaInfo[ id ][ PosY ]);
  62. INI_Float("LokacijaX2", ZonaInfo[ id ][ PosX1 ]);
  63. INI_Float("LokacijaY2", ZonaInfo[ id ][ PosY1 ]);
  64. INI_Hex("Boja", ZonaInfo[ id ][ Boja ]);
  65. return 1;
  66. }
  67. public OnFilterScriptInit()
  68. {
  69. for(new i; i < MAX_ZONE; i++)
  70. {
  71. new zFile[50];
  72. format(zFile, sizeof(zFile), ZONE_FILE, i);
  73. if(fexist(zFile))
  74. {
  75. INI_ParseFile(zFile, "OcitajZonu", .bExtra = true, .extra = i);
  76. ZonaC[ i ] = GangZoneCreate(ZonaInfo[ i ][ PosX ], ZonaInfo[ i ][ PosY ], ZonaInfo[ i ][ PosX1 ], ZonaInfo[ i ][ PosY1 ]);
  77. }
  78. }
  79. return 1;
  80. }
  81. public OnPlayerSpawn(playerid) { for(new i; i < MAX_ZONE; i++) { GangZoneShowForPlayer(playerid, ZonaC[ i ], ZonaInfo[ i ][ Boja ]);} }
  82.  
  83. // CMD //
  84.  
  85. YCMD:kreirajzonu(playerid, params[], help)
  86. {
  87. #pragma unused help
  88. new Float:X,Float:Y,Float:Z, boja;
  89. if(sscanf(params, "h", boja)) return SendClientMessage(playerid, -1, "Korisite /kreirajzonu [Boja(HEX)]");
  90. if(KreiraZonu[ playerid ]) return SendClientMessage(playerid, -1, "Vec kreirate zonu, idite do drugog kraja zone i pritisnite Y !");
  91. GetPlayerPos(playerid, X,Y,Z);
  92. ZonaInfo[ KreiraneZone+1 ][ PosX ] = X;
  93. ZonaInfo[ KreiraneZone+1 ][ PosY ] = Y;
  94. ZonaInfo[ KreiraneZone+1 ][ Boja ] = boja;
  95. KreiraZonu[ playerid ] = true;
  96. SendClientMessage(playerid, -1, "Idite do drugog kraja zone i pritisnite dugme Y");
  97. return 1;
  98. }
  99.  
  100. // STOCK //
  101.  
  102. stock SaveZona(id)
  103. {
  104. new zFile[ 60 ];
  105. format(zFile, sizeof(zFile), ZONE_FILE, id);
  106. new INI:File = INI_Open(zFile);
  107. INI_WriteFloat(File, "LokacijaX1", ZonaInfo[ id ][ PosX ]);
  108. INI_WriteFloat(File, "LokacijaY1", ZonaInfo[ id ][ PosY ]);
  109. INI_WriteFloat(File, "LokacijaX2", ZonaInfo[ id ][ PosX1 ]);
  110. INI_WriteFloat(File, "LokacijaY2", ZonaInfo[ id ][ PosY1 ]);
  111. INI_WriteHex(File, "Boja", ZonaInfo[ id ][ Boja ]);
  112. INI_Close(File);
  113. return 1;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement