Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Dynamic Rob Bank System
- By Shomy
- Potreban folder "Robs" u scriptfiles
- */
- // = Include
- #include < a_samp >
- #include < YSI\y_ini >
- #include < YSI\y_commands >
- #include < sscanf2 >
- // = Define
- #define MAX_ROBS 5
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50 // Prilagoditi
- #define ROB_FILE "/Robs/%d.ini"
- #define SCM SendClientMessage
- #define SCMTA SendClientMessageToAll
- #define SPD ShowPlayerDialog
- #define DSI DIALOG_STYLE_INPUT
- #define MONEY_MIN 10000
- #define MONEY_MAX 30000
- #define DIALOG_CREATEROB
- // = Enum
- enum rInfo
- {
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- RobVreme,
- Opljackana
- }
- // = News
- new RobInfo[ MAX_ROBS ][ rInfo ];
- new Text3D:RobLabel[ sizeof(RobInfo) ];
- new KreiraniRobovi = 0;
- new PreostaloVreme[ MAX_PLAYERS ];
- new PlayerText:RobTD[MAX_PLAYERS][1];
- new bool:RobUToku;
- new RobTimer[ MAX_PLAYERS ];
- // = Publics
- forward Pljackana(id);
- public Pljackana(id)
- {
- RobInfo[ id ][ Opljackana ] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- PreloadAnimLib(playerid,"BOMBER");
- return 1;
- }
- forward Rob(playerid, id);
- public Rob(playerid, id)
- {
- PreostaloVreme[ playerid ] -= 1;
- new str[ 25 ], dobijeninovac;
- PlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0, 1);
- PlayerTextDrawShow(playerid, RobTD[ playerid ][ 0 ]);
- format(str,sizeof(str), "Preostalo vreme: %d", PreostaloVreme[ playerid ]);
- PlayerTextDrawSetString(playerid, RobTD[ playerid ][ 0 ], str);
- if(PreostaloVreme[ playerid ] == 0)
- {
- KillTimer(RobTimer[ playerid ]);
- dobijeninovac = RandomEx(MONEY_MIN, MONEY_MAX), GivePlayerMoney(playerid, dobijeninovac);
- TogglePlayerControllable(playerid, 1);
- ClearAnimations(playerid);
- RobInfo[ id ][ Opljackana ] = 1;
- SetTimer("Pljackana", 300000, false);
- PlayerTextDrawHide(playerid, RobTD[ playerid ][ 0 ]);
- new str1[ 50 ];
- format(str1,sizeof(str1), "Uspesno ste opljackali %d$ iz banke.", dobijeninovac);
- SCM(playerid, -1, str1);
- RobUToku = false;
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- RobTD[playerid][0] = CreatePlayerTextDraw(playerid, 232.117645, 27.250003, "Preostalo_vreme_-_60s");
- PlayerTextDrawLetterSize(playerid, RobTD[playerid][0], 0.400000, 1.600000);
- PlayerTextDrawAlignment(playerid, RobTD[playerid][0], 1);
- PlayerTextDrawColor(playerid, RobTD[playerid][0], -1);
- PlayerTextDrawSetShadow(playerid, RobTD[playerid][0], 0);
- PlayerTextDrawSetOutline(playerid, RobTD[playerid][0], 1);
- PlayerTextDrawBackgroundColor(playerid, RobTD[playerid][0], 255);
- PlayerTextDrawFont(playerid, RobTD[playerid][0], 1);
- PlayerTextDrawSetProportional(playerid, RobTD[playerid][0], 1);
- PlayerTextDrawSetShadow(playerid, RobTD[playerid][0], 0);
- return 1;
- }
- // = CMDS
- YCMD:kreirajrob(playerid, params[], help)
- {
- #pragma unused help
- new vreme, Float:X, Float:Y, Float:Z;
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- if(KreiraniRobovi > MAX_ROBS) return SCM(playerid, -1, "Prestigli ste limit.");
- if(sscanf(params, "d", vreme)) return SCM(playerid, -1, "Koristite /kreirajrob [ Vreme ( sekunde ) ]");
- if(vreme < 60 || vreme > 200) return SCM(playerid, -1, "Vreme ne moze biti manje od 60 ili vece od 200.");
- GetPlayerPos(playerid, X,Y,Z);
- RobLabel[ KreiraniRobovi+1 ] = Create3DTextLabel("/robbank", 0x008080FF, X,Y,Z, 10, 0, 0);
- RobInfo[ KreiraniRobovi+1 ][ PosX ] = X;
- RobInfo[ KreiraniRobovi+1 ][ PosY ] = Y;
- RobInfo[ KreiraniRobovi+1 ][ PosZ ] = Z;
- RobInfo[ KreiraniRobovi+1 ][ RobVreme ] = vreme;
- SaveRob(KreiraniRobovi+1);
- KreiraniRobovi++;
- return 1;
- }
- YCMD:robbank(playerid, params[], help)
- {
- #pragma unused help
- if(RobUToku) return SCM(playerid, -1, "Rob banke je vec u toku.");
- for(new i; i < MAX_ROBS; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, RobInfo[ i ][ PosX ], RobInfo[ i ][ PosY ], RobInfo[ i ][ PosZ ]))
- {
- if(RobInfo[ i ][ Opljackana ] == 0)
- {
- RobTimer[ playerid ] = SetTimerEx("Rob", 1000, true, "i", playerid);
- PreostaloVreme[ playerid ] = RobInfo[ i ][ RobVreme ];
- SCMTA(-1, "[ROB] Pljacka banke u toku. Mole se gradjani da se ne priblizavaju banci.");
- RobUToku = true;
- TogglePlayerControllable(playerid, 0);
- }
- else return SCM(playerid, -1, "Nije proslo 5 minuta od pljackanja te banke.");
- }
- }
- return 1;
- }
- // = Stock
- stock SaveRob(id)
- {
- new rFile[ 60 ];
- format(rFile, sizeof(rFile), ROB_FILE, id);
- new INI:File = INI_Open(rFile);
- INI_WriteFloat(File, "Lokacija X", RobInfo[ id ][ PosX ]);
- INI_WriteFloat(File, "Lokacija Y", RobInfo[ id ][ PosY ]);
- INI_WriteFloat(File, "Lokacija Z", RobInfo[ id ][ PosZ ]);
- INI_WriteInt(File, "Rob Vreme", RobInfo[ id ][ RobVreme ]);
- INI_Close(File);
- return 1;
- }
- // = Funkcije
- RandomEx(min,max) { // NIJE MOJA FUNKCIJA
- return (min+random(max));
- }
- PlayAnim(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)
- {
- ApplyAnimation(playerid, animlib, animname, fDelta, loop, lockx, locky, freeze, time, forcesync);
- }
- PreloadAnimLib(playerid, animlib[])
- {
- ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0,1);
- }
Add Comment
Please, Sign In to add comment