test_cmds.pwn 62 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993
  1. //-------------------------------------------------
  2. //
  3. // SA-MP 0.3+ commands for internal testing.
  4. // These were left in the distribution in case
  5. // anyone found the snippets useful for their
  6. // own scripts.
  7. // Don't load this script on a public server
  8. // as it could break your existing scripts.
  9. // Kye 2009-2015
  10. //
  11. //-------------------------------------------------
  12. #pragma tabsize 0
  13. #include <a_samp>
  14. #include <core>
  15. #include <float>
  16. #include "../include/gl_common.inc"
  17. new Text3D:textid;
  18. new PlayerText3D:player3dtextid;
  19. new savanna=0;
  20. new blade=0;
  21. new fence=0;
  22. new unfreezeplayer=0;
  23. new testlbplayer=0;
  24. new edit_objectid = INVALID_OBJECT_ID;
  25. new vehicleid_tokill = 0;
  26. // For testing text material/texture replacements
  27. new test_tex_objects[128];
  28. new text_counter = 0;
  29. new text_update_timer = -1;
  30. new text_update_player = INVALID_PLAYER_ID;
  31. forward UnFreezeMe();
  32. forward ShowTestDialog();
  33. forward TimedVehicleDeath();
  34. forward UpdateTextTimer();
  35. #define AMMUNATION_SMGS_DIALOG "\
  36. Weapon\tAmount\tPrice\n\
  37. {FFFFFF}MP5\t90\t{FF0000}$3500\
  38. "
  39. new Text:txtSpriteTest[5];
  40. new test_actor_id = INVALID_ACTOR_ID;
  41. //-------------------------------------------------
  42. SpawnVehicle_InfrontOfPlayer(playerid, vehiclemodel, color1, color2)
  43. {
  44. new Float:x,Float:y,Float:z;
  45. new Float:facing;
  46. new Float:distance;
  47. GetPlayerPos(playerid, x, y, z);
  48. GetPlayerFacingAngle(playerid, facing);
  49. new Float:size_x,Float:size_y,Float:size_z;
  50. GetVehicleModelInfo(vehiclemodel, VEHICLE_MODEL_INFO_SIZE, size_x, size_y, size_z);
  51. distance = size_x + 0.5;
  52. x += (distance * floatsin(-facing, degrees));
  53. y += (distance * floatcos(-facing, degrees));
  54. facing += 90.0;
  55. if(facing > 360.0) facing -= 360.0;
  56. return CreateVehicle(vehiclemodel, x, y, z + (size_z * 0.25), facing, color1, color2, -1);
  57. }
  58. //------------------------------------------------
  59. SpawnObject_InfrontOfPlayer(playerid, model)
  60. {
  61. new Float:x,Float:y,Float:z;
  62. new Float:facing;
  63. new Float:distance;
  64. GetPlayerPos(playerid, x, y, z);
  65. GetPlayerFacingAngle(playerid, facing);
  66. distance = 5.0;
  67. x += (distance * floatsin(-facing, degrees));
  68. y += (distance * floatcos(-facing, degrees));
  69. facing += 90.0;
  70. if(facing > 360.0) facing -= 360.0;
  71. return CreateObject(model, x, y, z, 0.0, 0.0, 0.0, 300.0);
  72. }
  73. //-------------------------------------------------
  74. stock CreateExplosionEx(Float:X, Float:Y, Float:Z, type, Float:Radius, virtualworld)
  75. {
  76. new x;
  77. while(x != MAX_PLAYERS) {
  78. if(IsPlayerConnected(x)) {
  79. if(virtualworld == -1 || virtualworld == GetPlayerVirtualWorld(x)) {
  80. CreateExplosionForPlayer(x, X, Y, Z, type, Radius);
  81. }
  82. }
  83. x++;
  84. }
  85. }
  86. //-------------------------------------------------
  87. public UnFreezeMe()
  88. {
  89. TogglePlayerControllable(unfreezeplayer,1);
  90. }
  91. //-------------------------------------------------
  92. public ShowTestDialog()
  93. {
  94. new listitems[] = "{FFFFFF}1\t{55EE55}Deagle\n{FFFFFF}2\t{55EE55}Sawnoff\n{FFFFFF}3\t{55EE55}Pistol\n{FFFFFF}4\t{55EE55}Grenade\n{FFFFFF}5\t{55EE55}Parachute\n6\t{55EE55}Lorikeet";
  95. ShowPlayerDialog(testlbplayer,2,DIALOG_STYLE_LIST,"{448844}List of weapons:",listitems,"Select","Cancel");
  96. }
  97. //-------------------------------------------------
  98. TabListDialogTest(playerid)
  99. {
  100. new listitems[] =
  101. "Deagle\t$5000\t100\n" \
  102. "Sawnoff\t$5000\t100\n" \
  103. "Pistol\t$1000\t50\n" \
  104. "M4\t$10000\t100\n" \
  105. "MP5\t$7500\t200\n" \
  106. "Grenade\t$500\t1\n" \
  107. "Parachute\t$10000\t1\n" \
  108. "Lorikeet\t$50000\t500\n";
  109. ShowPlayerDialog(playerid,2,DIALOG_STYLE_TABLIST,"Buy Weapon",listitems,"Select","Cancel");
  110. }
  111. //-------------------------------------------------
  112. TabListHeadersDialogTest(playerid)
  113. {
  114. new listitems[] =
  115. "Weapon\tPrice\tAmmo\n" \
  116. "Deagle\t$5000\t100\n" \
  117. "Sawnoff\t$5000\t100\n" \
  118. "Pistol\t$1000\t50\n" \
  119. "M4\t$10000\t100\n" \
  120. "MP5\t$7500\t200\n" \
  121. "Grenade\t$500\t1\n" \
  122. "Parachute\t$10000\t1\n" \
  123. "Lorikeet\t$50000\t500\n";
  124. ShowPlayerDialog(playerid,2,DIALOG_STYLE_TABLIST_HEADERS,"Buy Weapon",listitems,"Select","Cancel");
  125. }
  126. //-------------------------------------------------
  127. public TimedVehicleDeath()
  128. {
  129. if(vehicleid_tokill > 0) {
  130. DestroyVehicle(vehicleid_tokill);
  131. }
  132. }
  133. //-------------------------------------------------
  134. public UpdateTextTimer()
  135. {
  136. new textdisp[256+1];
  137. format(textdisp,256,"Dynamic Update (%d)", text_counter);
  138. text_counter++;
  139. SetPlayerObjectMaterialText(text_update_player, test_tex_objects[0], textdisp, 0, OBJECT_MATERIAL_SIZE_512x128, "Courier New", 48, 1, 0xFF000000, 0, 0);
  140. }
  141. //-------------------------------------------------
  142. public OnPlayerCommandText(playerid, cmdtext[])
  143. {
  144. new cmd[256+1];
  145. new idx;
  146. cmd = strtok(cmdtext, idx);
  147. new engine,lights,alarm,doors,bonnet,boot,objective;
  148. //if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  149. if(strcmp(cmd, "/player2v", true) == 0)
  150. {
  151. new tmp[256];
  152. new tmp2[256];
  153. tmp = strtok(cmdtext,idx);
  154. tmp2 = strtok(cmdtext,idx);
  155. PutPlayerInVehicle(strval(tmp),strval(tmp2),0);
  156. return 1;
  157. }
  158. if(strcmp( cmd, "/vc", true ) == 0 )
  159. {
  160. new tmp[256];
  161. new created_vehicle_id;
  162. tmp = strtok( cmdtext, idx );
  163. created_vehicle_id = SpawnVehicle_InfrontOfPlayer(playerid, strval(tmp), -1, -1);
  164. new msg[128+1];
  165. format(msg,128,"Created vehicle: %d",created_vehicle_id);
  166. SendClientMessage(playerid,0xAAAAAAAA,msg);
  167. return 1;
  168. }
  169. if(strcmp( cmd, "/weap", true ) == 0 )
  170. {
  171. new tmp[256];
  172. tmp = strtok( cmdtext, idx );
  173. GivePlayerWeapon(playerid, strval(tmp), 9999);
  174. return 1;
  175. }
  176. if(strcmp( cmd, "/dvehicle", true ) == 0 )
  177. {
  178. new tmp[256];
  179. tmp = strtok( cmdtext, idx );
  180. DestroyVehicle( strval(tmp) );
  181. new msg[256];
  182. format(msg,256,"Destroyed vehicle: %d",strval(tmp));
  183. SendClientMessage(playerid,0xAAAAAAAA,msg);
  184. return 1;
  185. }
  186. if(strcmp( cmd, "/goto", true ) == 0)
  187. {
  188. new tmp[256];
  189. tmp = strtok(cmdtext,idx);
  190. if(!strlen(tmp)) { return 1; }
  191. new Float:X, Float:Y, Float:Z;
  192. if(GetPlayerVehicleID(playerid))
  193. {
  194. GetPlayerPos( strval(tmp), X, Y, Z );
  195. SetVehiclePos( GetPlayerVehicleID(playerid), X+2, Y+2, Z );
  196. } else {
  197. GetPlayerPos( strval(tmp), X, Y, Z );
  198. SetPlayerPos( playerid, X+2, Y+2, Z );
  199. }
  200. return 1;
  201. }
  202. if(strcmp(cmd, "/bring", true) == 0)
  203. {
  204. new tmp[256];
  205. tmp = strtok(cmdtext, idx);
  206. if(!strlen(tmp)) { return 1; }
  207. new Float:X, Float:Y, Float:Z;
  208. if(GetPlayerVehicleID(strval(tmp)))
  209. {
  210. GetPlayerPos(playerid, X, Y, Z);
  211. SetVehiclePos(GetPlayerVehicleID(strval(tmp)), X+2, Y+2, Z);
  212. } else {
  213. GetPlayerPos(playerid, X, Y, Z);
  214. SetPlayerPos(strval(tmp), X+2, Y+2, Z);
  215. }
  216. return 1;
  217. }
  218. if(strcmp(cmd, "/me2v", true) == 0)
  219. {
  220. new tmp[256];
  221. tmp = strtok(cmdtext,idx);
  222. PutPlayerInVehicle(playerid,strval(tmp),0);
  223. return 1;
  224. }
  225. if(strcmp(cmd, "/tpzero", true) == 0)
  226. {
  227. new vid = GetPlayerVehicleID(playerid);
  228. if(vid != INVALID_VEHICLE_ID) {
  229. SetVehiclePos(vid,0.0,0.0,10.0);
  230. }
  231. return 1;
  232. }
  233. if(strcmp(cmd, "/myvw", true) == 0)
  234. {
  235. new tmp[256];
  236. tmp = strtok(cmdtext,idx);
  237. SetPlayerPos(playerid, 0.0, 0.0, 15.0);
  238. SetPlayerVirtualWorld(playerid,strval(tmp));
  239. return 1;
  240. }
  241. if(strcmp( cmd, "/fight", true ) == 0)
  242. {
  243. new tmp[256];
  244. new name[128];
  245. tmp = strtok(cmdtext, idx);
  246. new style = strval(tmp);
  247. SetPlayerFightingStyle(playerid, style);
  248. GetPlayerName(playerid,name,128);
  249. format(tmp, 256, "(%s) fighting style changed to %d", name, style);
  250. SendClientMessageToAll(0x4499CCFF,tmp);
  251. return 1;
  252. }
  253. if(strcmp( cmd, "/myfacingangle", true ) == 0)
  254. {
  255. new Float:angle;
  256. new tmp[256];
  257. GetPlayerFacingAngle(playerid,angle);
  258. format(tmp, 256, "Facing: %f",angle);
  259. SendClientMessage(playerid,0x4499CCFF,tmp);
  260. return 1;
  261. }
  262. if(strcmp(cmd, "/crime", true) == 0) {
  263. new tmp[256];
  264. new tmp2[256];
  265. tmp = strtok(cmdtext,idx);
  266. tmp2 = strtok(cmdtext,idx);
  267. PlayCrimeReportForPlayer(playerid, strval(tmp), strval(tmp2));
  268. return 1;
  269. }
  270. if(strcmp(cmd, "/repairmycar", true) == 0) {
  271. new vid = GetPlayerVehicleID(playerid);
  272. if (vid) RepairVehicle(vid);
  273. return 1;
  274. }
  275. if(strcmp(cmd, "/bv", true) == 0)
  276. {
  277. new tmp[128], iCar, string[128];
  278. tmp = strtok(cmdtext, idx);
  279. if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "DO: /bv [vehicleid]");
  280. iCar = strval(tmp);
  281. new File:file = fopen("badvehicles.txt",io_append);
  282. format(string,sizeof(string),"%d\r\n", iCar);
  283. fwrite(file,string);
  284. fclose(file);
  285. GetPlayerName(playerid,tmp,128);
  286. format(string, sizeof(string), "Veh ID %i marked as bad vehicle by %s", iCar, tmp);
  287. SendClientMessageToAll(0xFFFFFFFF, string);
  288. return 1;
  289. }
  290. if(strcmp(cmd, "/weapskill", true) == 0) {
  291. new tmp[256];
  292. new tmp2[256];
  293. tmp = strtok(cmdtext,idx);
  294. tmp2 = strtok(cmdtext,idx);
  295. SetPlayerSkillLevel(playerid, strval(tmp), strval(tmp2));
  296. return 1;
  297. }
  298. if(strcmp(cmd, "/labelonvehicle", true) == 0) {
  299. new vid = GetPlayerVehicleID(playerid);
  300. textid = Create3DTextLabel("My Vehicle\nOwned by me\nNo Fuel\nRunning on vapour",0xEEEEEE50,0.0,0.0,0.0,15.0,0);
  301. Attach3DTextLabelToVehicle(textid, vid, 0.0, -1.6, -0.35); // tail of the vehicle toward the ground
  302. return 1;
  303. }
  304. if(strcmp(cmd, "/labelonplayer", true) == 0) {
  305. new tmp[256];
  306. tmp = strtok(cmdtext,idx);
  307. textid = Create3DTextLabel("Player Label",0xFFFFFFFF,0.0,0.0,0.0,40.0,0);
  308. Attach3DTextLabelToPlayer(textid, strval(tmp), 0.0, 0.0, -0.4);
  309. return 1;
  310. }
  311. if(strcmp(cmd, "/manylabels", true) == 0) {
  312. new Float:X, Float:Y, Float:Z;
  313. GetPlayerPos(playerid, X, Y, Z);
  314. new x=0;
  315. while(x!=50) {
  316. Create3DTextLabel("Mah Labels",0xFFFFFFFF,X,Y,Z,100.0,0);
  317. Z = Z + 0.1;
  318. x++;
  319. }
  320. return 1;
  321. }
  322. if(strcmp(cmd, "/dellabel", true) == 0) {
  323. Delete3DTextLabel(textid);
  324. return 1;
  325. }
  326. if(strcmp(cmd, "/playerlabel", true) == 0) {
  327. new Float:X, Float:Y, Float:Z;
  328. GetPlayerPos( playerid, X, Y, Z );
  329. player3dtextid = CreatePlayer3DTextLabel(playerid,"Hello\nI'm at your position",0x008080FF,X,Y,Z,40.0);
  330. SendClientMessage(playerid, 0xFFFFFFFF, "I created a player label at your position.");
  331. return 1;
  332. }
  333. if(strcmp(cmd, "/playerlabelveh", true) == 0) {
  334. new vid = GetPlayerVehicleID(playerid);
  335. player3dtextid = CreatePlayer3DTextLabel(playerid,"im in your vehicles\nand hiding behind the walls",0x008080FF,0.0,-1.6,-0.35,20.0,INVALID_PLAYER_ID,vid,1);
  336. return 1;
  337. }
  338. if(strcmp(cmd, "/playerlabelpl", true) == 0) {
  339. new tmp[256];
  340. tmp = strtok(cmdtext,idx);
  341. player3dtextid = CreatePlayer3DTextLabel(playerid,"Hello Testing",0x008080FF,0.0,0.0,0.0,30.0,strval(tmp));
  342. return 1;
  343. }
  344. if(strcmp(cmd, "/delplayerlabel", true) == 0) {
  345. DeletePlayer3DTextLabel(playerid, player3dtextid);
  346. return 1;
  347. }
  348. if(strcmp(cmd, "/updateplayerlabel", true) == 0) {
  349. UpdatePlayer3DTextLabelText(playerid, player3dtextid, 0xFFFFFFFF, "");
  350. return 1;
  351. }
  352. if(strcmp(cmd, "/carmodtest", true) == 0) {
  353. // spawns a couple of cars in Grove with mods applied
  354. savanna = CreateVehicle(567,2509.1343,-1686.2330,13.2296,47.3679,16,16,10000);
  355. AddVehicleComponent(savanna,1189); //Front Bumper
  356. AddVehicleComponent(savanna,1187); //Rear Bumper
  357. AddVehicleComponent(savanna,1129); //Exhaust
  358. AddVehicleComponent(savanna,1102); //Left Side Skirt
  359. AddVehicleComponent(savanna,1133); //Right Side Skirt
  360. AddVehicleComponent(savanna,1078); //Wheels
  361. AddVehicleComponent(savanna,1010); //Nitro 10x
  362. AddVehicleComponent(savanna,1087); //Hydrolics
  363. blade = CreateVehicle(536,2509.8462,-1671.8666,13.1510,348.3512,16,16,10000);
  364. AddVehicleComponent(blade,1182); //Front Bumper
  365. AddVehicleComponent(blade,1184); //Rear Bumper
  366. AddVehicleComponent(blade,1104); //Exhaust
  367. AddVehicleComponent(blade,1108); //Left Side Skirt
  368. AddVehicleComponent(blade,1107); //Right Side Skirt
  369. AddVehicleComponent(blade,1078); //Wheels
  370. AddVehicleComponent(blade,1010); //Nitro 10x
  371. AddVehicleComponent(blade,1087); //Hydrolics
  372. return 1;
  373. }
  374. if(strcmp(cmd, "/addnitro", true) == 0) {
  375. new vid = GetPlayerVehicleID(playerid);
  376. AddVehicleComponent(vid, 1010);
  377. return 1;
  378. }
  379. if(strcmp(cmd, "/remnitro", true) == 0) {
  380. new vid = GetPlayerVehicleID(playerid);
  381. RemoveVehicleComponent(vid, 1010);
  382. return 1;
  383. }
  384. if(strcmp(cmd, "/paintjob", true) == 0) {
  385. new tmp[256];
  386. tmp = strtok(cmdtext,idx);
  387. new vid = GetPlayerVehicleID(playerid);
  388. ChangeVehiclePaintjob(vid,strval(tmp));
  389. return 1;
  390. }
  391. if(strcmp(cmd, "/longtd", true) == 0) {
  392. new st4[256];
  393. new st5[256];
  394. new st6[256];
  395. new st7[1024];
  396. format(st4,sizeof(st4),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
  397. format(st5,sizeof(st5),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
  398. format(st6,sizeof(st6),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789");
  399. format(st7,sizeof(st7),"%s %s %s~n~LEN(%d)",st4,st5,st6,strlen(st4)+strlen(st5)+strlen(st6));
  400. new Text:Stats = TextDrawCreate(10.0, 10.0, st7);
  401. TextDrawTextSize(Stats, 400.0, 400.0);
  402. TextDrawUseBox(Stats,0);
  403. TextDrawBoxColor(Stats,0xFFFFFFFF);
  404. TextDrawFont(Stats,1);
  405. TextDrawLetterSize(Stats,0.5,0.5);
  406. TextDrawShowForPlayer(playerid,Stats);
  407. return 1;
  408. }
  409. if(strcmp(cmd, "/testmsgbox", true) == 0) {
  410. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","Welcome to the SA-MP 0.3 server. This is test_cmds.pwn /testmsgbox\nHope it's useful to you.","OK","");
  411. return 1;
  412. }
  413. if(strcmp(cmd, "/testmsgbox2", true) == 0) {
  414. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","Welcome:\tInfo\nTest:\t\tTabulated\nLine:\t\tHello","OK","Cancel");
  415. return 1;
  416. }
  417. if(strcmp(cmd, "/testinputbox", true) == 0) {
  418. new loginmsg[256+1];
  419. new loginname[MAX_PLAYER_NAME+1];
  420. GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
  421. format(loginmsg,256,"Welcome to the SA-MP 0.3 server.\n\n{EEEE88}Account:\t{FFFFFF}%s\n\n{FFFFFF}Please enter your password below:",loginname);
  422. ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"{EE7777}Login to SA-MP",loginmsg,"Login","Cancel");
  423. return 1;
  424. }
  425. if(strcmp(cmd, "/testpassbox", true) == 0) {
  426. new loginmsg[256+1];
  427. new loginname[MAX_PLAYER_NAME+1];
  428. GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
  429. format(loginmsg,256,"Welcome to the SA-MP 0.3 server.\n\n{EEEE88}Account:\t{FFFFFF}%s\n\n{FFFFFF}Please enter your password below:",loginname);
  430. ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"{EE7777}Login to SA-MP",loginmsg,"Login","Cancel");
  431. return 1;
  432. }
  433. if(strcmp(cmd, "/testlistbox", true) == 0) {
  434. new listitems[] = "{FFFFFF}1\t{55EE55}Deagle\n{FFFFFF}2\t{55EE55}Sawnoff\n{FFFFFF}3\t{55EE55}Pistol\n{FFFFFF}4\t{55EE55}Grenade\n{FFFFFF}5\t{55EE55}Parachute\n6\t{55EE55}Lorikeet";
  435. ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"{448844}List of weapons:",listitems,"Select","Cancel");
  436. return 1;
  437. }
  438. if(strcmp(cmd, "/testtablist", true) == 0) {
  439. TabListDialogTest(playerid);
  440. return 1;
  441. }
  442. if(strcmp(cmd, "/testtablistheaders", true) == 0) {
  443. TabListHeadersDialogTest(playerid);
  444. return 1;
  445. }
  446. if(strcmp(cmd, "/testtablistcrash", true) == 0) {
  447. //ShowPlayerDialog(playerid,2,DIALOG_STYLE_TABLIST_HEADERS,"{FFFF00}SMGs", "Weapon\tAmount\tPrice\n{FFFFFF}MP5\t90\t{FF0000}$3500","Buy", "Go Back");
  448. ShowPlayerDialog(playerid,2,DIALOG_STYLE_TABLIST_HEADERS,"{FFFF00}SMGs", AMMUNATION_SMGS_DIALOG, "Buy", "Go Back");
  449. return 1;
  450. }
  451. if(strcmp(cmd, "/testclosebox", true) == 0) {
  452. ShowPlayerDialog(playerid,-1,0,"","","","");
  453. return 1;
  454. }
  455. if(strcmp(cmd, "/setfacingzero", true) == 0) {
  456. SetPlayerFacingAngle(playerid, 0.0);
  457. return 1;
  458. }
  459. if(strcmp(cmd, "/detachtrailer", true) == 0) {
  460. new vid = GetPlayerVehicleID(playerid);
  461. DetachTrailerFromVehicle(vid);
  462. return 1;
  463. }
  464. if(strcmp(cmd, "/testformat", true) == 0) {
  465. new strtest[256];
  466. new File:f = fopen("test.txt",io_write);
  467. format(strtest,256,"[chat] %d %s\r\n",24,"þÿÿþ");
  468. SendClientMessage(playerid,0xFFFFFFFF,strtest);
  469. fwrite(f,strtest);
  470. format(strtest,256,"[chat] %d %s\r\n",34," þÿÿþ");
  471. SendClientMessage(playerid,0xFFFFFFFF,strtest);
  472. fwrite(f,strtest);
  473. fclose(f);
  474. return 1;
  475. }
  476. if(strcmp(cmd, "/setskin", true) == 0) {
  477. new tmp[256];
  478. tmp = strtok(cmdtext,idx);
  479. SetPlayerSkin(playerid,strval(tmp));
  480. return 1;
  481. }
  482. if(strcmp(cmd, "/getskin", true) == 0) {
  483. new tmp[256+1];
  484. new custskin = GetPlayerSkin(playerid);
  485. format(tmp,256,"Skin: %d",custskin);
  486. SendClientMessage(playerid,0xFFFFFFFF,tmp);
  487. return 1;
  488. }
  489. if(strcmp(cmd, "/getcskin", true) == 0) {
  490. new tmp[256+1];
  491. new custskin = GetPlayerCustomSkin(playerid);
  492. format(tmp,256,"Custom skin: %d",custskin);
  493. SendClientMessage(playerid,0xFFFFFFFF,tmp);
  494. return 1;
  495. }
  496. if(strcmp(cmd, "/setvars", true) == 0) {
  497. SetPVarInt(playerid,"num_test",7001);
  498. SetPVarString(playerid,"additional_tag","Hello World");
  499. SetPVarFloat(playerid,"some_float",1001.0);
  500. SendClientMessage(playerid,0xFFFFFFFF, "Vars set");
  501. return 1;
  502. }
  503. if(strcmp(cmd, "/modvars", true) == 0) {
  504. SetPVarInt(playerid,"num_test",8001);
  505. SetPVarString(playerid,"additional_tag","World Hello");
  506. SetPVarFloat(playerid,"some_float",6901.0);
  507. SendClientMessage(playerid,0xFFFFFFFF, "Vars modded");
  508. return 1;
  509. }
  510. if(strcmp(cmd, "/getvars", true) == 0) {
  511. new tst_IntRet;
  512. new Float:tst_FloatRet;
  513. new tst_StrRet[256];
  514. new tst_DispStr[256];
  515. tst_IntRet = GetPVarInt(playerid,"num_test");
  516. tst_FloatRet = GetPVarFloat(playerid,"some_float");
  517. GetPVarString(playerid,"additional_tag",tst_StrRet,256);
  518. format(tst_DispStr,256,"num_test: %d some_float: %f additional_tag: %s",tst_IntRet,tst_FloatRet,tst_StrRet);
  519. SendClientMessage(playerid,0xFFFFFFFF, tst_DispStr);
  520. return 1;
  521. }
  522. if(strcmp(cmd, "/delvars", true) == 0) {
  523. DeletePVar(playerid,"num_test");
  524. DeletePVar(playerid,"additional_tag");
  525. DeletePVar(playerid,"some_float");
  526. SendClientMessage(playerid,0xFFFFFFFF, "Vars deleted");
  527. return 1;
  528. }
  529. if(strcmp(cmd, "/pvarlist", true) == 0) {
  530. SendPVarListToPlayer(playerid);
  531. return 1;
  532. }
  533. if(strcmp(cmd, "/kill",true) == 0) {
  534. SetPlayerHealth(playerid,0.0);
  535. return 1;
  536. }
  537. if(strcmp(cmd, "/kickallnpc",true) == 0) {
  538. new p=0;
  539. while(p!=MAX_PLAYERS) {
  540. if(IsPlayerConnected(p) && IsPlayerNPC(p)) Kick(p);
  541. p++;
  542. }
  543. return 1;
  544. }
  545. if(strcmp(cmd, "/startengine",true) == 0) {
  546. new vid = GetPlayerVehicleID(playerid);
  547. if(vid != INVALID_VEHICLE_ID) {
  548. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  549. SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  550. }
  551. return 1;
  552. }
  553. if(strcmp(cmd, "/stopengine",true) == 0) {
  554. new vid = GetPlayerVehicleID(playerid);
  555. if(vid != INVALID_VEHICLE_ID) {
  556. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  557. SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  558. }
  559. return 1;
  560. }
  561. if(strcmp(cmd, "/openboot",true) == 0) {
  562. new vid = GetPlayerVehicleID(playerid);
  563. if(vid != INVALID_VEHICLE_ID) {
  564. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  565. SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_ON,objective);
  566. }
  567. return 1;
  568. }
  569. if(strcmp(cmd, "/closeboot",true) == 0) {
  570. new vid = GetPlayerVehicleID(playerid);
  571. if(vid != INVALID_VEHICLE_ID) {
  572. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  573. SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_OFF,objective);
  574. }
  575. return 1;
  576. }
  577. if(strcmp(cmd, "/openbonnet",true) == 0) {
  578. new vid = GetPlayerVehicleID(playerid);
  579. if(vid != INVALID_VEHICLE_ID) {
  580. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  581. SetVehicleParamsEx(vid,engine,lights,alarm,doors,VEHICLE_PARAMS_ON,boot,objective);
  582. }
  583. return 1;
  584. }
  585. if(strcmp(cmd, "/closebonnet",true) == 0) {
  586. new vid = GetPlayerVehicleID(playerid);
  587. if(vid != INVALID_VEHICLE_ID) {
  588. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  589. SetVehicleParamsEx(vid,engine,lights,alarm,doors,VEHICLE_PARAMS_OFF,boot,objective);
  590. }
  591. return 1;
  592. }
  593. if(strcmp(cmd, "/alarmon",true) == 0) {
  594. new vid = GetPlayerVehicleID(playerid);
  595. if(vid != INVALID_VEHICLE_ID) {
  596. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  597. SetVehicleParamsEx(vid,engine,lights,VEHICLE_PARAMS_ON,doors,bonnet,boot,objective);
  598. }
  599. return 1;
  600. }
  601. if(strcmp(cmd, "/alarmoff",true) == 0) {
  602. new vid = GetPlayerVehicleID(playerid);
  603. if(vid != INVALID_VEHICLE_ID) {
  604. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  605. SetVehicleParamsEx(vid,engine,lights,VEHICLE_PARAMS_OFF,doors,bonnet,boot,objective);
  606. }
  607. return 1;
  608. }
  609. if(strcmp(cmd, "/lightson",true) == 0) {
  610. new vid = GetPlayerVehicleID(playerid);
  611. if(vid != INVALID_VEHICLE_ID) {
  612. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  613. SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
  614. }
  615. return 1;
  616. }
  617. if(strcmp(cmd, "/lightsoff",true) == 0) {
  618. new vid = GetPlayerVehicleID(playerid);
  619. if(vid != INVALID_VEHICLE_ID) {
  620. GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
  621. SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
  622. }
  623. return 1;
  624. }
  625. if(strcmp(cmd, "/holdobjectid",true) == 0) {
  626. new tmp[256];
  627. tmp = strtok(cmdtext,idx);
  628. SetPlayerAttachedObject(playerid,0,strval(tmp),6);
  629. SetPlayerAttachedObject(playerid,1,strval(tmp),5);
  630. //SetPlayerAttachedObject(playerid, 0, 1254,2, 0.1,0.05,0,0,90,0);
  631. return 1;
  632. }
  633. if(strcmp(cmd, "/removeheld",true) == 0) {
  634. new zz=0;
  635. while(zz!=MAX_PLAYER_ATTACHED_OBJECTS) {
  636. if(IsPlayerAttachedObjectSlotUsed(playerid, zz)) {
  637. RemovePlayerAttachedObject(playerid, zz);
  638. }
  639. zz++;
  640. }
  641. return 1;
  642. }
  643. if(strcmp(cmd, "/attachobj",true) == 0) {
  644. new tmp[256];
  645. tmp = strtok(cmdtext,idx);
  646. new obj = CreateObject(strval(tmp),0.0,0.0,0.0,0.0,0.0,0.0,200.0);
  647. AttachObjectToVehicle(obj,GetPlayerVehicleID(playerid),0.0,0.0,1.0,0.0,0.0,0.0);
  648. return 1;
  649. }
  650. if(strcmp(cmd, "/attachtome",true) == 0) {
  651. new tmp[256];
  652. tmp = strtok(cmdtext,idx);
  653. new obj = CreateObject(strval(tmp),0.0,0.0,0.0,0.0,0.0,0.0,200.0);
  654. AttachObjectToPlayer(obj,playerid,0.0,0.0,2.0,0.0,0.0,0.0);
  655. return 1;
  656. }
  657. if(strcmp(cmd, "/mapicontest",true) == 0) {
  658. new Float:X, Float:Y, Float:Z;
  659. GetPlayerPos(playerid, X, Y, Z);
  660. SetPlayerCheckpoint(playerid,X,Y,Z,5.0);
  661. SetPlayerMapIcon(playerid, 1, X+50.0, Y, Z, 52, 0, MAPICON_LOCAL_CHECKPOINT);
  662. SetPlayerMapIcon(playerid, 2, X+100.0, Y, Z, 53, 0, MAPICON_LOCAL_CHECKPOINT);
  663. SetPlayerMapIcon(playerid, 3, X+150.0, Y, Z, 54, 0, MAPICON_LOCAL_CHECKPOINT);
  664. SetPlayerMapIcon(playerid, 4, X+200.0, Y, Z, 55, 0, MAPICON_LOCAL_CHECKPOINT);
  665. SetPlayerMapIcon(playerid, 5, X+250.0, Y, Z, 0, 0x00FF00FF);
  666. return 1;
  667. }
  668. if(strcmp(cmd, "/mapicondel",true) == 0) {
  669. RemovePlayerMapIcon(playerid, 1);
  670. RemovePlayerMapIcon(playerid, 2);
  671. RemovePlayerMapIcon(playerid, 3);
  672. RemovePlayerMapIcon(playerid, 4);
  673. RemovePlayerMapIcon(playerid, 5);
  674. return 1;
  675. }
  676. if(strcmp(cmd, "/mapicontest2",true) == 0) {
  677. new Float:X, Float:Y, Float:Z;
  678. GetPlayerPos(playerid, X, Y, Z);
  679. RemovePlayerMapIcon(playerid, 0);
  680. SetPlayerMapIcon(playerid, 0, X, Y, Z, 33, 0, MAPICON_GLOBAL);
  681. RemovePlayerMapIcon(playerid, 2);
  682. SetPlayerMapIcon(playerid, 2, X+100.0, Y, Z, 55, 0, MAPICON_LOCAL);
  683. return 1;
  684. }
  685. if(strcmp(cmd, "/setweap",true) == 0) {
  686. new tmp[256];
  687. tmp = strtok(cmdtext,idx);
  688. SetPlayerArmedWeapon(playerid,strval(tmp));
  689. return 1;
  690. }
  691. if(strcmp(cmd, "/jetpack",true) == 0) {
  692. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
  693. return 1;
  694. }
  695. if(strcmp(cmd, "/crobj",true) == 0) {
  696. new Float:X, Float:Y, Float:Z;
  697. new tmp[256];
  698. tmp = strtok(cmdtext,idx);
  699. SpawnObject_InfrontOfPlayer(playerid, strval(tmp));
  700. //GetPlayerPos(playerid, X, Y, Z);
  701. //CreateObject(strval(tmp),X+1.0,Y+1.0,Z,0.0,0.0,0.0,200.0);
  702. return 1;
  703. }
  704. if(strcmp(cmd, "/dropaudio",true) == 0) {
  705. new Float:X, Float:Y, Float:Z;
  706. GetPlayerPos(playerid, X, Y, Z);
  707. PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z, 40.0, true);
  708. return 1;
  709. }
  710. if(strcmp(cmd, "/officefloor",true) == 0) {
  711. SetPlayerPos(playerid,1786.0645,-1298.7510,104.2);
  712. return 1;
  713. }
  714. if(strcmp(cmd, "/lvpd",true) == 0) {
  715. SetPlayerInterior(playerid, 3);
  716. SetPlayerPos(playerid,237.5571,148.7559,1005.4703);
  717. return 1;
  718. }
  719. if(strcmp(cmd, "/kill",true) == 0) {
  720. SetPlayerHealth(playerid,0.0);
  721. return 1;
  722. }
  723. if(strcmp(cmd, "/atrailer",true) == 0) {
  724. new tmp[256];
  725. tmp = strtok(cmdtext,idx);
  726. AttachTrailerToVehicle(strval(tmp),GetPlayerVehicleID(playerid));
  727. return 1;
  728. }
  729. if(strcmp(cmd, "/dtrailer",true) == 0) {
  730. if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) != 0) {
  731. DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
  732. }
  733. return 1;
  734. }
  735. if(strcmp(cmd, "/cfence",true) == 0) {
  736. SetPlayerPos(playerid,2496.40, -1664.84, 13.19);
  737. if(!fence) fence = CreateObject(1410, 2496.80, -1661.88, 13.4, 0.00, 0.00, 0.00);
  738. return 1;
  739. }
  740. if(strcmp(cmd, "/mfence1",true) == 0) {
  741. MoveObject(fence, 2494.56, -1664.12, 13.4, 1.0, 0.00, 0.00, -90.0);
  742. return 1;
  743. }
  744. if(strcmp(cmd, "/mfence2",true) == 0) {
  745. MoveObject(fence, 2496.80, -1661.88, 13.4, 1.0, 0.00, 0.00, 0.00);
  746. return 1;
  747. }
  748. if(strcmp(cmd, "/usecell",true) == 0) {
  749. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  750. //SetPlayerAttachedObject(playerid, 4, 330, 6); // 4 = attachment slot, 330 = cellphone model, 6 = right hand
  751. return 1;
  752. }
  753. if(strcmp(cmd, "/stopcell",true) == 0) {
  754. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  755. RemovePlayerAttachedObject(playerid, 4);
  756. return 1;
  757. }
  758. if(strcmp(cmd, "/objvehst",true) == 0) {
  759. new objveh;
  760. new objatt;
  761. new Float:X, Float:Y, Float:Z;
  762. GetPlayerPos(playerid, X, Y, Z);
  763. objveh = CreateVehicle(563, X+2.0, Y+2.0, Z, 0.0, 0, 0, -1);
  764. objatt = CreateObject(19277, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 200.0);
  765. AttachObjectToVehicle(objatt, objveh, 2.0, 0.15, 0.0, 0.0, 0.0, 90.0);
  766. return 1;
  767. }
  768. if(strcmp(cmd, "/uncontrol", true) == 0) {
  769. TogglePlayerControllable(playerid, 0);
  770. unfreezeplayer = playerid;
  771. //SetTimer("UnFreezeMe",5000,0);
  772. return 1;
  773. }
  774. if(strcmp(cmd, "/recontrol", true) == 0) {
  775. TogglePlayerControllable(playerid, 1);
  776. return 1;
  777. }
  778. if(strcmp(cmd, "/objlim1", true) == 0) {
  779. new Float:X, Float:Y, Float:Z;
  780. new lp=0;
  781. GetPlayerPos(playerid, X, Y, Z);
  782. while(lp != 999) {
  783. CreateObject(1656, X, Y, Z, 0.00, 0.00, 0.00, 1000.0);
  784. Y += 0.25;
  785. lp++;
  786. }
  787. return 1;
  788. }
  789. if(strcmp(cmd, "/kkeys", true) == 0) {
  790. new message[256+1];
  791. format(message, 256, "{FFFFFF}Left Key: {FFFF00}~k~~GO_LEFT~ {FFFFFF}Right Key: {FFFF00}~k~~GO_RIGHT~ {FFFFFF}Fire Key: {FFFF00}~k~~PED_FIREWEAPON~");
  792. SendClientMessage(playerid, 0xFFFFFFFF, message);
  793. return 1;
  794. }
  795. if(strcmp(cmd, "/timeddlg", true) == 0) {
  796. testlbplayer = playerid;
  797. SetTimer("ShowTestDialog",5000,0);
  798. return 1;
  799. }
  800. if(strcmp(cmd, "/editattach",true) == 0) {
  801. if(!IsPlayerAttachedObjectSlotUsed(playerid, 0)) {
  802. SetPlayerAttachedObject(playerid,0,-4006,2); // red sunglasses to head bone
  803. }
  804. SendClientMessage(playerid, 0xFFFFFFFF, "Hint: Use {FFFF00}~k~~PED_SPRINT~{FFFFFF} to look around.");
  805. EditAttachedObject(playerid, 0);
  806. return 1;
  807. }
  808. if(strcmp(cmd, "/editobject",true) == 0) {
  809. if(edit_objectid == INVALID_OBJECT_ID) {
  810. new Float:X, Float:Y, Float:Z;
  811. GetPlayerPos(playerid, X, Y, Z);
  812. edit_objectid = CreateObject(1656,X+1.0,Y+1.0,Z+0.5,0.0,0.0,0.0,200.0);
  813. }
  814. SendClientMessage(playerid, 0xFFFFFFFF, "Hint: Use {FFFF00}~k~~PED_SPRINT~{FFFFFF} to look around.");
  815. EditObject(playerid, edit_objectid);
  816. return 1;
  817. }
  818. if(strcmp(cmd, "/selobj",true) == 0) {
  819. SendClientMessage(playerid, 0xFFFFFFFF, "Hint: Use {FFFF00}~k~~PED_SPRINT~{FFFFFF} to look around.");
  820. SelectObject(playerid);
  821. return 1;
  822. }
  823. if(strcmp(cmd, "/canceledit",true) == 0) {
  824. CancelEdit(playerid);
  825. return 1;
  826. }
  827. if(strcmp(cmd, "/editpobject",true) == 0) {
  828. if(edit_objectid == INVALID_OBJECT_ID) {
  829. new Float:X, Float:Y, Float:Z;
  830. GetPlayerPos(playerid, X, Y, Z);
  831. edit_objectid = CreatePlayerObject(playerid,19522,X+1.0,Y+1.0,Z+0.5,0.0,0.0,0.0,200.0);
  832. }
  833. SendClientMessage(playerid, 0xFFFFFFFF, "Hint: Use {FFFF00}~k~~PED_SPRINT~{FFFFFF} to look around.");
  834. EditPlayerObject(playerid, edit_objectid);
  835. return 1;
  836. }
  837. if(strcmp(cmd, "/cam_on_obj",true) == 0) {
  838. new Float:X, Float:Y, Float:Z;
  839. GetPlayerPos(playerid, X, Y, Z);
  840. if(edit_objectid == INVALID_OBJECT_ID) {
  841. edit_objectid = CreateObject(19320,X+1.0,Y+1.0,Z+0.5,0.0,0.0,0.0,200.0);
  842. }
  843. //TogglePlayerSpectating(playerid, 1);
  844. AttachCameraToObject(playerid, edit_objectid);
  845. MoveObject(edit_objectid, X, Y + 2000.0, Z + 400.0, 20.0);
  846. return 1;
  847. }
  848. if(strcmp(cmd, "/cam_on_train",true) == 0) {
  849. new Float:X, Float:Y, Float:Z;
  850. GetPlayerPos(playerid, X, Y, Z);
  851. if(edit_objectid == INVALID_OBJECT_ID) {
  852. edit_objectid = CreateObject(19320,X+1.0,Y+1.0,Z+0.5,0.0,0.0,0.0,200.0);
  853. }
  854. TogglePlayerSpectating(playerid, 1);
  855. AttachObjectToVehicle(edit_objectid, 9, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0);
  856. PlayerSpectateVehicle(playerid, 9);
  857. AttachCameraToObject(playerid, edit_objectid);
  858. return 1;
  859. }
  860. if(strcmp(cmd, "/cam_interp",true) == 0) {
  861. new Float:X, Float:Y, Float:Z;
  862. GetPlayerPos(playerid, X, Y, Z);
  863. InterpolateCameraPos(playerid, X, Y, Z, X + 100.0, Y + 100.0, Z + 20.0, 10000);
  864. return 1;
  865. }
  866. if(strcmp(cmd, "/cam_interp_look",true) == 0) {
  867. new Float:X, Float:Y, Float:Z;
  868. GetPlayerPos(playerid, X, Y, Z);
  869. InterpolateCameraPos(playerid, X, Y, Z, X + 100.0, Y + 100.0, Z + 20.0, 10000);
  870. InterpolateCameraLookAt(playerid, X, Y, Z, 0.0, 0.0, 0.0, 10000);
  871. return 1;
  872. }
  873. if(strcmp(cmd, "/cam_behind",true) == 0) {
  874. SetCameraBehindPlayer(playerid);
  875. return 1;
  876. }
  877. if(strcmp(cmd, "/respawn_veh",true) == 0) {
  878. new tmp[256];
  879. tmp = strtok(cmdtext,idx);
  880. SetVehicleToRespawn(strval(tmp));
  881. return 1;
  882. }
  883. if(strcmp(cmd, "/crplain", true) == 0) {
  884. CreateObject(19003, 416.54, 1655.75, 700.00, 0.00, 0.00, 0.00, 200.0);
  885. CreateObject(4561, -26.98, 1639.33, 98.03, 0.00, 0.00, 0.00, 1000.0);
  886. return 1;
  887. }
  888. if(strcmp(cmd, "/testplain", true) == 0) {
  889. CreateObject(19003, 416.54, 1655.75, 700.00, 0.00, 0.00, 0.00);
  890. if(GetPlayerVehicleID(playerid)) {
  891. SetVehiclePos(GetPlayerVehicleID(playerid), 416.54, 1655.75, 705.00);
  892. }
  893. else {
  894. SetPlayerPos(playerid, 416.54, 1655.75, 710.00);
  895. }
  896. return 1;
  897. }
  898. if(strcmp(cmd, "/testplain2", true) == 0) {
  899. CreateObject(10766, 168.86, 1686.77, 44.86, 0.00, 0.00, 0.00, 1000.0);
  900. CreateObject(10766, 168.86, 1532.52, 44.86, 0.00, 0.00, 0.00, 1000.0);
  901. if(GetPlayerVehicleID(playerid)) {
  902. SetVehiclePos(GetPlayerVehicleID(playerid), 162.9956, 1606.2555, 55.3197);
  903. }
  904. else {
  905. SetPlayerPos(playerid, 162.9956, 1606.2555, 55.3197);
  906. }
  907. return 1;
  908. }
  909. if(strcmp(cmd, "/clicktd",true) == 0) {
  910. new Text:txtTestText1;
  911. txtTestText1 = TextDrawCreate(320.0, 100.0, "Test Text 1");
  912. TextDrawUseBox(txtTestText1, 1);
  913. TextDrawBoxColor(txtTestText1, 0x00000044);
  914. TextDrawFont(txtTestText1, 3);
  915. TextDrawSetShadow(txtTestText1,0); // no shadow
  916. TextDrawSetOutline(txtTestText1,2); // thickness 1
  917. TextDrawBackgroundColor(txtTestText1,0x000000FF);
  918. TextDrawColor(txtTestText1,0xFFFFFFFF);
  919. TextDrawAlignment(txtTestText1,2); // centered
  920. TextDrawLetterSize(txtTestText1,0.5,1.5);
  921. TextDrawTextSize(txtTestText1, 20.0, 200.0); // reverse width and height for rockstar (only for centered td's)
  922. TextDrawSetSelectable(txtTestText1, 1);
  923. TextDrawShowForPlayer(playerid,txtTestText1);
  924. new Text:txtSprite1;
  925. txtSprite1 = TextDrawCreate(200.0, 220.0, "samaps:map"); // Text is txdfile:texture
  926. TextDrawFont(txtSprite1, 4); // Font ID 4 is the sprite draw font
  927. TextDrawColor(txtSprite1,0xFFFFFFFF);
  928. TextDrawTextSize(txtSprite1,200.0,200.0); // Text size is the Width:Height
  929. TextDrawSetSelectable(txtSprite1, 1);
  930. TextDrawShowForPlayer(playerid,txtSprite1);
  931. SelectTextDraw(playerid, 0x9999BBBB);
  932. return 1;
  933. }
  934. if(strcmp(cmd, "/playertd",true) == 0) {
  935. /*
  936. new PlayerText:PlayerTestText1;
  937. PlayerTestText1 = CreatePlayerTextDraw(playerid, 320.0, 100.0, "Test Text 1");
  938. PlayerTextDrawUseBox(playerid,PlayerTestText1, 1);
  939. PlayerTextDrawBoxColor(playerid,PlayerTestText1, 0x00000044);
  940. PlayerTextDrawFont(playerid,PlayerTestText1, 3);
  941. PlayerTextDrawSetShadow(playerid,PlayerTestText1,0); // no shadow
  942. PlayerTextDrawSetOutline(playerid,PlayerTestText1,2); // thickness 1
  943. PlayerTextDrawBackgroundColor(playerid, PlayerTestText1,0x000000FF);
  944. PlayerTextDrawColor(playerid,PlayerTestText1,0xFFFFFFFF);
  945. //PlayerTextDrawAlignment(playerid,PlayerTestText1,2); // centered
  946. PlayerTextDrawLetterSize(playerid,PlayerTestText1,0.5,1.5);
  947. PlayerTextDrawTextSize(playerid,PlayerTestText1, 50.0, 200.0); // reverse width and height for rockstar (only for centered td's)
  948. PlayerTextDrawSetSelectable(playerid,PlayerTestText1,1);
  949. PlayerTextDrawShow(playerid,PlayerTestText1);*/
  950. //SelectTextDraw(playerid, 0x9999BBBB);
  951. return 1;
  952. }
  953. if(strcmp(cmd, "/canceltd",true) == 0) {
  954. CancelSelectTextDraw(playerid);
  955. return 1;
  956. }
  957. if(strcmp(cmd, "/timed_vd", true) == 0) {
  958. vehicleid_tokill = GetPlayerVehicleID(playerid);
  959. SetTimer("TimedVehicleDeath",3000,0);
  960. return 1;
  961. }
  962. if(strcmp(cmd, "/vmodelsize", true) == 0) {
  963. new Float:X, Float:Y, Float:Z;
  964. new VehicleId = GetPlayerVehicleID(playerid);
  965. new message[256+1];
  966. if(!VehicleId || VehicleId == INVALID_VEHICLE_ID) {
  967. SendClientMessage(playerid, 0xFFFFFFFF, "/vmodelsize : Be in a vehicle to use this command." );
  968. return 1;
  969. }
  970. new VehicleModel = GetVehicleModel(VehicleId);
  971. GetVehicleModelInfo(VehicleModel, VEHICLE_MODEL_INFO_SIZE, X, Y, Z);
  972. format(message, 256, "Vehicle(%d) Size: %.4f, %.4f, %.4f", VehicleModel, X, Y, Z);
  973. SendClientMessage(playerid, 0xFFFFFFFF, message);
  974. return 1;
  975. }
  976. if(strcmp(cmd, "/crptex",true) == 0) {
  977. new lp=0;
  978. new Float:X, Float:Y, Float:Z;
  979. GetPlayerPos(playerid, X, Y, Z);
  980. X+=1.0;
  981. while(lp != 128) {
  982. test_tex_objects[lp] = CreatePlayerObject(playerid,19372,X,Y,Z+0.5,0.0,0.0,0.0,0.0);
  983. //SetPlayerObjectMaterial(playerid, test_tex_objects[lp], 0, 0, "null", "null", 0);
  984. if(lp % 2 == 0) {
  985. SetPlayerObjectMaterial(playerid, test_tex_objects[lp], 0, 19325, "all_walls", "stormdrain3_nt", 0xFF00FF00);
  986. } else {
  987. SetPlayerObjectMaterial(playerid, test_tex_objects[lp], 0, 19371, "all_walls", "stormdrain3_nt", 0xFF551155);
  988. }
  989. X+=2.0;
  990. lp++;
  991. }
  992. }
  993. if(strcmp(cmd, "/crpmix",true) == 0) {
  994. new lp=0;
  995. new Float:X, Float:Y, Float:Z;
  996. GetPlayerPos(playerid, X, Y, Z);
  997. X+=1.0;
  998. new szId[256+1];
  999. while(lp != 128) {
  1000. test_tex_objects[lp] = CreatePlayerObject(playerid,19371,X,Y,Z+0.5,0.0,0.0,0.0,300.0);
  1001. //format(szId, 256, "Text Here: {00FF00}%d", lp);
  1002. //SetPlayerObjectMaterialText(playerid, test_tex_objects[lp], szId, 0, OBJECT_MATERIAL_SIZE_512x512, "Verdana", 60, 1, 0xFF5555FF, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1003. if(lp % 2 == 0) {
  1004. SetPlayerObjectMaterial(playerid, test_tex_objects[lp], 0, 19371, "all_walls", "stormdrain3_nt", 0xFF55AA55);
  1005. } else {
  1006. format(szId, 256, "Text: {00FF00}%d", lp);
  1007. SetPlayerObjectMaterialText(playerid, test_tex_objects[lp], szId, 0, OBJECT_MATERIAL_SIZE_512x256, "Verdana", 60, 1, 0xFF5555FF, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1008. }
  1009. X+=2.0;
  1010. lp++;
  1011. }
  1012. return 1;
  1013. }
  1014. if(strcmp(cmd, "/crptext",true) == 0) {
  1015. new Float:X, Float:Y, Float:Z;
  1016. GetPlayerPos(playerid, X, Y, Z);
  1017. X+=1.0;
  1018. test_tex_objects[0] = CreatePlayerObject(playerid,19479,X,Y,Z+0.5,0.0,0.0,0.0,300.0);
  1019. SetObjectMaterialText(test_tex_objects[0], "Dynamic Update (0)", 0, OBJECT_MATERIAL_SIZE_512x128, "Courier New", 48, 1, 0xFF000000, 0, 0);
  1020. X+=3.0;
  1021. // This is a dynamic update material text
  1022. if(text_update_timer == -1) {
  1023. text_update_timer = SetTimer("UpdateTextTimer", 1000, 1);
  1024. text_update_player = playerid;
  1025. }
  1026. test_tex_objects[1] = CreatePlayerObject(playerid,19479,X,Y,Z+4.0,0.0,0.0,0.0,300.0);
  1027. SetPlayerObjectMaterialText(playerid, test_tex_objects[1], "ABDSJFUEGI\nABDRJCFEGI\n{DDDDDD}Center", 0, OBJECT_MATERIAL_SIZE_512x256, "GTAWEAPON3", 70, 0, 0xFF00FF00, 0xFF444477, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1028. X+=3.0;
  1029. test_tex_objects[2] = CreatePlayerObject(playerid,19480,X,Y,Z+4.0,0.0,0.0,0.0,300.0);
  1030. SetPlayerObjectMaterialText(playerid, test_tex_objects[2], "Blue Text\nVerdana\nAlpha BG\n{DDDDDD}Center", 0, OBJECT_MATERIAL_SIZE_512x256, "Verdana", 60, 1, 0xFF000000, 0xFFFFFFFF, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1031. X+=3.0;
  1032. test_tex_objects[3] = CreatePlayerObject(playerid,19481,X,Y,Z+4.0,0.0,0.0,0.0,300.0);
  1033. SetPlayerObjectMaterialText(playerid, test_tex_objects[3], "Blue Text\nArial\nAlpha BG\n{DDDDDD}Center", 0, OBJECT_MATERIAL_SIZE_512x256, "Arial", 60, 1, 0xFF000000, 0xFFCDD704, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1034. X+=3.0;
  1035. test_tex_objects[4] = CreatePlayerObject(playerid,19482,X,Y,Z+4.0,0.0,0.0,0.0,300.0);
  1036. SetPlayerObjectMaterialText(playerid, test_tex_objects[4], "Blue Text\nVerdana\nAlpha BG\n{DDDDDD}Center", 0, OBJECT_MATERIAL_SIZE_512x256, "Verdana", 60, 1, 0xFF000000, 0xFFCDD704, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1037. X+=3.0;
  1038. test_tex_objects[5] = CreatePlayerObject(playerid,19483,X,Y,Z+4.0,0.0,0.0,0.0,300.0);
  1039. SetPlayerObjectMaterialText(playerid, test_tex_objects[5], "Blue Text\nArial\nAlpha BG\n{DDDDDD}Center", 0, OBJECT_MATERIAL_SIZE_512x256, "Arial", 60, 1, 0xFF000000, 0, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1040. X+=3.0;
  1041. //EditPlayerObject(playerid, test_tex_objects[0]);
  1042. return 1;
  1043. }
  1044. if(strcmp(cmd, "/delptex",true) == 0) {
  1045. new lp=0;
  1046. while(lp != 128) {
  1047. if(IsValidPlayerObject(playerid, test_tex_objects[lp])) {
  1048. DestroyPlayerObject(playerid, test_tex_objects[lp]);
  1049. }
  1050. lp++;
  1051. }
  1052. if(text_update_timer >= 0) {
  1053. KillTimer(text_update_timer);
  1054. text_update_timer = -1;
  1055. }
  1056. return 1;
  1057. }
  1058. // Damian's bed that crashed because material object id and original object id were the same
  1059. if(strcmp(cmd, "/crashbed",true) == 0) {
  1060. new objbed1=0;
  1061. new objbed2=0;
  1062. new Float:X, Float:Y, Float:Z;
  1063. GetPlayerPos(playerid, X, Y, Z);
  1064. // 14446
  1065. //0:18028:cj_bar2:CJ_nastybar_D2:000000;
  1066. //2:18646:matcolours:blue:000fff;
  1067. objbed1 = CreatePlayerObject(playerid,14446,X,Y,Z+0.1,0.0,0.0,0.0,300.0);
  1068. SetPlayerObjectMaterial(playerid, objbed1, 0, 18028, "cj_bar2", "CJ_nastybar_D2", 0xFF000000);
  1069. SetPlayerObjectMaterial(playerid, objbed1, 2, 18646, "matcolours", "blue", 0xFF000fff);
  1070. // 14446
  1071. //0:0:none:none:000000;
  1072. //1:0:none:none:0000ff;
  1073. //2:14446:carter_block:zebra_skin:000000;
  1074. objbed2 = CreatePlayerObject(playerid,14446,X,Y+2.0,Z+0.1,0.0,0.0,0.0,300.0);
  1075. SetPlayerObjectMaterial(playerid, objbed2, 0, 0, "none", "none", 0xFF000000);
  1076. SetPlayerObjectMaterial(playerid, objbed2, 1, 0, "none", "none", 0xFF0000FF);
  1077. //SetPlayerObjectMaterial(playerid, objbed2, 2, 18646, "matcolours", "blue", 0xFFFFFFFF);
  1078. SetPlayerObjectMaterial(playerid, objbed2, 2, 14446, "carter_block", "mp_carter_wall", 0xFFFFFFFF);
  1079. return 1;
  1080. }
  1081. // Damian's house object that is crashing in 0.3x
  1082. if(strcmp(cmd, "/crash_hobj",true) == 0) {
  1083. new objcab=0;
  1084. new Float:X, Float:Y, Float:Z;
  1085. GetPlayerPos(playerid, X, Y, Z);
  1086. //2385
  1087. //;index_id:model_id:txd_name:txd_txt:txd_color(0 if no color);
  1088. //;0:2748:pizza_furn:CJ_WOOD6:0;
  1089. //;1:2748:pizza_furn:CJ_WOOD6:A78D84;
  1090. //;2:2748:pizza_furn:CJ_WOOD6:A78D84;
  1091. objcab = CreatePlayerObject(playerid,2385,X,Y,Z+0.1,0.0,0.0,0.0,0.0);
  1092. SetPlayerObjectMaterial(playerid, objcab, 0, 2748, "pizza_furn", "CJ_WOOD6", 0);
  1093. SetPlayerObjectMaterial(playerid, objcab, 1, 2748, "pizza_furn", "CJ_WOOD6", 0xFFA78D84);
  1094. SetPlayerObjectMaterial(playerid, objcab, 2, 2748, "pizza_furn", "CJ_WOOD6", 0xFFA78D84);
  1095. /*
  1096. SetPlayerObjectMaterial(playerid, objcab, 0, -1, "none", "none", 0xFF00AA00);
  1097. SetPlayerObjectMaterial(playerid, objcab, 1, -1, "none", "none", 0xFF00AA00);
  1098. SetPlayerObjectMaterial(playerid, objcab, 2, -1, "none", "none", 0xFF00AA00);*/
  1099. return 1;
  1100. }
  1101. if(strcmp(cmd, "/kickmessage", true) == 0) {
  1102. KickWithMessage(playerid, "Bye!");
  1103. return 1;
  1104. }
  1105. if(strcmp(cmd, "/animindex", true) == 0) {
  1106. new msg[256+1];
  1107. new animlib[64+1];
  1108. new animname[64+1];
  1109. new tmp[256+1];
  1110. tmp = strtok(cmdtext,idx);
  1111. GetAnimationName(strval(tmp), animlib, 64, animname, 64);
  1112. format(msg,sizeof(msg),"AnimIndex: %d is %s:%s", strval(tmp), animlib, animname);
  1113. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1114. return 1;
  1115. }
  1116. if(strcmp(cmd, "/weapdata", true) == 0) {
  1117. new msg[256+1];
  1118. new x=0;
  1119. new weaponret;
  1120. new ammoret;
  1121. while(x!=13) {
  1122. GetPlayerWeaponData(playerid, x, weaponret, ammoret);
  1123. format(msg,sizeof(msg),"WeapSlot(%d) %d:%d", x, weaponret, ammoret);
  1124. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1125. x++;
  1126. }
  1127. return 1;
  1128. }
  1129. if(strcmp(cmd, "/explosion", true) == 0) {
  1130. new tmp[256];
  1131. tmp = strtok(cmdtext,idx);
  1132. new Float:X, Float:Y, Float:Z;
  1133. GetPlayerPos(playerid, X, Y, Z);
  1134. CreateExplosionEx(X+10.0, Y+10.0, Z+10.0, 1, 2.0, strval(tmp));
  1135. return 1;
  1136. }
  1137. if(strcmp(cmd, "/flatbedcontainer",true) == 0) {
  1138. new create_flatbed = SpawnVehicle_InfrontOfPlayer(playerid, 578, -1, -1);
  1139. new obj = CreateObject(19321,0.0,0.0,0.0,0.0,0.0,0.0);
  1140. AttachObjectToVehicle(obj,create_flatbed,-0.0165,-2.0660,1.2442,0.0,0.0,0.0);
  1141. return 1;
  1142. }
  1143. if(strcmp(cmd, "/disablevcol",true) == 0) {
  1144. DisableRemoteVehicleCollisions(playerid, 1);
  1145. return 1;
  1146. }
  1147. if(strcmp(cmd, "/enablevcol",true) == 0) {
  1148. DisableRemoteVehicleCollisions(playerid, 0);
  1149. return 1;
  1150. }
  1151. if(strcmp(cmd, "/disablecamtarget",true) == 0) {
  1152. EnablePlayerCameraTarget(playerid, 0);
  1153. return 1;
  1154. }
  1155. if(strcmp(cmd, "/enablecamtarget",true) == 0) {
  1156. EnablePlayerCameraTarget(playerid, 1);
  1157. return 1;
  1158. }
  1159. if(strcmp(cmd, "/poolsize", true) == 0) {
  1160. new msg[256+1];
  1161. new HigestPlayerId = GetPlayerPoolSize();
  1162. new HigestVehicleId = GetVehiclePoolSize();
  1163. format(msg,sizeof(msg),"PlayerPoolSize: %d", HigestPlayerId);
  1164. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1165. format(msg,sizeof(msg),"VehiclePoolSize: %d", HigestVehicleId);
  1166. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1167. return 1;
  1168. }
  1169. if(strcmp(cmd, "/sirenstate", true ) == 0)
  1170. {
  1171. if( GetPlayerVehicleID(playerid) && GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID &&
  1172. GetVehicleParamsSirenState(GetPlayerVehicleID(playerid)) == VEHICLE_PARAMS_ON )
  1173. {
  1174. SendClientMessage(playerid, 0xFFFFFFFF, "Siren is ON");
  1175. }
  1176. else {
  1177. SendClientMessage(playerid, 0xFFFFFFFF, "Siren is OFF");
  1178. }
  1179. return 1;
  1180. }
  1181. if(strcmp(cmd, "/opencardoors", true ) == 0)
  1182. {
  1183. if(GetPlayerVehicleID(playerid) && GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
  1184. {
  1185. SetVehicleParamsCarDoors(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON);
  1186. }
  1187. /*
  1188. if(GetPlayerCameraTargetVehicle(playerid) != INVALID_VEHICLE_ID)
  1189. {
  1190. SetVehicleParamsCarDoors(GetPlayerCameraTargetVehicle(playerid), VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON);
  1191. }*/
  1192. return 1;
  1193. }
  1194. if(strcmp(cmd, "/closecardoors", true ) == 0)
  1195. {
  1196. if(GetPlayerVehicleID(playerid) && GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
  1197. {
  1198. SetVehicleParamsCarDoors(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF);
  1199. }
  1200. /*
  1201. if(GetPlayerCameraTargetVehicle(playerid) != INVALID_VEHICLE_ID)
  1202. {
  1203. SetVehicleParamsCarDoors(GetPlayerCameraTargetVehicle(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF);
  1204. }*/
  1205. return 1;
  1206. }
  1207. if(strcmp(cmd, "/opencarwindows", true ) == 0)
  1208. {
  1209. if(GetPlayerVehicleID(playerid) && GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
  1210. {
  1211. SetVehicleParamsCarWindows(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF);
  1212. }
  1213. return 1;
  1214. }
  1215. if(strcmp(cmd, "/closecarwindows", true ) == 0)
  1216. {
  1217. if(GetPlayerVehicleID(playerid) && GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
  1218. {
  1219. SetVehicleParamsCarWindows(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON);
  1220. }
  1221. return 1;
  1222. }
  1223. if(strcmp(cmd, "/spritetest", true ) == 0)
  1224. {
  1225. txtSpriteTest[0] = TextDrawCreate(100.0, 100.0, "ld_grav:timer"); // Text is txdfile:texture
  1226. TextDrawFont(txtSpriteTest[0], 4); // Font ID 4 is the sprite draw font
  1227. TextDrawColor(txtSpriteTest[0],0xFFFFFFFF);
  1228. TextDrawTextSize(txtSpriteTest[0],100.0,100.0); // Text size is the Width:Height
  1229. TextDrawShowForPlayer(playerid,txtSpriteTest[0]);
  1230. txtSpriteTest[1] = TextDrawCreate(200.0, 100.0, "ld_grav:bee2"); // Text is txdfile:texture
  1231. TextDrawFont(txtSpriteTest[1], 4); // Font ID 4 is the sprite draw font
  1232. TextDrawColor(txtSpriteTest[1],0xFFFFFFFF);
  1233. TextDrawTextSize(txtSpriteTest[1],100.0,100.0); // Text size is the Width:Height
  1234. TextDrawShowForPlayer(playerid,txtSpriteTest[1]);
  1235. txtSpriteTest[2] = TextDrawCreate(100.0, 200.0, "ld_slot:r_69"); // Text is txdfile:texture
  1236. TextDrawFont(txtSpriteTest[2], 4); // Font ID 4 is the sprite draw font
  1237. TextDrawColor(txtSpriteTest[2],0xFFFFFFFF);
  1238. TextDrawTextSize(txtSpriteTest[2],100.0,100.0); // Text size is the Width:Height
  1239. TextDrawShowForPlayer(playerid,txtSpriteTest[2]);
  1240. txtSpriteTest[3] = TextDrawCreate(200.0, 200.0, "ld_slot:cherry"); // Text is txdfile:texture
  1241. TextDrawFont(txtSpriteTest[3], 4); // Font ID 4 is the sprite draw font
  1242. TextDrawColor(txtSpriteTest[3],0xFFFFFFFF);
  1243. TextDrawTextSize(txtSpriteTest[3],100.0,100.0); // Text size is the Width:Height
  1244. TextDrawShowForPlayer(playerid,txtSpriteTest[3]);
  1245. txtSpriteTest[4] = TextDrawCreate(100.0, 300.0, "ld_card:cd9d"); // Text is txdfile:texture
  1246. TextDrawFont(txtSpriteTest[4], 4); // Font ID 4 is the sprite draw font
  1247. TextDrawColor(txtSpriteTest[4],0xFFFFFFFF);
  1248. TextDrawTextSize(txtSpriteTest[4],100.0,100.0); // Text size is the Width:Height
  1249. TextDrawShowForPlayer(playerid,txtSpriteTest[4]);
  1250. return 1;
  1251. }
  1252. if(strcmp(cmd, "/delspritetest", true ) == 0)
  1253. {
  1254. TextDrawDestroy(txtSpriteTest[0]);
  1255. TextDrawDestroy(txtSpriteTest[1]);
  1256. TextDrawDestroy(txtSpriteTest[2]);
  1257. TextDrawDestroy(txtSpriteTest[3]);
  1258. TextDrawDestroy(txtSpriteTest[4]);
  1259. return 1;
  1260. }
  1261. if(strcmp(cmd, "/removeallbuilding", true ) == 0)
  1262. {
  1263. RemoveBuildingForPlayer(playerid, -1, 0.0, 0.0, 0.0, 6000.0);
  1264. return 1;
  1265. }
  1266. if(strcmp(cmd, "/actoratme", true ) == 0)
  1267. {
  1268. new Float:X, Float:Y, Float:Z, Float:fang;
  1269. GetPlayerPos(playerid, X, Y, Z);
  1270. GetPlayerFacingAngle(playerid, fang);
  1271. test_actor_id = CreateActor(25000, X+1.0, Y+1.0, Z+0.5, fang);
  1272. //SetActorInvulnerable(test_actor_id);
  1273. SetActorVirtualWorld(test_actor_id, GetPlayerVirtualWorld(playerid));
  1274. return 1;
  1275. }
  1276. if(strcmp(cmd, "/actorground", true) == 0) {
  1277. ApplyActorAnimation(test_actor_id, "BEACH", "ParkSit_M_loop", 4.0, 1, 1, 1, 1, -1);
  1278. return 1;
  1279. }
  1280. if(strcmp(cmd, "/actorclear", true) == 0) {
  1281. ClearActorAnimations(test_actor_id);
  1282. return 1;
  1283. }
  1284. if(strcmp(cmd, "/actorface", true) == 0) {
  1285. new Float:fang;
  1286. GetPlayerFacingAngle(playerid, fang);
  1287. SetActorFacingAngle(test_actor_id, fang);
  1288. return 1;
  1289. }
  1290. if(strcmp(cmd, "/actorpos", true) == 0) {
  1291. new Float:X, Float:Y, Float:Z;
  1292. GetPlayerPos(playerid, X, Y, Z);
  1293. SetActorPos(test_actor_id, X+1.0, Y+1.0, Z);
  1294. return 1;
  1295. }
  1296. return 0;
  1297. }
  1298. //-------------------------------------------
  1299. forward KickPublic(playerid);
  1300. public KickPublic(playerid) { Kick(playerid); }
  1301. //-------------------------------------------
  1302. KickWithMessage(playerid, message[])
  1303. {
  1304. SendClientMessage(playerid, 0xFF4444FF, message);
  1305. SetTimerEx("KickPublic", 1000, 0, "d", playerid);
  1306. }
  1307. //-------------------------------------------
  1308. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  1309. {
  1310. new msg[256+1];
  1311. format(msg,sizeof(msg),"(TextDraw) You selected: %d", int:clickedid);
  1312. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1313. }
  1314. //-------------------------------------------
  1315. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  1316. {
  1317. new msg[256+1];
  1318. format(msg,sizeof(msg),"(PlayerTextDraw) You selected: %d", int:playertextid);
  1319. SendClientMessage(playerid, 0xFFFFFFFF, msg);
  1320. }
  1321. //-------------------------------------------
  1322. // Sends a list of all PVars to the player as
  1323. // client messages.
  1324. SendPVarListToPlayer(playerid)
  1325. {
  1326. new ubound = GetPVarsUpperIndex(playerid);
  1327. new x=0;
  1328. new name[40+1];
  1329. new line[128+1];
  1330. SendClientMessage(playerid,0xF000F0F0, "---Player Vars List---");
  1331. while(x != ubound) {
  1332. if(GetPVarNameAtIndex(playerid,x,name,40)) {
  1333. if(Util_GetPVarEntryAsString(playerid,name,line,128)) {
  1334. SendClientMessage(playerid,0xFFFFFFFF,line);
  1335. }
  1336. }
  1337. x++;
  1338. }
  1339. }
  1340. //-------------------------------------------
  1341. // return PVar entry as 'name'='value' string
  1342. stock Util_GetPVarEntryAsString(playerid, name[], ret[], len)
  1343. {
  1344. new Float:fValue;
  1345. new iValue;
  1346. new szStrValue[1024+1]; // this might require greater size if you store large strings in PVars
  1347. new type;
  1348. ret[0] = EOS;
  1349. type = GetPVarType(playerid, name);
  1350. if(type != PLAYER_VARTYPE_NONE) {
  1351. switch(type)
  1352. {
  1353. case PLAYER_VARTYPE_STRING:
  1354. {
  1355. GetPVarString(playerid,name,szStrValue,1024);
  1356. format(ret,len,"%s=%s",name,szStrValue);
  1357. }
  1358. case PLAYER_VARTYPE_INT:
  1359. {
  1360. iValue = GetPVarInt(playerid,name);
  1361. format(ret,len,"%s=%d",name,iValue);
  1362. }
  1363. case PLAYER_VARTYPE_FLOAT:
  1364. {
  1365. fValue = GetPVarFloat(playerid,name);
  1366. format(ret,len,"%s=%f",name,fValue);
  1367. }
  1368. }
  1369. return 1;
  1370. }
  1371. return 0;
  1372. }
  1373. //-------------------------------------------
  1374. // Fills the provided string with all the player's PVars
  1375. // seperated by the specified 'delimiter'
  1376. stock Util_CreatePVarList(playerid, retstr[], len, delimiter[])
  1377. {
  1378. if(!IsPlayerConnected(playerid)) return 0;
  1379. new x=0;
  1380. new remaining_string=len;
  1381. new line[2048+1];
  1382. new name[40+1];
  1383. retstr[0] = EOS;
  1384. new ubound = GetPVarsUpperIndex(playerid);
  1385. while(x != ubound) {
  1386. if(GetPVarNameAtIndex(playerid,x,name,40)) {
  1387. if(Util_GetPVarEntryAsString(playerid,name,line,2048)) {
  1388. // if there is enough space, concat this line to the return string
  1389. if(remaining_string > (strlen(line) + strlen(delimiter))) {
  1390. strcat(retstr,line);
  1391. strcat(retstr,delimiter);
  1392. remaining_string -= (strlen(line) + strlen(delimiter));
  1393. }
  1394. }
  1395. }
  1396. x++;
  1397. }
  1398. return 1;
  1399. }
  1400. //-------------------------------------------
  1401. // Test reapplying vehicle mods on respawn
  1402. public OnVehicleSpawn(vehicleid)
  1403. {
  1404. if(vehicleid == savanna) {
  1405. AddVehicleComponent(savanna,1189); //Front Bumper
  1406. AddVehicleComponent(savanna,1187); //Rear Bumper
  1407. AddVehicleComponent(savanna,1129); //Exhaust
  1408. AddVehicleComponent(savanna,1102); //Left Side Skirt
  1409. AddVehicleComponent(savanna,1133); //Right Side Skirt
  1410. AddVehicleComponent(savanna,1078); //Wheels
  1411. AddVehicleComponent(savanna,1010); //Nitro 10x
  1412. AddVehicleComponent(savanna,1087); //Hydraulics
  1413. }
  1414. else if(vehicleid == blade) {
  1415. AddVehicleComponent(blade,1182); //Front Bumper
  1416. AddVehicleComponent(blade,1184); //Rear Bumper
  1417. AddVehicleComponent(blade,1104); //Exhaust
  1418. AddVehicleComponent(blade,1108); //Left Side Skirt
  1419. AddVehicleComponent(blade,1107); //Right Side Skirt
  1420. AddVehicleComponent(blade,1078); //Wheels
  1421. AddVehicleComponent(blade,1010); //Nitro 10x
  1422. AddVehicleComponent(blade,1087); //Hydraulics
  1423. }
  1424. }
  1425. //-------------------------------------------
  1426. // Example of handling dialog responses.
  1427. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1428. {
  1429. if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  1430. if(dialogid == 0) { // Our example msgbox
  1431. if(response) {
  1432. SendClientMessage(playerid,0xFFFFFFFF,"You selected OK");
  1433. } else {
  1434. SendClientMessage(playerid,0xFFFFFFFF,"You selected Cancel");
  1435. }
  1436. return 1; // we processed this. no need for other filterscripts to process it.
  1437. }
  1438. if(dialogid == 1) { // Our example inputbox
  1439. if(response) {
  1440. new message[256+1];
  1441. format(message, 256, "You replied: %s", inputtext);
  1442. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1443. } else {
  1444. SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
  1445. }
  1446. return 1; // we processed it.
  1447. }
  1448. if(dialogid == 2) { // Our example listbox
  1449. if(response) {
  1450. new message[256+1];
  1451. format(message, 256, "You selected item %d:", listitem);
  1452. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1453. SendClientMessage(playerid, 0xFFFFFFFF, inputtext);
  1454. } else {
  1455. SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
  1456. }
  1457. return 1; // we processed it.
  1458. }
  1459. return 0; // we didn't handle anything.
  1460. }
  1461. //-------------------------------------------
  1462. // Example of handling scoreboard click.
  1463. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1464. {
  1465. if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  1466. new message[256+1];
  1467. format(message, 256, "You clicked on player %d", clickedplayerid);
  1468. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1469. return 1;
  1470. }
  1471. //-------------------------------------------
  1472. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  1473. {
  1474. new message[256+1];
  1475. format(message, 256, "You place marker at point: %f %f %f", fX, fY, fZ);
  1476. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1477. SetPlayerPos(playerid, fX, fY, fZ);
  1478. }
  1479. //-------------------------------------------
  1480. /*
  1481. public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid,
  1482. Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ,
  1483. Float:fRotX, Float:fRotY, Float:fRotZ,
  1484. Float:fScaleX, Float:fScaleY, Float:fScaleZ )
  1485. {
  1486. SendClientMessage(playerid, 0xFFFFFFFF, "You finished editing an attached object");
  1487. SetPlayerAttachedObject(playerid,index,modelid,boneid,fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
  1488. return 1;
  1489. }*/
  1490. //-------------------------------------------
  1491. public OnPlayerEditObject( playerid, playerobject, objectid, response,
  1492. Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ )
  1493. {
  1494. if(!playerobject) {
  1495. if(!IsValidObject(objectid)) return;
  1496. MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
  1497. } else {
  1498. if(!IsValidPlayerObject(playerid, objectid)) return;
  1499. MovePlayerObject(playerid, objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
  1500. }
  1501. if(response == EDIT_RESPONSE_FINAL || response == EDIT_RESPONSE_CANCEL) {
  1502. // put them back in selection mode after they click save
  1503. SelectObject(playerid);
  1504. }
  1505. }
  1506. //-------------------------------------------
  1507. public OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ)
  1508. {
  1509. new message[256+1];
  1510. if(type == SELECT_OBJECT_GLOBAL_OBJECT) {
  1511. if(!IsValidObject(objectid)) return 0;
  1512. format(message,sizeof(message),"(Object) You selected: %d model: %d Pos: %.4f,%.4f,%.4f", objectid, modelid, fX, fY, fZ);
  1513. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1514. EditObject(playerid, objectid);
  1515. return 1;
  1516. }
  1517. if(type == SELECT_OBJECT_PLAYER_OBJECT) {
  1518. if(!IsValidPlayerObject(playerid, objectid)) return 0;
  1519. format(message,sizeof(message),"(Player Object) You selected: %d model: %d Pos: %.4f,%.4f,%.4f", objectid, modelid, fX, fY, fZ);
  1520. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1521. EditPlayerObject(playerid, objectid);
  1522. return 1;
  1523. }
  1524. return 0;
  1525. }
  1526. //-------------------------------------------
  1527. /*
  1528. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  1529. {
  1530. new message[256+1];
  1531. new weaponname[64+1];
  1532. new File:file = fopen("playershots.txt",io_append);
  1533. GetWeaponName(weaponid, weaponname, 64);
  1534. if(hittype == BULLET_HIT_TYPE_PLAYER) {
  1535. format(message,256,"Shooter(%d) hit Player(%d) PlayerAnim: %d Using: %s [%.2f, %.2f, %.2f]\r\n", playerid, hitid,
  1536. GetPlayerAnimationIndex(hitid), weaponname, fX, fY, fZ);
  1537. }
  1538. else if(hittype == BULLET_HIT_TYPE_VEHICLE) {
  1539. format(message,256,"Shooter(%d) hit Vehicle(%d) Using: %s [%.2f, %.2f, %.2f]\r\n",playerid, hitid, weaponname, fX, fY, fZ);
  1540. }
  1541. else if(hittype == BULLET_HIT_TYPE_NONE) {
  1542. format(message,256,"Shooter(%d) hit World Using: %s [%.2f, %.2f, %.2f]\r\n",playerid,weaponname,fX,fY,fZ);
  1543. }
  1544. else {
  1545. format(message,256,"Shooter(%d) hit Object(%d) Using: %s [%.2f, %.2f, %.2f]\r\n",playerid, hitid, weaponname, fX, fY, fZ);
  1546. }
  1547. fwrite(file, message);
  1548. fclose(file);
  1549. //new LastVectors[128+1];
  1550. //new Float:OriginX, Float:OriginY, Float:OriginZ;
  1551. //new Float:HitX, Float:HitY, Float:HitZ;
  1552. //GetPlayerLastShotVectors(playerid, OriginX, OriginY, OriginZ, HitX, HitY, HitZ);
  1553. //format(LastVectors, 128, "Last Vectors: [%.2f, %.2f, %.2f] [%.2f, %.2f, %.2f]", OriginX, OriginY, OriginZ, HitX, HitY, HitZ);
  1554. //SendClientMessage(playerid, 0xFFFFFFFF, LastVectors);
  1555. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1556. return 1;
  1557. }*/
  1558. //-------------------------------------------
  1559. /*
  1560. new LastShotTime = 0;
  1561. new LastShotWeapon = 0;
  1562. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  1563. {
  1564. new message[128+1];
  1565. if(!LastShotTime) {
  1566. LastShotTime = GetTickCount();
  1567. return 1;
  1568. }
  1569. if(weaponid == LastShotWeapon) {
  1570. format(message, 128, "WeaponId: %d LastShotDelta: %d", weaponid, GetTickCount() - LastShotTime);
  1571. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1572. printf("%s", message);
  1573. }
  1574. LastShotWeapon = weaponid;
  1575. LastShotTime = GetTickCount();
  1576. return 1;
  1577. }*/
  1578. //-------------------------------------------
  1579. // Example of TakeDamage
  1580. /*
  1581. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
  1582. {
  1583. new File:file = fopen("playershots.txt",io_append);
  1584. new message[256+1];
  1585. new weapname[64+1];
  1586. if(issuerid != INVALID_PLAYER_ID) {
  1587. GetWeaponName(weaponid, weapname, 64);
  1588. format(message, 256, "PlayerTakeDamage(%d) from Player(%d) (%f) weapon: (%s) bodypart: %d\r\n", playerid, issuerid, amount, weapname, bodypart);
  1589. SendClientMessageToAll(0xFFFFFFFF, message);
  1590. }
  1591. else {
  1592. format(message, 256, "PlayerTakeDamage(%d) (%f) from: %d\r\n", playerid, amount, weaponid);
  1593. SendClientMessageToAll(0xFFFFFFFF, message);
  1594. }
  1595. fwrite(file, message);
  1596. fclose(file);
  1597. }*/
  1598. //-------------------------------------------
  1599. // Example of GiveDamage
  1600. /*
  1601. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
  1602. {
  1603. new File:file = fopen("playershots.txt",io_append);
  1604. new message[256+1];
  1605. new weapname[64+1];
  1606. GetWeaponName(weaponid, weapname, 64);
  1607. format(message, 256, "PlayerGiveDamage(%d) to Player(%d) (%f) weapon: (%s) bodypart: %d\r\n", playerid, damagedid, amount, weapname, bodypart);
  1608. fwrite(file, message);
  1609. fclose(file);
  1610. SendClientMessageToAll(0xFFFFFFFF, message);
  1611. }*/
  1612. //-------------------------------------------
  1613. /*
  1614. public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart)
  1615. {
  1616. new message[256+1];
  1617. new weapname[64+1];
  1618. GetWeaponName(weaponid, weapname, 64);
  1619. format(message, 256, "PlayerGiveDamageActor(%d) to Actor(%d) (%f) weapon: (%s) bodypart: %d\r\n", playerid, damaged_actorid, amount, weapname, bodypart);
  1620. SendClientMessageToAll(0xFFFFFFFF, message);
  1621. if(IsValidActor(damaged_actorid)) {
  1622. new Float:fActorHealth;
  1623. GetActorHealth(damaged_actorid, fActorHealth);
  1624. fActorHealth -= amount;
  1625. if(fActorHealth < 0.0) fActorHealth = 0.0;
  1626. SetActorHealth(damaged_actorid, fActorHealth);
  1627. }
  1628. }
  1629. */
  1630. //-------------------------------------------
  1631. /*
  1632. public OnPlayerDeath(playerid, killerid, reason)
  1633. {
  1634. SendDeathMessage(killerid, playerid, reason);
  1635. return 1;
  1636. }*/
  1637. //-------------------------------------------
  1638. /*
  1639. public OnEnterExitModShop(playerid, enterexit, interiorid)
  1640. {
  1641. new message[256+1];
  1642. if(enterexit) {
  1643. format(message, 256, "You entered modshop at interior %d", interiorid);
  1644. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1645. } else {
  1646. format(message, 256, "You exited the modshop");
  1647. SendClientMessage(playerid, 0xFFFFFFFF, message);
  1648. }
  1649. return 1;
  1650. }
  1651. */
  1652. //-------------------------------------------
  1653. /*
  1654. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  1655. {
  1656. new panel, doors, lights, tires;
  1657. new update_msg[128+1];
  1658. if(!IsPlayerAdmin(playerid)) return 0;
  1659. GetVehicleDamageStatus(vehicleid,panel,doors,lights,tires);
  1660. format(update_msg,128,"VehicleDamage[ID:%d PN:0x%x DR:0x%x LT:0x%x TR:0x%x]",vehicleid,panel,doors,lights,tires);
  1661. SendClientMessage(playerid,0xFFFFFFFF,update_msg);
  1662. return 1;
  1663. }*/
  1664. //-------------------------------------------
  1665. /*
  1666. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z)
  1667. {
  1668. new update_msg[128+1];
  1669. new Float:X, Float:Y, Float:Z;
  1670. //if(!IsPlayerAdmin(playerid)) return 0;
  1671. GetVehiclePos(vehicleid, X, Y, Z);
  1672. format(update_msg,128,"NoDriverVehicleUpdate(playerid=%d vehicle=%d passenger=%d cur_pos: %.2f %.2f %.2f new_pos: %.2f %.2f %.2f)",
  1673. playerid, vehicleid, passenger_seat, X, Y, Z, new_x, new_y, new_z);
  1674. SendClientMessageToAll(0xFFFFFFFF,update_msg);
  1675. return 1;
  1676. }*/
  1677. //-------------------------------------------