Guest User

Untitled

a guest
Feb 23rd, 2020
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 67.88 KB | None | 0 0
  1. public OnPlayerConnect(playerid)
  2. {
  3. PlayAudioStreamForPlayer(playerid, "https://www.dropbox.com/s/986m4s3ovtvsz53/V%20-%20RP%20%2821%20-%20rockstar%29.mp3?dl=1");
  4.  
  5. ServerInfo[BrojPosetaServeru]++;
  6.  
  7. CheckRekord();
  8.  
  9. PlayerInfo[playerid][xID] = 0;
  10.  
  11. ResetPlayer(playerid);
  12.  
  13. SetPlayerVirtualWorld(playerid, (playerid + 2000));
  14. SetPlayerColor(playerid, 0xAFAFAF00);
  15.  
  16. #if ZIMSKI_MOD == 1
  17. action_effect = defer ActionEffect[1900](playerid);
  18. #endif
  19.  
  20. CreatePlayerTextDraws(playerid);
  21. PreloadAnimations(playerid);
  22.  
  23. static str[300];
  24. GetPlayerIp(playerid, str, sizeof(str));
  25. format(str, sizeof(str), "Igrac: %s | IP: %s", ImeIgraca(playerid), str);
  26. LogSave("Logovi/LogConnect.log", str);
  27.  
  28.  
  29. mysql_format(mSQL, str, sizeof(str),
  30. "SELECT `registered`, `password`, `user_id`, `level`, `exp`, `xOnlineSati`, `country`, `money`, `xBRacun`, `job_id`, `contract`, `skin_id`, \
  31. `warn`, `admin_lvl`, `helper_level`, `xTestAdmin`, `vip_level`, `v_poen`, `xVCoin`, `xTogStats` FROM `users` WHERE `p_name` = '%e' LIMIT 1", ImeIgraca(playerid));
  32.  
  33. mysql_pquery(mSQL, str, "CheckPlayerAccount", "i", playerid);
  34. return(true);
  35. }
  36.  
  37. protected CheckPlayerAccount( playerid )
  38. {
  39. new rows, fields;
  40. cache_get_data( rows, fields, mSQL );
  41.  
  42. if( !rows )
  43. {
  44. if( !IsValidRoleplayName( ImeIgraca( playerid ) ) )
  45. {
  46. SendClientMessage( playerid, CRVENA, "#NON-RP NICKNAME: {FFFFFF}Dobili ste kick zbog krivo formatiranog imena." );
  47. SendClientMessage( playerid, CRVENA, "#NON-RP NICKNAME: {FFFFFF}Vase ime mora biti u formatu {FA5555}'Ime_Prezime'." );
  48. defer KickIgraca(playerid);
  49. return 1;
  50. }
  51.  
  52. if( ServerInfo[ Registracija ] == false )
  53. {
  54. SendClientMessage( playerid, CRVENA, "#REGISTER: {FFFFFF}REGISTRACIJA JE TRENUTNO ONEMOGUCENA." );
  55. SendClientMessage( playerid, CRVENA, "#REGISTER: {FFFFFF}V - ADMIN TEAM." );
  56. defer KickIgraca(playerid);
  57. return 1;
  58. }
  59.  
  60. Register(playerid);
  61. }
  62. else
  63. {
  64. cache_get_field_content( 0, "password", PlayerInfo[ playerid ][ xLozinka ], mSQL, 150 );
  65. PlayerInfo[ playerid ][ xRegistrovan ] = cache_get_field_content_int( 0, "registered" );
  66. PlayerInfo[ playerid ][ xID ] = cache_get_field_content_int( 0, "user_id" );
  67. PlayerInfo[ playerid ][ xLevel ] = cache_get_field_content_int( 0, "level" );
  68. PlayerInfo[ playerid ][ xRespekt ] = cache_get_field_content_int( 0, "exp" );
  69. PlayerInfo[ playerid ][ xOnlineSati ] = cache_get_field_content_int( 0, "xOnlineSati" );
  70. PlayerInfo[ playerid ][ xDrzava ] = cache_get_field_content_int( 0, "country" );
  71. PlayerInfo[ playerid ][ xNovac ] = cache_get_field_content_int( 0, "money" );
  72. PlayerInfo[ playerid ][ xBRacun ] = cache_get_field_content_int( 0, "xBRacun" );
  73. PlayerInfo[ playerid ][ xPosao ] = cache_get_field_content_int( 0, "job_id" );
  74. PlayerInfo[ playerid ][ xUgovor ] = cache_get_field_content_int( 0, "contract" );
  75. PlayerInfo[ playerid ][ xSkin ] = cache_get_field_content_int( 0, "skin_id" );
  76. PlayerInfo[ playerid ][ xWarn ] = cache_get_field_content_int( 0, "warn" );
  77. PlayerInfo[ playerid ][ xAdmin ] = cache_get_field_content_int( 0, "admin_lvl" );
  78. PlayerInfo[ playerid ][ xHelper ] = cache_get_field_content_int( 0, "helper_level" );
  79. PlayerInfo[ playerid ][ xTestAdmin ] = cache_get_field_content_int( 0, "xTestAdmin" );
  80. PlayerInfo[ playerid ][ xVIPLevel ] = cache_get_field_content_int( 0, "vip_level" );
  81. PlayerInfo[ playerid ][ xVPoen ] = cache_get_field_content_int( 0, "v_poen" );
  82. PlayerInfo[ playerid ][ xVCoin ] = cache_get_field_content_int( 0, "xVCoin" );
  83. PlayerInfo[ playerid ][ xTogStats ] = bool:cache_get_field_content_int( 0, "xTogStats" );
  84.  
  85. if( PlayerInfo[ playerid ][ xRegistrovan ] == 1 )
  86. {
  87. new query[128];
  88. mysql_format( mSQL, query, sizeof(query), "SELECT * FROM `banned` WHERE `user_id` = '%d' LIMIT 1", PlayerInfo[ playerid ][ xID ] );
  89. mysql_pquery( mSQL, query, "CheckPlayerBan", "i", playerid );
  90. }
  91. else
  92. {
  93. if( ServerInfo[ Registracija ] == false )
  94. {
  95. SendClientMessage( playerid, CRVENA, "#REGISTER: {FFFFFF}REGISTRACIJA JE TRENUTNO ONEMOGUCENA." );
  96. SendClientMessage( playerid, CRVENA, "#REGISTER: {FFFFFF}V - ADMIN TEAM." );
  97. defer KickIgraca(playerid);
  98. return 1;
  99. }
  100.  
  101. Register(playerid);
  102. }
  103. }
  104. return(true);
  105. }
  106.  
  107. protected selectQueryAdminList( playerid )
  108. {
  109. new rows, fields, p_name[ 24 ], last_login[ 64 ], admin_lvl, is_online;
  110. cache_get_data( rows, fields, mSQL );
  111.  
  112. if( rows )
  113. {
  114. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  115.  
  116. for( new i = 0; i < rows; i ++ )
  117. {
  118. admin_lvl = cache_get_field_content_int( i, "admin_lvl" );
  119. is_online = cache_get_field_content_int( i, "isonline" );
  120. cache_get_field_content( i, "p_name", p_name, mSQL, 24 );
  121.  
  122. if(admin_lvl < 1) admin_lvl = 100;
  123.  
  124. if( is_online == 0 ) cache_get_field_content( i, "last_login", last_login, mSQL, 64 );
  125.  
  126. if( is_online == 0 )
  127. {
  128. format( globalstring, sizeof( globalstring ), "{C395EA}%d - {FFFFFF}%s | %s | {FF0000}%s\n", i+1, p_name, getAdminRankNamebyRank(admin_lvl), last_login );
  129. strcat( DialogStrgEx, globalstring );
  130. }
  131. else
  132. {
  133. format( globalstring, sizeof( globalstring ), "{C395EA}%d - {FFFFFF}%s | %s | {00FF00}Online\n", i+1, p_name, getAdminRankNamebyRank(admin_lvl) );
  134. strcat( DialogStrgEx, globalstring );
  135. }
  136. }
  137. ShowPlayerDialog( playerid, 0, DIALOG_STYLE_MSGBOX, "{FFFFFF}Lista svih Admina:", DialogStrgEx, "Ok", "" );
  138. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  139.  
  140. }
  141. else SendErrorMessage( playerid, "Nema admina." );
  142. return(true);
  143. }
  144.  
  145. protected selectQueryHelperList( playerid )
  146. {
  147. new rows, fields, p_name[ 24 ], helper_level, is_online, last_login[30];
  148. cache_get_data( rows, fields, mSQL );
  149.  
  150. if( rows )
  151. {
  152. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  153.  
  154. for( new i = 0; i < rows; i ++ )
  155. {
  156. helper_level = cache_get_field_content_int( i, "helper_level" );
  157. is_online = cache_get_field_content_int( i, "isonline" );
  158. cache_get_field_content( i, "p_name", p_name, mSQL, 24 );
  159.  
  160. if( is_online == 0) cache_get_field_content(i, "last_login", last_login, mSQL, 30);
  161.  
  162. if( is_online > 0 )
  163. {
  164. format( globalstring, sizeof( globalstring ), "{C395EA}%d - {FFFFFF}%s - H|%d - {FF0000}%s\n", i+1, p_name, helper_level, last_login );
  165. strcat( DialogStrgEx, globalstring );
  166. }
  167. else
  168. {
  169. format( globalstring, sizeof( globalstring ), "{C395EA}%d - {FFFFFF}%s - H|%d - {00FF00}Online\n", i+1, p_name, helper_level );
  170. strcat( DialogStrgEx, globalstring );
  171. }
  172. }
  173. ShowPlayerDialog( playerid, 0, DIALOG_STYLE_MSGBOX, "{FFFFFF}Lista svim Helpera:", DialogStrgEx, "Ok", "" );
  174. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  175.  
  176. }
  177. else SendErrorMessage( playerid, "Nema helpera." );
  178. return(true);
  179. }
  180.  
  181. protected selectQueryVehModelList( playerid, model )
  182. {
  183. new rows, fields;
  184. cache_get_data( rows, fields, mSQL );
  185.  
  186. if( rows )
  187. {
  188. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  189. new autoid = -1, vehSqlID = -1;
  190. for( new j = 0; j < rows; j ++ )
  191. {
  192. vehSqlID = cache_get_field_content_int( j, "veh_id" );
  193. if( vehSqlID != -1 )
  194. {
  195. for( new i = 1; i <= GetVehiclePoolSize(); i++ )
  196. {
  197. if( VehicleInfo[ i ][ vSqlID ] == vehSqlID )
  198. {
  199. format( globalstring, sizeof( globalstring ), "{FFFFFF}[ ingameID - %d ] - {C395EA}[ sqlBaseID - %d ]\n", i, vehSqlID );
  200. strcat( DialogStrgEx, globalstring );
  201. autoid = i;
  202. }
  203. }
  204. if( autoid == -1 )
  205. {
  206. format( globalstring, sizeof( globalstring ), "{FFFFFF}[ nije kreirano ingame ] - {C395EA}[ sqlBaseID - %d ]\n", vehSqlID );
  207. strcat( DialogStrgEx, globalstring );
  208. }
  209. }
  210. }
  211.  
  212. if( strlen( DialogStrgEx ) == 0 ) return SendErrorMessage( playerid, "Nema nijednog vozila sa unetim modelom." );
  213.  
  214. format( globalstring, sizeof( globalstring ), "{C395EA}VOZILA - {FFFFFF}%s", GetVehicleNameEx( model ) );
  215. ShowPlayerDialog( playerid, 0, DIALOG_STYLE_MSGBOX, globalstring, DialogStrgEx, "Ok", "" );
  216. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  217. }
  218. return(true);
  219. }
  220.  
  221. protected selectQueryAuctionList( playerid )
  222. {
  223. new rows, fields;
  224. cache_get_data( rows, fields, mSQL );
  225.  
  226. if( rows )
  227. {
  228. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  229. new vehSqlID = -1, vehModel;
  230. for( new i = 0; i < rows; i ++ )
  231. {
  232. vehSqlID = cache_get_field_content_int( i, "veh_id" );
  233. vehModel = cache_get_field_content_int( i, "v_model" );
  234. if( vehSqlID != -1 )
  235. {
  236. format( globalstring, sizeof( globalstring ), "{FFFFFF}Vozilo %s - {C395EA}[ sqlBaseID - %d ]\n", GetVehicleNameEx( vehModel ), vehSqlID );
  237. strcat( DialogStrgEx, globalstring );
  238. }
  239. }
  240.  
  241. if( strlen( DialogStrgEx ) == 0 ) return SendErrorMessage( playerid, "Nema nijednog vozila za aukciju." );
  242.  
  243. strcat( DialogStrgEx, "\n\n{FFFFFF}Da spawnas neko vozilo sa aukcije {C395EA}/vsaaukcije [ sqlBaseID ] [ playerID ] [ money ]{FFFFFF}\nplayerID predstavlja ID igraca koji ce dobiti to vozilo u statsima\nMoney predstavlja novac koji mu oduzimas za vozilo.\nPrimer: 10 321 456000." );
  244.  
  245. ShowPlayerDialog( playerid, 0, DIALOG_STYLE_MSGBOX, "{C395EA}VOZILA ZA AUKCIJU", DialogStrgEx, "Ok", "" );
  246. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  247. }
  248. else return SendErrorMessage( playerid, "Nema nijednog vozila za aukciju." );
  249. return(true);
  250. }
  251.  
  252. protected OnClothesLoad( playerid )
  253. {
  254. new rows, fields;
  255. cache_get_data( rows, fields, mSQL );
  256.  
  257. if( !rows )
  258. {
  259. new query[ 2048 ];
  260. format( query, sizeof( query ),
  261. "INSERT INTO `user_clothes` (user_id, cloth_slot_1, cloth_slot_1_p1, cloth_slot_1_p2, cloth_slot_1_p3, cloth_slot_1_p4, cloth_slot_1_p5, cloth_slot_1_p6, cloth_slot_1_p7, cloth_slot_1_p8, cloth_slot_1_p9, \
  262. cloth_slot_2, cloth_slot_2_p1, cloth_slot_2_p2, cloth_slot_2_p3, cloth_slot_2_p4, cloth_slot_2_p5, cloth_slot_2_p6, cloth_slot_2_p7, cloth_slot_2_p8, cloth_slot_2_p9," );
  263.  
  264. format( query, sizeof( query ), "%s cloth_slot_3, cloth_slot_3_p1, cloth_slot_3_p2, cloth_slot_3_p3, cloth_slot_3_p4, cloth_slot_3_p5, cloth_slot_3_p6, cloth_slot_3_p7, cloth_slot_3_p8, cloth_slot_3_p9, \
  265. cloth_slot_4, cloth_slot_4_p1, cloth_slot_4_p2, cloth_slot_4_p3, cloth_slot_4_p4, cloth_slot_4_p5, cloth_slot_4_p6, cloth_slot_4_p7, cloth_slot_4_p8, cloth_slot_4_p9 )", query );
  266.  
  267. mysql_format( mSQL, query, sizeof( query ), "%s VALUES('%d', \
  268. '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', \
  269. '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', \
  270. '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', \
  271. '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%f')", query, PlayerInfo[ playerid ][ xID ],
  272. clothes_info[ playerid ][ x_slot_1_model ], clothes_info[ playerid ][ x_slot_1_pos ][ 0 ], clothes_info[ playerid ][ x_slot_1_pos ][ 1 ],
  273. clothes_info[ playerid ][ x_slot_1_pos ][ 2 ], clothes_info[ playerid ][ x_slot_1_pos ][ 3 ], clothes_info[ playerid ][ x_slot_1_pos ][ 4 ],
  274. clothes_info[ playerid ][ x_slot_1_pos ][ 5 ], clothes_info[ playerid ][ x_slot_1_pos ][ 6 ], clothes_info[ playerid ][ x_slot_1_pos ][ 7 ],
  275. clothes_info[ playerid ][ x_slot_1_pos ][ 8 ],
  276. clothes_info[ playerid ][ x_slot_2_model ], clothes_info[ playerid ][ x_slot_2_pos ][ 0 ], clothes_info[ playerid ][ x_slot_2_pos ][ 1 ],
  277. clothes_info[ playerid ][ x_slot_2_pos ][ 2 ], clothes_info[ playerid ][ x_slot_2_pos ][ 3 ], clothes_info[ playerid ][ x_slot_2_pos ][ 4 ],
  278. clothes_info[ playerid ][ x_slot_2_pos ][ 5 ], clothes_info[ playerid ][ x_slot_2_pos ][ 6 ], clothes_info[ playerid ][ x_slot_2_pos ][ 7 ],
  279. clothes_info[ playerid ][ x_slot_2_pos ][ 8 ],
  280. clothes_info[ playerid ][ x_slot_3_model ], clothes_info[ playerid ][ x_slot_3_pos ][ 0 ], clothes_info[ playerid ][ x_slot_3_pos ][ 1 ],
  281. clothes_info[ playerid ][ x_slot_3_pos ][ 2 ], clothes_info[ playerid ][ x_slot_3_pos ][ 3 ], clothes_info[ playerid ][ x_slot_3_pos ][ 4 ],
  282. clothes_info[ playerid ][ x_slot_3_pos ][ 5 ], clothes_info[ playerid ][ x_slot_3_pos ][ 6 ], clothes_info[ playerid ][ x_slot_3_pos ][ 7 ],
  283. clothes_info[ playerid ][ x_slot_3_pos ][ 8 ],
  284. clothes_info[ playerid ][ x_slot_4_model ], clothes_info[ playerid ][ x_slot_4_pos ][ 0 ], clothes_info[ playerid ][ x_slot_4_pos ][ 1 ],
  285. clothes_info[ playerid ][ x_slot_4_pos ][ 2 ], clothes_info[ playerid ][ x_slot_4_pos ][ 3 ], clothes_info[ playerid ][ x_slot_4_pos ][ 4 ],
  286. clothes_info[ playerid ][ x_slot_4_pos ][ 5 ], clothes_info[ playerid ][ x_slot_4_pos ][ 6 ], clothes_info[ playerid ][ x_slot_4_pos ][ 7 ],
  287. clothes_info[ playerid ][ x_slot_4_pos ][ 8 ] );
  288.  
  289. mysql_tquery( mSQL, query);
  290. }
  291. else
  292. {
  293. clothes_info[ playerid ][ x_slot_1_model ] = cache_get_field_content_int(0, "cloth_slot_1");
  294. clothes_info[ playerid ][ x_slot_1_pos ][ 0 ] = cache_get_field_content_float(0, "cloth_slot_1_p1");
  295. clothes_info[ playerid ][ x_slot_1_pos ][ 1 ] = cache_get_field_content_float(0, "cloth_slot_1_p2");
  296. clothes_info[ playerid ][ x_slot_1_pos ][ 2 ] = cache_get_field_content_float(0, "cloth_slot_1_p3");
  297. clothes_info[ playerid ][ x_slot_1_pos ][ 3 ] = cache_get_field_content_float(0, "cloth_slot_1_p4");
  298. clothes_info[ playerid ][ x_slot_1_pos ][ 4 ] = cache_get_field_content_float(0, "cloth_slot_1_p5");
  299. clothes_info[ playerid ][ x_slot_1_pos ][ 5 ] = cache_get_field_content_float(0, "cloth_slot_1_p6");
  300. clothes_info[ playerid ][ x_slot_1_pos ][ 6 ] = cache_get_field_content_float(0, "cloth_slot_1_p7");
  301. clothes_info[ playerid ][ x_slot_1_pos ][ 7 ] = cache_get_field_content_float(0, "cloth_slot_1_p8");
  302. clothes_info[ playerid ][ x_slot_1_pos ][ 8 ] = cache_get_field_content_float(0, "cloth_slot_1_p9");
  303.  
  304. clothes_info[ playerid ][ x_slot_2_model ] = cache_get_field_content_int(0, "cloth_slot_2");
  305. clothes_info[ playerid ][ x_slot_2_pos ][ 0 ] = cache_get_field_content_float(0, "cloth_slot_2_p1");
  306. clothes_info[ playerid ][ x_slot_2_pos ][ 1 ] = cache_get_field_content_float(0, "cloth_slot_2_p2");
  307. clothes_info[ playerid ][ x_slot_2_pos ][ 2 ] = cache_get_field_content_float(0, "cloth_slot_2_p3");
  308. clothes_info[ playerid ][ x_slot_2_pos ][ 3 ] = cache_get_field_content_float(0, "cloth_slot_2_p4");
  309. clothes_info[ playerid ][ x_slot_2_pos ][ 4 ] = cache_get_field_content_float(0, "cloth_slot_2_p5");
  310. clothes_info[ playerid ][ x_slot_2_pos ][ 5 ] = cache_get_field_content_float(0, "cloth_slot_2_p6");
  311. clothes_info[ playerid ][ x_slot_2_pos ][ 6 ] = cache_get_field_content_float(0, "cloth_slot_2_p7");
  312. clothes_info[ playerid ][ x_slot_2_pos ][ 7 ] = cache_get_field_content_float(0, "cloth_slot_2_p8");
  313. clothes_info[ playerid ][ x_slot_2_pos ][ 8 ] = cache_get_field_content_float(0, "cloth_slot_2_p9");
  314.  
  315. clothes_info[ playerid ][ x_slot_3_model ] = cache_get_field_content_int(0, "cloth_slot_3");
  316. clothes_info[ playerid ][ x_slot_3_pos ][ 0 ] = cache_get_field_content_float(0, "cloth_slot_3_p1");
  317. clothes_info[ playerid ][ x_slot_3_pos ][ 1 ] = cache_get_field_content_float(0, "cloth_slot_3_p2");
  318. clothes_info[ playerid ][ x_slot_3_pos ][ 2 ] = cache_get_field_content_float(0, "cloth_slot_3_p3");
  319. clothes_info[ playerid ][ x_slot_3_pos ][ 3 ] = cache_get_field_content_float(0, "cloth_slot_3_p4");
  320. clothes_info[ playerid ][ x_slot_3_pos ][ 4 ] = cache_get_field_content_float(0, "cloth_slot_3_p5");
  321. clothes_info[ playerid ][ x_slot_3_pos ][ 5 ] = cache_get_field_content_float(0, "cloth_slot_3_p6");
  322. clothes_info[ playerid ][ x_slot_3_pos ][ 6 ] = cache_get_field_content_float(0, "cloth_slot_3_p7");
  323. clothes_info[ playerid ][ x_slot_3_pos ][ 7 ] = cache_get_field_content_float(0, "cloth_slot_3_p8");
  324. clothes_info[ playerid ][ x_slot_3_pos ][ 8 ] = cache_get_field_content_float(0, "cloth_slot_3_p9");
  325.  
  326. clothes_info[ playerid ][ x_slot_4_model ] = cache_get_field_content_int(0, "cloth_slot_4");
  327. clothes_info[ playerid ][ x_slot_4_pos ][ 0 ] = cache_get_field_content_float(0, "cloth_slot_4_p1");
  328. clothes_info[ playerid ][ x_slot_4_pos ][ 1 ] = cache_get_field_content_float(0, "cloth_slot_4_p2");
  329. clothes_info[ playerid ][ x_slot_4_pos ][ 2 ] = cache_get_field_content_float(0, "cloth_slot_4_p3");
  330. clothes_info[ playerid ][ x_slot_4_pos ][ 3 ] = cache_get_field_content_float(0, "cloth_slot_4_p4");
  331. clothes_info[ playerid ][ x_slot_4_pos ][ 4 ] = cache_get_field_content_float(0, "cloth_slot_4_p5");
  332. clothes_info[ playerid ][ x_slot_4_pos ][ 5 ] = cache_get_field_content_float(0, "cloth_slot_4_p6");
  333. clothes_info[ playerid ][ x_slot_4_pos ][ 6 ] = cache_get_field_content_float(0, "cloth_slot_4_p7");
  334. clothes_info[ playerid ][ x_slot_4_pos ][ 7 ] = cache_get_field_content_float(0, "cloth_slot_4_p8");
  335. clothes_info[ playerid ][ x_slot_4_pos ][ 8 ] = cache_get_field_content_float(0, "cloth_slot_4_p9");
  336. }
  337. return(true);
  338. }
  339.  
  340. protected CheckPlayerUnBan( playerid, imeigraca[] )
  341. {
  342. new rows, fields;
  343. cache_get_data( rows, fields, mSQL );
  344.  
  345. if( !rows )
  346. {
  347. SendErrorMessage( playerid, "Taj igrac nije banovan!");
  348. }
  349. else
  350. {
  351. PlayerInfo[ playerid ][ xTUnban ]++;
  352. sql_user_update_integer( playerid, "xTUnban", PlayerInfo[ playerid ][ xTUnban ] );
  353. ServerInfo[ BanovanihKorisnika ]--;
  354.  
  355. format( globalstring, sizeof( globalstring ), "[ADMIN] %s je unbanovao igraca %s.", ImeIgraca( playerid ), imeigraca );
  356. AdminPoruka( ADM_WARN, globalstring );
  357. format( globalstring, sizeof( globalstring ), "Unbanovali ste igraca %s!", imeigraca);
  358. SendClientMessage( playerid, -1, globalstring );
  359.  
  360. sql_user_unban( cache_get_field_content_int( 0, "user_id" ) );
  361.  
  362. new string[ 128 ];
  363. format( string, sizeof( string ), "Admin %s je unbanovao igraca %s", ImeIgraca( playerid ), imeigraca );
  364. LogSave( "Logovi/LogUnban.log", string );
  365. }
  366. return(true);
  367. }
  368.  
  369. protected CheckPlayerRename( renameid, playerid, novoime[] )
  370. {
  371. new rows, fields;
  372. cache_get_data( rows, fields, mSQL );
  373.  
  374. if( rows )
  375. {
  376. SendErrorMessage( playerid, "Novo ime vec postoji u bazi podataka!" );
  377. }
  378. else
  379. {
  380. format( globalstring, sizeof( globalstring ), "#RENAME: Admin %s je promenio ime igracu %s u %s.", ImeIgraca( playerid ), ImeIgraca( renameid ), novoime );
  381. AdminPoruka( CRVENA, globalstring );
  382.  
  383. RenamePlayer( ImeIgraca( renameid ), novoime, renameid );
  384.  
  385. SendInfoMessage( renameid, "Admin %s vam je promenio ime u %s.", ImeIgraca( playerid ), ImeIgraca( renameid ) );
  386. }
  387. return(true);
  388. }
  389.  
  390. protected CheckPlayerOffRank( playerid, type, imeigraca[] )
  391. {
  392. new rows, fields;
  393. cache_get_data( rows, fields, mSQL );
  394.  
  395. if( !rows )
  396. {
  397. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  398. }
  399. else
  400. {
  401. new user_id = cache_get_field_content_int( 0, "user_id" );
  402.  
  403. if( type == 1 )
  404. {
  405. new q[ 144 ];
  406. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `admin_lvl` = '0', `skin_id` = '%d', `spawn` = '0' WHERE `user_id` = '%d' LIMIT 1", MALE_SKIN, user_id );
  407. mysql_tquery( mSQL, q );
  408.  
  409. SCMF( playerid, CRVENA, "#OFFRANK: {FFFFFF}Smenili ste offline Admina %s.", imeigraca );
  410.  
  411. format( q, sizeof( q ), "Admin %s je smenio %s sa pozicije Admina", ImeIgraca( playerid ), imeigraca );
  412. LogSave( "Logovi/LogSmjeniAdmin.log", q );
  413. }
  414. else if( type == 2 )
  415. {
  416. new q[ 144 ];
  417. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `helper_level` = '0', `skin_id` = '%d', `spawn` = '0' WHERE `user_id` = '%d' LIMIT 1", MALE_SKIN, user_id );
  418. mysql_tquery( mSQL, q );
  419.  
  420. SCMF( playerid, CRVENA, "#OFFRANK: {FFFFFF}Smenili ste offline Helpera %s.", imeigraca );
  421.  
  422. format( q, sizeof( q ), "Admin %s je smenio %s sa pozicije Helpera.", ImeIgraca( playerid ), imeigraca );
  423. LogSave( "Logovi/LogSmjeniHelper.log", q );
  424. }
  425. else if( type == 3 )
  426. {
  427. new q[ 144 ];
  428. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `xTestAdmin` = '0', `skin_id` = '%d', `spawn` = '0' WHERE `user_id` = '%d' LIMIT 1", MALE_SKIN, user_id );
  429. mysql_tquery( mSQL, q );
  430.  
  431. SCMF( playerid, CRVENA, "#OFFRANK: {FFFFFF}Smenili ste offline Test Admina %s.", imeigraca );
  432.  
  433. format( q, sizeof( q ), "Admin %s je smenio %s sa pozicije Test Admina.", ImeIgraca( playerid ), imeigraca );
  434. LogSave( "Logovi/LogSmjeniTAdmin.log", q );
  435. }
  436. }
  437. return(true);
  438. }
  439.  
  440. protected CheckPlayerOffJandP( playerid, type, imeigraca[], vreme, razlog[] )
  441. {
  442. new rows, fields;
  443. cache_get_data( rows, fields, mSQL );
  444.  
  445. if( !rows ) {
  446. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  447. }
  448. else {
  449.  
  450. new user_id = cache_get_field_content_int( 0, "user_id" );
  451.  
  452. new mail_e[ 128 ];
  453. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  454.  
  455. if( type == JAIL )
  456. {
  457. new q[ 256 ];
  458. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `jail_type` = '%d', `jail_time` = '%d', `offpjail` = '%e' WHERE `user_id` = '%d' LIMIT 1", JAIL, vreme, razlog, user_id );
  459. mysql_tquery( mSQL, q );
  460.  
  461. PlayerInfo[ playerid ][ xTJail ]++;
  462. sql_user_update_integer( playerid, "xTJail", PlayerInfo[ playerid ][ xTJail ] );
  463.  
  464. #if MAILER_ENABLED == 1
  465. new string[ 256 ];
  466. format( string, sizeof( string ), "Postovani %s, postavljeni ste u zatvor na nasem SA:MP serveru.\nRazlog: %s.\n \
  467. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  468. Sa postovanjem, V Administracija.", imeigraca, razlog );
  469. SendMail( mail_e, "[email protected]", "V Administracija", "V - OFFLINE JAIL", string );
  470. #endif
  471.  
  472. SCMF( playerid, 0xFF6347FF, "#OFFJAIL: Postavili ste offline igraca %s u zatvor na %d minuta. Razlog: %s", imeigraca, vreme, razlog );
  473.  
  474. new string1[ 128 ];
  475. format( string1, sizeof( string1 ), "Admin %s je offjailovao igraca %s | Razlog: %s", ImeIgraca( playerid ), imeigraca, razlog );
  476. LogSave( "Logovi/LogOffJail.log", string1 );
  477.  
  478. }
  479. else if( type == PRISON )
  480. {
  481. new q[ 256 ];
  482. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `jail_type` = '%d', `jail_time` = '%d', `offpprison` = '%e' WHERE `user_id` = '%d' LIMIT 1", PRISON, vreme, razlog, user_id );
  483. mysql_tquery( mSQL, q );
  484.  
  485. PlayerInfo[ playerid ][ xTJail ]++;
  486. sql_user_update_integer( playerid, "xTJail", PlayerInfo[ playerid ][ xTJail ] );
  487.  
  488. #if MAILER_ENABLED == 1
  489. new string[ 256 ];
  490. format( string, sizeof( string ), "Postovani %s, postavljeni ste u prison na nasem SA:MP serveru.\nRazlog: %s.\n \
  491. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  492. Sa postovanjem, V Administracija.", imeigraca, razlog );
  493. SendMail( mail_e, "[email protected]", "V Administracija", "V - OFFLINE JAIL", string );
  494. #endif
  495.  
  496. SCMF( playerid, 0xFF6347FF, "#OFFJAIL: Postavili ste offline igraca %s u prison na %d sati. Razlog: %s", imeigraca, (vreme/60), razlog );
  497.  
  498. new string1[ 128 ];
  499. format( string1, sizeof( string1 ), "Admin %s je offprisonao igraca %s | Razlog: %s", ImeIgraca( playerid ), imeigraca, razlog );
  500. LogSave( "Logovi/LogOffPrison.log", string1 );
  501. }
  502. else if( type == MUTE ) {
  503.  
  504. new q[ 256 ];
  505. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `mute` = '%d', `offpmute` = '%e' WHERE `user_id` = '%d' LIMIT 1", vreme, razlog, user_id );
  506. mysql_tquery( mSQL, q );
  507.  
  508. #if MAILER_ENABLED == 1
  509. new string[ 256 ];
  510. format( string, sizeof( string ), "Postovani %s, mutirani ste na nasem SA:MP serveru.\nRazlog: %s.\n \
  511. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  512. Sa postovanjem, V Administracija.", imeigraca, razlog );
  513. SendMail( mail_e, "[email protected]", "V Administracija", "V - OFFLINE JAIL", string );
  514. #endif
  515.  
  516. SCMF( playerid, 0xFF6347FF, "#OFFMUTE: Postavili ste offline igraca %s mute na %d minuta. Razlog: %s", imeigraca, (vreme/60), razlog );
  517.  
  518. new string1[ 128 ];
  519. format( string1, sizeof( string1 ), "Admin %s je offmute igraca %s | Razlog: %s", ImeIgraca( playerid ), imeigraca, razlog );
  520. LogSave( "Logovi/LogOffMute.log", string1 );
  521. }
  522. }
  523. return(true);
  524. }
  525.  
  526. protected CheckPlayerRemoveAcc( playerid, imeigraca[] )
  527. {
  528. new rows, fields;
  529. cache_get_data( rows, fields, mSQL );
  530.  
  531. if( !rows ) {
  532. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  533. }
  534. else {
  535.  
  536. new property_id_1 = cache_get_field_content_int( 0, "property_id_1" );
  537. new property_id_2 = cache_get_field_content_int( 0, "property_id_2" );
  538. new property_id_3 = cache_get_field_content_int( 0, "property_id_3" );
  539. new bussines_id = cache_get_field_content_int( 0, "bussines_id" );
  540. new garage_id = cache_get_field_content_int( 0, "garage_id" );
  541.  
  542. if( property_id_1 != -1 && strcmp( imeigraca, II[ property_id_1 ][ iOwner ], true) == 0)
  543. {
  544. II[ property_id_1 ][ iOwned ] = 0;
  545. II[ property_id_1 ][ iOnAuction ] = true;
  546. II[ property_id_1 ][ iNeaktivnost ] = 0;
  547. II[ property_id_1 ][ iOwnerSQLID ] = -1;
  548. strmid( II[ property_id_1 ][ iOwner], "Drzava", 0, strlen( "Drzava" ), 32);
  549. PropertyRefresh( property_id_1 );
  550. Property_checkGarage( property_id_1 );
  551. SaveProperty( property_id_1 );
  552. SendInfoMessage( playerid, "Imovina ID: %d je prodata na buy igracu %s, zbog brisanja naloga.", property_id_1, imeigraca );
  553. }
  554. if( property_id_2 != -1 && strcmp( imeigraca, II[ property_id_2 ][ iOwner ], true) == 0)
  555. {
  556. II[ property_id_2 ][ iOwned ] = 0;
  557. II[ property_id_2 ][ iOnAuction ] = true;
  558. II[ property_id_2 ][ iNeaktivnost ] = 0;
  559. II[ property_id_2 ][ iOwnerSQLID ] = -1;
  560. strmid( II[ property_id_2 ][ iOwner], "Drzava", 0, strlen( "Drzava" ), 32);
  561. PropertyRefresh( property_id_2 );
  562. Property_checkGarage( property_id_2 );
  563. SaveProperty( property_id_2 );
  564. SendInfoMessage( playerid, "Imovina ID: %d je prodata na buy igracu %s, zbog brisanja naloga.", property_id_2, imeigraca );
  565. }
  566. if( property_id_3 != -1 && strcmp( imeigraca, II[ property_id_3 ][ iOwner ], true) == 0)
  567. {
  568. II[ property_id_3 ][ iOwned ] = 0;
  569. II[ property_id_3 ][ iOnAuction ] = true;
  570. II[ property_id_3 ][ iNeaktivnost ] = 0;
  571. II[ property_id_3 ][ iOwnerSQLID ] = -1;
  572. strmid( II[ property_id_3 ][ iOwner], "Drzava", 0, strlen( "Drzava" ), 32);
  573. PropertyRefresh( property_id_3 );
  574. Property_checkGarage( property_id_3 );
  575. SaveProperty( property_id_3 );
  576. SendInfoMessage( playerid, "Imovina ID: %d je prodata na buy igracu %s, zbog brisanja naloga.", property_id_3, imeigraca );
  577. }
  578.  
  579. if( bussines_id != 0 )
  580. {
  581. for( new i = 1; i < MAX_BUSSINES; i++ )
  582. {
  583. if( bussines_id == BusinessInfo[ i ][ b_ID ] )
  584. {
  585. if( i != -1 && strcmp( imeigraca, BusinessInfo[ i ][ bOwner ], true) == 0)
  586. {
  587. BusinessInfo[ i ][ bOwner_sqlID ] = -1;
  588. BusinessInfo[ i ][ bOnAuction ] = true;
  589. BusinessInfo[ i ][ bNeaktivnost ] = 0;
  590. BusinessInfo[ i ][ bFacture ] = 100;
  591. strmid( BusinessInfo[ i ][ bOwner ], "Drzava", 0, strlen( "Drzava" ), 32);
  592. Bussines_Refresh( i );
  593.  
  594. new q[ 256 ];
  595. mysql_format( mSQL, q, sizeof(q), "UPDATE `bussines` SET `b_owner_sqlID` = '%d', `bOnAuction` = '1', `bOwner` = '%s', `b_neaktivnost` = '%d', `b_facture` = '%d' WHERE `bussines_id` = '%d'",
  596. BusinessInfo[ i ][ bOwner_sqlID ],
  597. BusinessInfo[ i ][ bOwner ],
  598. BusinessInfo[ i ][ bNeaktivnost ],
  599. BusinessInfo[ i ][ bFacture ],
  600. BusinessInfo[ i ][ b_ID ] );
  601.  
  602. mysql_tquery( mSQL, q );
  603. SendInfoMessage( playerid, "Firma ID: %d je prodata na buy igracu %s, zbog brisanja naloga.", i, imeigraca );
  604. break;
  605. }
  606. }
  607. }
  608. }
  609.  
  610. if( garage_id != 0 )
  611. {
  612. for( new i = 1; i < MAX_GARAGES; i++ )
  613. {
  614. if( garage_id == garageInfo[ i ][ garageSqlID ] )
  615. {
  616. if( i != -1 && strcmp( imeigraca, garageInfo[ i ][ garageOwner ], true ) == 0)
  617. {
  618. garageInfo[ i ][ garageOwner_SqlID ] = -1;
  619. strmid( garageInfo[ i ][ garageOwner ], "Drzava", 0, strlen( "Drzava" ), 32);
  620. Garage_Refresh( i );
  621.  
  622. new q[ 256 ];
  623. mysql_format( mSQL, q, sizeof(q), "UPDATE `garages` SET `owner_id` = '%d' WHERE `garage_id` = '%d'",
  624. garageInfo[ i ][ garageOwner_SqlID ],
  625. garageInfo[ i ][ garageSqlID ] );
  626.  
  627. mysql_tquery( mSQL, q );
  628. SendInfoMessage( playerid, "Garaza ID: %d je prodata na buy igracu %s, zbog brisanja naloga.", i, imeigraca );
  629. break;
  630. }
  631. }
  632. }
  633. }
  634.  
  635. new query[ 256 ];
  636. mysql_format( mSQL, query, sizeof(query), "SELECT users.user_id, users.email, users.vehicle_slots, IFNULL(vehicles.veh_id, 0) AS `veh_id`, IFNULL(vehicles.v_model, 0) AS `v_model` FROM users \
  637. LEFT JOIN vehicles ON users.user_id = vehicles.owner_sqlID \
  638. WHERE users.p_name = '%e'", imeigraca );
  639.  
  640. mysql_pquery( mSQL, query, "CheckPlayerRemoveVehAcc", "is", playerid, imeigraca );
  641.  
  642. }
  643. return(true);
  644. }
  645.  
  646. protected CheckPlayerRemoveVehAcc( playerid, imeigraca[] )
  647. {
  648. new rows, fields;
  649. cache_get_data( rows, fields, mSQL );
  650.  
  651. if( !rows )
  652. {
  653. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka.");
  654. }
  655. else
  656. {
  657. new user_id = cache_get_field_content_int( 0, "user_id" );
  658.  
  659. new mail_e[ 128 ];
  660. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  661.  
  662. new veh_id, veh_model;
  663. for( new i = 0; i < rows; i ++ ) {
  664.  
  665. veh_id = cache_get_field_content_int( i, "veh_id" );
  666. veh_model = cache_get_field_content_int( i, "v_model" );
  667.  
  668. if( veh_id > 0 && veh_model >= 400 ) {
  669.  
  670. new q[ 512 ];
  671. mysql_format( mSQL, q, sizeof(q), "UPDATE `vehicles` SET `owner_sqlID` = '0', `v_price` = '-1', `v_pos_x` = '-2112.0281', `v_pos_y` = '2729.6250', \
  672. `v_pos_z` = '166.0840', `v_pos_a` = '202.9713', `v_virtualw` = '0', `v_interior` = '0' WHERE `veh_id` = '%d' LIMIT 1", veh_id );
  673.  
  674. mysql_tquery( mSQL, q );
  675. SendInfoMessage( playerid, "Vozilo %s ID u bazi: %d je postavljeno na aukciju igracu %s, zbog brisanja naloga.", GetVehicleNameEx( veh_model ), veh_id, imeigraca );
  676. }
  677. }
  678.  
  679.  
  680. #if MAILER_ENABLED == 1
  681. new string[ 256 ];
  682. format( string, sizeof( string ), "Postovani %s, vas nalog je obrisan sa naseg SA:MP servera.\n \
  683. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  684. Sa postovanjem, V Administracija.", imeigraca );
  685. SendMail( mail_e, "[email protected]", "V Administracija", "V - BRISANJE NALOGA", string );
  686. #endif
  687.  
  688. new query[ 128 ];
  689. mysql_format( mSQL, query, sizeof( query ), "DELETE FROM `users` WHERE `user_id` = '%d' LIMIT 1", user_id );
  690. mysql_tquery( mSQL, query );
  691.  
  692. format( globalstring, sizeof( globalstring ), "[ADMIN] %s je obrisao account %s.", ImeIgraca( playerid ), imeigraca );
  693. AdminPoruka( ADM_WARN, globalstring );
  694.  
  695. format( globalstring, sizeof( globalstring ), "Igracu %s je obrisan nalog od admina %s", imeigraca, ImeIgraca( playerid ) );
  696. LogSave( "Logovi/LogDeleteAccCMD.log", globalstring );
  697. }
  698. return(true);
  699. }
  700.  
  701. protected CheckPlayerRemoveStats( playerid, vrsta, imeigraca[] )
  702. {
  703. new rows, fields;
  704. cache_get_data( rows, fields, mSQL );
  705.  
  706. if( !rows ) {
  707. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  708. }
  709. else {
  710.  
  711. new user_id = cache_get_field_content_int( 0, "user_id" );
  712.  
  713. new mail_e[ 128 ];
  714. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  715.  
  716. switch( vrsta )
  717. {
  718. case 1:
  719. {
  720. new q[ 128 ];
  721. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `property_id_1` = '-1' WHERE `user_id` = '%d' LIMIT 1", user_id );
  722. mysql_pquery( mSQL, q, "", "");
  723.  
  724. SCMF( playerid, 0xFF6347FF, "#REMOVESTATS: Maknuli ste offline korisniku %s imovinu 1 sa statsa.", imeigraca );
  725.  
  726. #if MAILER_ENABLED == 1
  727. new string[ 256 ];
  728. format( string, sizeof( string ), "Postovani %s, doslo je do promene u statistikama na vasem SA:MP accontu.\nSa vaseg naloga je skinuto vlasnistvo nad imovinom 1.\n \
  729. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  730. Sa postovanjem, V Administracija.", imeigraca );
  731. SendMail( mail_e, "[email protected]", "V Administracija", "V - SKIDANJE VLASNISTVA", string );
  732. #endif
  733.  
  734. new string1[ 128 ];
  735. format( string1, sizeof( string1 ), "Admin %s je maknuo sa statsa imovinu 1 igracu %s", ImeIgraca( playerid ), imeigraca );
  736. LogSave( "Logovi/LogMakniSaStatsa.log", string1 );
  737. }
  738. case 2:
  739. {
  740. new q[ 128 ];
  741. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `property_id_2` = '-1' WHERE `user_id` = '%d' LIMIT 1", user_id );
  742. mysql_pquery( mSQL, q, "", "");
  743.  
  744. SCMF( playerid, 0xFF6347FF, "#REMOVESTATS: Maknuli ste offline korisniku %s imovinu 2 sa statsa.", imeigraca );
  745.  
  746. #if MAILER_ENABLED == 1
  747. new string[ 256 ];
  748. format( string, sizeof( string ), "Postovani %s, doslo je do promene u statistikama na vasem SA:MP accontu.\nSa vaseg naloga je skinuto vlasnistvo nad imovinom 2.\n \
  749. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  750. Sa postovanjem, V Administracija.", imeigraca );
  751. SendMail( mail_e, "[email protected]", "V Administracija", "V - SKIDANJE VLASNISTVA", string );
  752. #endif
  753.  
  754. new string1[ 128 ];
  755. format( string1, sizeof( string1 ), "Admin %s je maknuo sa statsa imovinu 2 igracu %s", ImeIgraca( playerid ), imeigraca );
  756. LogSave( "Logovi/LogMakniSaStatsa.log", string1 );
  757. }
  758. case 3:
  759. {
  760. new q[ 128 ];
  761. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `property_id_3` = '-1' WHERE `user_id` = '%d' LIMIT 1", user_id );
  762. mysql_pquery( mSQL, q, "", "");
  763.  
  764. SCMF( playerid, 0xFF6347FF, "#REMOVESTATS: Maknuli ste offline korisniku %s imovinu 3 sa statsa.", imeigraca );
  765.  
  766. #if MAILER_ENABLED == 1
  767. new string[ 256 ];
  768. format( string, sizeof( string ), "Postovani %s, doslo je do promene u statistikama na vasem SA:MP accontu.\nSa vaseg naloga je skinuto vlasnistvo nad imovinom 3.\n \
  769. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  770. Sa postovanjem, V Administracija.", imeigraca );
  771. SendMail( mail_e, "[email protected]", "V Administracija", "V - SKIDANJE VLASNISTVA", string );
  772. #endif
  773.  
  774. new string1[ 128 ];
  775. format( string1, sizeof( string1 ), "Admin %s je maknuo sa statsa imovinu 3 igracu %s", ImeIgraca( playerid ), imeigraca );
  776. LogSave( "Logovi/LogMakniSaStatsa.log", string1 );
  777. }
  778. case 4:
  779. {
  780. new q[ 128 ];
  781. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `bussines_id` = '0' WHERE `user_id` = '%d' LIMIT 1", user_id );
  782. mysql_pquery( mSQL, q, "", "");
  783.  
  784. SCMF( playerid, 0xFF6347FF, "#REMOVESTATS: Maknuli ste offline korisniku %s firmu sa statsa.", imeigraca );
  785.  
  786. #if MAILER_ENABLED == 1
  787. new string[ 256 ];
  788. format( string, sizeof( string ), "Postovani %s, doslo je do promene u statistikama na vasem SA:MP accontu.\nSa vaseg naloga je skinuto vlasnistvo nad firmom.\n \
  789. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  790. Sa postovanjem, V Administracija.", imeigraca );
  791. SendMail( mail_e, "[email protected]", "V Administracija", "V - SKIDANJE VLASNISTVA", string );
  792. #endif
  793.  
  794. new string1[ 128 ];
  795. format( string1, sizeof( string1 ), "Admin %s je maknuo sa statsa firmu igracu %s", ImeIgraca( playerid ), imeigraca );
  796. LogSave( "Logovi/LogMakniSaStatsa.log", string1 );
  797. }
  798. case 5:
  799. {
  800. SendErrorMessage(playerid, "Ne koristi se ova vrsta.");
  801. }
  802. case 6:
  803. {
  804. new q[ 128 ];
  805. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `field_id` = '-1' WHERE `user_id` = '%d' LIMIT 1", user_id );
  806. mysql_pquery( mSQL, q, "", "");
  807.  
  808. SCMF( playerid, 0xFF6347FF, "#REMOVESTATS: Maknuli ste offline korisniku %s imanje sa statsa.", imeigraca );
  809.  
  810. #if MAILER_ENABLED == 1
  811. new string[ 256 ];
  812. format( string, sizeof( string ), "Postovani %s, doslo je do promene u statistikama na vasem SA:MP accontu.\nSa vaseg naloga je skinuto vlasnistvo nad imanjem.\n \
  813. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  814. Sa postovanjem, V Administracija.", imeigraca );
  815. SendMail( mail_e, "[email protected]", "V Administracija", "V - SKIDANJE VLASNISTVA", string );
  816. #endif
  817.  
  818. new string1[ 128 ];
  819. format( string1, sizeof( string1 ), "Admin %s je maknuo sa statsa imanje igracu %s", ImeIgraca( playerid ), imeigraca );
  820. LogSave( "Logovi/LogMakniSaStatsa.log", string1 );
  821. }
  822. }
  823. }
  824. return(true);
  825. }
  826.  
  827. protected CheckPlayerChangePW( playerid, imeigraca[] )
  828. {
  829. new rows, fields;
  830. cache_get_data( rows, fields, mSQL );
  831.  
  832. if( !rows ) {
  833. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  834. }
  835. else {
  836.  
  837. new user_id = cache_get_field_content_int( 0, "user_id" );
  838.  
  839. new mail_e[ 128 ];
  840. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  841.  
  842. new novalozinka[ 32 ];
  843.  
  844. new randombroj = 100000 + random(899999);
  845. format( novalozinka, sizeof( novalozinka ), "%d", randombroj );
  846.  
  847. format( globalstring, sizeof( globalstring ), "(ANTICHEAT): Igracu %s je promenjen password! Ostale informacije slede... Admin: %s", imeigraca, ImeIgraca( playerid ) );
  848. AdminPoruka( ANTICHEAT, globalstring );
  849. SCMF( playerid, ZUTA, "(ANTICHEAT): Igracu %s je dodjeljen novi pass: %s.", imeigraca, novalozinka );
  850. SCMF( playerid, ZUTA, "(ANTICHEAT): Igracu %s je server lozinku poslao na email.", imeigraca );
  851.  
  852. #if MAILER_ENABLED == 1
  853. new string[ 256 ];
  854. format( string, sizeof( string ), "Postovani %s, promenjena je lozinka na vasem SA:MP accontu.\nNova lozinka glasi: %s.\n \
  855. Ukoliko vi niste trazili promenu lozinke, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  856. Sa postovanjem, V Administracija.", imeigraca, novalozinka );
  857. SendMail( mail_e, "[email protected]", "V Administracija", "V - PROMENA LOZINKE", string );
  858. #endif
  859.  
  860. new hash_pass[ 65 ];
  861. SHA256_PassHash( novalozinka, ImeIgraca( playerid ), hash_pass, sizeof hash_pass );
  862.  
  863. new q[ 200 ];
  864. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `password` = '%e' WHERE `user_id` = '%d'", hash_pass, user_id );
  865. mysql_tquery( mSQL, q );
  866. }
  867. return(true);
  868. }
  869.  
  870. protected SellOffVehicle( playerid, imeigraca[] )
  871. {
  872. new rows, fields;
  873. cache_get_data( rows, fields, mSQL );
  874.  
  875. if( !rows )
  876. {
  877. SendErrorMessage( playerid, "Izabrani igrac nema to vozilo u vlasnistvu.!");
  878. }
  879. else
  880. {
  881. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  882.  
  883. new veh_id = cache_get_field_content_int( 0, "veh_id" );
  884. new veh_model = cache_get_field_content_int( 0, "v_model" );
  885.  
  886. new str[ 256 ];
  887. format( str, sizeof( str ), "{FFFFFF}Izabrano vozilo %s(SQLBaseID:%d) je u vlasnistvu %s.\n", GetVehicleNameEx( veh_model ), veh_model, imeigraca );
  888. strcat( DialogStrgEx, str );
  889. strcat( DialogStrgEx, "Da li ste sigurni da zelite da prodate to vozilo i da mu izbrisete iz statsa?" );
  890.  
  891. VehicleOffSaleVehID[ playerid ] = veh_id;
  892.  
  893. ShowPlayerDialog( playerid, dialog_OFFSELLVEH, DIALOG_STYLE_MSGBOX, D_NASLOV, DialogStrgEx, "Da", "Ne" );
  894. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  895.  
  896. }
  897. return(true);
  898. }
  899.  
  900. protected CheckMaskID( playerid, mask_id )
  901. {
  902. new rows, fields;
  903. cache_get_data( rows, fields, mSQL );
  904.  
  905. if( !rows )
  906. {
  907. SendErrorMessage( playerid, "Igrac sa takvim IDom maske ne postoji!");
  908. }
  909. else
  910. {
  911. new p_name[ MAX_PLAYER_NAME ];
  912. cache_get_field_content( 0, "p_name", p_name, mSQL, 24 );
  913.  
  914. SendInfoMessage( playerid, "ID maske: %d, Ime Igraca: %s", mask_id, p_name );
  915. }
  916. return(true);
  917. }
  918.  
  919. protected CheckPlayerOffVeh( playerid, imeigraca[] )
  920. {
  921. new rows, fields;
  922. cache_get_data( rows, fields, mSQL );
  923.  
  924. if( !rows ) {
  925. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  926. }
  927. else {
  928.  
  929. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  930.  
  931. new vehicle_slots = cache_get_field_content_int( 0, "vehicle_slots");
  932.  
  933. new veh_model, veh_id;
  934.  
  935. new str[ 256 ];
  936. format( str, sizeof( str ), "{FFFFFF}Broj slotova: {C395EA}[%d/%d]\n\n\nSpisak vozila:", vehicle_slots, MAX_VEH_SLOT );
  937. strcat( DialogStrgEx, str );
  938.  
  939. for( new i = 0; i < rows; i ++ ) {
  940.  
  941. veh_id = cache_get_field_content_int( i, "veh_id" );
  942. veh_model = cache_get_field_content_int( i, "v_model" );
  943.  
  944. if( veh_id > 0 && veh_model >= 400 ) {
  945. format( str, sizeof( str ), "{FFFFFF}* Vozilo: {C395EA}[%d]\n {FFFFFF}- {C395EA}Ime vozila: {FFFFFF}[%s]\n - {C395EA}ID u bazi: {FFFFFF}[%d]\n",
  946. i+1,
  947. GetVehicleNameEx( veh_model ),
  948. veh_id );
  949.  
  950. strcat( DialogStrgEx, str );
  951. }
  952. }
  953.  
  954. format( globalstring, sizeof( globalstring ), "OFF VOZILA - %s", imeigraca );
  955. ShowPlayerDialog( playerid, 0, DIALOG_STYLE_MSGBOX, globalstring, DialogStrgEx, "Ok", "" );
  956. strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
  957. }
  958. return(true);
  959. }
  960.  
  961. protected CheckPlayerOffRich_Z( playerid, imeigraca[] ) {
  962.  
  963. new query[ 1024 ];
  964. mysql_format( mSQL, query, sizeof(query), "SELECT users.money, users.xBRacun, users.property_id_1, users.property_id_2, users.property_id_3, users.bussines_id \
  965. IFNULL(org_members.org_id, 0) AS `org_id`, IFNULL(banned.ban_id, 0) AS `ban_id`, banned.ban_reason FROM users \
  966. LEFT JOIN org_members ON users.user_id = org_members.memb_sqlID \
  967. LEFT JOIN banned ON users.user_id = banned.user_id \
  968. WHERE users.p_name = '%e' LIMIT 1", imeigraca );
  969.  
  970. mysql_pquery( mSQL, query, "CheckPlayerOffRich", "is", playerid, imeigraca );
  971.  
  972. return(true);
  973. }
  974.  
  975. protected CheckPlayerOffRich( playerid, imeigraca[] )
  976. {
  977. new rows, fields;
  978. cache_get_data( rows, fields, mSQL );
  979.  
  980. if( !rows )
  981. {
  982. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  983. }
  984. else
  985. {
  986. new novac = cache_get_field_content_int(0, "money");
  987.  
  988. new fsqlID = cache_get_field_content_int(0, "bussines_id");
  989.  
  990. new firma = -1;
  991. if( PlayerInfo[ playerid ][ xBussinesSqlID ] != 0 ) {
  992. for( new i = 1; i < MAX_BUSSINES; i++ ) {
  993. if( BusinessInfo[ i ][ b_ID ] == fsqlID && BusinessInfo[ i ][ b_ID ] > 0 ) {
  994. firma = i;
  995. break;
  996. }
  997. }
  998. }
  999.  
  1000. new property_1 = cache_get_field_content_int(0, "property_id_1");
  1001. new property_2 = cache_get_field_content_int(0, "property_id_2");
  1002. new property_3 = cache_get_field_content_int(0, "property_id_3");
  1003.  
  1004. new bank_money = cache_get_field_content_int(0, "xBRacun");
  1005.  
  1006. new osqlID = cache_get_field_content_int(0, "org_id");
  1007.  
  1008. new OrgID = -1;
  1009. for( new id = 1; id < MAX_ORG; id++)
  1010. {
  1011. if( org_info[ id ][ oID ] == osqlID && org_info[ id ][ oID ] > 0 )
  1012. {
  1013. OrgID = id;
  1014. break;
  1015. }
  1016. }
  1017.  
  1018. new ban_id = cache_get_field_content_int(0, "ban_id");
  1019. new ban_reason[ 64 ] ,ban_string[ 5 ];
  1020.  
  1021. if( ban_id > 0 )
  1022. {
  1023. ban_string = "Da";
  1024. cache_get_field_content( 0, "ban_reason", ban_reason, mSQL, 64 );
  1025. }
  1026. else
  1027. {
  1028. ban_string = "Ne";
  1029. ban_reason = "Prazno";
  1030. }
  1031.  
  1032. SCMF(playerid, 0xC395EAFF, "*** NOVAC IGRACA - %s ***", imeigraca);
  1033. SCMF(playerid, 0xFFFFFFAA, "Novac: [%d$] | Banka: [%d$]", novac, bank_money);
  1034. if( OrgID != -1 ) SCMF(playerid, 0xFFFFFFAA, "Novac u organizaciji [%d$] [%s]", org_info[ OrgID ][ oSafeMoney ], getOrgName( OrgID ));
  1035. if( property_1 != -1 ) SCMF(playerid, 0xF0F0F0FF, "Novac u imovini 1 [%d$] ID:%d", II[ property_1 ][ iMoney ], property_1);
  1036. if( property_2 != -1 ) SCMF(playerid, 0xF0F0F0FF, "Novac u imovini 1 [%d$] ID:%d", II[ property_2 ][ iMoney ], property_2);
  1037. if( property_3 != -1 ) SCMF(playerid, 0xF0F0F0FF, "Novac u imovini 1 [%d$] ID:%d", II[ property_3 ][ iMoney ], property_3);
  1038. if( firma != -1 ) SCMF(playerid, 0xF0F0F0FF, "Novac u firmi [%d$] ID:%d", BusinessInfo[ firma ][ bMoney ], firma);
  1039. SCMF( playerid, 0xF0F0F0FF, "Banovan: %s | Razlog: %s", ban_string, ban_reason );
  1040. }
  1041. return(true);
  1042. }
  1043.  
  1044. protected CheckPlayerOffStats( playerid, imeigraca[] )
  1045. {
  1046. new rows, fields;
  1047. cache_get_data( rows, fields, mSQL );
  1048.  
  1049. if( !rows )
  1050. {
  1051. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  1052. }
  1053. else
  1054. {
  1055. new pol = cache_get_field_content_int(0, "sex");
  1056. new godine = cache_get_field_content_int(0, "age");
  1057. new novac = cache_get_field_content_int(0, "money");
  1058. new level = cache_get_field_content_int(0, "level");
  1059. new exp = cache_get_field_content_int(0, "exp");
  1060.  
  1061. new fsqlID = cache_get_field_content_int(0, "bussines_id");
  1062.  
  1063. new firma = -1;
  1064. if( PlayerInfo[ playerid ][ xBussinesSqlID ] != 0 )
  1065. {
  1066. for( new i = 1; i < MAX_BUSSINES; i++ )
  1067. {
  1068. if( BusinessInfo[ i ][ b_ID ] == fsqlID )
  1069. {
  1070. firma = i;
  1071. break;
  1072. }
  1073. }
  1074. }
  1075.  
  1076. new posao = cache_get_field_content_int(0, "job_id");
  1077. new ugovor = cache_get_field_content_int(0, "contract");
  1078.  
  1079. new property_1 = cache_get_field_content_int(0, "property_id_1");
  1080. new property_2 = cache_get_field_content_int(0, "property_id_2");
  1081. new property_3 = cache_get_field_content_int(0, "property_id_3");
  1082.  
  1083. new bank_money = cache_get_field_content_int(0, "xBRacun");
  1084. new onlinesati = cache_get_field_content_int(0, "xOnlineSati");
  1085. new admin_level = cache_get_field_content_int(0, "admin_lvl");
  1086. new helper_level = cache_get_field_content_int(0, "helper_level");
  1087. new warns = cache_get_field_content_int(0, "warn");
  1088.  
  1089. new mail_e[ 128 ];
  1090. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  1091.  
  1092. new staff_min = cache_get_field_content_int(0, "staff_min");
  1093.  
  1094. new lastlogin[ 64 ];
  1095. cache_get_field_content( 0, "last_login", lastlogin, mSQL, 64 );
  1096.  
  1097. new regdate[ 64 ];
  1098. cache_get_field_content( 0, "reg_date", regdate, mSQL, 64 );
  1099.  
  1100. new rank = cache_get_field_content_int(0, "memb_rank");
  1101.  
  1102. new osqlID = 0, OrgID = 0;
  1103.  
  1104. osqlID = cache_get_field_content_int( 0, "org_id" );
  1105.  
  1106. if( osqlID != 0 )
  1107. {
  1108. for( new id = 1; id < MAX_ORG; id++)
  1109. {
  1110. if( org_info[ id ][ oID ] == osqlID )
  1111. {
  1112. OrgID = id;
  1113. break;
  1114. }
  1115. }
  1116. }
  1117.  
  1118. new ban_id = cache_get_field_content_int(0, "ban_id");
  1119. new ban_reason[ 64 ] ,ban_string[ 5 ];
  1120.  
  1121. if( ban_id > 0 )
  1122. {
  1123. ban_string = "Da";
  1124. cache_get_field_content( 0, "ban_reason", ban_reason, mSQL, 64 );
  1125. }
  1126. else
  1127. {
  1128. ban_string = "Ne";
  1129. ban_reason = "Prazno";
  1130. }
  1131.  
  1132. new pol_name[ 7 ];
  1133. if( pol == 1 ) pol_name = "musko";
  1134. else if( pol== 2 ) pol_name = "zensko";
  1135.  
  1136. new nxtlevel = level+1,
  1137. expamount = nxtlevel*levelexp;
  1138.  
  1139. SCMF(playerid, 0xC395EAFF, "*** %s ***", imeigraca);
  1140. SCMF(playerid, 0xFFFFFFAA, "Pol [%s] | Level:[%d] | Sati Igranja:[%d]", pol_name, level, onlinesati);
  1141. SCMF(playerid, 0xFFFFFFAA, "Respekt:[%d/%d] | Novac: [%d$] | Banka: [%d$]", exp, expamount, novac, bank_money);
  1142. SCMF(playerid, 0xFFFFFFAA, "Upozorenja: [%d/3] | Posao: [%s] | Posao ugovor: [%d/1]", warns, getJobName( posao ), ugovor);
  1143. SCMF(playerid, 0xFFFFFFAA, "Godine: [%d] | Organizacija: [%s] | Rank: [%d]", godine, getOrgName( OrgID ), rank);
  1144. SCMF(playerid, 0xF0F0F0FF, "Kljuc Imovine1 [%d] | Kljuc Imovine2 [%d] | Kljuc Imovine3 [%d]", property_1, property_2, property_3);
  1145. SCMF(playerid, 0xF0F0F0FF, "Kljuc Firme [%d]", firma);
  1146. SCMF(playerid, 0xF0F0F0FF, "Admin [%d] | HELPER [%d]", admin_level, helper_level );
  1147. SCMF(playerid, 0xF0F0F0FF, "Aktivnost igraca u staff timu: %d minuta", staff_min );
  1148. SCMF(playerid, 0xF0F0F0FF, "Banovan: %s | Razlog: %s", ban_string, ban_reason );
  1149. SCMF(playerid, 0xF0F0F0FF, "Zadnja aktivnost: %s | Datum registracije: %s", lastlogin, regdate );
  1150. SendClientMessage(playerid, 0xF0F0F0FF, "Da proverite vozila offline igraca: /(opv)offplayerveh." );
  1151. }
  1152. return(true);
  1153. }
  1154.  
  1155. protected CheckPlayerOffOrgKick( type, OrgID, playerid, imeigraca[] )
  1156. {
  1157. new rows, fields;
  1158. cache_get_data( rows, fields, mSQL );
  1159.  
  1160. if( !rows )
  1161. {
  1162. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  1163. }
  1164. else
  1165. {
  1166. new user_id = cache_get_field_content_int( 0, "user_id" );
  1167.  
  1168. new mail_e[ 128 ];
  1169. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  1170.  
  1171. new done = 0;
  1172. for( new i = 0; i < org_info[ OrgID ][ oMaxClanova ]+1; i++ )
  1173. {
  1174. if( strcmp( imeigraca, org_members_info[ OrgID ][ i ][ o_m_Name ], true ) == 0 )
  1175. {
  1176. strmid( org_members_info[ OrgID ][ i ][ o_m_Name ], "Niko", 0, strlen( "Niko" ), MAX_PLAYER_NAME );
  1177. org_members_info[ OrgID ][ i ][ o_m_sqlID ] = 0;
  1178. org_members_info[ OrgID ][ i ][ o_m_type ] = 0;
  1179. done = 1;
  1180. break;
  1181. }
  1182. }
  1183. if( done == 0 ) return SendErrorMessage( playerid, "Taj clan nije u tvojoj orgi." );
  1184.  
  1185. if( type == 0 ) org_info[ OrgID ][ oUbacenihClanova ]--;
  1186. sql_org_member_delete( org_info[ OrgID ][ oID ], user_id );
  1187.  
  1188. new q[ 256 ];
  1189. mysql_format( mSQL, q, sizeof(q), "UPDATE `users` SET `skin_id` = '%d', `spawn` = '0', `org_contract` = '0', `org_punishment` = '0' WHERE `user_id` = '%d'", MALE_SKIN, user_id );
  1190. mysql_tquery( mSQL, q );
  1191.  
  1192. if( type == 0 )
  1193. {
  1194. SendInfoMessage( playerid, "Izbacili ste igraca %s iz organizacije %s", imeigraca, org_info[ OrgID ][ oName ] );
  1195.  
  1196. #if MAILER_ENABLED == 1
  1197. new string[ 256 ];
  1198. format( string, sizeof( string ), "Postovani %s, izbaceni ste iz organizacije na nasem SA:MP serveru.\nOrganizacija: %s.\n \
  1199. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  1200. Sa postovanjem, V Administracija.", imeigraca, org_info[ OrgID ][ oName ] );
  1201. SendMail( mail_e, "[email protected]", "V Administracija", "V - BAN", string );
  1202. #endif
  1203. }
  1204. else if( type == 1 ) {
  1205. SendInfoMessage( playerid, "Izbacili ste lidera %s iz organizacije %s", imeigraca, org_info[ OrgID ][ oName ] );
  1206.  
  1207. #if MAILER_ENABLED == 1
  1208. new string[ 256 ];
  1209. format( string, sizeof( string ), "Postovani %s, skinuto vam je vodjstvo organizacije na nasem SA:MP serveru.\nOrganizacija: %s.\n \
  1210. Ukoliko mislite da je greska, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  1211. Sa postovanjem, V Administracija.", imeigraca, org_info[ OrgID ][ oName ] );
  1212. SendMail( mail_e, "[email protected]", "V Administracija", "V - BAN", string );
  1213. #endif
  1214. }
  1215. }
  1216. return(true);
  1217. }
  1218.  
  1219. protected CheckPlayerOffBan( reason[], playerid, imeigraca[] )
  1220. {
  1221. new rows, fields;
  1222. cache_get_data( rows, fields, mSQL );
  1223.  
  1224. if( !rows ) {
  1225. SendErrorMessage( playerid, "Taj igrac ne postoji u bazi podataka!");
  1226. }
  1227. else {
  1228. new user_id = cache_get_field_content_int( 0, "user_id" );
  1229.  
  1230. new mail_e[ 128 ];
  1231. cache_get_field_content( 0, "email", mail_e, mSQL, 128 );
  1232.  
  1233. PlayerInfo[ playerid ][ xTBan ]++;
  1234. sql_user_update_integer( playerid, "xTBan", PlayerInfo[ playerid ][ xTBan ] );
  1235. ServerInfo[ BanovanihKorisnika ]++;
  1236.  
  1237. #if MAILER_ENABLED == 1
  1238. new string[ 256 ];
  1239. format( string, sizeof( string ), "Postovani %s, banovani ste sa naseg SA:MP servera.\nRazlog: %s.\n \
  1240. Ukoliko vi niste trazili promenu lozinke, podnesite zalbu na forumu: www.v-rp.info/forum.\n\n\n \
  1241. Sa postovanjem, V Administracija.", imeigraca, reason );
  1242. SendMail( mail_e, "[email protected]", "V Administracija", "V - BAN", string );
  1243. #endif
  1244.  
  1245. format( globalstring, sizeof( globalstring ), "[ADMIN] %s je offbanovao igraca %s, razlog: %s.", ImeIgraca( playerid ), imeigraca, reason );
  1246. AdminPoruka( ADM_WARN, globalstring );
  1247.  
  1248. sql_ban_user( imeigraca, user_id, 1, reason, ImeIgraca( playerid ) );
  1249.  
  1250. new string1[ 128 ];
  1251. format( string1, sizeof( string1 ), "Admin %s je offbanovao igraca %s | Razlog: %s", ImeIgraca( playerid ), imeigraca, reason );
  1252. LogSave( "Logovi/LogOffBan.log", string1 );
  1253. }
  1254. return(true);
  1255. }
  1256.  
  1257. protected CheckPlayerBan( playerid )
  1258. {
  1259. new rows, fields;
  1260. cache_get_data( rows, fields, mSQL );
  1261.  
  1262. if( !rows )
  1263. {
  1264. defer Login(playerid);
  1265. }
  1266. else
  1267. {
  1268. new user_id, ban_type;
  1269. user_id = cache_get_field_content_int( 0, "user_id" );
  1270. ban_type = cache_get_field_content_int( 0, "ban_type" );
  1271.  
  1272. if( ban_type == 1 )
  1273. {
  1274. new ban_reason[ 64 ], ban_date[ 64 ], ban_admin[ MAX_PLAYER_NAME ];
  1275. cache_get_field_content( 0, "ban_reason", ban_reason, mSQL, 150 );
  1276. cache_get_field_content( 0, "ban_date", ban_date, mSQL, 150 );
  1277. cache_get_field_content( 0, "ban_admin", ban_admin, mSQL, 150 );
  1278.  
  1279. if( user_id == PlayerInfo[ playerid ][ xID ] )
  1280. {
  1281. SCMF( playerid, -1, "%s, banovani ste sa ovog servera.", ImeIgraca( playerid ) );
  1282. SendClientMessage( playerid, -1, "Vas ban {C395EA}nece isteci." );
  1283. SCMF( playerid, -1, "Vreme i datum bana: {C395EA}%s.", ban_date );
  1284. SCMF( playerid, -1, "Razlog bana: {C395EA}%s.", ban_reason );
  1285. SCMF( playerid, -1, "Admin koji vas je banovao: {C395EA}%s.", ban_admin );
  1286. SendClientMessage( playerid, -1, "Ukoliko mislis da je ovo greska.");
  1287. SendClientMessage( playerid, -1, "Zahtev za unban mozes traziti na {C395EA}forumu.");
  1288. SendClientMessage( playerid, -1, "Forum: {C395EA}www.v-rp.info");
  1289.  
  1290. defer KickIgraca(playerid);
  1291. return(true);
  1292. }
  1293. else Login(playerid);
  1294. }
  1295. else if( ban_type == 2 )
  1296. {
  1297. new ban_reason[ 64 ], ban_date[ 64 ], ban_admin[ MAX_PLAYER_NAME ];
  1298. cache_get_field_content( 0, "ban_reason", ban_reason, mSQL, 150 );
  1299. cache_get_field_content( 0, "ban_date", ban_date, mSQL, 150 );
  1300. cache_get_field_content( 0, "ban_admin", ban_admin, mSQL, 150 );
  1301. new ban_time = cache_get_field_content_int( 0, "ban_time" );
  1302.  
  1303. if( ban_time > 0 )
  1304. {
  1305. new datetime[ 6 ];
  1306. TimestampToDate( ban_time, datetime[ 0 ], datetime[ 1 ], datetime[ 2 ], datetime[ 3 ], datetime[ 4 ], datetime[ 5 ], 1 );
  1307.  
  1308. if( gettime( ) < ban_time )
  1309. {
  1310. SCMF( playerid, 0xC395EAFF, "%s, {FFFFFF}banovan si sa ovog servera.", ImeIgraca( playerid ) );
  1311. SCMF( playerid, -1, "Vas ban istice: {C395EA}%02d/%02d/%d - %d/%d/%d{FFFFFF}.", datetime[ 2 ], datetime[ 1 ], datetime[ 0 ], datetime[ 3 ], datetime[ 4 ], datetime[ 5 ] );
  1312. SCMF( playerid, -1, "Vreme i datum bana: {C395EA}%s.", ban_date );
  1313. SCMF( playerid, -1, "Razlog bana: {C395EA}%s.", ban_reason );
  1314. SCMF( playerid, -1, "Admin koji vas je banovao: {C395EA}%s.", ban_admin );
  1315. SendClientMessage( playerid, -1, "Ukoliko mislis da je ovo greska.");
  1316. SendClientMessage( playerid, -1, "Zahtev za unban mozes traziti na {C395EA}forumu.");
  1317. SendClientMessage( playerid, -1, "Forum: {C395EA}www.v-rp.info");
  1318.  
  1319. defer KickIgraca(playerid);
  1320. return(true);
  1321. }
  1322. else
  1323. {
  1324. sql_user_unban( PlayerInfo[ playerid ][ xID ] );
  1325. Login(playerid);
  1326. }
  1327. }
  1328. else
  1329. {
  1330. sql_user_unban( PlayerInfo[ playerid ][ xID ] );
  1331. Login(playerid);
  1332. }
  1333. }
  1334. }
  1335. return(true);
  1336. }
  1337.  
  1338. public OnPlayerDisconnect( playerid, reason )
  1339. {
  1340. if( IsValidDynamicMapIcon( PlayerGpsRadar[ playerid ][ _pgrIconId ] ) ) DestroyDynamicMapIcon( PlayerGpsRadar[ playerid ][ _pgrIconId ] );
  1341. if( IsValidDynamicObject( PlayerGpsRadar[ playerid ][ _pgrObject ] ) ) DestroyDynamicObject( PlayerGpsRadar[ playerid ][ _pgrObject ] );
  1342. if( IsValidDynamicCP( PlayerGpsRadar[ playerid ][ _pgrCheckPointId ] ) ) DestroyDynamicCP( PlayerGpsRadar[ playerid ][ _pgrCheckPointId ] );
  1343.  
  1344. new q[ 128 ], km, mm, sqlID;
  1345. for( new j = 0; j < MAX_VEH_SLOT; j ++ )
  1346. {
  1347. if( (j+1) <= PlayerInfo[ playerid ][ xSlotoviVozila ] && player_veh[ playerid ][ vehicle_id ][ j ] != -1 )
  1348. {
  1349. new vehicleid = player_veh[ playerid ][ vehicle_id ][ j ];
  1350. if( vehicleid != -1 )
  1351. {
  1352. km = VehicleInfo[ vehicleid ][ vKilometri ];
  1353. mm = VehicleInfo[ vehicleid ][ vMetri ];
  1354. sqlID = VehicleInfo[ vehicleid ][ vSqlID ];
  1355.  
  1356. mysql_format( mSQL, q, sizeof(q), "UPDATE `vehicles` SET `v_kilometri` = '%d', `v_metri` = '%d' WHERE `veh_id` = '%d' LIMIT 1", km, mm, sqlID );
  1357. mysql_tquery( mSQL, q );
  1358.  
  1359. ResetVehicle( vehicleid );
  1360. v_DestroyVehicle( vehicleid );
  1361. }
  1362. }
  1363. }
  1364.  
  1365. if( IgracNosiPaket[ playerid ] && ( GetFactionType( playerid ) == ORG_TIP_MAFIJA || GetFactionType( playerid ) == ORG_TIP_BANDA ) ) {
  1366.  
  1367. new OrgID = PlayerInfo[ playerid ][ xClan ];
  1368.  
  1369. v_DisablePlayerCheckpoint( playerid );
  1370. CheckpointStatus[ playerid ] = 0;
  1371.  
  1372. RemovePlayerAttachedObject( playerid, OBJECT_SLOT_ORG );
  1373.  
  1374. IgracNosiPaket[ playerid ] = false;
  1375.  
  1376. ServerInfo[ PaketNijeNaSvomMestu ] = true;
  1377.  
  1378. new Float:Pos[ 3 ];
  1379. GetPlayerPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
  1380.  
  1381. if( IsValidDynamicPickup( ServerInfo[ PaketPickup ] ) )
  1382. DestroyDynamicPickup( ServerInfo[ PaketPickup ] );
  1383.  
  1384. ServerInfo[ PaketVreme ] = 3;
  1385.  
  1386. ServerInfo[ PaketPickup ] = CreateDynamicPickup( 328, 1, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], 0, 0 );
  1387.  
  1388. new stringzone[ MAX_ZONE_NAME ];
  1389. format( stringzone, sizeof( stringzone ), "%s", GetPlayerLocation( playerid ) );
  1390.  
  1391. foreach( new i : Player )
  1392. {
  1393. if( GetFactionType( i ) == ORG_TIP_MAFIJA || GetFactionType( i ) == ORG_TIP_BANDA || PlayerInfo[ i ][ xAdmin ] > 0 || PlayerInfo[ i ][ xTestAdmin ] > 0 )
  1394. {
  1395. SCMF( i, ZUTA, "(PAKET): Igracu {CCCCCC}%s(%s) {FFFF00}je ispao paket.", RPImeIgraca( playerid ), org_info[ OrgID ][ oPreFix ] );
  1396. SCMF( i, ZUTA, "(PAKET): Lokacija: {FFFFFF}%s.", stringzone );
  1397. SendClientMessage( i, ZUTA, "(PAKET): Ukoliko niko ne pokupi paket narednih 10 minuta, paket ce nestati." );
  1398. }
  1399. }
  1400. ServerInfo[ PaketTimer ] = defer DestroyPaket();
  1401. }
  1402.  
  1403. if( IsPlayerInAnyVehicle( playerid ) )
  1404. {
  1405. new Float:x, Float:y, Float:z, vehicleid = GetPlayerVehicleID(playerid);
  1406. GetVehiclePos( vehicleid,x, y, z );
  1407. RealVehiclePositions[ vehicleid ][ 0 ] = x;
  1408. RealVehiclePositions[ vehicleid ][ 1 ] = y;
  1409. RealVehiclePositions[ vehicleid ][ 2 ] = z;
  1410. }
  1411.  
  1412. antiCheatCS[ playerid ][ CPSCount ] = 0;
  1413. antiCheatCS[ playerid ][ CPSTick ] = 0;
  1414. antiCheatCS[ playerid ][ CWTime ] = 0;
  1415. antiCheatCS[ playerid ][ CWVehID ] = -1;
  1416.  
  1417. if( SearchNadji[ playerid ] != -1 )
  1418. {
  1419. SearchNadji[ playerid ] = -1;
  1420. v_DisablePlayerCheckpoint( playerid);
  1421. }
  1422.  
  1423. if( tdm_player_info[ playerid ][ tdm_Team ] != 0 )
  1424. {
  1425. for( new i = 0; i < 5; i ++) TextDrawHideForPlayer( playerid, TDM_gTD[ i ] );
  1426.  
  1427. PlayerTextDrawHide( playerid, TDMplayerScore_pTD[ playerid ] );
  1428. PlayerTextDrawDestroy( playerid, TDMplayerScore_pTD[ playerid ] );
  1429. TDMplayerScore_pTD[ playerid ] = PlayerText:INVALID_TEXT_DRAW;
  1430. }
  1431.  
  1432. #if ZIMSKI_MOD == 1
  1433. if( Snow[ playerid ] ) DestroyPlayerObject( playerid, SnowObject[ playerid ] );
  1434. #endif
  1435.  
  1436. if( (EventInfo[ ec_Started ] > 0 || EventInfo[ wot_Started ] > 0 || EventInfo[ db_Started ] > 0 || EventInfo[ ebc_Started ] > 0) && PlayerInvited[ playerid ] > 0 )
  1437. {
  1438. EventInfo[ Drivers ]--;
  1439. if(EventInfo[ Vehicle ][ PlayerEventVehID[ playerid ] ] != -1) SetVehicleToRespawn( EventInfo[ Vehicle ][ PlayerEventVehID[ playerid ] ] );
  1440. PlayerInvited[ playerid ] = 0;
  1441. if(EventInfo[ Vehicle ][ PlayerEventVehID[ playerid ] ] != -1) PlayerEventVehID[ playerid ] = -1;
  1442.  
  1443. if(EventInfo[ Drivers ] == 1)
  1444. {
  1445. foreach(new i : Player)
  1446. {
  1447. if(PlayerInvited[i] == 1)
  1448. {
  1449. PlayerInfo[ i ][ xEvent1Mesto ]++;
  1450. sql_user_update_integer( i, "event_first_place", PlayerInfo[ i ][ xEvent1Mesto ] );
  1451.  
  1452. DajIgracuNovac( i, 10000 );
  1453. format( globalstring, 128, "(EVENT - CRASH): Pobjednik eventa je {FFFFFF}%s. {6EF83C}| Nagrada: {FFFFFF}($10000).", ImeIgraca( i ) );
  1454. SendClientMessageToAll( 0x6EF83CFF, globalstring );
  1455. SetPlayerVirtualWorld( i, 0 );
  1456. v_TogglePlayerControllable( i, true );
  1457. DisablePlayerCheckpoint( i );
  1458.  
  1459. v_SetPlayerPos( i, PlayerPos[ i ][ 0 ], PlayerPos[ i ][ 1 ], PlayerPos[ i ][ 2 ] );
  1460. SetPlayerVirtualWorld( i, PlayerPosVW[ i ] );
  1461. return(true);
  1462. }
  1463. else if(PlayerInvited[i] == 2)
  1464. {
  1465. PlayerInfo[ i ][ xEvent1Mesto ]++;
  1466. sql_user_update_integer( i, "event_first_place", PlayerInfo[ i ][ xEvent1Mesto ] );
  1467.  
  1468. DajIgracuNovac( i, 10000 );
  1469. format( globalstring, 128, "(EVENT - WORLD OF TANKS): Pobjednik eventa je {FFFFFF}%s. {6EF83C}| Nagrada: {FFFFFF}($10000).", ImeIgraca( i ) );
  1470. SendClientMessageToAll( 0x6EF83CFF, globalstring );
  1471. SetPlayerVirtualWorld( i, 0 );
  1472. v_TogglePlayerControllable( i, true );
  1473. DisablePlayerCheckpoint( i );
  1474.  
  1475. v_SetPlayerPos( i, PlayerPos[ i ][ 0 ], PlayerPos[ i ][ 1 ], PlayerPos[ i ][ 2 ] );
  1476. SetPlayerVirtualWorld( i, PlayerPosVW[ i ] );
  1477. return(true);
  1478. }
  1479. else if(PlayerInvited[i] == 5)
  1480. {
  1481. PlayerInfo[ i ][ xEvent1Mesto ]++;
  1482. sql_user_update_integer( i, "event_first_place", PlayerInfo[ i ][ xEvent1Mesto ] );
  1483.  
  1484. DajIgracuNovac( i, 10000 );
  1485. format( globalstring, 128, "(EVENT - DERBY): Pobjednik eventa je {FFFFFF}%s. {6EF83C}| Nagrada: {FFFFFF}($10000).", ImeIgraca( i ) );
  1486. SendClientMessageToAll( 0x6EF83CFF, globalstring );
  1487. SetPlayerVirtualWorld( i, 0 );
  1488. v_TogglePlayerControllable( i, true );
  1489. DisablePlayerCheckpoint( i );
  1490.  
  1491. v_SetPlayerPos( i, PlayerPos[ i ][ 0 ], PlayerPos[ i ][ 1 ], PlayerPos[ i ][ 2 ] );
  1492. SetPlayerVirtualWorld( i, PlayerPosVW[ i ] );
  1493. return(true);
  1494. }
  1495. }
  1496. }
  1497. }
  1498.  
  1499. if( PlayerInBlowJob[ playerid ] != 0 )
  1500. {
  1501. switch( PlayerInBlowJob[ playerid ] )
  1502. {
  1503. case 1:
  1504. {
  1505. DestroyDynamicActor( Sex_Lisa );
  1506. WhoreLisa = false;
  1507. }
  1508. case 2:
  1509. {
  1510. DestroyDynamicActor( Sex_Angelina );
  1511. WhoreAngelina = false;
  1512. }
  1513. case 3:
  1514. {
  1515. DestroyDynamicActor( Sex_Mia );
  1516. WhoreMia = false;
  1517. }
  1518. case 4:
  1519. {
  1520. DestroyDynamicActor( Sex_Sendy );
  1521. WhoreSendy = false;
  1522. }
  1523. }
  1524.  
  1525. StopAudioStreamForPlayer( playerid );
  1526. SetCameraBehindPlayer( playerid );
  1527. PlayerInBlowJob[ playerid ] = 0;
  1528. SexTDControl( playerid, false );
  1529. BlowJobCount[ playerid ] = 0;
  1530. TogPlayerHud( playerid );
  1531. v_TogglePlayerControllable( playerid, ( true ) );
  1532. ClearAnimations( playerid );
  1533. stop PusenjeTimer[playerid];
  1534. }
  1535.  
  1536. switch( reason )
  1537. {
  1538. case 0:
  1539. {
  1540. format( globalstring, sizeof( globalstring ), "** (( %s je napustio server (crash) ))", ImeIgraca( playerid ) );
  1541. PorukaRadius( 60.0 , playerid, globalstring, 0xBFC0C2FF );
  1542. }
  1543. case 1:
  1544. {
  1545. format( globalstring, sizeof( globalstring ), "** (( %s je napustio server (disconnect) ))", ImeIgraca( playerid ) );
  1546. PorukaRadius( 60.0 , playerid, globalstring, 0xBFC0C2FF );
  1547. }
  1548. }
  1549.  
  1550. if(PoliceComputer[playerid])
  1551. {
  1552. Police_TVTDControl( playerid, false );
  1553. PoliceComputer[playerid] = false;
  1554. }
  1555.  
  1556. DestroyPlayerTextDraws( playerid );
  1557.  
  1558. if( AdminVozilo[ playerid ] != -1 ) VehicleInfo[ AdminVozilo[ playerid ] ][ Validv3DText ] = false, DestroyDynamic3DTextLabel(VehicleInfo[ AdminVozilo[ playerid ] ][ v3DText ]), v_DestroyVehicle( AdminVozilo[ playerid ] ), ResetVehicle( AdminVozilo[ playerid ] ), AdminVozilo[ playerid ] = -1;
  1559. if( VipVozilo[ playerid ] != -1 ) VehicleInfo[ VipVozilo[ playerid ] ][ Validv3DText ] = false, DestroyDynamic3DTextLabel(VehicleInfo[ VipVozilo[ playerid ] ][ v3DText ]), v_DestroyVehicle( VipVozilo[ playerid ] ), ResetVehicle( VipVozilo[ playerid ] ), VipVozilo[ playerid ] = -1;
  1560. if( PosaoVozilo[ playerid ] != -1 ) VehicleInfo[ PosaoVozilo[ playerid ] ][ Validv3DText ] = false, DestroyDynamic3DTextLabel(VehicleInfo[ PosaoVozilo[ playerid ] ][ v3DText ]), v_DestroyVehicle( PosaoVozilo[ playerid ] ), ResetVehicle( PosaoVozilo[ playerid ] ), PosaoVozilo[ playerid ] = -1;
  1561. if( PosaoTrailer[ playerid ] != -1 ) VehicleInfo[ PosaoTrailer[ playerid ] ][ Validv3DText ] = false, DestroyDynamic3DTextLabel(VehicleInfo[ PosaoTrailer[ playerid ] ][ v3DText ]), v_DestroyVehicle( PosaoTrailer[ playerid ] ), ResetVehicle( PosaoTrailer[ playerid ] ), PosaoTrailer[ playerid ] = -1;
  1562. if( TrkaVozilo[ playerid ] != -1 ) v_DestroyVehicle( TrkaVozilo[ playerid ] ), ResetVehicle( TrkaVozilo[ playerid ] ), TrkaVozilo[ playerid ] = -1;
  1563. if( RentVozilo[ playerid ] != -1 )
  1564. {
  1565. stop RentTimer[playerid];
  1566. VehicleObjectCheck( RentVozilo[ playerid ] ), VehicleInfo[ RentVozilo[ playerid ] ][ Validv3DText ] = false, DestroyDynamic3DTextLabel(VehicleInfo[ RentVozilo[ playerid ] ][ v3DText ]), ResetVehicle( RentVozilo[ playerid ] ), v_DestroyVehicle( RentVozilo[ playerid ] ), RentVozilo[ playerid ] = -1;
  1567. }
  1568.  
  1569. if( HitmanInfo[ playerid ][ GotHit ] > 0)
  1570. {
  1571. if( HitmanInfo[ playerid ][ GetChased ] < 999 )
  1572. {
  1573. if( IsPlayerConnected( HitmanInfo[ playerid ][ GetChased ] ) )
  1574. {
  1575. SendClientMessage( HitmanInfo[ playerid ][ GetChased ], ZUTA, "(CONTRACT): Vasa meta je izasla sa servera." );
  1576. HitmanInfo[ HitmanInfo[ playerid ][ GetChased ] ][ GoChase ] = 999;
  1577. }
  1578. }
  1579. }
  1580.  
  1581. if( IDVozilaKojimSverca[ playerid ] != -1 ) KutijaMatsa[ IDVozilaKojimSverca[ playerid ] ] = false;
  1582. if( PljackaVreme[ playerid ] > 0 )
  1583. {
  1584. stop PljackanjeBankeTimer[ playerid ];
  1585. PljackaUToku = false;
  1586. }
  1587.  
  1588. PljackaNovac[ playerid ] = 0, PljackaVreme[ playerid ] = 0;
  1589.  
  1590. if( ZlatoVreme[ playerid ] > 0 )
  1591. {
  1592. stop PljackanjeZlatareTimer[playerid];
  1593. ZlataraUToku = false;
  1594. }
  1595.  
  1596. PljackaZlato[ playerid ] = 0;
  1597. ZlatoVreme[ playerid ] = 0;
  1598.  
  1599. ToggedPM[playerid] = false;
  1600. ToggedWISP[playerid] = false;
  1601. ToggedReport[playerid] = false;
  1602. ToggedFR[playerid] = false;
  1603. ToggedDC[playerid] = false;
  1604.  
  1605. GovRepairCooldown[playerid] = 0;
  1606. RequestingBackup[playerid] = false;
  1607. CuffTimerCalled[playerid] = false;
  1608. PokusajProvala[playerid] = false;
  1609. TicketOffer[playerid] = -1;
  1610. TicketMoney[playerid] = 0;
  1611. ShakeOffer[playerid] = -1;
  1612. RecoverOffer[playerid] = -1;
  1613. RecoverMoney[playerid] = 0;
  1614. MedicineOffer[playerid] = -1;
  1615. MedicineMoney[playerid] = 0;
  1616. TalkingLive[playerid] = -1;
  1617. TalkingOffer[playerid] = -1;
  1618. LiveOffer[playerid] = -1;
  1619. Mobile[playerid] = -1;
  1620. CellTime[playerid] = 0;
  1621. CallCost[playerid] = 0;
  1622. PlayerDruggedSeconds[playerid] = 0;
  1623. NoFuel[playerid] = false;
  1624. LocatingCar[playerid] = false;
  1625. GPSTimerCalled[playerid] = false;
  1626. StartingVehicle[playerid] = false;
  1627. PoliceComputer[playerid] = false;
  1628. JobDuty[playerid] = false;
  1629. ImmobTimerCalled[playerid] = false;
  1630. OfficerUndercover[playerid] = false;
  1631. ToggedAnim[playerid] = false;
  1632. gSmoking[playerid] = 0;
  1633.  
  1634. BreakingVehicle[playerid] = -1;
  1635. BreakLockTimerCalled[playerid] = 0;
  1636. BreakingLock[playerid] = 0;
  1637. breaksecounds[playerid] = 0;
  1638. immobsecounds[playerid] = 0;
  1639.  
  1640. if( DragedPlayerID[ playerid ] != -1 )
  1641. {
  1642. SendInfoMessage( DragedPlayerID[ playerid ], "%s je napustio server, pusteni ste.", ImeIgraca( playerid ) );
  1643. v_TogglePlayerControllable( DragedPlayerID[ playerid ], true );
  1644. Draged[ DragedPlayerID[ playerid ] ] = -1;
  1645. }
  1646.  
  1647. if( PitanjeBroj[ playerid ] != 0 ) stop pitanje_[playerid];
  1648.  
  1649. stop _progressatmbar[playerid];
  1650.  
  1651. if( PocetniTutorialStartovan[ playerid ] == true )
  1652. {
  1653. stop pocetni_tut[playerid];
  1654. }
  1655.  
  1656. if( PlayerInfo[ playerid ][ xPosao ] == POSAO_MEHANICAR )
  1657. {
  1658. if(JobDuty[playerid]) Mechanics -= 1;
  1659. }
Advertisement
Add Comment
Please, Sign In to add comment