Advertisement
domo101

[FS]Basket System

Aug 16th, 2016
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 54.44 KB | None | 0 0
  1. /* BY Carl (domo101) || credits: Misko, Peppe || koristeno na: Unique Roleplay || ver 1.2 (u ver 1.2 dodano zakucavanje, nova mapa, novi labeli) */
  2.  
  3. #include <a_samp>
  4. #include <streamer>
  5. #include <zcmd>
  6. #pragma tabsize 0
  7.  
  8. #define LOPTAGORE 1
  9. #define LOPTADOLJE 2
  10. #define LOPTATOKOS 3
  11. #define ODSKOK1 4
  12. #define ODSKOK2 5
  13. #define ODSKOK3 6
  14. #define ODSKOK4 7
  15. #define ODSKOK5 8
  16. #define ODSKOK6 9
  17. #define ODSKOK7 10
  18. #define ODSKOK8 11
  19. #define UZRAKU 12
  20. #define DODAVANJE1 13
  21. #define DODAVANJE2 14
  22. #define DUGODODAVANJE1 15
  23. #define DUGODODAVANJE2 16
  24. #define NONE 999
  25.  
  26.  
  27. #define HOLDING(%0) \
  28. ((newkeys & (%0)) == (%0))
  29. #define PRESSED(%0) \
  30. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  31. #define RELEASED(%0) \
  32. (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  33.  
  34. #define COLOR_WHITE 0xFFFFFFAA
  35. #define COLOR_RED 0xAA3333AA
  36.  
  37. #define CRVENI_TIM 0
  38. #define PLAVI_TIM 1
  39.  
  40. #define ODABIR_TIMA 5000
  41.  
  42.  
  43. forward BasketBallDnkEnd(playerid);
  44. forward BasketBallPickup(playerid);
  45. forward ObjectToPoint(Float:radi, Float:radiz, objectid, Float:x, Float:y, Float:z);
  46.  
  47.  
  48. new Float:LoptaHigh;
  49. new Float:BallDistance;
  50. new Float:BallSpeed;
  51. new Float:DodavanjeDistance;
  52.  
  53. new LoptaState = 0;
  54. new HasBall = NONE;
  55. new Shooter = NONE;
  56. new Dodavac = NONE;
  57.  
  58. enum Teams
  59. {
  60. Score,
  61. Name[64],
  62. Player1,
  63. Player2,
  64. PName1[MAX_PLAYER_NAME],
  65. PName2[MAX_PLAYER_NAME],
  66. /* LoptaBuy, */
  67. Players,
  68. };
  69. new TeamInfo[2][Teams];
  70.  
  71. new Text3D:CrveniTimText;
  72. new Text3D:PlaviTimText;
  73. new Text3D:CentarText;
  74.  
  75. new lopta;
  76.  
  77.  
  78. public OnFilterScriptInit()
  79. {
  80.  
  81. strins(TeamInfo[CRVENI_TIM][Name], "Crveni tim", 0);
  82. strins(TeamInfo[PLAVI_TIM][Name], "Plavi Tim", 0);
  83. TeamInfo[CRVENI_TIM][Score] = 0;
  84. TeamInfo[PLAVI_TIM][Score] = 0;
  85. TeamInfo[CRVENI_TIM][Player1] = NONE;
  86. TeamInfo[PLAVI_TIM][Player1] = NONE;
  87. TeamInfo[CRVENI_TIM][Player2] = NONE;
  88. TeamInfo[PLAVI_TIM][Player2] = NONE;
  89. TeamInfo[CRVENI_TIM][Players] = 0;
  90. TeamInfo[PLAVI_TIM][Players] = 0;
  91.  
  92. CrveniTimText = Create3DTextLabel("",0x33AA33AA, -2291.4226, 2305.0125, 8.3216, 20.0,0);
  93. PlaviTimText = Create3DTextLabel("",0x33AA33AA, -2291.4038, 2331.6670, 8.3216, 20.0,0);
  94. CentarText = Create3DTextLabel("",0x33AA33AA, -2291.4871, 2317.9199, 7.1511, 20.0,0);
  95.  
  96. return 1;
  97. }
  98.  
  99. public OnFilterScriptExit()
  100. {
  101. for(new i = 0; i < MAX_PLAYERS; i++)
  102. {
  103. if(IsPlayerConnected(i))
  104. {
  105. if(GetPVarInt(i, "PlayingBBall") == 1)
  106. {
  107. SetPVarInt(i, "PlayingBBall", 0);
  108. }
  109. }
  110. }
  111. Delete3DTextLabel(CrveniTimText);
  112. Delete3DTextLabel(PlaviTimText);
  113. Delete3DTextLabel(CentarText);
  114. DestroyObject(lopta);
  115. return 1;
  116. }
  117. public OnPlayerConnect(playerid)
  118. {
  119. RemoveBuildingForPlayer(playerid, 9260, -2291.6094, 2311.5313, 9.0938, 0.25);
  120. RemoveBuildingForPlayer(playerid, 9380, -2291.6094, 2311.5313, 9.0938, 0.25);
  121. CreateDynamicObject(17513, -2293.12231, 2320.66309, -4.15440, 0.00000, 0.00000, 0.10510);
  122. CreateDynamicObject(19869, -2282.47510, 2334.25024, 3.98240, 0.00000, 0.00000, 90.28497);
  123. CreateDynamicObject(19869, -2285.13306, 2336.83887, 3.97040, 0.00000, 0.00000, 179.90550);
  124. CreateDynamicObject(9339, -2282.26050, 2309.18799, 3.31242, 0.00000, 0.00000, 0.30910);
  125. CreateDynamicObject(9339, -2282.37988, 2323.89990, 3.31242, 0.00000, 0.00000, 0.51010);
  126. CreateDynamicObject(9339, -2300.91455, 2323.83276, 3.31242, 0.00000, 0.00000, 0.51010);
  127. CreateDynamicObject(9339, -2300.71777, 2299.94507, 3.31242, 0.00000, 0.00000, 0.51010);
  128. CreateDynamicObject(9339, -2300.78027, 2299.95532, 3.31242, 0.00000, 0.00000, 0.51010);
  129. CreateDynamicObject(9339, -2295.39355, 2336.80249, 3.27840, 0.00000, 0.00000, 90.16520);
  130. CreateDynamicObject(9339, -2295.33423, 2303.11914, 3.27840, 0.00000, 0.00000, 90.16520);
  131. CreateDynamicObject(19869, -2298.39844, 2336.80444, 3.97040, 0.00000, 0.00000, 179.90550);
  132. CreateDynamicObject(19869, -2300.96802, 2334.22778, 3.98240, 0.00000, 0.00000, 90.69100);
  133. CreateDynamicObject(19869, -2282.43848, 2329.06885, 3.98240, 0.00000, 0.00000, 90.28497);
  134. CreateDynamicObject(19869, -2282.41187, 2323.88843, 3.98240, 0.00000, 0.00000, 90.28497);
  135. CreateDynamicObject(19869, -2282.37598, 2318.72754, 3.98240, 0.00000, 0.00000, 90.28497);
  136. CreateDynamicObject(19869, -2282.35181, 2313.55054, 3.98240, 0.00000, 0.00000, 90.28497);
  137. CreateDynamicObject(19869, -2282.28931, 2308.38281, 3.98240, 0.00000, 0.00000, 90.28497);
  138. CreateDynamicObject(19869, -2282.26489, 2305.77295, 3.98240, 0.00000, 0.00000, 90.28497);
  139. CreateDynamicObject(19869, -2284.89673, 2303.17676, 4.00040, 0.00000, 0.00000, 179.90550);
  140. CreateDynamicObject(19869, -2290.08081, 2303.18115, 4.00040, 0.00000, 0.00000, 179.90550);
  141. CreateDynamicObject(19869, -2295.26172, 2303.18579, 3.98540, 0.00000, 0.00000, 179.90550);
  142. CreateDynamicObject(19869, -2298.18994, 2303.18848, 3.98540, 0.00000, 0.00000, 179.90550);
  143. CreateDynamicObject(19869, -2300.90796, 2329.04614, 3.98240, 0.00000, 0.00000, 90.38799);
  144. CreateDynamicObject(19869, -2300.87524, 2323.87646, 3.98240, 0.00000, 0.00000, 90.38799);
  145. CreateDynamicObject(19869, -2300.84253, 2318.70923, 3.98240, 0.00000, 0.00000, 90.38799);
  146. CreateDynamicObject(19869, -2300.81201, 2313.52100, 3.98240, 0.00000, 0.00000, 90.38799);
  147. CreateDynamicObject(19869, -2300.78003, 2308.35229, 3.98240, 0.00000, 0.00000, 90.38799);
  148. CreateDynamicObject(19869, -2300.76489, 2305.78101, 3.98240, 0.00000, 0.00000, 90.38799);
  149. CreateDynamicObject(9244, -2290.42773, 2287.90234, 9.14690, 0.00000, 0.00000, 0.00000);
  150. CreateDynamicObject(947, -2291.40063, 2304.59937, 5.98830, 0.00000, 0.00000, 0.00000);
  151. CreateDynamicObject(947, -2291.40186, 2331.87671, 5.98830, 0.00000, 0.00000, 178.31435);
  152. CreateDynamicObject(14469, -2297.37402, 2299.43188, 3.97834, 0.00000, 0.00000, 0.00000);
  153. CreateDynamicObject(14469, -2292.06274, 2299.43848, 3.97834, 0.00000, 0.00000, 0.00000);
  154. CreateDynamicObject(14469, -2286.39771, 2299.39429, 3.97834, 0.00000, 0.00000, 0.00000);
  155. CreateDynamicObject(615, -2286.23584, 2298.67676, 3.71789, 0.00000, 0.00000, 0.00000);
  156. CreateDynamicObject(1232, -2282.82031, 2336.54517, 6.28017, 0.00000, 0.00000, 49.43792);
  157. CreateDynamicObject(1232, -2300.69116, 2336.44678, 6.28017, 0.00000, 0.00000, 133.26089);
  158. CreateDynamicObject(1232, -2300.35571, 2303.45630, 6.28017, 0.00000, 0.00000, 108.57346);
  159. CreateDynamicObject(1232, -2282.55029, 2303.47754, 6.28017, 0.00000, 0.00000, 84.22948);
  160. CreateDynamicObject(1280, -2285.35620, 2335.20117, 4.20090, 0.00000, 0.00000, 90.57370);
  161. CreateDynamicObject(1280, -2298.04492, 2335.19238, 4.20090, 0.00000, 0.00000, 90.57370);
  162. CreateDynamicObject(1232, -2295.65894, 2336.79614, 6.28017, 0.00000, 0.00000, 121.33960);
  163. CreateDynamicObject(1232, -2287.81860, 2336.82690, 6.28017, 0.00000, 0.00000, 184.39021);
  164. CreateDynamicObject(615, -2297.58643, 2299.07861, 3.71789, 0.00000, 0.00000, 0.00000);
  165. ////
  166. new extopst;
  167. extopst = CreateDynamicObject(3980,1481.162,-1784.810,22.382,0.000,0.000,0.000);
  168. SetDynamicObjectMaterial(extopst, 2, 17508, "barrio1_lae2", "brickred", -1);
  169. SetDynamicObjectMaterial(extopst, 3, 5710, "cemetery_law", "brickgrey", 0);
  170. SetDynamicObjectMaterial(extopst, 4, 5710, "cemetery_law", "brickgrey", 0);
  171. SetDynamicObjectMaterial(extopst, 8, 13691, "bevcunto2_lahills", "crazypave", 0);
  172. SetDynamicObjectMaterial(extopst, 10, 13691, "bevcunto2_lahills", "crazypave", 0);
  173. extopst = CreateDynamicObject(18762,1492.256,-1751.330,14.738,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  174. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  175. extopst = CreateDynamicObject(18762,1486.594,-1751.330,14.738,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  176. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  177. extopst = CreateDynamicObject(18762,1492.169,-1751.330,19.749,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  178. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  179. extopst = CreateDynamicObject(18762,1486.594,-1751.330,24.603,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  180. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  181. extopst = CreateDynamicObject(18762,1486.594,-1751.330,19.749,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  182. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  183. extopst = CreateDynamicObject(18762,1492.202,-1751.330,24.603,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  184. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  185. extopst = CreateDynamicObject(18762,1481.091,-1751.330,19.749,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  186. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  187. extopst = CreateDynamicObject(18762,1480.886,-1751.330,24.603,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  188. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  189. extopst = CreateDynamicObject(18762,1475.553,-1751.330,19.749,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  190. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  191. extopst = CreateDynamicObject(18762,1469.987,-1751.330,19.749,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  192. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  193. extopst = CreateDynamicObject(18762,1475.569,-1751.330,24.603,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  194. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  195. extopst = CreateDynamicObject(18762,1470.051,-1751.330,24.603,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  196. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  197. extopst = CreateDynamicObject(18762,1475.763,-1751.330,14.738,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  198. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  199. extopst = CreateDynamicObject(18762,1470.387,-1751.330,14.738,0.000,90.000,0.000,-1,-1,-1,500.000,500.000);
  200. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", -1);
  201. extopst = CreateDynamicObject(18762,1507.504,-1750.913,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  202. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  203. extopst = CreateDynamicObject(19377,1502.457,-1750.763,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  204. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  205. extopst = CreateDynamicObject(19377,1507.552,-1745.736,8.830,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  206. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  207. extopst = CreateDynamicObject(18762,1507.504,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  208. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  209. extopst = CreateDynamicObject(19377,1502.200,-1740.871,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  210. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  211. extopst = CreateDynamicObject(18762,1496.924,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  212. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  213. extopst = CreateDynamicObject(19377,1491.760,-1740.871,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  214. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  215. extopst = CreateDynamicObject(18762,1486.628,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  216. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  217. extopst = CreateDynamicObject(19377,1459.628,-1750.597,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  218. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  219. extopst = CreateDynamicObject(18762,1454.528,-1750.669,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  220. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  221. extopst = CreateDynamicObject(19377,1454.536,-1745.473,8.830,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  222. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  223. extopst = CreateDynamicObject(18762,1454.702,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  224. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  225. extopst = CreateDynamicObject(19377,1459.886,-1740.871,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  226. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  227. extopst = CreateDynamicObject(18762,1465.050,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  228. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  229. extopst = CreateDynamicObject(19377,1470.325,-1740.871,8.830,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  230. SetDynamicObjectMaterial(extopst, 0, 3820, "boxhses_sfsx", "ws_ irongate", 0);
  231. extopst = CreateDynamicObject(18762,1475.568,-1740.915,11.940,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  232. SetDynamicObjectMaterial(extopst, 0, 5710, "cemetery_law", "brickgrey", 0);
  233. extopst = CreateDynamicObject(19122,1486.635,-1740.188,12.949,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  234. SetDynamicObjectMaterial(extopst, 0, 13060, "ce_fact01", "puttywall1", 0);
  235. extopst = CreateDynamicObject(19122,1475.574,-1740.188,12.949,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  236. SetDynamicObjectMaterial(extopst, 0, 13060, "ce_fact01", "puttywall1", 0);
  237. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  238. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  239. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  240. extopst = CreateDynamicObject(4002,1479.867,-1790.398,56.023,0.000,0.000,0.000,-1,-1,-1,500.000,500.000);
  241. extopst = CreateDynamicObject(19325,1486.523,-1751.202,14.935,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  242. extopst = CreateDynamicObject(19325,1486.523,-1751.202,19.059,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  243. extopst = CreateDynamicObject(19325,1493.087,-1751.202,19.059,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  244. extopst = CreateDynamicObject(19325,1493.087,-1751.202,14.935,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  245. extopst = CreateDynamicObject(19325,1486.587,-1751.202,23.176,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  246. extopst = CreateDynamicObject(19325,1493.116,-1751.202,23.176,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  247. extopst = CreateDynamicObject(19325,1493.116,-1751.202,27.301,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  248. extopst = CreateDynamicObject(19325,1486.517,-1751.202,27.301,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  249. extopst = CreateDynamicObject(19325,1481.107,-1751.202,22.168,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  250. extopst = CreateDynamicObject(19325,1481.107,-1751.202,26.437,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  251. extopst = CreateDynamicObject(19325,1475.654,-1751.047,25.200,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  252. extopst = CreateDynamicObject(19325,1475.654,-1751.047,16.958,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  253. extopst = CreateDynamicObject(19325,1475.654,-1751.047,21.077,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  254. extopst = CreateDynamicObject(19325,1470.142,-1751.330,16.958,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  255. extopst = CreateDynamicObject(19325,1471.374,-1751.330,21.077,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  256. extopst = CreateDynamicObject(19325,1471.307,-1751.330,25.200,0.000,0.000,90.000,-1,-1,-1,500.000,500.000);
  257. //
  258. return 1;
  259. }
  260.  
  261. public OnPlayerDisconnect(playerid, reason)
  262. {
  263. if(GetPVarInt(playerid, "PlayingBBall") == 1)
  264. {
  265. if(HasBall == playerid){HasBall = NONE;}
  266. if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  267. else if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  268. TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;
  269. SetPVarInt(playerid, "PlayingBBall", 0);
  270. SetPVarInt(playerid, "BBTim", NONE);
  271. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  272. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  273. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  274. }
  275. return 1;
  276. }
  277. public OnPlayerCommandText(playerid, cmdtext[])
  278. {
  279. return 0;
  280. }
  281. CMD:resetplayers(playerid, params[])
  282. {
  283. #pragma unused params
  284. new pname[MAX_PLAYER_NAME];
  285. GetPlayerName(playerid, pname, sizeof(pname));
  286. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  287. {
  288. TeamInfo[CRVENI_TIM][Players] = 0;
  289. TeamInfo[PLAVI_TIM][Players] = 0;
  290. SetPVarInt(TeamInfo[CRVENI_TIM][Player1], "PlayingBBall", 0);
  291. SetPVarInt(TeamInfo[CRVENI_TIM][Player2], "PlayingBBall", 0);
  292. SetPVarInt(TeamInfo[PLAVI_TIM][Player1], "PlayingBBall", 0);
  293. SetPVarInt(TeamInfo[PLAVI_TIM][Player2], "PlayingBBall", 0);
  294. TeamInfo[CRVENI_TIM][Player1] = NONE;
  295. TeamInfo[PLAVI_TIM][Player1] = NONE;
  296. TeamInfo[CRVENI_TIM][Player2] = NONE;
  297. TeamInfo[PLAVI_TIM][Player2] = NONE;
  298. HasBall = NONE;
  299. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  300. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  301. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  302. }
  303. return 1;
  304. }
  305. /* <---- NIJE DOVRSENO, DOCI CE NA UPDATE-U
  306. CMD:buyball(playerid, params[])
  307. {
  308. if(!IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) return SendClientMessage(playerid, COLOR_RED, "Niste u trgovini!");
  309. if(Teams[playerid][LoptaBuy] == 1) return SendClientMessage(playerid,-1,"Vec imas loptu!");
  310. else if(Teams[playerid][LoptaBuy] == 0)
  311. {
  312. LoptaBuy[playerid] = 1;
  313. SendClientMessage(playerid,-1,"Kupili ste loptu za 100$"); GivePlayerMoney(playerid, -100);
  314. }
  315. return 1;
  316. }
  317. */
  318. CMD:resetimena(playerid, params[])
  319. {
  320. #pragma unused params
  321. new pname[MAX_PLAYER_NAME];
  322. GetPlayerName(playerid, pname, sizeof(pname));
  323. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  324. {
  325. strdel(TeamInfo[CRVENI_TIM][Name], 0, 64);
  326. strdel(TeamInfo[PLAVI_TIM][Name], 0, 64);
  327. strins(TeamInfo[CRVENI_TIM][Name], "Crveni tim", 0);
  328. strins(TeamInfo[PLAVI_TIM][Name], "Plavi tim", 0);
  329. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  330. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  331. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  332. }
  333. return 1;
  334. }
  335. CMD:resetscore(playerid, params[])
  336. {
  337. #pragma unused params
  338. new pname[MAX_PLAYER_NAME];
  339. GetPlayerName(playerid, pname, sizeof(pname));
  340. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  341. {
  342. TeamInfo[CRVENI_TIM][Score] = 0;
  343. TeamInfo[PLAVI_TIM][Score] = 0;
  344. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  345. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  346. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  347. }
  348. return 1;
  349. }
  350. CMD:ball(playerid, params[])
  351. {
  352. #pragma unused params
  353. new pname[MAX_PLAYER_NAME];
  354. GetPlayerName(playerid, pname, sizeof(pname));
  355. /* if(Teams[playerid][LoptaBuy] == 0) return SendClientMessage(playerid, COLOR_RED, "Nemate loptu!") */
  356. if(!IsPlayerInRangeOfPoint(playerid, 3.0, -2291.6018,2317.8003,4.8222)) return SendClientMessage(playerid, COLOR_RED, "Niste na centru igralista!");
  357. {
  358. new Float:X,Float:Y,Float:Z;
  359. GetPlayerPos(playerid, X, Y, Z);
  360. DestroyObject(lopta);
  361. lopta = CreateObject(2114, X,Y,Z-0.8,0,0,96);
  362. }
  363. return 1;
  364. }
  365. CMD:playbasket(playerid, params[])
  366. {
  367. #pragma unused params
  368. if(!IsPlayerInRangeOfPoint(playerid, 3.0, -2291.6018,2317.8003,4.8222)) return SendClientMessage(playerid, COLOR_RED, "Niste na centru igralista!");
  369. else if(GetPVarInt(playerid, "PlayingBBall") == 0)
  370. {
  371. new string[128];
  372. format(string, sizeof(string), "%s\n%s", TeamInfo[CRVENI_TIM][Name], TeamInfo[PLAVI_TIM][Name]);
  373. ShowPlayerDialog(playerid, ODABIR_TIMA, DIALOG_STYLE_LIST, "Odaberite tim",string,"Odaberi","Odustani");
  374. }
  375. else
  376. SendClientMessage(playerid, COLOR_RED, "Vec igrate kosarku!");
  377. return 1;
  378. }
  379. CMD:stopbasket(playerid, params[])
  380. {
  381. #pragma unused params
  382. if(GetPVarInt(playerid, "PlayingBBall") == 1)
  383. {
  384. if(HasBall == playerid){HasBall = NONE;}
  385. if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  386. else if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  387. SetPVarInt(playerid, "PlayingBBall", 0);
  388. SetPVarInt(playerid, "BBTim", NONE);
  389. SendClientMessage(playerid, COLOR_WHITE, "Vise ne igrate kosarku!");
  390. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  391. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  392. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  393. }
  394. return 1;
  395. }
  396. CMD:gotoball(playerid, params[])
  397. {
  398. #pragma unused params
  399. new pname[MAX_PLAYER_NAME];
  400. GetPlayerName(playerid, pname, sizeof(pname));
  401. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  402. {
  403. new Float:X,Float:Y,Float:Z;
  404. GetObjectPos(lopta, X, Y, Z);
  405. SetPlayerPos(playerid, X,Y,Z);
  406. }
  407. return 1;
  408. }
  409. CMD:gotobasket(playerid, params[])
  410. {
  411. #pragma unused params
  412. new pname[MAX_PLAYER_NAME];
  413. GetPlayerName(playerid, pname, sizeof(pname));
  414. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  415. {
  416. SetPlayerPos(playerid, -2291.6018,2317.8003,4.8222);
  417. }
  418. return 1;
  419. }
  420. CMD:imetima(playerid, params[])
  421. {
  422. new
  423. team,
  424. name[64];
  425. new pname[MAX_PLAYER_NAME];
  426. GetPlayerName(playerid, pname, sizeof(pname));
  427. if (sscanf(params, "is", team, name)) SendClientMessage(playerid, COLOR_RED, "KORISTITE: /imetima [TEAM] [IME]");
  428. else if (team > 1 || team < 0) SendClientMessage(playerid, COLOR_RED, "Neparavilan unos tima.");
  429. else if(team == CRVENI_TIM)
  430. {
  431. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  432. {
  433. new string[128];
  434. format(string, sizeof(string), "Postavili ste %s kao ime za tim 0.", name);
  435. SendClientMessage(playerid, COLOR_WHITE, string);
  436. strdel(TeamInfo[CRVENI_TIM][Name], 0, 64);
  437. strins(TeamInfo[CRVENI_TIM][Name], name, 0);
  438. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  439. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  440. }
  441. }
  442. else if(team == PLAVI_TIM)
  443. {
  444. if(IsPlayerAdmin(playerid) || !strcmp(pname, "Carl_Smith", false) || !strcmp(pname, "Scottie_Skyline", false))
  445. {
  446. new string[128];
  447. format(string, sizeof(string), "Postavili ste %s kao ime za tim 1.", name);
  448. SendClientMessage(playerid, COLOR_WHITE, string);
  449. strdel(TeamInfo[PLAVI_TIM][Name], 0, 64);
  450. strins(TeamInfo[PLAVI_TIM][Name], name, 0);
  451. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  452. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  453. }
  454. }
  455. return 1;
  456. }
  457. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  458. {
  459. if(GetPVarInt(playerid, "PlayingBBall") == 1)
  460. {
  461. if(HasBall == playerid){HasBall = NONE;}
  462. if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player1] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  463. else if(TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == playerid){ TeamInfo[GetPVarInt(playerid, "BBTim")][Player2] == NONE; TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;}
  464. TeamInfo[GetPVarInt(playerid, "BBTim")][Players] --;
  465. SetPVarInt(playerid, "PlayingBBall", 0);
  466. SetPVarInt(playerid, "BBTim", NONE);
  467. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  468. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  469. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  470. }
  471. return 1;
  472. }
  473. public OnObjectMoved(objectid)
  474. {
  475. if(HasBall != NONE)//Ako netko ima loptu
  476. {
  477. if(LoptaState == LOPTADOLJE)//Lopta se mice dole
  478. {
  479. new Float:X,Float:Y,Float:Z;
  480. new Float:pX,Float:pY;
  481. GetPlayerPos(HasBall, X, Y, Z);
  482. GetXYInFrontOfPlayer(HasBall, pX, pY, BallDistance);
  483. MoveObject(lopta, pX, pY, Z, BallSpeed);
  484. SetObjectRot(lopta, 0, 0, random(50));
  485. LoptaState = LOPTAGORE;
  486. }
  487. else if(LoptaState == LOPTAGORE)//Lopta se mice gore
  488. {
  489. new Float:X,Float:Y,Float:Z;
  490. new Float:pX,Float:pY;
  491. GetPlayerPos(HasBall, X, Y, Z);
  492. GetXYInFrontOfPlayer(HasBall, pX, pY, BallDistance);
  493. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  494. SetObjectRot(lopta, 0, 0, random(50));
  495. LoptaState = LOPTADOLJE;
  496. }
  497. }
  498. else//Ako nitko nema loptu
  499. {
  500. if(LoptaState == ODSKOK1)
  501. {
  502. new Float:X, Float:Y, Float:Z;
  503. GetObjectPos(lopta, X, Y, Z);
  504. MoveObject(lopta, X, Y, Z+1, 5);
  505. LoptaState = ODSKOK2;
  506. }
  507. else if(LoptaState == ODSKOK2)
  508. {
  509. new Float:X, Float:Y, Float:Z;
  510. GetObjectPos(lopta, X, Y, Z);
  511. MoveObject(lopta, X, Y, Z-1, 5);
  512. LoptaState = ODSKOK3;
  513. }
  514. else if(LoptaState == ODSKOK3)
  515. {
  516. new Float:X, Float:Y, Float:Z;
  517. GetObjectPos(lopta, X, Y, Z);
  518. MoveObject(lopta, X, Y, Z+0.8, 4);
  519. LoptaState = ODSKOK4;
  520. }
  521. else if(LoptaState == ODSKOK4)
  522. {
  523. new Float:X, Float:Y, Float:Z;
  524. GetObjectPos(lopta, X, Y, Z);
  525. SetObjectRot(lopta, 0, 0, random(50));
  526. MoveObject(lopta, X, Y, Z-0.8, 4);
  527. LoptaState = ODSKOK5;
  528. }
  529. else if(LoptaState == ODSKOK5)
  530. {
  531. new Float:X, Float:Y, Float:Z;
  532. GetObjectPos(lopta, X, Y, Z);
  533. MoveObject(lopta, X, Y, Z+0.5, 3);
  534. LoptaState = ODSKOK6;
  535. }
  536. else if(LoptaState == ODSKOK6)
  537. {
  538. new Float:X, Float:Y, Float:Z;
  539. GetObjectPos(lopta, X, Y, Z);
  540. MoveObject(lopta, X, Y, Z-0.5, 3);
  541. LoptaState = ODSKOK7;
  542. }
  543. else if(LoptaState == ODSKOK7)
  544. {
  545. new Float:X, Float:Y, Float:Z;
  546. GetObjectPos(lopta, X, Y, Z);
  547. SetObjectRot(lopta, 0, 0, random(50));
  548. MoveObject(lopta, X, Y, Z+0.3, 2);
  549. LoptaState = ODSKOK8;
  550. }
  551. else if(LoptaState == ODSKOK8)
  552. {
  553. new Float:X, Float:Y, Float:Z;
  554. GetObjectPos(lopta, X, Y, Z);
  555. MoveObject(lopta, X, Y, Z-0.3, 2);
  556. SetObjectRot(lopta, 0, 0, random(50));
  557. LoptaState = 0;
  558. }
  559. else if(LoptaState == LOPTATOKOS)//Ako je lopta dosla do kosa
  560. {
  561. new Float:X, Float:Y, Float:Z;
  562. GetObjectPos(lopta, X, Y, Z);
  563. MoveObject(lopta, X, Y, Z-2.50, 6);
  564. SetObjectRot(lopta, 0, 0, random(50));
  565. HasBall = NONE;
  566. LoptaState = ODSKOK1;
  567. Update3DTextLabelText(CentarText, 0x33AA33AA, Update3DText(3));
  568. for(new i=0; i<MAX_PLAYERS; i++)
  569. {
  570. if(IsPlayerConnected(i))
  571. {
  572. if(GetPVarInt(i, "PlayingBBall") == 1)
  573. {
  574. GameTextForPlayer(i, "KOS! :D", 2500, 4);
  575. }
  576. }
  577. }
  578. }
  579. else if(LoptaState == UZRAKU)
  580. {
  581. if(ObjectToPoint(1, 5, lopta, -2291.4609, 2331.3879, 6.5540))//CRVENI_TIM KOS
  582. {
  583. MoveObject(lopta, -2291.4609, 2331.3879, 6.5540, 12.5+random(4));
  584. LoptaState = LOPTATOKOS;
  585. TeamInfo[CRVENI_TIM][Score] ++;
  586. }
  587. else if(ObjectToPoint(1, 5, lopta, -2291.3206,2305.0076,6.5540))//PLAVI_TIM KOS
  588. {
  589. MoveObject(lopta, -2291.3206,2305.0076,6.5540, 12.5+random(4));
  590. LoptaState = LOPTATOKOS;
  591. TeamInfo[PLAVI_TIM][Score] ++;
  592. }
  593. else
  594. {
  595. new Float:X2, Float:Y2, Float:Z;
  596. new distance = (5+random(4)) + (3+random(5));
  597. GetObjectPos(lopta, X2, Y2, Z);
  598. GetXYInFrontOfPlayer(Shooter, X2, Y2, distance);
  599. MoveObject(lopta, X2, Y2, Z-LoptaHigh-0.8, 12.5+random(4));
  600. LoptaState = ODSKOK3;
  601. for(new i=0; i<MAX_PLAYERS; i++)
  602. {
  603. if(IsPlayerConnected(i))
  604. {
  605. if(GetPVarInt(i, "PlayingBBall") == 1)
  606. {
  607. GameTextForPlayer(i, "PROMASAJ!:/", 2500, 4);
  608. }
  609. }
  610. }
  611. }
  612. }
  613. else if(LoptaState == DODAVANJE1)
  614. {
  615. new Float:X2, Float:Y2, Float:Z;
  616. new Float:distance;
  617. distance = DodavanjeDistance + 2 + random(3);
  618. GetObjectPos(lopta, X2, Y2, Z);
  619. GetXYInFrontOfPlayer(Dodavac, X2, Y2, distance);
  620. MoveObject(lopta, X2, Y2, Z-LoptaHigh, 12.5+random(4));
  621. SetObjectRot(lopta, 0, 0, 50+random(50));
  622. Dodavac = NONE;
  623. LoptaState = DODAVANJE2;
  624. }
  625. else if(LoptaState == DODAVANJE2)
  626. {
  627. new Float:X, Float:Y, Float:Z3;
  628. GetObjectPos(lopta, X, Y, Z3);
  629. SetObjectRot(lopta, 0, 0, 50+random(50));
  630. if(IsPlayerInRangeOfPoint(TeamInfo[CRVENI_TIM][Player1], 2.5, X, Y, Z3))
  631. {
  632. new Float:pX, Float:pY, Float:Z;
  633. GetPlayerPos(TeamInfo[CRVENI_TIM][Player1], pX, pY, Z);
  634. GetXYInFrontOfPlayer(TeamInfo[CRVENI_TIM][Player1], pX, pY, 0.6);
  635. BallSpeed = 4.0;
  636. BallDistance = 0.6;
  637. HasBall = TeamInfo[CRVENI_TIM][Player1];
  638. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  639. LoptaState = LOPTAGORE;
  640. ApplyAnimation(TeamInfo[CRVENI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1);
  641. ApplyAnimation(TeamInfo[CRVENI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1);
  642. }
  643. else if(IsPlayerInRangeOfPoint(TeamInfo[CRVENI_TIM][Player2], 2.5, X, Y, Z3))
  644. {
  645. new Float:pX, Float:pY, Float:Z;
  646. GetPlayerPos(TeamInfo[CRVENI_TIM][Player2], pX, pY, Z);
  647. GetXYInFrontOfPlayer(TeamInfo[CRVENI_TIM][Player2], pX, pY, 0.6);
  648. BallSpeed = 4.0;
  649. BallDistance = 0.6;
  650. HasBall = TeamInfo[CRVENI_TIM][Player2];
  651. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  652. LoptaState = LOPTAGORE;
  653. ApplyAnimation(TeamInfo[CRVENI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  654. ApplyAnimation(TeamInfo[CRVENI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  655. }
  656. else if(IsPlayerInRangeOfPoint(TeamInfo[PLAVI_TIM][Player1], 2.5, X, Y, Z3))
  657. {
  658. new Float:pX, Float:pY, Float:Z;
  659. GetPlayerPos(TeamInfo[PLAVI_TIM][Player1], pX, pY, Z);
  660. GetXYInFrontOfPlayer(TeamInfo[PLAVI_TIM][Player1], pX, pY, 0.6);
  661. BallSpeed = 4.0;
  662. BallDistance = 0.6;
  663. HasBall = TeamInfo[PLAVI_TIM][Player1];
  664. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  665. LoptaState = LOPTAGORE;
  666. ApplyAnimation(TeamInfo[PLAVI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  667. ApplyAnimation(TeamInfo[PLAVI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  668. }
  669. else if(IsPlayerInRangeOfPoint(TeamInfo[PLAVI_TIM][Player2], 2.5, X, Y, Z3))
  670. {
  671. new Float:pX, Float:pY, Float:Z;
  672. GetPlayerPos(TeamInfo[PLAVI_TIM][Player2], pX, pY, Z);
  673. GetXYInFrontOfPlayer(TeamInfo[PLAVI_TIM][Player2], pX, pY, 0.6);
  674. BallSpeed = 4.0;
  675. BallDistance = 0.6;
  676. HasBall = TeamInfo[PLAVI_TIM][Player2];
  677. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  678. LoptaState = LOPTAGORE;
  679. ApplyAnimation(TeamInfo[PLAVI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  680. ApplyAnimation(TeamInfo[PLAVI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  681. }
  682. else
  683. {
  684. MoveObject(lopta, X, Y, Z3-0.8, 12.5+random(4));
  685. LoptaState = ODSKOK3;
  686. }
  687. }
  688. else if(LoptaState == DUGODODAVANJE1)
  689. {
  690. new Float:X2, Float:Y2, Float:Z;
  691. new Float:distance;
  692. distance = DodavanjeDistance + 5.5 + random(3);
  693. GetObjectPos(lopta, X2, Y2, Z);
  694. GetXYInFrontOfPlayer(Dodavac, X2, Y2, distance);
  695. MoveObject(lopta, X2, Y2, Z-LoptaHigh, 14.8+random(4));
  696. SetObjectRot(lopta, 0, 0, 50+random(50));
  697. Dodavac = NONE;
  698. LoptaState = DUGODODAVANJE2;
  699. }
  700. else if(LoptaState == DUGODODAVANJE2)
  701. {
  702. new Float:X, Float:Y, Float:Z3;
  703. GetObjectPos(lopta, X, Y, Z3);
  704. if(IsPlayerInRangeOfPoint(TeamInfo[CRVENI_TIM][Player1], 2.5, X, Y, Z3))
  705. {
  706. new Float:pX, Float:pY, Float:Z;
  707. GetPlayerPos(TeamInfo[CRVENI_TIM][Player1], pX, pY, Z);
  708. GetXYInFrontOfPlayer(TeamInfo[CRVENI_TIM][Player1], pX, pY, 0.6);
  709. BallSpeed = 4.0;
  710. BallDistance = 0.6;
  711. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  712. HasBall = TeamInfo[CRVENI_TIM][Player1];
  713. LoptaState = LOPTAGORE;
  714. ApplyAnimation(TeamInfo[CRVENI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  715. ApplyAnimation(TeamInfo[CRVENI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  716. }
  717. else if(IsPlayerInRangeOfPoint(TeamInfo[CRVENI_TIM][Player2], 2.5, X, Y, Z3))
  718. {
  719. new Float:pX, Float:pY, Float:Z;
  720. GetPlayerPos(TeamInfo[CRVENI_TIM][Player2], pX, pY, Z);
  721. GetXYInFrontOfPlayer(TeamInfo[CRVENI_TIM][Player2], pX, pY, 0.6);
  722. BallSpeed = 4.0;
  723. BallDistance = 0.6;
  724. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  725. HasBall = TeamInfo[CRVENI_TIM][Player2];
  726. LoptaState = LOPTAGORE;
  727. ApplyAnimation(TeamInfo[CRVENI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  728. ApplyAnimation(TeamInfo[CRVENI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  729. }
  730. else if(IsPlayerInRangeOfPoint(TeamInfo[PLAVI_TIM][Player1], 2.5, X, Y, Z3))
  731. {
  732. new Float:pX, Float:pY, Float:Z;
  733. GetPlayerPos(TeamInfo[PLAVI_TIM][Player1], pX, pY, Z);
  734. GetXYInFrontOfPlayer(TeamInfo[PLAVI_TIM][Player1], pX, pY, 0.6);
  735. BallSpeed = 4.0;
  736. BallDistance = 0.6;
  737. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  738. HasBall = TeamInfo[PLAVI_TIM][Player1];
  739. LoptaState = LOPTAGORE;
  740. ApplyAnimation(TeamInfo[PLAVI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  741. ApplyAnimation(TeamInfo[PLAVI_TIM][Player1],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  742. }
  743. else if(IsPlayerInRangeOfPoint(TeamInfo[PLAVI_TIM][Player2], 2.5, X, Y, Z3))
  744. {
  745. new Float:pX, Float:pY, Float:Z;
  746. GetPlayerPos(TeamInfo[PLAVI_TIM][Player2], pX, pY, Z);
  747. GetXYInFrontOfPlayer(TeamInfo[PLAVI_TIM][Player2], pX, pY, 0.6);
  748. BallSpeed = 4.0;
  749. BallDistance = 0.6;
  750. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  751. HasBall = TeamInfo[PLAVI_TIM][Player2];
  752. LoptaState = LOPTAGORE;
  753. ApplyAnimation(TeamInfo[PLAVI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  754. ApplyAnimation(TeamInfo[PLAVI_TIM][Player2],"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  755. }
  756. else
  757. {
  758. MoveObject(lopta, X, Y, Z3-0.8, 12.5+random(4));
  759. LoptaState = ODSKOK3;
  760. }
  761. }
  762. }
  763. return 1;
  764. }
  765.  
  766.  
  767. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  768. {
  769. if(GetPVarInt(playerid, "PlayingBBall") == 1)
  770. {
  771. if(HasBall == playerid)
  772. {
  773. if(HOLDING(KEY_SPRINT))
  774. {
  775. new Float:X,Float:Y,Float:Z;
  776. new Float:pX,Float:pY;
  777. BallSpeed = 7.8;
  778. BallDistance = 1.4;
  779. GetPlayerPos(playerid, X, Y, Z);
  780. GetXYInFrontOfPlayer(playerid, pX, pY, BallDistance);
  781. ApplyAnimation(playerid,"BSKTBALL","BBALL_run",4.1,1,1,1,1,1,1);
  782. ApplyAnimation(playerid,"BSKTBALL","BBALL_run",4.1,1,1,1,1,1,1);
  783. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  784. LoptaState = LOPTAGORE;
  785. }
  786. else if(HOLDING(KEY_WALK))
  787. {
  788. new Float:X,Float:Y,Float:Z;
  789. new Float:pX,Float:pY;
  790. BallSpeed = 4.2;
  791. BallDistance = 1;
  792. GetPlayerPos(playerid, X, Y, Z);
  793. GetXYInFrontOfPlayer(playerid, pX, pY, BallDistance);
  794. ApplyAnimation(playerid,"BSKTBALL","BBALL_walk",4.1,1,1,1,1,1,1);
  795. ApplyAnimation(playerid,"BSKTBALL","BBALL_walk",4.1,1,1,1,1,1,1);
  796. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  797. LoptaState = LOPTAGORE;
  798. }
  799. else if(!HOLDING(KEY_WALK) || !HOLDING(KEY_SPRINT))
  800. {
  801. new Float:X,Float:Y,Float:Z;
  802. new Float:pX,Float:pY;
  803. BallSpeed = 4.0;
  804. BallDistance = 0.6;
  805. GetPlayerPos(playerid, X, Y, Z);
  806. GetXYInFrontOfPlayer(playerid, pX, pY, BallDistance);
  807. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  808. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  809. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  810. LoptaState = LOPTAGORE;
  811. }
  812. if(PRESSED(KEY_FIRE))
  813. {
  814. if(IsPlayerInRangeOfPoint(playerid, 3.2, -2291.4548,2329.6084,4.8222) && IsPlayerFacingPoint(playerid, 20, -2291.3757,2331.4031,4.8222))//Ako je kod kosa 1
  815. {
  816. if(HOLDING(KEY_SPRINT) || IsPlayerInRangeOfPoint(playerid, 1.2, -2291.4548,2329.6084,4.8222))
  817. {
  818. MoveObject(lopta, -2291.4609, 2331.3879, 6.5540, 9);//CRVENI_TIM KOS
  819. new camera = random(4);
  820. switch(camera)
  821. {
  822. case 0:
  823. {
  824. SetPlayerCameraPos(playerid, -2289.8486, 2329.1208, 4.8222);
  825. SetPlayerCameraLookAt(playerid, -2291.4609, 2331.3879, 6.5540);
  826. }
  827. case 1:
  828. {
  829. SetPlayerCameraPos(playerid, -2291.4548, 2329.6084, 4.8222);
  830. SetPlayerCameraLookAt(playerid, -2291.9290, 2331.4875, 6.4994);
  831. }
  832. case 2:
  833. {
  834. SetPlayerCameraPos(playerid, -2291.3804, 2332.4824, 4.8222);
  835. SetPlayerCameraLookAt(playerid, -2291.4932, 2328.4001, 4.8222);
  836. }
  837. }
  838. SetPlayerPos(playerid, -2291.3757,2331.4031,4.8222);
  839. ApplyAnimation(playerid,"BSKTBALL","BBALL_Dnk",4.0,0,0,0,0,0,1);
  840. SetTimerEx("BasketBallDnkEnd", 1450, 0, "i", playerid);
  841. HasBall = NONE;
  842. LoptaState = LOPTATOKOS;
  843. TeamInfo[PLAVI_TIM][Score] ++;
  844. }
  845. else
  846. {
  847. ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0,1);
  848. new Float:X2, Float:Y2, Float:Z;
  849. new distance = 2+random(4);
  850. LoptaHigh = 3+random(3);
  851. GetPlayerPos(playerid, X2, Y2, Z);
  852. GetXYInFrontOfPlayer(playerid, X2, Y2, distance);
  853. MoveObject(lopta, X2, Y2, Z+LoptaHigh, 12+random(3));
  854. HasBall = NONE;
  855. LoptaState = UZRAKU;
  856. }
  857. }
  858. else if(IsPlayerInRangeOfPoint(playerid, 3.2, -2291.4272,2306.0334,4.8222) && IsPlayerFacingPoint(playerid, 20, -2291.4221,2305.0854,4.8222))//Ako je kod kosa 1
  859. {
  860. if(HOLDING(KEY_SPRINT) || IsPlayerInRangeOfPoint(playerid, 1.2, -2291.4272,2306.0334,4.8222))
  861. {
  862. MoveObject(lopta, -2291.3206, 2305.0076, 6.5540, 9);//PLAVI_TIM KOS
  863. new camera = random(4);
  864. switch(camera)
  865. {
  866. case 0:
  867. {
  868. SetPlayerCameraPos(playerid, -2292.8950, 2306.9971, 4.8222);
  869. SetPlayerCameraLookAt(playerid, -2291.3206, 2305.0076, 6.5540);
  870. }
  871. case 1:
  872. {
  873. SetPlayerCameraPos(playerid, -2291.4272,2306.0334,4.8222);
  874. SetPlayerCameraLookAt(playerid, -2290.8113, 2304.9199, 6.4994);
  875. }
  876. case 2:
  877. {
  878. SetPlayerCameraPos(playerid, -2291.4141,2304.0305,4.8222);
  879. SetPlayerCameraLookAt(playerid, -2291.3250,2307.7717,4.8222);
  880. }
  881. }
  882. SetPlayerPos(playerid, -2291.4221,2305.0854,4.8222 );
  883. ApplyAnimation(playerid,"BSKTBALL","BBALL_Dnk",4.0,0,0,0,0,0,1);
  884. SetTimerEx("BasketBallDnkEnd", 1450, 0, "i", playerid);
  885. HasBall = NONE;
  886. LoptaState = LOPTATOKOS;
  887. TeamInfo[CRVENI_TIM][Score] ++;
  888. }
  889. else
  890. {
  891. ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0,1);
  892. new Float:X2, Float:Y2, Float:Z;
  893. new distance = 2+random(4);
  894. LoptaHigh = 3+random(3);
  895. GetPlayerPos(playerid, X2, Y2, Z);
  896. GetXYInFrontOfPlayer(playerid, X2, Y2, distance);
  897. MoveObject(lopta, X2, Y2, Z+LoptaHigh, 12+random(3));
  898. HasBall = NONE;
  899. Shooter = playerid;
  900. LoptaState = UZRAKU;
  901. }
  902. }
  903. else
  904. {
  905. ApplyAnimation(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0,1);
  906. new Float:X2, Float:Y2, Float:Z;
  907. new distance = 5+random(4);
  908. LoptaHigh = 3+random(3);
  909. if(IsPlayerInRangeOfPoint(playerid, 5, -2291.4548,2329.6084,4.8222) || IsPlayerInRangeOfPoint(playerid, 5, -2291.4272,2306.0334,4.8222)){distance = 1+random(4);}
  910. GetPlayerPos(playerid, X2, Y2, Z);
  911. GetXYInFrontOfPlayer(playerid, X2, Y2, distance);
  912. MoveObject(lopta, X2, Y2, Z+LoptaHigh, 12+random(3));
  913. HasBall = NONE;
  914. Shooter = playerid;
  915. LoptaState = UZRAKU;
  916. }
  917. }
  918. else if(HOLDING(KEY_HANDBRAKE))
  919. {
  920. new Float:X2, Float:Y2, Float:Z, Float:speed;
  921. LoptaHigh = 1+random(2);
  922. DodavanjeDistance = 6+random(3);
  923. speed = 11+random(3);
  924. GetPlayerPos(playerid, X2, Y2, Z);
  925. GetXYInFrontOfPlayer(HasBall, X2, Y2, DodavanjeDistance);
  926. MoveObject(lopta, X2, Y2, Z+LoptaHigh, speed);
  927. HasBall = NONE;
  928. Dodavac = playerid;
  929. LoptaState = DODAVANJE1;
  930. ApplyAnimation(playerid,"GRENADE","WEAPON_start_throw",4.1,0,0,0,0,0,1);
  931. printf("DIstance: %f Speed: %f", BallDistance, speed);
  932.  
  933. }
  934. else if(PRESSED(KEY_SECONDARY_ATTACK))
  935. {
  936. new Float:X2, Float:Y2, Float:Z, Float:speed;
  937. LoptaHigh = 1.5+random(2);
  938. DodavanjeDistance = 9+random(3);
  939. speed = 14.5+random(3);
  940. GetPlayerPos(playerid, X2, Y2, Z);
  941. GetXYInFrontOfPlayer(HasBall, X2, Y2, DodavanjeDistance);
  942. MoveObject(lopta, X2, Y2, Z+LoptaHigh, speed);
  943. HasBall = NONE;
  944. Dodavac = playerid;
  945. LoptaState = DUGODODAVANJE1;
  946. ApplyAnimation(playerid,"GRENADE","WEAPON_start_throw",4.1,0,0,0,0,0,1);
  947. printf("DIstance: %f Speed: %f", BallDistance, speed);
  948. }
  949. }
  950. else
  951. {
  952. new Float:X, Float:Y, Float:Z;
  953. GetObjectPos(lopta, X, Y, Z);
  954. if(IsPlayerInRangeOfPoint(playerid, 1, X, Y, Z))
  955. {
  956. if(HasBall == NONE)
  957. {
  958. if(PRESSED(KEY_CROUCH))
  959. {
  960. ApplyAnimation(playerid,"BSKTBALL","BBALL_pickup",4.0,0,0,0,0,0,1);
  961. ApplyAnimation(playerid,"BSKTBALL","BBALL_pickup",4.0,0,0,0,0,0,1);
  962. SetTimerEx("BasketBallPickup", 1250, false, "i", playerid);
  963. }
  964. }
  965. else
  966. {
  967. if(PRESSED(KEY_LOOK_BEHIND))
  968. {
  969. new lucky = random(10);
  970. if(lucky == 2 || lucky == 5 || lucky == 6 || lucky == 8 || lucky == 9)
  971. {
  972. new Float:BallerX, Float:BallerY, Float:BallerZ;
  973. GetPlayerPos(HasBall, BallerX, BallerY, BallerZ);
  974. if(IsPlayerInRangeOfPoint(playerid, 3.0, BallerX, BallerY, BallerZ))
  975. {
  976. new Float:pX,Float:pY;
  977. GetPlayerPos(playerid, X, Y, Z);
  978. GetXYInFrontOfPlayer(playerid, pX, pY, 0.6);
  979. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  980. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  981. BallSpeed = 4.0;
  982. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  983. LoptaState = LOPTAGORE;
  984. ApplyAnimation(HasBall,"GRENADE","WEAPON_start_throw",4.1,0,0,0,0,0,1);
  985. HasBall = playerid;
  986. }
  987. }
  988. }
  989. }
  990. }
  991. }
  992. }
  993. return 1;
  994. }
  995.  
  996.  
  997.  
  998. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  999. {
  1000. if(dialogid == ODABIR_TIMA)
  1001. {
  1002. if(response == 1)
  1003. {
  1004. switch(listitem)
  1005. {
  1006. case 0:
  1007. {
  1008. if(TeamInfo[CRVENI_TIM][Players] < 2)
  1009. {
  1010. TeamInfo[CRVENI_TIM][Players] ++;
  1011. SetPVarInt(playerid, "PlayingBBall", 1);
  1012. SetPVarInt(playerid, "BBTim", CRVENI_TIM);
  1013. if(TeamInfo[CRVENI_TIM][Player1] == NONE){ TeamInfo[CRVENI_TIM][Player1] = playerid; }
  1014. else if(TeamInfo[CRVENI_TIM][Player2] == NONE) { TeamInfo[CRVENI_TIM][Player2] = playerid; }
  1015. SendClientMessage(playerid, COLOR_WHITE, "Sada mozete igrati kosarku!");
  1016. Update3DTextLabelText(CrveniTimText, 0x33AA33AA, Update3DText(CRVENI_TIM));
  1017. if(!IsValidObject(lopta) || !ObjectToPoint(30, 5, lopta, -2291.6018, 2317.8003, 5.8222))
  1018. {
  1019. new Float:X,Float:Y,Float:Z;
  1020. GetPlayerPos(playerid, X, Y, Z);
  1021. lopta = CreateObject(2114, X,Y,Z-0.8,0,0,96);
  1022. }
  1023. }
  1024. else
  1025. SendClientMessage(playerid, COLOR_RED, "Ovaj tim je pun!");
  1026. }
  1027. case 1:
  1028. {
  1029. if(TeamInfo[PLAVI_TIM][Players] < 2)
  1030. {
  1031. TeamInfo[PLAVI_TIM][Players] ++;
  1032. SetPVarInt(playerid, "PlayingBBall", 1);
  1033. SetPVarInt(playerid, "BBTim", PLAVI_TIM);
  1034. if(TeamInfo[PLAVI_TIM][Player1] == NONE){ TeamInfo[PLAVI_TIM][Player1] = playerid; }
  1035. else if(TeamInfo[PLAVI_TIM][Player2] == NONE) { TeamInfo[PLAVI_TIM][Player2] = playerid; }
  1036. SendClientMessage(playerid, COLOR_WHITE, "Sada mozete igrati kosarku!");
  1037. Update3DTextLabelText(PlaviTimText, 0x33AA33AA, Update3DText(PLAVI_TIM));
  1038. if(!IsValidObject(lopta) || !ObjectToPoint(30, 5, lopta, -2291.6018, 2317.8003, 5.8222))
  1039. {
  1040. new Float:X,Float:Y,Float:Z;
  1041. GetPlayerPos(playerid, X, Y, Z);
  1042. lopta = CreateObject(2114, X,Y,Z-0.8,0,0,96);
  1043. }
  1044. }
  1045. else
  1046. SendClientMessage(playerid, COLOR_RED, "Ovaj tim je pun!");
  1047. }
  1048. }
  1049. }
  1050. }
  1051. return 1;
  1052. }
  1053.  
  1054. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1055. {
  1056. return 1;
  1057. }
  1058. public BasketBallDnkEnd(playerid)
  1059. {
  1060. if(IsPlayerConnected(playerid))
  1061. {
  1062. ApplyAnimation(playerid,"BSKTBALL","BBALL_Dnk_Lnd",4.1,0,1,1,0,0,1);
  1063. SetCameraBehindPlayer(playerid);
  1064. }
  1065. }
  1066. GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
  1067. {
  1068. new Float:a;
  1069. GetPlayerPos(playerid, x, y, a);
  1070. GetPlayerFacingAngle(playerid, a);
  1071. if (GetPlayerVehicleID(playerid))
  1072. {
  1073. GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  1074. }
  1075. x += (distance * floatsin(-a, degrees));
  1076. y += (distance * floatcos(-a, degrees));
  1077. }
  1078. stock IsPlayerFacingPlayer(playerid, targetid, Float:dOffset)
  1079. {
  1080.  
  1081. new
  1082. Float:pX,
  1083. Float:pY,
  1084. Float:pZ,
  1085. Float:pA,
  1086. Float:X,
  1087. Float:Y,
  1088. Float:Z,
  1089. Float:ang;
  1090.  
  1091. if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0;
  1092.  
  1093. GetPlayerPos(targetid, pX, pY, pZ);
  1094. GetPlayerPos(playerid, X, Y, Z);
  1095. GetPlayerFacingAngle(playerid, pA);
  1096.  
  1097. if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1098. else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
  1099. else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1100.  
  1101. if(AngleInRangeOfAngle(-ang, pA, dOffset)) return true;
  1102.  
  1103. return false;
  1104.  
  1105. }
  1106. stock AngleInRangeOfAngle(Float:a1, Float:a2, Float:range)
  1107. {
  1108.  
  1109. a1 -= a2;
  1110. if((a1 < range) && (a1 > -range)) return true;
  1111.  
  1112. return false;
  1113.  
  1114. }
  1115. stock IsPlayerFacingPoint(playerid, Float:dOffset, Float:pX, Float:pY, Float:pZ)
  1116. {
  1117. #pragma unused pZ
  1118. new
  1119. Float:X,
  1120. Float:Y,
  1121. Float:Z,
  1122. Float:pA,
  1123. Float:ang;
  1124.  
  1125. if(!IsPlayerConnected(playerid)) return 0;
  1126.  
  1127. GetPlayerPos(playerid, X, Y, Z);
  1128. GetPlayerFacingAngle(playerid, pA);
  1129.  
  1130. if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1131. else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
  1132. else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
  1133.  
  1134. if(AngleInRangeOfAngle(-ang, pA, dOffset)) return true;
  1135.  
  1136. return false;
  1137. }
  1138. public ObjectToPoint(Float:radi, Float:radiz, objectid, Float:x, Float:y, Float:z)
  1139. {
  1140. if(IsValidObject(objectid))
  1141. {
  1142. new Float:oldposx, Float:oldposy, Float:oldposz;
  1143. new Float:tempposx, Float:tempposy, Float:tempposz;
  1144. GetObjectPos(objectid, oldposx, oldposy, oldposz);
  1145. tempposx = (oldposx -x);
  1146. tempposy = (oldposy -y);
  1147. tempposz = (oldposz -z);
  1148. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radiz) && (tempposz > -radiz)))
  1149. {
  1150. return 1;
  1151. }
  1152. }
  1153. return 0;
  1154. }
  1155. public BasketBallPickup(playerid)
  1156. {
  1157. if(IsPlayerConnected(playerid))
  1158. {
  1159. new Float:pX, Float:pY, Float:Z;
  1160. GetPlayerPos(playerid, pX, pY, Z);
  1161. GetXYInFrontOfPlayer(playerid, pX, pY, 0.6);
  1162. BallSpeed = 4.0;
  1163. BallDistance = 0.6;
  1164. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  1165. ApplyAnimation(playerid,"BSKTBALL","BBALL_idleloop",4.1,1,1,1,1,1,1);
  1166. MoveObject(lopta, pX, pY, Z-0.8, BallSpeed);
  1167. SetPVarInt(playerid, "PlayingBBall", 1);
  1168. HasBall = playerid;
  1169. LoptaState = LOPTAGORE;
  1170. }
  1171. }
  1172. Update3DText(team)
  1173. {
  1174. new string[256];
  1175. if(team == CRVENI_TIM)
  1176. {
  1177. GetPlayerName(TeamInfo[CRVENI_TIM][Player1], TeamInfo[CRVENI_TIM][PName1], MAX_PLAYER_NAME);
  1178. GetPlayerName(TeamInfo[CRVENI_TIM][Player2], TeamInfo[CRVENI_TIM][PName2], MAX_PLAYER_NAME);
  1179. if(TeamInfo[CRVENI_TIM][Player1] == NONE){ strdel(TeamInfo[CRVENI_TIM][PName1], 0, MAX_PLAYER_NAME); }
  1180. if(TeamInfo[CRVENI_TIM][Player2] == NONE){ strdel(TeamInfo[CRVENI_TIM][PName2], 0, MAX_PLAYER_NAME); }
  1181. format(string, sizeof(string), "%s\n%s & %s", TeamInfo[CRVENI_TIM][Name], TeamInfo[CRVENI_TIM][PName1], TeamInfo[CRVENI_TIM][PName2]);//CRVENI_TIM Kos
  1182. return string;
  1183. }
  1184. else if(team == PLAVI_TIM)
  1185. {
  1186. GetPlayerName(TeamInfo[PLAVI_TIM][Player1], TeamInfo[PLAVI_TIM][PName1], MAX_PLAYER_NAME);
  1187. GetPlayerName(TeamInfo[PLAVI_TIM][Player2], TeamInfo[PLAVI_TIM][PName2], MAX_PLAYER_NAME);
  1188. if(TeamInfo[PLAVI_TIM][Player1] == NONE){ strdel(TeamInfo[PLAVI_TIM][PName1], 0, MAX_PLAYER_NAME); }
  1189. if(TeamInfo[PLAVI_TIM][Player2] == NONE){ strdel(TeamInfo[PLAVI_TIM][PName2], 0, MAX_PLAYER_NAME); }
  1190. format(string, sizeof(string), "%s\n%s & %s", TeamInfo[PLAVI_TIM][Name], TeamInfo[PLAVI_TIM][PName1], TeamInfo[PLAVI_TIM][PName2]);//CRVENI_TIM Kos
  1191. return string;
  1192. }
  1193. else if(team == 3)
  1194. {
  1195. format(string, sizeof(string), "%s Score: %d\nVS\n%s Score: %d", TeamInfo[CRVENI_TIM][Name], TeamInfo[CRVENI_TIM][Score], TeamInfo[PLAVI_TIM][Name], TeamInfo[PLAVI_TIM][Score]);
  1196. return string;
  1197. }
  1198. return string;
  1199. }
  1200.  
  1201. stock sscanf(string[], format[], {Float,_}:...)
  1202. {
  1203. #if defined isnull
  1204. if (isnull(string))
  1205. #else
  1206. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1207. #endif
  1208. {
  1209. return format[0];
  1210. }
  1211. #pragma tabsize 4
  1212. new
  1213. formatPos = 0,
  1214. stringPos = 0,
  1215. paramPos = 2,
  1216. paramCount = numargs(),
  1217. delim = ' ';
  1218. while (string[stringPos] && string[stringPos] <= ' ')
  1219. {
  1220. stringPos++;
  1221. }
  1222. while (paramPos < paramCount && string[stringPos])
  1223. {
  1224. switch (format[formatPos++])
  1225. {
  1226. case '\0':
  1227. {
  1228. return 0;
  1229. }
  1230. case 'i', 'd':
  1231. {
  1232. new
  1233. neg = 1,
  1234. num = 0,
  1235. ch = string[stringPos];
  1236. if (ch == '-')
  1237. {
  1238. neg = -1;
  1239. ch = string[++stringPos];
  1240. }
  1241. do
  1242. {
  1243. stringPos++;
  1244. if ('0' <= ch <= '9')
  1245. {
  1246. num = (num * 10) + (ch - '0');
  1247. }
  1248. else
  1249. {
  1250. return -1;
  1251. }
  1252. }
  1253. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1254. setarg(paramPos, 0, num * neg);
  1255. }
  1256. case 'h', 'x':
  1257. {
  1258. new
  1259. num = 0,
  1260. ch = string[stringPos];
  1261. do
  1262. {
  1263. stringPos++;
  1264. switch (ch)
  1265. {
  1266. case 'x', 'X':
  1267. {
  1268. num = 0;
  1269. continue;
  1270. }
  1271. case '0' .. '9':
  1272. {
  1273. num = (num << 4) | (ch - '0');
  1274. }
  1275. case 'a' .. 'f':
  1276. {
  1277. num = (num << 4) | (ch - ('a' - 10));
  1278. }
  1279. case 'A' .. 'F':
  1280. {
  1281. num = (num << 4) | (ch - ('A' - 10));
  1282. }
  1283. default:
  1284. {
  1285. return -1;
  1286. }
  1287. }
  1288. }
  1289. while ((ch = string[stringPos]) > ' ' && ch != delim);
  1290. setarg(paramPos, 0, num);
  1291. }
  1292. case 'c':
  1293. {
  1294. setarg(paramPos, 0, string[stringPos++]);
  1295. }
  1296. case 'f':
  1297. {
  1298.  
  1299. new changestr[16], changepos = 0, strpos = stringPos;
  1300. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1301. {
  1302. changestr[changepos++] = string[strpos++];
  1303. }
  1304. changestr[changepos] = '\0';
  1305. setarg(paramPos,0,_:floatstr(changestr));
  1306. }
  1307. case 'p':
  1308. {
  1309. delim = format[formatPos++];
  1310. continue;
  1311. }
  1312. case '\'':
  1313. {
  1314. new
  1315. end = formatPos - 1,
  1316. ch;
  1317. while ((ch = format[++end]) && ch != '\'') {}
  1318. if (!ch)
  1319. {
  1320. return -1;
  1321. }
  1322. format[end] = '\0';
  1323. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1324. {
  1325. if (format[end + 1])
  1326. {
  1327. return -1;
  1328. }
  1329. return 0;
  1330. }
  1331. format[end] = '\'';
  1332. stringPos = ch + (end - formatPos);
  1333. formatPos = end + 1;
  1334. }
  1335. case 'u':
  1336. {
  1337. new
  1338. end = stringPos - 1,
  1339. id = 0,
  1340. bool:num = true,
  1341. ch;
  1342. while ((ch = string[++end]) && ch != delim)
  1343. {
  1344. if (num)
  1345. {
  1346. if ('0' <= ch <= '9')
  1347. {
  1348. id = (id * 10) + (ch - '0');
  1349. }
  1350. else
  1351. {
  1352. num = false;
  1353. }
  1354. }
  1355. }
  1356. if (num && IsPlayerConnected(id))
  1357. {
  1358. setarg(paramPos, 0, id);
  1359. }
  1360. else
  1361. {
  1362. #if !defined foreach
  1363. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1364. #define __SSCANF_FOREACH__
  1365. #endif
  1366. string[end] = '\0';
  1367. num = false;
  1368. new
  1369. name[MAX_PLAYER_NAME];
  1370. id = end - stringPos;
  1371. foreach (Player, playerid)
  1372. {
  1373. GetPlayerName(playerid, name, sizeof (name));
  1374. if (!strcmp(name, string[stringPos], true, id))
  1375. {
  1376. setarg(paramPos, 0, playerid);
  1377. num = true;
  1378. break;
  1379. }
  1380. }
  1381. if (!num)
  1382. {
  1383. setarg(paramPos, 0, INVALID_PLAYER_ID);
  1384. }
  1385. string[end] = ch;
  1386. #if defined __SSCANF_FOREACH__
  1387. #undef foreach
  1388. #undef __SSCANF_FOREACH__
  1389. #endif
  1390. }
  1391. stringPos = end;
  1392. }
  1393. case 's', 'z':
  1394. {
  1395. new
  1396. i = 0,
  1397. ch;
  1398. if (format[formatPos])
  1399. {
  1400. while ((ch = string[stringPos++]) && ch != delim)
  1401. {
  1402. setarg(paramPos, i++, ch);
  1403. }
  1404. if (!i)
  1405. {
  1406. return -1;
  1407. }
  1408. }
  1409. else
  1410. {
  1411. while ((ch = string[stringPos++]))
  1412. {
  1413. setarg(paramPos, i++, ch);
  1414. }
  1415. }
  1416. stringPos--;
  1417. setarg(paramPos, i, '\0');
  1418. }
  1419. default:
  1420. {
  1421. continue;
  1422. }
  1423. }
  1424. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1425. {
  1426. stringPos++;
  1427. }
  1428. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1429. {
  1430. stringPos++;
  1431. }
  1432. paramPos++;
  1433. }
  1434. do
  1435. {
  1436. if ((delim = format[formatPos++]) > ' ')
  1437. {
  1438. if (delim == '\'')
  1439. {
  1440. while ((delim = format[formatPos++]) && delim != '\'') {}
  1441. }
  1442. else if (delim != 'z')
  1443. {
  1444. return delim;
  1445. }
  1446. }
  1447. }
  1448. while (delim > ' ');
  1449. return 0;
  1450. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement