Advertisement
TonyVk

Turf Wars v1.0 ENG by TonyVk

Mar 16th, 2017
896
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.20 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <sscanf2>
  4. #include <zcmd>
  5. #include <YSI\y_ini>
  6.  
  7. #define ORANGE "{FFAF00}"
  8. #define GRAY "{C0C0C0}"
  9. #define RED "{F81414}"
  10.  
  11. #define SCM SendClientMessage
  12. #define SCMTA SendClientMessageToAll
  13.  
  14. #if !defined IsValidVehicle
  15. native IsValidVehicle(vehicleid);
  16. #endif
  17.  
  18. #define Objects_FILE "Objects/%d.ini"
  19. #define MAX_Objects 1000
  20. enum Objects
  21. {
  22. aSet,
  23. Float:aX,
  24. Float:aY,
  25. Float:aZ,
  26. Float:aAngle,
  27. Float:aRX,
  28. Float:aRY,
  29. aObject,
  30. Vlasnik,
  31. aInt,
  32. aVW,
  33. Type
  34. }
  35. new ObjectsInfo[MAX_Objects][Objects], eData[MAX_PLAYERS];
  36. enum Turf
  37. {
  38. Float:Pos1[4],
  39. Float:Pos2[4],
  40. Float:Pos3[4],
  41. Float:Pos4[4]
  42. }
  43. new TurfInfo[Turf];
  44. new TurfStarted=0;
  45. new turftimer;
  46. new turfvehicles;
  47. new Points[4];
  48. new TurfVehicle[MAX_PLAYERS];
  49. new Text:TurfRes[8];
  50.  
  51. public OnFilterScriptInit()
  52. {
  53. for(new y = 0; y < sizeof(ObjectsInfo); y++)
  54. {
  55. new yFile[50];
  56. format(yFile, sizeof(yFile), Objects_FILE, y);
  57. if(fexist(yFile))
  58. {
  59. INI_ParseFile(yFile, "LoadObjects", .bExtra = true, .extra = y);
  60. KreirajObjekte(y);
  61. }
  62. }
  63. if(fexist("turf.ini"))
  64. {
  65. INI_ParseFile("turf.ini", "LoadTurf");
  66. print("Turf Wars is loaded.");
  67. }
  68.  
  69. TurfRes[1] = TextDrawCreate(232.999923, -4.288893, "LD_BEAT:chit");
  70. TextDrawLetterSize(TurfRes[1], 0.000000, 0.000000);
  71. TextDrawTextSize(TurfRes[1], 40.000000, 42.000000);
  72. TextDrawAlignment(TurfRes[1], 1);
  73. TextDrawColor(TurfRes[1], -5963521);
  74. TextDrawSetShadow(TurfRes[1], 0);
  75. TextDrawSetOutline(TurfRes[1], 0);
  76. TextDrawBackgroundColor(TurfRes[1], 255);
  77. TextDrawFont(TurfRes[1], 4);
  78. TextDrawSetProportional(TurfRes[1], 0);
  79. TextDrawSetShadow(TurfRes[1], 0);
  80.  
  81. TurfRes[2] = TextDrawCreate(267.333282, -3.874078, "LD_BEAT:chit");
  82. TextDrawLetterSize(TurfRes[2], 0.000000, 0.000000);
  83. TextDrawTextSize(TurfRes[2], 40.000000, 42.000000);
  84. TextDrawAlignment(TurfRes[2], 1);
  85. TextDrawColor(TurfRes[2], -16776961);
  86. TextDrawSetShadow(TurfRes[2], 0);
  87. TextDrawSetOutline(TurfRes[2], 0);
  88. TextDrawBackgroundColor(TurfRes[2], 255);
  89. TextDrawFont(TurfRes[2], 4);
  90. TextDrawSetProportional(TurfRes[2], 0);
  91. TextDrawSetShadow(TurfRes[2], 0);
  92.  
  93. TurfRes[3] = TextDrawCreate(334.666656, -3.459264, "LD_BEAT:chit");
  94. TextDrawLetterSize(TurfRes[3], 0.000000, 0.000000);
  95. TextDrawTextSize(TurfRes[3], 40.000000, 42.000000);
  96. TextDrawAlignment(TurfRes[3], 1);
  97. TextDrawColor(TurfRes[3], 65535);
  98. TextDrawSetShadow(TurfRes[3], 0);
  99. TextDrawSetOutline(TurfRes[3], 0);
  100. TextDrawBackgroundColor(TurfRes[3], 255);
  101. TextDrawFont(TurfRes[3], 4);
  102. TextDrawSetProportional(TurfRes[3], 0);
  103. TextDrawSetShadow(TurfRes[3], 0);
  104.  
  105. TurfRes[4] = TextDrawCreate(301.333343, -3.459262, "LD_BEAT:chit");
  106. TextDrawLetterSize(TurfRes[4], 0.000000, 0.000000);
  107. TextDrawTextSize(TurfRes[4], 40.000000, 42.000000);
  108. TextDrawAlignment(TurfRes[4], 1);
  109. TextDrawColor(TurfRes[4], 8388863);
  110. TextDrawSetShadow(TurfRes[4], 0);
  111. TextDrawSetOutline(TurfRes[4], 0);
  112. TextDrawBackgroundColor(TurfRes[4], 255);
  113. TextDrawFont(TurfRes[4], 4);
  114. TextDrawSetProportional(TurfRes[4], 0);
  115. TextDrawSetShadow(TurfRes[4], 0);
  116.  
  117. TurfRes[0] = TextDrawCreate(252.666656, 8.725929, "0");
  118. TextDrawLetterSize(TurfRes[0], 0.400000, 1.600000);
  119. TextDrawAlignment(TurfRes[0], 2);
  120. TextDrawColor(TurfRes[0], -1);
  121. TextDrawSetShadow(TurfRes[0], 0);
  122. TextDrawSetOutline(TurfRes[0], 0);
  123. TextDrawBackgroundColor(TurfRes[0], 255);
  124. TextDrawFont(TurfRes[0], 1);
  125. TextDrawSetProportional(TurfRes[0], 1);
  126. TextDrawSetShadow(TurfRes[0], 0);
  127.  
  128. TurfRes[5] = TextDrawCreate(287.000152, 8.725928, "0");
  129. TextDrawLetterSize(TurfRes[5], 0.400000, 1.600000);
  130. TextDrawAlignment(TurfRes[5], 2);
  131. TextDrawColor(TurfRes[5], -1);
  132. TextDrawSetShadow(TurfRes[5], 0);
  133. TextDrawSetOutline(TurfRes[5], 0);
  134. TextDrawBackgroundColor(TurfRes[5], 255);
  135. TextDrawFont(TurfRes[5], 1);
  136. TextDrawSetProportional(TurfRes[5], 1);
  137. TextDrawSetShadow(TurfRes[5], 0);
  138.  
  139. TurfRes[6] = TextDrawCreate(321.333526, 9.555559, "0");
  140. TextDrawLetterSize(TurfRes[6], 0.400000, 1.600000);
  141. TextDrawAlignment(TurfRes[6], 2);
  142. TextDrawColor(TurfRes[6], -1);
  143. TextDrawSetShadow(TurfRes[6], 0);
  144. TextDrawSetOutline(TurfRes[6], 0);
  145. TextDrawBackgroundColor(TurfRes[6], 255);
  146. TextDrawFont(TurfRes[6], 1);
  147. TextDrawSetProportional(TurfRes[6], 1);
  148. TextDrawSetShadow(TurfRes[6], 0);
  149.  
  150. TurfRes[7] = TextDrawCreate(355.000183, 9.140743, "0");
  151. TextDrawLetterSize(TurfRes[7], 0.400000, 1.600000);
  152. TextDrawAlignment(TurfRes[7], 2);
  153. TextDrawColor(TurfRes[7], -1);
  154. TextDrawSetShadow(TurfRes[7], 0);
  155. TextDrawSetOutline(TurfRes[7], 0);
  156. TextDrawBackgroundColor(TurfRes[7], 255);
  157. TextDrawFont(TurfRes[7], 1);
  158. TextDrawSetProportional(TurfRes[7], 1);
  159. TextDrawSetShadow(TurfRes[7], 0);
  160. return 1;
  161. }
  162.  
  163. stock getEmptyID(const len, const lokacija[])
  164. {
  165. new id = (-1);
  166. for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != len; loop++)
  167. {
  168. provjera = (loop);
  169. format(Data_, (sizeof Data_), lokacija ,provjera);
  170. if(!fexist(Data_))
  171. {
  172. id = (provjera);
  173. break;
  174. }
  175. }
  176. return (id);
  177. }
  178.  
  179. forward FixTurf();
  180. public FixTurf()
  181. {
  182. for(new i=0; i<MAX_PLAYERS; i++)
  183. {
  184. if(IsValidVehicle(TurfVehicle[i]))
  185. {
  186. SetVehicleHealth(TurfVehicle[i], 1000);
  187. }
  188. }
  189. }
  190.  
  191. forward TurfTime();
  192. public TurfTime()
  193. {
  194. if(TurfStarted == 1)
  195. {
  196. if(Points[0] > Points[1] && Points[0] > Points[2] && Points[0] > Points[3])
  197. {
  198. new str[128];
  199. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange team won with {ffffff}%d "GRAY"points!", Points[0]);
  200. SCMTA(-1, str);
  201. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red: %d "ORANGE"| "GRAY"Green: %d "ORANGE"| "GRAY"Blue: %d!",Points[1],Points[2],Points[3]);
  202. SCMTA(-1, str);
  203. }
  204. else if(Points[1] > Points[0] && Points[1] > Points[2] && Points[1] > Points[3])
  205. {
  206. new str[128];
  207. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red team won with %d points!", Points[1]);
  208. SCMTA(-1, str);
  209. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Green: %d "ORANGE"| "GRAY"Blue: %d!",Points[0],Points[2],Points[3]);
  210. SCMTA(-1, str);
  211. }
  212. else if(Points[2] > Points[0] && Points[2] > Points[1] && Points[2] > Points[3])
  213. {
  214. new str[128];
  215. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green team won with %d points!", Points[2]);
  216. SCMTA(-1, str);
  217. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Red: %d "ORANGE"| "GRAY"Blue: %d!",Points[0],Points[1],Points[3]);
  218. SCMTA(-1, str);
  219. }
  220. else if(Points[3] > Points[0] && Points[3] > Points[1] && Points[3] > Points[2])
  221. {
  222. new str[128];
  223. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue team won with %d points!", Points[3]);
  224. SCMTA(-1, str);
  225. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Red: %d "ORANGE"| "GRAY"Green: %d!",Points[0],Points[1],Points[2]);
  226. SCMTA(-1, str);
  227. }
  228. else if(Points[0] == Points[1])
  229. {
  230. new str[128];
  231. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Red teams have finished equal with %d points!", Points[0]);
  232. SCMTA(-1, str);
  233. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue: %d "ORANGE"| "GRAY"Green: %d!",Points[3],Points[2]);
  234. SCMTA(-1, str);
  235. }
  236. else if(Points[0] == Points[2])
  237. {
  238. new str[128];
  239. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Green teams have finished equal with %d points!", Points[0]);
  240. SCMTA(-1, str);
  241. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Plavi: %d "ORANGE"| "GRAY"Crveni: %d!",Points[3],Points[1]);
  242. SCMTA(-1, str);
  243. }
  244. else if(Points[0] == Points[3])
  245. {
  246. new str[128];
  247. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Blue teams have finished equal with %d points!", Points[0]);
  248. SCMTA(-1, str);
  249. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green: %d "ORANGE"| "GRAY"Red: %d!",Points[2],Points[1]);
  250. SCMTA(-1, str);
  251. }
  252. else if(Points[1] == Points[2])
  253. {
  254. new str[128];
  255. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red and Green teams have finished equal with %d points!", Points[1]);
  256. SCMTA(-1, str);
  257. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue: %d "ORANGE"| "GRAY"Orange: %d!",Points[3],Points[0]);
  258. SCMTA(-1, str);
  259. }
  260. else if(Points[1] == Points[3])
  261. {
  262. new str[128];
  263. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red and Blue teams have finished equal with %d points!", Points[1]);
  264. SCMTA(-1, str);
  265. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green: %d "ORANGE"| "GRAY"Orange: %d!",Points[2],Points[0]);
  266. SCMTA(-1, str);
  267. }
  268. else if(Points[2] == Points[3])
  269. {
  270. new str[128];
  271. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green and Blue teams have finished equal with %d points!", Points[2]);
  272. SCMTA(-1, str);
  273. format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red: %d "ORANGE"| "GRAY"Orange: %d!",Points[1],Points[0]);
  274. SCMTA(-1, str);
  275. }
  276.  
  277. for(new i=0; i<MAX_PLAYERS; i++)
  278. {
  279. if(IsPlayerConnected(i))
  280. {
  281. if(GetPVarInt(i, "TurfTeam") > 0)
  282. {
  283. SetPlayerHealth(i, 0);
  284. SetPVarInt(i, "TurfTeam", 0);
  285. DestroyVehicle(TurfVehicle[i]);
  286. for(new a=0; a<8; a++)
  287. {
  288. TextDrawHideForPlayer(i, TurfRes[a]);
  289. }
  290. }
  291. }
  292. }
  293. for(new idobj = 0; idobj<MAX_Objects; idobj++)
  294. {
  295. if(ObjectsInfo[idobj][aSet] == 1 && ObjectsInfo[idobj][Type] <= 1)
  296. {
  297. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFFFFF);
  298. ObjectsInfo[idobj][Vlasnik] = 0;
  299. }
  300. }
  301. TurfStarted = 0;
  302. }
  303. KillTimer(turftimer);
  304. KillTimer(turfvehicles);
  305. return 1;
  306. }
  307. stock SaveTurf()
  308. {
  309. new INI:File = INI_Open("turf.ini");
  310. INI_WriteFloat(File,"X1",TurfInfo[Pos1][0]);
  311. INI_WriteFloat(File,"Y1",TurfInfo[Pos1][1]);
  312. INI_WriteFloat(File,"Z1",TurfInfo[Pos1][2]);
  313. INI_WriteFloat(File,"Angle1",TurfInfo[Pos1][3]);
  314. INI_WriteFloat(File,"X2",TurfInfo[Pos2][0]);
  315. INI_WriteFloat(File,"Y2",TurfInfo[Pos2][1]);
  316. INI_WriteFloat(File,"Z2",TurfInfo[Pos2][2]);
  317. INI_WriteFloat(File,"Angle2",TurfInfo[Pos2][3]);
  318. INI_WriteFloat(File,"X3",TurfInfo[Pos3][0]);
  319. INI_WriteFloat(File,"Y3",TurfInfo[Pos3][1]);
  320. INI_WriteFloat(File,"Z3",TurfInfo[Pos3][2]);
  321. INI_WriteFloat(File,"Angle3",TurfInfo[Pos3][3]);
  322. INI_WriteFloat(File,"X4",TurfInfo[Pos4][0]);
  323. INI_WriteFloat(File,"Y4",TurfInfo[Pos4][1]);
  324. INI_WriteFloat(File,"Z4",TurfInfo[Pos4][2]);
  325. INI_WriteFloat(File,"Angle4",TurfInfo[Pos4][3]);
  326. INI_Close(File);
  327. return 1;
  328. }
  329.  
  330. forward LoadTurf(name[],value[]);
  331. public LoadTurf(name[],value[])
  332. {
  333. INI_Float("X1",TurfInfo[Pos1][0]);
  334. INI_Float("Y1",TurfInfo[Pos1][1]);
  335. INI_Float("Z1",TurfInfo[Pos1][2]);
  336. INI_Float("Angle1",TurfInfo[Pos1][3]);
  337. INI_Float("X2",TurfInfo[Pos2][0]);
  338. INI_Float("Y2",TurfInfo[Pos2][1]);
  339. INI_Float("Z2",TurfInfo[Pos2][2]);
  340. INI_Float("Angle2",TurfInfo[Pos2][3]);
  341. INI_Float("X3",TurfInfo[Pos3][0]);
  342. INI_Float("Y3",TurfInfo[Pos3][1]);
  343. INI_Float("Z3",TurfInfo[Pos3][2]);
  344. INI_Float("Angle3",TurfInfo[Pos3][3]);
  345. INI_Float("X4",TurfInfo[Pos4][0]);
  346. INI_Float("Y4",TurfInfo[Pos4][1]);
  347. INI_Float("Z4",TurfInfo[Pos4][2]);
  348. INI_Float("Angle4",TurfInfo[Pos4][3]);
  349. return 1;
  350. }
  351.  
  352. stock SaveObjects(idobj)
  353. {
  354. new yFile[80];
  355. format(yFile, sizeof(yFile), Objects_FILE, idobj);
  356. new INI:File = INI_Open(yFile);
  357. INI_WriteInt(File,"Postavljen",ObjectsInfo[idobj][aSet]);
  358. INI_WriteFloat(File,"X",ObjectsInfo[idobj][aX]);
  359. INI_WriteFloat(File,"Y",ObjectsInfo[idobj][aY]);
  360. INI_WriteFloat(File,"Z",ObjectsInfo[idobj][aZ]);
  361. INI_WriteFloat(File,"RX",ObjectsInfo[idobj][aRX]);
  362. INI_WriteFloat(File,"RY",ObjectsInfo[idobj][aRY]);
  363. INI_WriteFloat(File,"Angle",ObjectsInfo[idobj][aAngle]);
  364. INI_WriteInt(File,"Int",ObjectsInfo[idobj][aInt]);
  365. INI_WriteInt(File,"VW",ObjectsInfo[idobj][aVW]);
  366. INI_WriteInt(File,"Vrsta",ObjectsInfo[idobj][Type]);
  367. INI_Close(File);
  368. return 1;
  369. }
  370. forward LoadObjects(idobj,name[],value[]);
  371. public LoadObjects(idobj,name[],value[])
  372. {
  373. INI_Int("Postavljen",ObjectsInfo[idobj][aSet]);
  374. INI_Float("X",ObjectsInfo[idobj][aX]);
  375. INI_Float("Y",ObjectsInfo[idobj][aY]);
  376. INI_Float("Z",ObjectsInfo[idobj][aZ]);
  377. INI_Float("RX",ObjectsInfo[idobj][aRX]);
  378. INI_Float("RY",ObjectsInfo[idobj][aRY]);
  379. INI_Float("Angle",ObjectsInfo[idobj][aAngle]);
  380. INI_Int("Int",ObjectsInfo[idobj][aInt]);
  381. INI_Int("VW",ObjectsInfo[idobj][aVW]);
  382. INI_Int("Vrsta",ObjectsInfo[idobj][Type]);
  383. return 1;
  384. }
  385. stock KreirajObjekte(idobj)
  386. {
  387. if(ObjectsInfo[idobj][aSet] == 1)
  388. {
  389. if(ObjectsInfo[idobj][Type] <= 1)
  390. {
  391. ObjectsInfo[idobj][aObject] = CreateDynamicObject(19377, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ], ObjectsInfo[idobj][aRX], ObjectsInfo[idobj][aRY], ObjectsInfo[idobj][aAngle], ObjectsInfo[idobj][aVW], ObjectsInfo[idobj][aInt],_,_);
  392. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFFFFF);
  393. ObjectsInfo[idobj][Vlasnik] = 0;
  394. }
  395. else
  396. {
  397. ObjectsInfo[idobj][aObject] = CreateDynamicObject(18783, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ], ObjectsInfo[idobj][aRX], ObjectsInfo[idobj][aRY], ObjectsInfo[idobj][aAngle], ObjectsInfo[idobj][aVW], ObjectsInfo[idobj][aInt],_,_);
  398. }
  399. }
  400. return 1;
  401. }
  402.  
  403. forward UnfreezeTurf();
  404. public UnfreezeTurf()
  405. {
  406. for(new i=0; i<MAX_PLAYERS; i++)
  407. {
  408. if(IsPlayerConnected(i))
  409. {
  410. if(GetPVarInt(i, "TurfTeam") > 0)
  411. {
  412. TogglePlayerControllable(i, 1);
  413. SCM(i, -1, ""ORANGE"INFO | "GRAY"Game has started, good luck to all!");
  414. }
  415. }
  416. }
  417. SetTimer("CollisionTurf", 10000, false);
  418. return 1;
  419. }
  420.  
  421. forward CollisionTurf();
  422. public CollisionTurf()
  423. {
  424. for(new i=0; i<MAX_PLAYERS; i++)
  425. {
  426. if(IsPlayerConnected(i))
  427. {
  428. if(GetPVarInt(i, "TurfTeam") > 0)
  429. {
  430. DisableRemoteVehicleCollisions(i, 0);
  431. SCM(i, -1, ""ORANGE"INFO | "GRAY"Now you can collide!");
  432. }
  433. }
  434. }
  435. return 1;
  436. }
  437.  
  438. CMD:turfhelp(playerid,params[])
  439. {
  440. new info[700];
  441. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon!");
  442. strcat(info, ""RED"Turf Help\n\n", sizeof(info));
  443. strcat(info, "Create/Edit objects\n", sizeof(info));
  444. strcat(info, ""GRAY"/createobject-Spawn object which can be edited\n", sizeof(info));
  445. strcat(info, " /removeobject-Remove object with that ID\n", sizeof(info));
  446. strcat(info, " /eobject-Edit position of object\n", sizeof(info));
  447. strcat(info, " /duplicateobject-Duplicate object with that ID\n", sizeof(info));
  448. strcat(info, " /turfspawn-Set spawn location for 4 teams\n", sizeof(info));
  449. strcat(info, " /portobject-Port to location of object\n", sizeof(info));
  450. strcat(info, ""RED"Start/Stop Turf Wars\n", sizeof(info));
  451. strcat(info, ""GRAY"/turfinvite-Invite players in 1 of 4 teams\n", sizeof(info));
  452. strcat(info, "/turfstart-Start Turf Wars\n", sizeof(info));
  453. strcat(info, "/turfstop-Stop Turf Wars\n", sizeof(info));
  454. ShowPlayerDialog(playerid, 31999, DIALOG_STYLE_MSGBOX, "Turf Wars Help", info, "Ok", "");
  455. return 1;
  456. }
  457.  
  458. CMD:turfstop(playerid, params[])
  459. {
  460. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  461. if(TurfStarted == 0) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Turf Wars isn't started!");
  462. TurfTime();
  463. return 1;
  464. }
  465. CMD:turfstart(playerid, params[])
  466. {
  467. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  468. new vrijeme;
  469. if(TurfStarted == 1) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Turf Wars is already started!");
  470. if(sscanf(params, "i", vrijeme)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfstart [Minutes]");
  471. new str[128];
  472. format(str,sizeof(str),""ORANGE"INFO | "GRAY"You started Turf Wars which will end in {ffffff}%d "GRAY"minutes!", vrijeme);
  473. SCM(playerid, -1, str);
  474. vrijeme=vrijeme*60000;
  475. turftimer = SetTimer("TurfTime", vrijeme, false);
  476. turfvehicles = SetTimer("FixTurf", 5000, true);
  477. TurfStarted = 1;
  478. Points[0] = 0;
  479. Points[1] = 0;
  480. Points[2] = 0;
  481. Points[3] = 0;
  482. format(str,sizeof(str), "0");
  483. TextDrawSetString(TurfRes[0], str);
  484. TextDrawSetString(TurfRes[5], str);
  485. TextDrawSetString(TurfRes[6], str);
  486. TextDrawSetString(TurfRes[7], str);
  487. for(new i=0; i<MAX_PLAYERS; i++)
  488. {
  489. if(IsPlayerConnected(i))
  490. {
  491. if(GetPVarInt(i, "TurfTeam") == 1)
  492. {
  493. TogglePlayerControllable(i, 0);
  494. DisableRemoteVehicleCollisions(i, 1);
  495. TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos1][0], TurfInfo[Pos1][1], TurfInfo[Pos1][2], TurfInfo[Pos1][3], 6, 6, 60);
  496. PutPlayerInVehicle(i, TurfVehicle[i], 0);
  497. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
  498. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
  499. for(new a=0; a<8; a++)
  500. {
  501. TextDrawShowForPlayer(i, TurfRes[a]);
  502. }
  503. }
  504. else if(GetPVarInt(i, "TurfTeam") == 2)
  505. {
  506. TogglePlayerControllable(i, 0);
  507. DisableRemoteVehicleCollisions(i, 1);
  508. TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos2][0], TurfInfo[Pos2][1], TurfInfo[Pos2][2], TurfInfo[Pos2][3], 3, 3, 60);
  509. PutPlayerInVehicle(i, TurfVehicle[i], 0);
  510. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
  511. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
  512. for(new a=0; a<8; a++)
  513. {
  514. TextDrawShowForPlayer(i, TurfRes[a]);
  515. }
  516. }
  517. else if(GetPVarInt(i, "TurfTeam") == 3)
  518. {
  519. TogglePlayerControllable(i, 0);
  520. DisableRemoteVehicleCollisions(i, 1);
  521. TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos3][0], TurfInfo[Pos3][1], TurfInfo[Pos3][2], TurfInfo[Pos3][3], 128, 128, 60);
  522. PutPlayerInVehicle(i, TurfVehicle[i], 0);
  523. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
  524. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
  525. for(new a=0; a<8; a++)
  526. {
  527. TextDrawShowForPlayer(i, TurfRes[a]);
  528. }
  529. }
  530. else if(GetPVarInt(i, "TurfTeam") == 4)
  531. {
  532. TogglePlayerControllable(i, 0);
  533. DisableRemoteVehicleCollisions(i, 1);
  534. TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos4][0], TurfInfo[Pos4][1], TurfInfo[Pos4][2], TurfInfo[Pos4][3], 106, 106, 60);
  535. PutPlayerInVehicle(i, TurfVehicle[i], 0);
  536. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
  537. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
  538. for(new a=0; a<8; a++)
  539. {
  540. TextDrawShowForPlayer(i, TurfRes[a]);
  541. }
  542. }
  543. }
  544. }
  545. SetTimer("UnfreezeTurf", 5000, false);
  546. return 1;
  547. }
  548. CMD:turfinvite(playerid, params[])
  549. {
  550. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  551. new id, tim;
  552. if(sscanf(params, "ui",id, tim)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfinvite [Player ID][Team(1-4)]");
  553. if(!IsPlayerConnected(id)) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Player isn't online!");
  554. if(tim < 1 || tim > 4) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Teams can be only from 1 to 4!");
  555. SetPVarInt(id, "TurfTeam", tim);
  556. new str[128];
  557. if(tim == 1)
  558. {
  559. format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in orange team on Turf Wars!");
  560. }
  561. else if(tim == 2)
  562. {
  563. format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in red team on Turf Wars!");
  564. }
  565. else if(tim == 3)
  566. {
  567. format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in green team on Turf Wars!");
  568. }
  569. else if(tim == 4)
  570. {
  571. format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in blue team on Turf Wars!");
  572. }
  573. SCM(id, -1, str);
  574. return 1;
  575. }
  576. CMD:turfspawn(playerid, params[])
  577. {
  578. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  579. if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""RED"ERROR | "GRAY"You need to be in vehicle!");
  580. new tim;
  581. if(sscanf(params, "i",tim)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfspawn [Spawn team(1-4)]");
  582. if(tim < 1 || tim > 4) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Teams can be only from 1 to 4!");
  583. new Float:aaX,Float:aaY,Float:aaZ,Float:Angle;
  584. GetVehiclePos(GetPlayerVehicleID(playerid),aaX,aaY,aaZ); GetVehicleZAngle(GetPlayerVehicleID(playerid),Angle);
  585. if(tim == 1)
  586. {
  587. TurfInfo[Pos1][0] = aaX;
  588. TurfInfo[Pos1][1] = aaY;
  589. TurfInfo[Pos1][2] = aaZ;
  590. TurfInfo[Pos1][3] = Angle;
  591. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for orange team!");
  592. }
  593. else if(tim == 2)
  594. {
  595. TurfInfo[Pos2][0] = aaX;
  596. TurfInfo[Pos2][1] = aaY;
  597. TurfInfo[Pos2][2] = aaZ;
  598. TurfInfo[Pos2][3] = Angle;
  599. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for red team!");
  600. }
  601. else if(tim == 3)
  602. {
  603. TurfInfo[Pos3][0] = aaX;
  604. TurfInfo[Pos3][1] = aaY;
  605. TurfInfo[Pos3][2] = aaZ;
  606. TurfInfo[Pos3][3] = Angle;
  607. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for green team!");
  608. }
  609. else
  610. {
  611. TurfInfo[Pos4][0] = aaX;
  612. TurfInfo[Pos4][1] = aaY;
  613. TurfInfo[Pos4][2] = aaZ;
  614. TurfInfo[Pos4][3] = Angle;
  615. SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for blue team!");
  616. }
  617. SaveTurf();
  618. return 1;
  619. }
  620. CMD:createobject(playerid, params[])
  621. {
  622. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  623. new Float:aaX,Float:aaY,Float:aaZ,Float:Angle,Float:RX, OType;
  624. if(sscanf(params,"i",OType)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /createobject [Type(1 - Normal | 2 - Spawn object)]");
  625. if(OType < 1 || OType > 2) return SCM(playerid, -1, ""RED"ERROR | "GRAY"You entered wrong type!");
  626. GetPlayerPos(playerid,aaX,aaY,aaZ); GetPlayerFacingAngle(playerid,Angle);
  627. new idobj=getEmptyID(MAX_Objects,"Objects/%d.ini");
  628. if(idobj >= MAX_Objects) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You reached max number of objects!");
  629. ObjectsInfo[idobj][aSet] = 1; ObjectsInfo[idobj][aAngle] = Angle; ObjectsInfo[idobj][Type] = OType;
  630. ObjectsInfo[idobj][aX] = aaX; ObjectsInfo[idobj][aY] = aaY; ObjectsInfo[idobj][aZ] = aaZ; ObjectsInfo[idobj][aRX] = RX; ObjectsInfo[idobj][aRY] = 90;
  631. ObjectsInfo[idobj][aInt] = GetPlayerInterior(playerid); ObjectsInfo[idobj][aVW] = GetPlayerVirtualWorld(playerid);
  632. KreirajObjekte(idobj); SaveObjects(idobj);
  633. new str[128];
  634. format(str,sizeof(str), ""ORANGE"INFO | "GRAY"Position of object(ID: %d) you can edit with /eobject", idobj);
  635. SCM(playerid, -1, str);
  636. return 1;
  637. }
  638. CMD:duplicateobject(playerid, params[])
  639. {
  640. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  641. new id;
  642. if(sscanf(params,"i",id)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /duplicateobject [ID]");
  643. new idobj=getEmptyID(MAX_Objects,"Objects/%d.ini");
  644. if(idobj >= MAX_Objects) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You reached max number of objects!");
  645. ObjectsInfo[idobj][aSet] = 1; ObjectsInfo[idobj][aAngle] = ObjectsInfo[id][aAngle]; ObjectsInfo[idobj][Type] = ObjectsInfo[id][Type];
  646. ObjectsInfo[idobj][aX] = ObjectsInfo[id][aX]; ObjectsInfo[idobj][aY] = ObjectsInfo[id][aY]; ObjectsInfo[idobj][aZ] = ObjectsInfo[id][aZ]; ObjectsInfo[idobj][aRX] = ObjectsInfo[id][aRX]; ObjectsInfo[idobj][aRY] = ObjectsInfo[id][aRY];
  647. ObjectsInfo[idobj][aInt] = GetPlayerInterior(playerid); ObjectsInfo[idobj][aVW] = GetPlayerVirtualWorld(playerid);
  648. KreirajObjekte(idobj); SaveObjects(idobj);
  649. new str[128];
  650. format(str,sizeof(str), ""ORANGE"INFO | "GRAY"Position of object(ID: %d) you can edit with /eobject", idobj);
  651. SCM(playerid, -1, str);
  652. return 1;
  653. }
  654. CMD:removeobject(playerid, params[])
  655. {
  656. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You need to be Rcon");
  657. new yFile[50],id;
  658. if(sscanf(params,"i",id)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /removeobject [ID]");
  659. DestroyDynamicObject(ObjectsInfo[id][aObject]);
  660. ObjectsInfo[id][aSet] = 0; ObjectsInfo[id][aAngle] = 0; ObjectsInfo[id][Type] = 0;
  661. ObjectsInfo[id][aX] = 0; ObjectsInfo[id][aY] = 0; ObjectsInfo[id][aZ] = 0; ObjectsInfo[id][aRX] = 0; ObjectsInfo[id][aRY] = 0;
  662. ObjectsInfo[id][aInt] = 0; ObjectsInfo[id][aVW] = 0;
  663. format(yFile, sizeof(yFile), Objects_FILE, id);
  664. if(fexist(yFile)) { fremove(yFile); SCM(playerid,-1, ""ORANGE"INFO | "GRAY"Object removed successfully!"); }
  665. else { SCM(playerid,-1,""RED"ERROR | "GRAY"Taj id objekta ne postoji!"); }
  666. return 1;
  667. }
  668. CMD:eobject(playerid, params[])
  669. {
  670. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  671. new yfajl[80],idobj;
  672. if(sscanf(params, "i",idobj)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /eobject [ID]");
  673. format(yfajl, sizeof(yfajl), Objects_FILE, idobj);
  674. if(!fexist(yfajl)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"That ID of object doesn't exist!");
  675. if(!IsPlayerInRangeOfPoint(playerid, 10.0, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ])) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be near that object!");
  676. eData[playerid] = idobj; EditDynamicObject(playerid,ObjectsInfo[idobj][aObject]);
  677. return 1;
  678. }
  679. CMD:portobject(playerid, params[])
  680. {
  681. if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
  682. new yfajl[80],idobj;
  683. if(sscanf(params, "i",idobj)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /portobject [ID]");
  684. format(yfajl, sizeof(yfajl), Objects_FILE, idobj);
  685. if(!fexist(yfajl)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"That ID of object doesn't exist!");
  686. SetPlayerPos(playerid,ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ]);
  687. SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
  688. return 1;
  689. }
  690.  
  691. public OnPlayerDisconnect(playerid, reason)
  692. {
  693. if(GetPVarInt(playerid, "TurfTeam") > 0)
  694. {
  695. SetPVarInt(playerid, "TurfTeam", 0);
  696. DestroyVehicle(TurfVehicle[playerid]);
  697. for(new a=0; a<8; a++)
  698. {
  699. TextDrawHideForPlayer(playerid, TurfRes[a]);
  700. }
  701. }
  702. return 1;
  703. }
  704.  
  705. public OnPlayerStateChange(playerid, newstate, oldstate)
  706. {
  707. if(GetPVarInt(playerid, "TurfTeam") > 0)
  708. {
  709. if(oldstate == PLAYER_STATE_DRIVER)
  710. {
  711. if(newstate == PLAYER_STATE_ONFOOT)
  712. {
  713. PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
  714. }
  715. }
  716. }
  717. return 1;
  718. }
  719.  
  720. public OnPlayerUpdate(playerid)
  721. {
  722. if(TurfStarted == 1 && GetPVarInt(playerid, "TurfTeam") > 0)
  723. {
  724. new Float:ObjPos[3];
  725. for(new idobj=0; idobj<MAX_Objects; idobj++)
  726. {
  727. if(ObjectsInfo[idobj][aSet] == 1 && ObjectsInfo[idobj][Type] <= 1)
  728. {
  729. GetDynamicObjectPos(ObjectsInfo[idobj][aObject],ObjPos[0],ObjPos[1],ObjPos[2]);
  730. if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjPos[0], ObjPos[1], ObjPos[2]))
  731. {
  732. if(ObjectsInfo[idobj][Vlasnik] == 1 && GetPVarInt(playerid, "TurfTeam") != 1)
  733. {
  734. Points[0]--;
  735. new str[6];
  736. format(str,sizeof(str), "%d", Points[0]);
  737. TextDrawSetString(TurfRes[0], str);
  738. }
  739. if(ObjectsInfo[idobj][Vlasnik] == 2 && GetPVarInt(playerid, "TurfTeam") != 2)
  740. {
  741. Points[1]--;
  742. new str[6];
  743. format(str,sizeof(str), "%d", Points[1]);
  744. TextDrawSetString(TurfRes[5], str);
  745. }
  746. if(ObjectsInfo[idobj][Vlasnik] == 3 && GetPVarInt(playerid, "TurfTeam") != 3)
  747. {
  748. Points[2]--;
  749. new str[6];
  750. format(str,sizeof(str), "%d", Points[2]);
  751. TextDrawSetString(TurfRes[6], str);
  752. }
  753. if(ObjectsInfo[idobj][Vlasnik] == 4 && GetPVarInt(playerid, "TurfTeam") != 4)
  754. {
  755. Points[3]--;
  756. new str[6];
  757. format(str,sizeof(str), "%d", Points[3]);
  758. TextDrawSetString(TurfRes[7], str);
  759. }
  760. if(GetPVarInt(playerid, "TurfTeam") == 1 && ObjectsInfo[idobj][Vlasnik] != 1)
  761. {
  762. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFA500);
  763. Points[0]++;
  764. new str[6];
  765. format(str,sizeof(str), "%d", Points[0]);
  766. TextDrawSetString(TurfRes[0], str);
  767. ObjectsInfo[idobj][Vlasnik] = 1;
  768. }
  769. else if(GetPVarInt(playerid, "TurfTeam") == 2 && ObjectsInfo[idobj][Vlasnik] != 2)
  770. {
  771. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFF0000);
  772. Points[1]++;
  773. new str[6];
  774. format(str,sizeof(str), "%d", Points[1]);
  775. TextDrawSetString(TurfRes[5], str);
  776. ObjectsInfo[idobj][Vlasnik] = 2;
  777. }
  778. else if(GetPVarInt(playerid, "TurfTeam") == 3 && ObjectsInfo[idobj][Vlasnik] != 3)
  779. {
  780. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFF00FF7F);
  781. Points[2]++;
  782. new str[6];
  783. format(str,sizeof(str), "%d", Points[2]);
  784. TextDrawSetString(TurfRes[6], str);
  785. ObjectsInfo[idobj][Vlasnik] = 3;
  786. }
  787. else if(GetPVarInt(playerid, "TurfTeam") == 4 && ObjectsInfo[idobj][Vlasnik] != 4)
  788. {
  789. SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFF00BFFF);
  790. Points[3]++;
  791. new str[6];
  792. format(str,sizeof(str), "%d", Points[3]);
  793. TextDrawSetString(TurfRes[7], str);
  794. ObjectsInfo[idobj][Vlasnik] = 4;
  795. }
  796. }
  797. }
  798. }
  799. new Float: IgrPos[3];
  800. GetPlayerPos(playerid, IgrPos[0], IgrPos[1], IgrPos[2]);
  801. if(IgrPos[2] < (TurfInfo[Pos1][2]-3))
  802. {
  803. if(GetPVarInt(playerid, "TurfTeam") == 1)
  804. {
  805. DestroyVehicle(TurfVehicle[playerid]);
  806. TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos1][0], TurfInfo[Pos1][1], TurfInfo[Pos1][2], TurfInfo[Pos1][3], 6, 6, 60);
  807. PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
  808. }
  809. else if(GetPVarInt(playerid, "TurfTeam") == 2)
  810. {
  811. DestroyVehicle(TurfVehicle[playerid]);
  812. TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos2][0], TurfInfo[Pos2][1], TurfInfo[Pos2][2], TurfInfo[Pos2][3], 3, 3, 60);
  813. PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
  814. }
  815. else if(GetPVarInt(playerid, "TurfTeam") == 3)
  816. {
  817. DestroyVehicle(TurfVehicle[playerid]);
  818. TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos3][0], TurfInfo[Pos3][1], TurfInfo[Pos3][2], TurfInfo[Pos3][3], 128, 128, 60);
  819. PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
  820. }
  821. else if(GetPVarInt(playerid, "TurfTeam") == 4)
  822. {
  823. DestroyVehicle(TurfVehicle[playerid]);
  824. TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos4][0], TurfInfo[Pos4][1], TurfInfo[Pos4][2], TurfInfo[Pos4][3], 106, 106, 60);
  825. PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
  826. }
  827. }
  828. }
  829. return 1;
  830. }
  831. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  832. {
  833. if(response == EDIT_RESPONSE_UPDATE)
  834. {
  835. new id = eData[playerid];
  836. SetDynamicObjectPos(objectid, x, y, z);
  837. SetDynamicObjectRot(objectid, rx, ry, rz);
  838. ObjectsInfo[id][aX] = x;
  839. ObjectsInfo[id][aY] = y;
  840. ObjectsInfo[id][aZ] = z;
  841. ObjectsInfo[id][aRX] = rx;
  842. ObjectsInfo[id][aRY] = ry;
  843. ObjectsInfo[id][aAngle] = rz;
  844. SaveObjects(id);
  845. }
  846. else if(response == EDIT_RESPONSE_CANCEL)
  847. {
  848. eData[playerid] = -1;
  849. }
  850. else if(response == EDIT_RESPONSE_FINAL)
  851. {
  852. new id = eData[playerid];
  853. if(id != -1)
  854. {
  855. ObjectsInfo[id][aX] = x;
  856. ObjectsInfo[id][aY] = y;
  857. ObjectsInfo[id][aZ] = z;
  858. ObjectsInfo[id][aRX] = rx;
  859. ObjectsInfo[id][aRY] = ry;
  860. ObjectsInfo[id][aAngle] = rz;
  861. DestroyDynamicObject(ObjectsInfo[id][aObject]);
  862. KreirajObjekte(id);
  863. SaveObjects(id);
  864. new string[100];
  865. format(string,sizeof(string),""ORANGE"INFO | "GRAY"Object ID %d is successfully created/edited!",id);
  866. SCM(playerid,-1,string);
  867. id = -1;
  868. return 1;
  869. }
  870. }
  871. return 1;
  872. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement