Advertisement
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
- #define MAX_ALAT 5
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50 // Prilagoditi
- #define ROB_FILE "/Robs/%d.ini"
- #define ALAT_FILE "/Alati/%d.ini"
- #define SCM SendClientMessage
- #define SCMTA SendClientMessageToAll
- #define MONEY_MIN 10000
- #define MONEY_MAX 30000
- // = Enum
- enum rInfo
- {
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- RobVreme
- }
- enum aInfo
- {
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- Cena
- }
- // = News
- new RobInfo[ MAX_ROBS ][ rInfo ];
- new Text3D:RobLabel[ sizeof(RobInfo) ];
- new KreiraniRobovi = 0;
- new KreiraniAlati = 0;
- new PreostaloVreme[ MAX_PLAYERS ];
- new PlayerText:RobTD[MAX_PLAYERS][1];
- new bool:RobUToku;
- new RobTimer[ MAX_PLAYERS ];
- new bool:OpljackanaBanka;
- new AlatInfo[ MAX_ALAT ][ aInfo ];
- new AlatPickup[ sizeof(AlatInfo) ];
- new Text3D:AlatLabel[ sizeof(AlatInfo) ];
- new bool:PosedujeAlat[ MAX_PLAYERS ];
- // = Publics
- forward Pljackana(id);
- public Pljackana(id)
- {
- OpljackanaBanka = false;
- 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 ]);
- PosedujeAlat[ playerid ] = false;
- 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);
- SetTimer("Pljackana", 600000, 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;
- OpljackanaBanka = true;
- }
- 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(!OpljackanaBanka)
- {
- if(PosedujeAlat[ playerid ])
- {
- 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, "Ne posedujete alat za pljackanje banke.");
- }
- else return SCM(playerid, -1, "Nije proslo 10 minuta od pljackanja banke.");
- }
- }
- return 1;
- }
- YCMD:kreirajalatmesto(playerid, params[], help)
- {
- #pragma unused help
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- if(KreiraniAlati > MAX_ALAT) return SCM(playerid, -1, "Prestigli ste limit.");
- new cena, Float:X, Float:Y, Float:Z;
- if(sscanf(params, "d", cena)) return SCM(playerid, -1, "Koristite /kreirajalatmesto [ Cena ]");
- if(cena < 1000 || cena > 10000) return SCM(playerid, -1, "Cena alata ne moze biti manja od 1000$ ili veca od 10.000$");
- GetPlayerPos(playerid, X,Y,Z);
- AlatPickup[ KreiraniAlati+1 ] = CreatePickup(1313, 1, X,Y,Z, -1);
- new str[ 50 ];
- format(str,sizeof(str), "/kupialat\nCena - {FFFFFF}%d$", cena);
- AlatLabel[ KreiraniAlati+1 ] = Create3DTextLabel(str, 0x008080FF, X,Y,Z, 10, 0, 0);
- AlatInfo[ KreiraniAlati+1 ][ PosX ] = X;
- AlatInfo[ KreiraniAlati+1 ][ PosY ] = Y;
- AlatInfo[ KreiraniAlati+1 ][ PosZ ] = Z;
- AlatInfo[ KreiraniAlati+1 ][ Cena ] = cena;
- SaveAlat(KreiraniAlati+1);
- KreiraniAlati++;
- return 1;
- }
- YCMD:kupialat(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- for(new i; i < MAX_ALAT; i++)
- {
- if(!PosedujeAlat[ playerid ])
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, AlatInfo[ i ][ PosX ], AlatInfo[ i ][ PosY ], AlatInfo[ i ][ PosZ ]))
- {
- if(GetPlayerMoney(playerid) >= AlatInfo[ i ][ Cena ])
- {
- GivePlayerMoney(playerid, -AlatInfo[ i ][ Cena ]);
- PosedujeAlat[ playerid ] = true;
- SCM(playerid, -1, "Kupili ste alat za pljacku banke.");
- }
- }
- }
- }
- return 1;
- }
- YCMD:test(playerid, params[], help) return GivePlayerMoney(playerid, 10000);
- // = Stocks
- 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;
- }
- stock SaveAlat(id)
- {
- new rFile[ 60 ];
- format(rFile, sizeof(rFile), ALAT_FILE, id);
- new INI:File = INI_Open(rFile);
- INI_WriteFloat(File, "Lokacija X", AlatInfo[ id ][ PosX ]);
- INI_WriteFloat(File, "Lokacija Y", AlatInfo[ id ][ PosY ]);
- INI_WriteFloat(File, "Lokacija Z", AlatInfo[ id ][ PosZ ]);
- INI_WriteInt(File, "Cena", AlatInfo[ id ][ Cena ]);
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement