Guest User

Dinamican sistem pljackanja by Tony

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