Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- DINAMICNO KREIRANJE ZONA
- BY SHOMY
- Potreban folder "Zone" u Vasem scriptfiles folderu
- */
- // INCLUDE //
- #include < a_samp >
- #include < YSI\y_ini >
- #include < YSI\y_commands >
- #include < sscanf2 >
- // DEFINE //
- #define MAX_ZONE 20
- #define ZONE_FILE "/Zone/%d.ini"
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50 // Prilagoditi
- // ENUM //
- enum zInfo
- {
- Float:PosX,
- Float:PosY,
- Float:PosX1,
- Float:PosY1,
- Boja
- }
- // NEW //
- new ZonaInfo[ MAX_ZONE ][ zInfo ], KreiraneZone = 0, ZonaC[ sizeof(ZonaInfo) ], bool:KreiraZonu[ MAX_PLAYERS ];
- // PUBLIC //
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_YES)
- {
- if(KreiraZonu[ playerid ])
- {
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid, X,Y,Z);
- ZonaC[ KreiraneZone+1 ] = GangZoneCreate(ZonaInfo[ KreiraneZone+1 ][ PosX ], ZonaInfo[ KreiraneZone+1 ][ PosY ], X, Y);
- GangZoneShowForAll(ZonaC[ KreiraneZone+1 ], ZonaInfo[ KreiraneZone+1 ][ Boja ]);
- ZonaInfo[ KreiraneZone+1 ][ PosX1 ] = X;
- ZonaInfo[ KreiraneZone+1 ][ PosY1 ] = Y;
- KreiraZonu[ playerid ] = false;
- SaveZona(ZonaC[ KreiraneZone+1 ]);
- }
- }
- return 1;
- }
- forward OcitajZonu(id, name[], value[]);
- public OcitajZonu(id, name[], value[])
- {
- INI_Float("LokacijaX1", ZonaInfo[ id ][ PosX ]);
- INI_Float("LokacijaY1", ZonaInfo[ id ][ PosY ]);
- INI_Float("LokacijaX2", ZonaInfo[ id ][ PosX1 ]);
- INI_Float("LokacijaY2", ZonaInfo[ id ][ PosY1 ]);
- INI_Hex("Boja", ZonaInfo[ id ][ Boja ]);
- return 1;
- }
- public OnFilterScriptInit()
- {
- for(new i; i < MAX_ZONE; i++)
- {
- new zFile[50];
- format(zFile, sizeof(zFile), ZONE_FILE, i);
- if(fexist(zFile))
- {
- INI_ParseFile(zFile, "OcitajZonu", .bExtra = true, .extra = i);
- ZonaC[ i ] = GangZoneCreate(ZonaInfo[ i ][ PosX ], ZonaInfo[ i ][ PosY ], ZonaInfo[ i ][ PosX1 ], ZonaInfo[ i ][ PosY1 ]);
- }
- }
- return 1;
- }
- public OnPlayerSpawn(playerid) { for(new i; i < MAX_ZONE; i++) { GangZoneShowForPlayer(playerid, ZonaC[ i ], ZonaInfo[ i ][ Boja ]);} }
- // CMD //
- YCMD:kreirajzonu(playerid, params[], help)
- {
- #pragma unused help
- new Float:X,Float:Y,Float:Z, boja;
- if(sscanf(params, "h", boja)) return SendClientMessage(playerid, -1, "Korisite /kreirajzonu [Boja(HEX)]");
- if(KreiraZonu[ playerid ]) return SendClientMessage(playerid, -1, "Vec kreirate zonu, idite do drugog kraja zone i pritisnite Y !");
- GetPlayerPos(playerid, X,Y,Z);
- ZonaInfo[ KreiraneZone+1 ][ PosX ] = X;
- ZonaInfo[ KreiraneZone+1 ][ PosY ] = Y;
- ZonaInfo[ KreiraneZone+1 ][ Boja ] = boja;
- KreiraZonu[ playerid ] = true;
- SendClientMessage(playerid, -1, "Idite do drugog kraja zone i pritisnite dugme Y");
- return 1;
- }
- // STOCK //
- stock SaveZona(id)
- {
- new zFile[ 60 ];
- format(zFile, sizeof(zFile), ZONE_FILE, id);
- new INI:File = INI_Open(zFile);
- INI_WriteFloat(File, "LokacijaX1", ZonaInfo[ id ][ PosX ]);
- INI_WriteFloat(File, "LokacijaY1", ZonaInfo[ id ][ PosY ]);
- INI_WriteFloat(File, "LokacijaX2", ZonaInfo[ id ][ PosX1 ]);
- INI_WriteFloat(File, "LokacijaY2", ZonaInfo[ id ][ PosY1 ]);
- INI_WriteHex(File, "Boja", ZonaInfo[ id ][ Boja ]);
- INI_Close(File);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement