Advertisement
TonyVk

Dinamicni sistem pljacki

May 12th, 2018
522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.47 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. ////////////////////////////Dinamican Pljacka System////////////////////////////
  3. ///////////////////////////////////By #Sikora///////////////////////////////////
  4. //////////////////////////////Created: 15.3.2015////////////////////////////////
  5. /////////////////////////Please don't remove credits////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////////////
  7.  
  8. #include <a_samp>
  9. #include <zcmd>
  10. #include <YSI\y_ini>
  11. #include <streamer>
  12. #include <sscanf2>
  13.  
  14. #define DIALOG_PLJHELP 6968
  15. #define DIALOG_PLJACKA 6967
  16. #define DIALOG_UREDJIVANJEPLJ 6966
  17. #define DIALOG_TIMERI 6965
  18. #define DIALOG_TIMER1 6964
  19. #define SPLAVA "{00C0FF}"
  20. #define SIVA "{C0C0C0}"
  21. #define CRVENA "{F81414}"
  22. #define BIJELA "{FFFFFF}"
  23. #define PPLAVA "{0084e3}"
  24. #define ZUTA "{F3FF02}"
  25. #define SCRVENA 0xFF6347AA
  26. #define PLAVA 0x00C0FFAA
  27. #define PLJ_FILE "Pljacke/%d.ini"
  28. #define SCM SendClientMessage
  29. //Stvari koje mozete mjenjati
  30. #define MAX_PLJACKI 50 //Max pljacki koliko moze
  31.  
  32. new timi[MAX_PLAYERS];
  33. new brojacic[MAX_PLAYERS];
  34. new PljBrojanje[MAX_PLAYERS];
  35. new BankaOpljackana[MAX_PLJACKI] = 0;
  36. new Bomba[MAX_PLAYERS];
  37. new Float:bx[MAX_PLAYERS],Float:by[MAX_PLAYERS],Float:bz[MAX_PLAYERS],Float:bab[MAX_PLAYERS];
  38. new PozVrata[MAX_PLAYERS];
  39. new PljId[MAX_PLAYERS];
  40. new PljPickup[MAX_PLJACKI];
  41. new PljPickup2[MAX_PLJACKI];
  42. new Text3D:PljLabel[MAX_PLJACKI];
  43. new Text3D:PljLabel2[MAX_PLJACKI];
  44. new Text3D:PljLabel3[MAX_PLJACKI];
  45. new Izbor[MAX_PLAYERS];
  46.  
  47. enum PljInfo
  48. {
  49. Float: zX,
  50. Float: zY,
  51. Float: zZ,
  52. Float: zA,
  53. Float: zRX,
  54. Float: zRY,
  55. Float: oX,
  56. Float: oY,
  57. Float: oZ,
  58. Float: oA,
  59. Float: oRX,
  60. Float: oRY,
  61. Float: boX,
  62. Float: boY,
  63. Float: boZ,
  64. Float: pX,
  65. Float: pY,
  66. Float: pZ,
  67. vInt,
  68. vVW,
  69. Vrata,
  70. vPostavljena,
  71. VRIJEMEPLJACKE,
  72. VRACANJEPLJACKE,
  73. BOMBATIMER,
  74. PLANTTIMER
  75. }
  76. new Pljacka[MAX_PLJACKI][PljInfo];
  77.  
  78. enum playInfo
  79. {
  80. pBomba
  81. }
  82. new PlayerInfo[MAX_PLAYERS][playInfo];
  83.  
  84. stock KreirajVrata(idp,vr)
  85. {
  86. if(Pljacka[idp][vPostavljena] == 1)
  87. {
  88. if(vr==1)
  89. {
  90. Pljacka[idp][Vrata] = CreateDynamicObject(2634, Pljacka[idp][zX], Pljacka[idp][zY], Pljacka[idp][zZ], Pljacka[idp][zRX], Pljacka[idp][zRY], Pljacka[idp][zA], Pljacka[idp][vVW], Pljacka[idp][vInt],_,_);
  91. }
  92. else if(vr==2)
  93. {
  94. Pljacka[idp][Vrata] = CreateDynamicObject(2634, Pljacka[idp][oX], Pljacka[idp][oY], Pljacka[idp][oZ], Pljacka[idp][oRX], Pljacka[idp][oRY], Pljacka[idp][oA], Pljacka[idp][vVW], Pljacka[idp][vInt],_,_);
  95. }
  96. }
  97. return 1;
  98. }
  99. stock getEmptyID(const len, const lokacija[])
  100. {
  101. new id = (-1);
  102. for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != len; ++ loop)
  103. {
  104. provjera = (loop+1);
  105. format(Data_, (sizeof Data_), lokacija ,provjera);
  106. if(!fexist(Data_))
  107. {
  108. id = (provjera);
  109. break;
  110. }
  111. }
  112. return (id);
  113. }
  114. stock GetName(playerid)
  115. {
  116. new name[MAX_PLAYER_NAME];
  117. GetPlayerName(playerid, name, sizeof(name));
  118. return name;
  119. }
  120. forward UcitajPljacku(idp,name[],value[]);
  121. public UcitajPljacku(idp,name[],value[])
  122. {
  123. INI_Int("VRIJEMEPLJACKE", Pljacka[idp][VRIJEMEPLJACKE]);
  124. INI_Int("VRACANJEPLJACKE", Pljacka[idp][VRACANJEPLJACKE]);
  125. INI_Int("BOMBATIMER", Pljacka[idp][BOMBATIMER]);
  126. INI_Int("PLANTTIMER", Pljacka[idp][PLANTTIMER]);
  127. INI_Int("vInt", Pljacka[idp][vInt]);
  128. INI_Int("vVW", Pljacka[idp][vVW]);
  129. INI_Int("vPostavljena", Pljacka[idp][vPostavljena]);
  130. INI_Float("zX",Pljacka[idp][zX]);
  131. INI_Float("zY",Pljacka[idp][zY]);
  132. INI_Float("zZ",Pljacka[idp][zZ]);
  133. INI_Float("zRX",Pljacka[idp][zRX]);
  134. INI_Float("zRY",Pljacka[idp][zRY]);
  135. INI_Float("zA",Pljacka[idp][zA]);
  136. INI_Float("oX",Pljacka[idp][oX]);
  137. INI_Float("oY",Pljacka[idp][oY]);
  138. INI_Float("oZ",Pljacka[idp][oZ]);
  139. INI_Float("oRX",Pljacka[idp][oRX]);
  140. INI_Float("oRY",Pljacka[idp][oRY]);
  141. INI_Float("oA",Pljacka[idp][oA]);
  142. INI_Float("boX",Pljacka[idp][boX]);
  143. INI_Float("boY",Pljacka[idp][boY]);
  144. INI_Float("boZ",Pljacka[idp][boZ]);
  145. INI_Float("pX",Pljacka[idp][pX]);
  146. INI_Float("pY",Pljacka[idp][pY]);
  147. INI_Float("pZ",Pljacka[idp][pZ]);
  148. return 1;
  149. }
  150. stock SacuvajPljacku(idp)
  151. {
  152.  
  153. new playaFile[50]; format(playaFile,50,PLJ_FILE,idp);
  154. new INI:File = INI_Open(playaFile);
  155. INI_SetTag(File,"Pljacka");
  156. INI_WriteInt(File,"VRIJEMEPLJACKE", Pljacka[idp][VRIJEMEPLJACKE]);
  157. INI_WriteInt(File,"VRACANJEPLJACKE", Pljacka[idp][VRACANJEPLJACKE]);
  158. INI_WriteInt(File,"BOMBATIMER", Pljacka[idp][BOMBATIMER]);
  159. INI_WriteInt(File,"PLANTTIMER", Pljacka[idp][PLANTTIMER]);
  160. INI_WriteInt(File,"vInt", Pljacka[idp][vInt]);
  161. INI_WriteInt(File,"vVW", Pljacka[idp][vVW]);
  162. INI_WriteInt(File,"vPostavljena", Pljacka[idp][vPostavljena]);
  163. INI_WriteFloat(File,"zX",Pljacka[idp][zX]);
  164. INI_WriteFloat(File,"zY",Pljacka[idp][zY]);
  165. INI_WriteFloat(File,"zZ",Pljacka[idp][zZ]);
  166. INI_WriteFloat(File,"zRX",Pljacka[idp][zRX]);
  167. INI_WriteFloat(File,"zRY",Pljacka[idp][zRY]);
  168. INI_WriteFloat(File,"zA",Pljacka[idp][zA]);
  169. INI_WriteFloat(File,"oX",Pljacka[idp][oX]);
  170. INI_WriteFloat(File,"oY",Pljacka[idp][oY]);
  171. INI_WriteFloat(File,"oZ",Pljacka[idp][oZ]);
  172. INI_WriteFloat(File,"oRX",Pljacka[idp][oRX]);
  173. INI_WriteFloat(File,"oRY",Pljacka[idp][oRY]);
  174. INI_WriteFloat(File,"oA",Pljacka[idp][oA]);
  175. INI_WriteFloat(File,"boX",Pljacka[idp][boX]);
  176. INI_WriteFloat(File,"boY",Pljacka[idp][boY]);
  177. INI_WriteFloat(File,"boZ",Pljacka[idp][boZ]);
  178. INI_WriteFloat(File,"pX",Pljacka[idp][pX]);
  179. INI_WriteFloat(File,"pY",Pljacka[idp][pY]);
  180. INI_WriteFloat(File,"pZ",Pljacka[idp][pZ]);
  181. INI_Close(File);
  182. return 1;
  183. }
  184.  
  185. public OnFilterScriptInit()
  186. {
  187. print("////////////////////////////////////////////////////////////////////////////////");
  188. print("////////////////////////////Dinamican Pljacka System////////////////////////////");
  189. print("///////////////////////////////////By #Sikora///////////////////////////////////");
  190. print("//////////////////////////////Created: 15.3.2015////////////////////////////////");
  191. print("/////////////////////////Please don't remove credits////////////////////////////");
  192. print("////////////////////////////////////////////////////////////////////////////////");
  193. for(new i = 0; i < sizeof(Pljacka); i++)
  194. {
  195. new oFile[50];
  196. format(oFile, sizeof(oFile), PLJ_FILE, i);
  197. if(fexist(oFile))
  198. {
  199. INI_ParseFile(oFile, "UcitajPljacku", .bExtra = true, .extra = i);
  200. PljPickup[i] = CreateDynamicPickup(1239, 1, Pljacka[i][pX], Pljacka[i][pY], Pljacka[i][pZ]);
  201. PljPickup2[i] = CreateDynamicPickup(1252, 1, Pljacka[i][boX], Pljacka[i][boY], Pljacka[i][boZ]);
  202. new string[128];
  203. format(string,sizeof(string),"[ ID:%d ]\nDa opljackate banku pisite /pljackajbanku",i);
  204. PljLabel[i] = CreateDynamic3DTextLabel(string,0xFF9900BB,Pljacka[i][pX],Pljacka[i][pY],Pljacka[i][pZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  205. PljLabel2[i] = CreateDynamic3DTextLabel("Da kupite bombu pisite /kupibombu",0xFF9900BB,Pljacka[i][boX],Pljacka[i][boY],Pljacka[i][boZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  206. PljLabel3[i] = CreateDynamic3DTextLabel("Da srusite vrata pisite /unistivrata",0xFF9900BB,Pljacka[i][zX],Pljacka[i][zY],Pljacka[i][zZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  207. if(Pljacka[i][vPostavljena] == 1)
  208. {
  209. KreirajVrata(i,1);
  210. }
  211. }
  212. }
  213. return 1;
  214. }
  215. public OnFilterScriptExit()
  216. {
  217. for(new a = 0; a < sizeof(Pljacka); a++)
  218. {
  219. DestroyDynamicPickup(PljPickup[a]);
  220. DestroyDynamicPickup(PljPickup2[a]);
  221. DestroyDynamic3DTextLabel(PljLabel[a]);
  222. DestroyDynamic3DTextLabel(PljLabel2[a]);
  223. DestroyDynamic3DTextLabel(PljLabel3[a]);
  224. DestroyDynamicObject(Pljacka[a][Vrata]);
  225. }
  226. return 1;
  227. }
  228. stock SacuvajIgraca(playerid)
  229. {
  230.  
  231. new playaFile[30]; format(playaFile,30,"Pljacke/Korisnici/%s",GetName(playerid));
  232. new INI:File = INI_Open(playaFile);
  233. INI_SetTag(File,"Bombe");
  234. INI_WriteInt(File,"Bomba", PlayerInfo[playerid][pBomba]);
  235. INI_Close(File);
  236. return 1;
  237. }
  238.  
  239. forward UcitajIgraca_data(playerid,name[],value[]);
  240. public UcitajIgraca_data(playerid,name[],value[])
  241. {
  242. INI_Int("Bomba",PlayerInfo[playerid][pBomba]);
  243. return 1;
  244. }
  245.  
  246. public OnPlayerConnect(playerid)
  247. {
  248. new str[30]; format(str,sizeof(str),"Pljacke/Korisnici/%s",GetName(playerid));
  249. if(fexist(str))
  250. {
  251. INI_ParseFile(str, "UcitajIgraca_%s", .bExtra = true, .extra = playerid);
  252. }
  253. return 1;
  254. }
  255. public OnPlayerDisconnect(playerid, reason)
  256. {
  257. if(PljBrojanje[playerid] != 0)
  258. {
  259. KillTimer(timi[playerid]);
  260. KillTimer(brojacic[playerid]);
  261. PljBrojanje[playerid] = 0;
  262. }
  263. return 1;
  264. }
  265.  
  266. forward pljbrojanje(playerid);
  267. public pljbrojanje(playerid)
  268. {
  269. if(!IsPlayerConnected(playerid))
  270. {
  271. KillTimer(timi[playerid]);
  272. KillTimer(brojacic[playerid]);
  273. }
  274. if(PljBrojanje[playerid] != 0)
  275. {
  276. PljBrojanje[playerid]--;
  277. if(PljBrojanje[playerid] == 0)
  278. {
  279. KillTimer(brojacic[playerid]);
  280. }
  281. new string[128];
  282. format(string, sizeof(string), "%d sekundi ostalo", PljBrojanje[playerid]);
  283. GameTextForPlayer(playerid, string, 500, 3);
  284. }
  285. return 1;
  286. }
  287. forward VracajPljacku(i);
  288. public VracajPljacku(i)
  289. {
  290. DestroyDynamicObject(Pljacka[i][Vrata]);
  291. KreirajVrata(i,1);
  292. BankaOpljackana[i] = 0;
  293. }
  294.  
  295. forward VrijemePljacke(playerid);
  296. public VrijemePljacke(playerid)
  297. {
  298. new string[128];
  299. new rand = random(16000);
  300. GivePlayerMoney(playerid,rand);
  301. format(string,sizeof(string),"Uspjesno ste opljackali %d$",rand);
  302. SCM(playerid,PLAVA,string);
  303. TogglePlayerControllable(playerid,1);
  304. KillTimer(timi[playerid]);
  305. ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
  306. }
  307.  
  308. forward TimerBombe(playerid);
  309. public TimerBombe(playerid)
  310. {
  311. CreateExplosion(bx[playerid],by[playerid],bz[playerid],0,5);
  312. SCM(playerid,PLAVA,"Bomba je eksplodirala i vrata su razbijena,mozete kreniti sa pljackanjem!");
  313. DestroyObject(Bomba[playerid]);
  314. new id = PljId[playerid];
  315. DestroyDynamicObject(Pljacka[id][Vrata]);
  316. KreirajVrata(id,2);
  317. PljId[playerid] = -1;
  318. }
  319.  
  320. forward PostavioBombu(playerid);
  321. public PostavioBombu(playerid)
  322. {
  323. TogglePlayerControllable(playerid,1);
  324. ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0);
  325. new st[128];
  326. format(st,sizeof(st),"Postavili ste bombu koja ce eksplodirati za %d sekundi,udaljite se da vas ne ubije!",Pljacka[PljId[playerid]][BOMBATIMER]);
  327. SCM(playerid,PLAVA,st);
  328. SetTimerEx("TimerBombe",Pljacka[PljId[playerid]][BOMBATIMER]*1000,false,"i",playerid);
  329. }
  330.  
  331. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  332. {
  333. if(dialogid == DIALOG_TIMER1)
  334. {
  335. new idp;
  336. new id=PljId[playerid];
  337. if(!response) return 1;
  338. if(sscanf(inputtext,"i",idp))
  339. {
  340. if(Izbor[playerid] == 1)
  341. {
  342. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje trajanja pljacke", ""BIJELA"Unesite koliko minuta zelite da traje pljackanje", "Dalje", "Odustani");
  343. }
  344. else if(Izbor[playerid] == 2)
  345. {
  346. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena do ponovnog pljackanja", ""BIJELA"Unesite koliko minuta zelite da prodje do ponovnog pljackanja ove lokacije", "Dalje", "Odustani");
  347. }
  348. else if(Izbor[playerid] == 3)
  349. {
  350. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena do eksplozije", ""BIJELA"Unesite koliko sekundi zelite da prodje do eksplozije bombe", "Dalje", "Odustani");
  351. }
  352. else if(Izbor[playerid] == 4)
  353. {
  354. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena postavljanja bombe", ""BIJELA"Unesite koliko sekundi zelite da igrac postavlja bombu", "Dalje", "Odustani");
  355. }
  356. }
  357. else
  358. {
  359. switch(Izbor[playerid])
  360. {
  361. case 1:
  362. {
  363. Pljacka[id][VRIJEMEPLJACKE] = idp;
  364. SacuvajPljacku(id);
  365. new st[128];
  366. format(st,sizeof(st),"Uspjesno ste promjenili vrijeme trajanja pljacke na %d minuta/e",idp);
  367. SCM(playerid,PLAVA,st);
  368. }
  369. case 2:
  370. {
  371. Pljacka[id][VRACANJEPLJACKE] = idp;
  372. SacuvajPljacku(id);
  373. new st[128];
  374. format(st,sizeof(st),"Uspjesno ste promjenili vrijeme do ponovnog pljackanja na %d minuta/e",idp);
  375. SCM(playerid,PLAVA,st);
  376. }
  377. case 3:
  378. {
  379. Pljacka[id][BOMBATIMER] = idp;
  380. SacuvajPljacku(id);
  381. new st[128];
  382. format(st,sizeof(st),"Uspjesno ste promjenili vrijeme do eksplozije na %d sekundi/e",idp);
  383. SCM(playerid,PLAVA,st);
  384. }
  385. case 4:
  386. {
  387. Pljacka[id][PLANTTIMER] = idp;
  388. SacuvajPljacku(id);
  389. new st[128];
  390. format(st,sizeof(st),"Uspjesno ste promjenili vrijeme postavljanja bombe na %d sekundi/e",idp);
  391. SCM(playerid,PLAVA,st);
  392. }
  393. }
  394. }
  395. }
  396. if(dialogid == DIALOG_TIMERI)
  397. {
  398. if(!response) return 1;
  399. switch(listitem)
  400. {
  401. case 0:
  402. {
  403. Izbor[playerid] = 1;
  404. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje trajanja pljacke", ""BIJELA"Unesite koliko minuta zelite da traje pljackanje", "Dalje", "Odustani");
  405. }
  406. case 1:
  407. {
  408. Izbor[playerid] = 2;
  409. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena do ponovnog pljackanja", ""BIJELA"Unesite koliko minuta zelite da prodje do ponovnog pljackanja ove lokacije", "Dalje", "Odustani");
  410. }
  411. case 2:
  412. {
  413. Izbor[playerid] = 3;
  414. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena do eksplozije", ""BIJELA"Unesite koliko sekundi zelite da prodje do eksplozije bombe", "Dalje", "Odustani");
  415. }
  416. case 3:
  417. {
  418. Izbor[playerid] = 4;
  419. ShowPlayerDialog(playerid, DIALOG_TIMER1, 1, ""BIJELA"Uredjivanje vremena postavljanja bombe", ""BIJELA"Unesite koliko sekundi zelite da igrac postavlja bombu", "Dalje", "Odustani");
  420. }
  421. }
  422. }
  423. if(dialogid == DIALOG_UREDJIVANJEPLJ)
  424. {
  425. if(!response) return 1;
  426. new Float:x,Float:y,Float:z;
  427. new id=PljId[playerid];
  428. switch(listitem)
  429. {
  430. case 0:
  431. {
  432. new Float:X,Float:Y,Float:Z,Float:Angle,Float:RX,Float:RY;
  433. GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
  434. Pljacka[id][vPostavljena] = 1;
  435. Pljacka[id][zA] = Angle;
  436. Pljacka[id][zX] = X;
  437. Pljacka[id][zY] = Y;
  438. Pljacka[id][zZ] = Z;
  439. Pljacka[id][zRX] = RX;
  440. Pljacka[id][zRY] = RY;
  441. Pljacka[id][vInt] = GetPlayerInterior(playerid);
  442. Pljacka[id][vVW] = GetPlayerVirtualWorld(playerid);
  443. KreirajVrata(id,1); SacuvajPljacku(id); SCM(playerid,PLAVA,"Poziciju vrata mozete editovati komandom /uredipljacku!");
  444. }
  445. case 1:
  446. {
  447. GetPlayerPos(playerid,x,y,z);
  448. Pljacka[id][boX]=x;
  449. Pljacka[id][boY]=y;
  450. Pljacka[id][boZ]=z;
  451. SacuvajPljacku(id);
  452. DestroyDynamicPickup(PljPickup2[id]);
  453. DestroyDynamic3DTextLabel(PljLabel2[id]);
  454. PljPickup2[id] = CreateDynamicPickup(1252, 1, Pljacka[id][boX], Pljacka[id][boY], Pljacka[id][boZ]);
  455. PljLabel2[id] = CreateDynamic3DTextLabel("Da kupite bombu pisite /kupibombu",0xFF9900BB,Pljacka[id][boX],Pljacka[id][boY],Pljacka[id][boZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  456. }
  457. case 2:
  458. {
  459. GetPlayerPos(playerid,x,y,z);
  460. Pljacka[id][pX]=x;
  461. Pljacka[id][pY]=y;
  462. Pljacka[id][pZ]=z;
  463. SacuvajPljacku(id);
  464. DestroyDynamicPickup(PljPickup[id]);
  465. DestroyDynamic3DTextLabel(PljLabel[id]);
  466. PljPickup[id] = CreateDynamicPickup(1239, 1, Pljacka[id][pX], Pljacka[id][pY], Pljacka[id][pZ]);
  467. new string[128];
  468. format(string,sizeof(string),"[ ID:%d ]\nDa opljackate banku pisite /pljackajbanku",id);
  469. PljLabel[id] = CreateDynamic3DTextLabel(string,0xFF9900BB,Pljacka[id][pX],Pljacka[id][pY],Pljacka[id][pZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  470. }
  471. case 3:
  472. {
  473. PozVrata[playerid] = 1;
  474. EditDynamicObject(playerid,Pljacka[id][Vrata]);
  475. }
  476. case 4:
  477. {
  478. PozVrata[playerid] = 2;
  479. EditDynamicObject(playerid,Pljacka[id][Vrata]);
  480. }
  481. case 5:
  482. {
  483. Pljacka[id][vPostavljena] = 0;
  484. DestroyDynamicObject(Pljacka[id][Vrata]);
  485. DestroyDynamic3DTextLabel(PljLabel3[id]);
  486. }
  487. case 6:
  488. {
  489. ShowPlayerDialog(playerid, DIALOG_TIMERI, DIALOG_STYLE_LIST, "Uredjivanje timera", "Trajanje pljacke\nVrijeme do ponovnog pljackanja\nVrijeme do eksplozije\nVrijeme postavljanja bombe", "Potvrdi", "Izadji");
  490. }
  491. }
  492. }
  493. if(dialogid == DIALOG_PLJACKA)
  494. {
  495. new idp;
  496. if(!response) return 1;
  497. if(sscanf(inputtext,"i",idp)) return ShowPlayerDialog(playerid, DIALOG_PLJACKA, 1, ""BIJELA"Uredjivanje", ""BIJELA"Unesite ID pljacke koju zelite urediti", "Dalje", "Odustani");
  498. new oFile[50];
  499. format(oFile, sizeof(oFile), PLJ_FILE, idp);
  500. if(!fexist(oFile))return ShowPlayerDialog(playerid, DIALOG_PLJACKA, 1, ""BIJELA"Pljacka ne postoji", ""BIJELA"Unesite ID pljacke koju zelite urediti", "Dalje", "Odustani");
  501. PljId[playerid] = idp;
  502. SendClientMessage(playerid,SCRVENA,"Kordinate se spremaju cim kliknete na jedno od ponudjenog!");
  503. ShowPlayerDialog(playerid, DIALOG_UREDJIVANJEPLJ, DIALOG_STYLE_LIST, "Uredjivanje pljacke", "Kreiraj vrata\nLokacija kupovine bombe\nLokacija pljacke\nLokacija zatvorenih vrata\nLokacija otvorenih vrata\nObrisi vrata\nTimeri", "Potvrdi", "Izadji");
  504. }
  505. return 1;
  506. }
  507.  
  508. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  509. {
  510. if(response == EDIT_RESPONSE_FINAL)
  511. {
  512. if(PozVrata[playerid] == 1)
  513. {
  514. new id = PljId[playerid], string[100];
  515. if(id != -1)
  516. {
  517. Pljacka[id][zX] = fX;
  518. Pljacka[id][zY] = fY;
  519. Pljacka[id][zZ] = fZ;
  520. Pljacka[id][zRX] = fRotX;
  521. Pljacka[id][zRY] = fRotY;
  522. Pljacka[id][zA] = fRotZ;
  523. DestroyDynamic3DTextLabel(PljLabel3[id]);
  524. PljLabel3[id] = CreateDynamic3DTextLabel("Da srusite vrata pisite /unistivrata",0xFF9900BB,Pljacka[id][zX],Pljacka[id][zY],Pljacka[id][zZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 20.0);
  525. DestroyDynamicObject(Pljacka[id][Vrata]);
  526. KreirajVrata(id,1);
  527. SacuvajPljacku(id);
  528. format(string,sizeof(string),"Vrata pljacke ID %d su uspjesno editovana!",id);
  529. SCM(playerid,PLAVA,string);
  530. id = -1;
  531. return 1;
  532. }
  533. }
  534. if(PozVrata[playerid] == 2)
  535. {
  536. new id = PljId[playerid];
  537. if(id != -1)
  538. {
  539. Pljacka[id][oX] = fX;
  540. Pljacka[id][oY] = fY;
  541. Pljacka[id][oZ] = fZ;
  542. Pljacka[id][oRX] = fRotX;
  543. Pljacka[id][oRY] = fRotY;
  544. Pljacka[id][oA] = fRotZ;
  545. DestroyDynamicObject(Pljacka[id][Vrata]);
  546. KreirajVrata(id,1);
  547. SacuvajPljacku(id);
  548. SCM(playerid,PLAVA,"Pozicija nakon puknuca bombe uspjesno sacuvana!");
  549. id = -1;
  550. return 1;
  551. }
  552. }
  553. }
  554. return 1;
  555. }
  556.  
  557. CMD:pljackahelp(playerid,params[])
  558. {
  559. new info[320];
  560. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,SCRVENA,"Nemate ovlasti!");
  561. strcat(info, ""ZUTA"Pljacka Help\n\n", sizeof(info));
  562. strcat(info, ""CRVENA"Pravljenje/Brisanje Pljacke\n", sizeof(info));
  563. strcat(info, ""SIVA"/kreirajpljacku-Pravite file pljacke da ju mozete kasnije uredjivati\n", sizeof(info));
  564. strcat(info, " /obrisipljacku-Brisete file od pljacke,vrata,labele,pickupove\n", sizeof(info));
  565. strcat(info, ""CRVENA"Uredjivanje\n", sizeof(info));
  566. strcat(info, ""SIVA"/uredipljacku-Uredjujete kordinate vrata,te kordinate kupovine bombe i pljacke\n\n", sizeof(info));
  567. ShowPlayerDialog(playerid, DIALOG_PLJHELP, DIALOG_STYLE_MSGBOX, ""BIJELA"Pljacka Help", info, "Uredu", "");
  568. return 1;
  569. }
  570.  
  571. CMD:uredipljacku(playerid,params[])
  572. {
  573. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,""SPLAVA"[#Sikora] "SIVA"Samo Vlasnik!");
  574. ShowPlayerDialog(playerid, DIALOG_PLJACKA, 1, ""BIJELA"Uredjivanje", ""BIJELA"Unesite ID pljacke koju zelite urediti", "Dalje", "Odustani");
  575. return 1;
  576. }
  577.  
  578. CMD:kreirajpljacku(playerid,params[])
  579. {
  580. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,""SPLAVA"[#Sikora] "SIVA"Samo Vlasnik!");
  581. new idp = getEmptyID(MAX_PLJACKI, "Pljacke/%d.ini");
  582. if(idp > MAX_PLJACKI)return SCM(playerid,SCRVENA,"Max pljacki je dostignut!");
  583. new oFile[50];
  584. format(oFile, sizeof(oFile), PLJ_FILE, idp);
  585. if(!fexist(oFile))
  586. {
  587. Pljacka[idp][vPostavljena] = 0;
  588. Pljacka[idp][zA] = 0;
  589. Pljacka[idp][zX] = 0;
  590. Pljacka[idp][zY] = 0;
  591. Pljacka[idp][zZ] = 0;
  592. Pljacka[idp][zRX] = 0;
  593. Pljacka[idp][zRY] = 0;
  594. Pljacka[idp][oA] = 0;
  595. Pljacka[idp][oX] = 0;
  596. Pljacka[idp][oY] = 0;
  597. Pljacka[idp][oZ] = 0;
  598. Pljacka[idp][oRX] = 0;
  599. Pljacka[idp][oRY] = 0;
  600. Pljacka[idp][boX] = 0;
  601. Pljacka[idp][boY] = 0;
  602. Pljacka[idp][boZ] = 0;
  603. Pljacka[idp][pX] = 0;
  604. Pljacka[idp][pY] = 0;
  605. Pljacka[idp][pZ] = 0;
  606. Pljacka[idp][vInt] = 0;
  607. Pljacka[idp][vVW] = 0;
  608. Pljacka[idp][VRIJEMEPLJACKE] = 2;//minute - Koliko ce igrac dugo cekati da opljacka banku
  609. Pljacka[idp][VRACANJEPLJACKE] = 20;//minute - Koliko ce trebati da se odredjena banka moze opet pljackati
  610. Pljacka[idp][BOMBATIMER] = 7;//sekunde - Koliko treba da bomba eksplodira
  611. Pljacka[idp][PLANTTIMER] = 5; //sekunde - Koliko treba da igrac postavi bombu
  612. SacuvajPljacku(idp);
  613. new st[45];
  614. format(st,sizeof(st),"{00C0FF}Uspjesno napravita pljacka ID: %d",idp);
  615. SendClientMessage(playerid,-1,st);
  616. }else return SendClientMessage(playerid,SCRVENA,"Ta pljacka vec postoji!");
  617. return 1;
  618. }
  619. CMD:obrisipljacku(playerid,params[])
  620. {
  621. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,""SPLAVA"[#Sikora] "SIVA"Samo Vlasnik!");
  622. new idp;
  623. if(sscanf(params,"i",idp)) return SendClientMessage(playerid,-1,""CRVENA"#Sikora Pomoc | "SIVA"/obrisipljacku [ID pljacke]");
  624. new oFile[50];
  625. format(oFile, sizeof(oFile), PLJ_FILE, idp);
  626. if(fexist(oFile))
  627. {
  628. DestroyDynamicPickup(PljPickup[idp]);
  629. DestroyDynamicPickup(PljPickup2[idp]);
  630. DestroyDynamic3DTextLabel(PljLabel[idp]);
  631. DestroyDynamic3DTextLabel(PljLabel2[idp]);
  632. DestroyDynamic3DTextLabel(PljLabel3[idp]);
  633. DestroyDynamicObject(Pljacka[idp][Vrata]);
  634. Pljacka[idp][pX] = 0;
  635. Pljacka[idp][pY] = 0;
  636. Pljacka[idp][pZ] = 0;
  637. Pljacka[idp][boX] = 0;
  638. Pljacka[idp][boY] = 0;
  639. Pljacka[idp][boZ] = 0;
  640. Pljacka[idp][vPostavljena] = 0;
  641. fremove(oFile);
  642. SendClientMessage(playerid,-1,"{00C0FF}Uspjesno obrisana pljacka!");
  643. }else return SendClientMessage(playerid,SCRVENA,"Ta pljacka ne postoji!");
  644. return 1;
  645. }
  646. CMD:pljackajbanku(playerid, params[])
  647. {
  648. for(new i=0;i<MAX_PLJACKI;i++)
  649. {
  650. if(IsPlayerInRangeOfPoint(playerid, 3.0, Pljacka[i][pX], Pljacka[i][pY], Pljacka[i][pZ]) && !IsPlayerInAnyVehicle(playerid))
  651. {
  652. if(BankaOpljackana[i] == 0)
  653. {
  654. BankaOpljackana[i] = 1;
  655. new st[128];
  656. format(st,sizeof(st),"Krenuli ste sa pljackom koja traje %d minute/a",Pljacka[i][VRIJEMEPLJACKE]);
  657. SCM(playerid,PLAVA,st);
  658. brojacic[playerid] = SetTimerEx("pljbrojanje", 1000, true, "i", playerid);
  659. PljBrojanje[playerid] = Pljacka[i][VRIJEMEPLJACKE]*60;
  660. TogglePlayerControllable(playerid,0);
  661. ApplyAnimation(playerid,"BOMBER","BOM_Plant_Crouch_In",4.1,0,1,1,1,1);
  662. timi[playerid] = SetTimerEx("VrijemePljacke",(Pljacka[i][VRIJEMEPLJACKE]*60)*1000,false,"i",playerid);
  663. SetTimerEx("VracajPljacku", (Pljacka[i][VRACANJEPLJACKE]*60)*1000, false, "d", i);
  664. }else return SCM(playerid,SCRVENA,"Banku je netko vec opljackao,pokusajte kasnije ponovno!");
  665. }
  666. }
  667. return 1;
  668. }
  669. CMD:unistivrata(playerid, params[])
  670. {
  671. for(new i=0;i<MAX_PLJACKI;i++)
  672. {
  673. if(IsPlayerInRangeOfPoint(playerid, 3.0, Pljacka[i][zX], Pljacka[i][zY], Pljacka[i][zZ]) && !IsPlayerInAnyVehicle(playerid))
  674. {
  675. if(PlayerInfo[playerid][pBomba] == 1)
  676. {
  677. SCM(playerid,PLAVA,"Postavljate bombu!");
  678. PlayerInfo[playerid][pBomba] = 0;
  679. SacuvajIgraca(playerid);
  680. GetPlayerPos(playerid, bx[playerid], by[playerid], bz[playerid]);
  681. GetPlayerFacingAngle(playerid,bab[playerid]);
  682. DestroyObject(Bomba[playerid]);
  683. bx[playerid] = bx[playerid] + (0.6 * floatsin(-bab[playerid], degrees));
  684. by[playerid] = by[playerid] + (0.6 * floatcos(-bab[playerid], degrees));
  685. Bomba[playerid]=CreateObject(1654, bx[playerid], by[playerid], bz[playerid]-0.8, 0.0, 0.0, bab[playerid]);
  686. TogglePlayerControllable(playerid,0);
  687. ApplyAnimation(playerid,"BOMBER","BOM_Plant_Crouch_In",4.1,0,1,1,1,1);
  688. SetTimerEx("PostavioBombu",Pljacka[i][PLANTTIMER]*1000,false,"i",playerid);
  689. PljId[playerid] = i;
  690. }else return SCM(playerid,SCRVENA,"Nemate bombu!");
  691. }
  692. }
  693. return 1;
  694. }
  695. CMD:kupibombu(playerid, params[])
  696. {
  697. for(new i=0;i<MAX_PLJACKI;i++)
  698. {
  699. if(IsPlayerInRangeOfPoint(playerid, 3.0, Pljacka[i][boX], Pljacka[i][boY], Pljacka[i][boZ]) && !IsPlayerInAnyVehicle(playerid))
  700. {
  701. if(GetPlayerMoney(playerid) >= 2000)
  702. {
  703. if(PlayerInfo[playerid][pBomba] == 0)
  704. {
  705. SCM(playerid,PLAVA,"Kupili ste C4 za 2000$");
  706. PlayerInfo[playerid][pBomba] = 1;
  707. GivePlayerMoney(playerid,-2000);
  708. SacuvajIgraca(playerid);
  709. }else return SCM(playerid,SCRVENA,"Vec imate jednu bombu!");
  710. }else return SCM(playerid,SCRVENA,"Nemate dovoljno novca!");
  711. }
  712. }
  713. return 1;
  714. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement