1
0

test_cmds.pwn 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. //-------------------------------------------------
  2. //
  3. // SA-MP 0.3 commands for testing
  4. // Don't load this script on a public server
  5. // it could break your existing scripts.
  6. // Kye 2009
  7. //
  8. //-------------------------------------------------
  9. #pragma tabsize 0
  10. #include <a_samp>
  11. #include <core>
  12. #include <float>
  13. #include "../include/gl_common.inc"
  14. new Text3D:textid;
  15. new PlayerText3D:playertextid;
  16. new savanna=0;
  17. new blade=0;
  18. //-------------------------------------------------
  19. public OnPlayerCommandText(playerid, cmdtext[])
  20. {
  21. new cmd[256];
  22. new idx;
  23. cmd = strtok(cmdtext, idx);
  24. if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  25. if(strcmp(cmd, "/player2v", true) == 0)
  26. {
  27. new tmp[256];
  28. new tmp2[256];
  29. tmp = strtok(cmdtext,idx);
  30. tmp2 = strtok(cmdtext,idx);
  31. PutPlayerInVehicle(strval(tmp),strval(tmp2),0);
  32. return 1;
  33. }
  34. if(strcmp( cmd, "/vehicle", true ) == 0 )
  35. {
  36. new Float:X, Float:Y, Float:Z;
  37. new tmp[256];
  38. new created_vehicle_id;
  39. tmp = strtok( cmdtext, idx );
  40. GetPlayerPos( playerid, X, Y, Z );
  41. created_vehicle_id = CreateVehicle( strval(tmp), X+2, Y+2, Z, 0, 0, 0, -1 );
  42. new msg[256];
  43. format(msg,256,"Created vehicle: %d",created_vehicle_id);
  44. SendClientMessage(playerid,0xAAAAAAAA,msg);
  45. return 1;
  46. }
  47. if(strcmp( cmd, "/dvehicle", true ) == 0 )
  48. {
  49. new tmp[256];
  50. tmp = strtok( cmdtext, idx );
  51. DestroyVehicle( strval(tmp) );
  52. new msg[256];
  53. format(msg,256,"Destroyed vehicle: %d",strval(tmp));
  54. SendClientMessage(playerid,0xAAAAAAAA,msg);
  55. return 1;
  56. }
  57. if ( strcmp( cmd, "/goto", true ) == 0 )
  58. {
  59. new tmp[256];
  60. tmp = strtok( cmdtext, idx );
  61. if ( !strlen( tmp ) ) { return 1; }
  62. new Float:X, Float:Y, Float:Z;
  63. if ( GetPlayerVehicleID( playerid ) )
  64. {
  65. GetPlayerPos( strval(tmp), X, Y, Z );
  66. SetVehiclePos( GetPlayerVehicleID(playerid), X+2, Y+2, Z );
  67. } else {
  68. GetPlayerPos( strval(tmp), X, Y, Z );
  69. SetPlayerPos( playerid, X+2, Y+2, Z );
  70. }
  71. return 1;
  72. }
  73. if ( strcmp( cmd, "/bring", true ) == 0 )
  74. {
  75. new tmp[256];
  76. tmp = strtok( cmdtext, idx );
  77. if ( !strlen( tmp ) ) { return 1; }
  78. new Float:X, Float:Y, Float:Z;
  79. if ( GetPlayerVehicleID( strval(tmp) ) )
  80. {
  81. GetPlayerPos( playerid, X, Y, Z );
  82. SetVehiclePos( GetPlayerVehicleID(strval(tmp)), X+2, Y+2, Z );
  83. } else {
  84. GetPlayerPos( playerid, X, Y, Z );
  85. SetPlayerPos( strval(tmp), X+2, Y+2, Z );
  86. }
  87. return 1;
  88. }
  89. if (strcmp(cmd, "/me2v", true) == 0)
  90. {
  91. new tmp[256];
  92. tmp = strtok(cmdtext,idx);
  93. PutPlayerInVehicle(playerid,strval(tmp),0);
  94. return 1;
  95. }
  96. if (strcmp(cmd, "/tpzero", true) == 0)
  97. {
  98. new vid = GetPlayerVehicleID(playerid);
  99. if(vid != INVALID_VEHICLE_ID) {
  100. SetVehiclePos(vid,0.0,0.0,10.0);
  101. }
  102. return 1;
  103. }
  104. if(strcmp(cmd, "/myvw", true) == 0)
  105. {
  106. new tmp[256];
  107. tmp = strtok(cmdtext,idx);
  108. SetPlayerVirtualWorld(playerid,strval(tmp));
  109. return 1;
  110. }
  111. if(strcmp( cmd, "/fight", true ) == 0)
  112. {
  113. new tmp[256];
  114. new name[128];
  115. tmp = strtok(cmdtext, idx);
  116. new style = strval(tmp);
  117. SetPlayerFightingStyle(playerid, style);
  118. GetPlayerName(playerid,name,128);
  119. format(tmp, 256, "(%s) fighting style changed to %d", name, style);
  120. SendClientMessageToAll(0x4499CCFF,tmp);
  121. return 1;
  122. }
  123. if(strcmp( cmd, "/myfacingangle", true ) == 0)
  124. {
  125. new Float:angle;
  126. new tmp[256];
  127. GetPlayerFacingAngle(playerid,angle);
  128. format(tmp, 256, "Facing: %f",angle);
  129. SendClientMessage(playerid,0x4499CCFF,tmp);
  130. return 1;
  131. }
  132. if(strcmp(cmd, "/crime", true) == 0) {
  133. new tmp[256];
  134. new tmp2[256];
  135. tmp = strtok(cmdtext,idx);
  136. tmp2 = strtok(cmdtext,idx);
  137. PlayCrimeReportForPlayer(playerid, strval(tmp), strval(tmp2));
  138. return 1;
  139. }
  140. if(strcmp(cmd, "/repairmycar", true) == 0) {
  141. new vid = GetPlayerVehicleID(playerid);
  142. if (vid) RepairVehicle(vid);
  143. return 1;
  144. }
  145. if(strcmp(cmd, "/bv", true) == 0)
  146. {
  147. new tmp[128], iCar, string[128];
  148. tmp = strtok(cmdtext, idx);
  149. if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "DO: /bv [vehicleid]");
  150. iCar = strval(tmp);
  151. new File:file = fopen("badvehicles.txt",io_append);
  152. format(string,sizeof(string),"%d\r\n", iCar);
  153. fwrite(file,string);
  154. fclose(file);
  155. GetPlayerName(playerid,tmp,128);
  156. format(string, sizeof(string), "Veh ID %i marked as bad vehicle by %s", iCar, tmp);
  157. SendClientMessageToAll(0xFFFFFFFF, string);
  158. return 1;
  159. }
  160. if(strcmp(cmd, "/weapskill", true) == 0) {
  161. new tmp[256];
  162. new tmp2[256];
  163. tmp = strtok(cmdtext,idx);
  164. tmp2 = strtok(cmdtext,idx);
  165. SetPlayerSkillLevel(playerid, strval(tmp), strval(tmp2));
  166. return 1;
  167. }
  168. if(strcmp(cmd, "/labelonvehicle", true) == 0) {
  169. new vid = GetPlayerVehicleID(playerid);
  170. textid = Create3DTextLabel("My Vehicle\nOwned by me\nNo Fuel\nRunning on vapour",0xEEEEEE50,0.0,0.0,0.0,15.0,0);
  171. Attach3DTextLabelToVehicle(textid, vid, 0.0, -1.6, -0.35); // tail of the vehicle toward the ground
  172. return 1;
  173. }
  174. if(strcmp(cmd, "/labelonplayer", true) == 0) {
  175. new tmp[256];
  176. tmp = strtok(cmdtext,idx);
  177. textid = Create3DTextLabel("Player Label",0xFFFFFFFF,0.0,0.0,0.0,40.0,0);
  178. Attach3DTextLabelToPlayer(textid, strval(tmp), 0.0, 0.0, -0.4);
  179. return 1;
  180. }
  181. if(strcmp(cmd, "/dellabel", true) == 0) {
  182. Delete3DTextLabel(textid);
  183. return 1;
  184. }
  185. if(strcmp(cmd, "/playerlabel", true) == 0) {
  186. new Float:X, Float:Y, Float:Z;
  187. GetPlayerPos( playerid, X, Y, Z );
  188. playertextid = CreatePlayer3DTextLabel(playerid,"Hello\nI'm at your position",0x008080FF,X,Y,Z,40.0);
  189. return 1;
  190. }
  191. if(strcmp(cmd, "/playerlabelveh", true) == 0) {
  192. new vid = GetPlayerVehicleID(playerid);
  193. playertextid = 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);
  194. return 1;
  195. }
  196. if(strcmp(cmd, "/playerlabelpl", true) == 0) {
  197. new tmp[256];
  198. tmp = strtok(cmdtext,idx);
  199. playertextid = CreatePlayer3DTextLabel(playerid,"Hello Testing",0x008080FF,0.0,0.0,0.0,30.0,strval(tmp));
  200. return 1;
  201. }
  202. if(strcmp(cmd, "/delplayerlabel", true) == 0) {
  203. DeletePlayer3DTextLabel(playerid, playertextid);
  204. return 1;
  205. }
  206. if(strcmp(cmd, "/updateplayerlabel", true) == 0) {
  207. UpdatePlayer3DTextLabelText(playerid, playertextid, 0xFFFFFFFF, "");
  208. return 1;
  209. }
  210. if(strcmp(cmd, "/carmodtest", true) == 0) {
  211. // spawns a couple of cars in Grove with mods applied
  212. savanna = CreateVehicle(567,2509.1343,-1686.2330,13.2296,47.3679,16,16,10000);
  213. AddVehicleComponent(savanna,1189); //Front Bumper
  214. AddVehicleComponent(savanna,1187); //Rear Bumper
  215. AddVehicleComponent(savanna,1129); //Exhaust
  216. AddVehicleComponent(savanna,1102); //Left Side Skirt
  217. AddVehicleComponent(savanna,1133); //Right Side Skirt
  218. AddVehicleComponent(savanna,1078); //Wheels
  219. AddVehicleComponent(savanna,1010); //Nitro 10x
  220. AddVehicleComponent(savanna,1087); //Hydrolics
  221. blade = CreateVehicle(536,2509.8462,-1671.8666,13.1510,348.3512,16,16,10000);
  222. AddVehicleComponent(blade,1182); //Front Bumper
  223. AddVehicleComponent(blade,1184); //Rear Bumper
  224. AddVehicleComponent(blade,1104); //Exhaust
  225. AddVehicleComponent(blade,1108); //Left Side Skirt
  226. AddVehicleComponent(blade,1107); //Right Side Skirt
  227. AddVehicleComponent(blade,1078); //Wheels
  228. AddVehicleComponent(blade,1010); //Nitro 10x
  229. AddVehicleComponent(blade,1087); //Hydrolics
  230. return 1;
  231. }
  232. if(strcmp(cmd, "/addnitro", true) == 0) {
  233. new vid = GetPlayerVehicleID(playerid);
  234. AddVehicleComponent(vid, 1010);
  235. return 1;
  236. }
  237. if(strcmp(cmd, "/remnitro", true) == 0) {
  238. new vid = GetPlayerVehicleID(playerid);
  239. RemoveVehicleComponent(vid, 1010);
  240. return 1;
  241. }
  242. if(strcmp(cmd, "/paintjob", true) == 0) {
  243. new tmp[256];
  244. tmp = strtok(cmdtext,idx);
  245. new vid = GetPlayerVehicleID(playerid);
  246. ChangeVehiclePaintjob(vid,strval(tmp));
  247. return 1;
  248. }
  249. if(strcmp(cmd, "/longtd", true) == 0) {
  250. new st4[256];
  251. new st5[256];
  252. new st6[256];
  253. new st7[1024];
  254. format(st4,sizeof(st4),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
  255. format(st5,sizeof(st5),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789~n~");
  256. format(st6,sizeof(st6),"0123456789012345678901234567890123456789~n~012345678901234567890123456789~n~01234567890123456789~n~0123456789~n~0123456789012345678901234567890123456789~n~01234567890123456789~n~01234567890123456789~n~01234567890123456789");
  257. format(st7,sizeof(st7),"%s %s %s~n~LEN(%d)",st4,st5,st6,strlen(st4)+strlen(st5)+strlen(st6));
  258. new Text:Stats = TextDrawCreate(10.0, 10.0, st7);
  259. TextDrawTextSize(Stats, 400.0, 400.0);
  260. TextDrawUseBox(Stats,0);
  261. TextDrawBoxColor(Stats,0xFFFFFFFF);
  262. TextDrawFont(Stats,1);
  263. TextDrawLetterSize(Stats,0.5,0.5);
  264. TextDrawShowForPlayer(playerid,Stats);
  265. return 1;
  266. }
  267. if(strcmp(cmd, "/testmsgbox", true) == 0) {
  268. 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","Cancel");
  269. return 1;
  270. }
  271. if(strcmp(cmd, "/testmsgbox2", true) == 0) {
  272. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Welcome","Welcome:\tInfo\nTest:\t\tTabulated\nLine:\t\tHello","OK","Cancel");
  273. return 1;
  274. }
  275. if(strcmp(cmd, "/testinputbox", true) == 0) {
  276. new loginmsg[256+1];
  277. new loginname[MAX_PLAYER_NAME+1];
  278. GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
  279. format(loginmsg,256,"Welcome to the SA-MP 0.3 server.\n\nAccount:\t%s\n\nPlease enter your password below:",loginname);
  280. ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Login to SA-MP",loginmsg,"Login","Cancel");
  281. return 1;
  282. }
  283. if(strcmp(cmd, "/testlistbox", true) == 0) {
  284. new listitems[] = "1\tDeagle\n2\tSawnoff\n3\tPistol\n4\tGrenade\n5\tParachute\n6\tLorikeet";
  285. ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,"List of weapons:",listitems,"Select","Cancel");
  286. return 1;
  287. }
  288. if(strcmp(cmd, "/testclosebox", true) == 0) {
  289. ShowPlayerDialog(playerid,-1,0,"","","","");
  290. return 1;
  291. }
  292. if(strcmp(cmd, "/setfacingzero", true) == 0) {
  293. SetPlayerFacingAngle(playerid, 0.0);
  294. return 1;
  295. }
  296. if(strcmp(cmd, "/detachtrailer", true) == 0) {
  297. new vid = GetPlayerVehicleID(playerid);
  298. DetachTrailerFromVehicle(vid);
  299. return 1;
  300. }
  301. if(strcmp(cmd, "/testformat", true) == 0) {
  302. new strtest[256];
  303. new File:f = fopen("test.txt",io_write);
  304. format(strtest,256,"[chat] %d %s\r\n",24,"þÿÿþ");
  305. SendClientMessage(playerid,0xFFFFFFFF,strtest);
  306. fwrite(f,strtest);
  307. format(strtest,256,"[chat] %d %s\r\n",34," þÿÿþ");
  308. SendClientMessage(playerid,0xFFFFFFFF,strtest);
  309. fwrite(f,strtest);
  310. fclose(f);
  311. return 1;
  312. }
  313. if(strcmp(cmd, "/setskin", true) == 0) {
  314. new tmp[256];
  315. tmp = strtok(cmdtext,idx);
  316. SetPlayerSkin(playerid,strval(tmp));
  317. return 1;
  318. }
  319. return 0;
  320. }
  321. //-------------------------------------------
  322. // Test reapplying vehicle mods on respawn
  323. public OnVehicleSpawn(vehicleid)
  324. {
  325. if(vehicleid == savanna) {
  326. AddVehicleComponent(savanna,1189); //Front Bumper
  327. AddVehicleComponent(savanna,1187); //Rear Bumper
  328. AddVehicleComponent(savanna,1129); //Exhaust
  329. AddVehicleComponent(savanna,1102); //Left Side Skirt
  330. AddVehicleComponent(savanna,1133); //Right Side Skirt
  331. AddVehicleComponent(savanna,1078); //Wheels
  332. AddVehicleComponent(savanna,1010); //Nitro 10x
  333. AddVehicleComponent(savanna,1087); //Hydrolics
  334. }
  335. else if(vehicleid == blade) {
  336. AddVehicleComponent(blade,1182); //Front Bumper
  337. AddVehicleComponent(blade,1184); //Rear Bumper
  338. AddVehicleComponent(blade,1104); //Exhaust
  339. AddVehicleComponent(blade,1108); //Left Side Skirt
  340. AddVehicleComponent(blade,1107); //Right Side Skirt
  341. AddVehicleComponent(blade,1078); //Wheels
  342. AddVehicleComponent(blade,1010); //Nitro 10x
  343. AddVehicleComponent(blade,1087); //Hydrolics
  344. }
  345. }
  346. //-------------------------------------------
  347. // Example of handling dialog responses.
  348. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  349. {
  350. if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  351. if(dialogid == 0) { // Our example msgbox
  352. if(response) {
  353. SendClientMessage(playerid,0xFFFFFFFF,"You selected OK");
  354. } else {
  355. SendClientMessage(playerid,0xFFFFFFFF,"You selected Cancel");
  356. }
  357. return 1; // we processed this. no need for other filterscripts to process it.
  358. }
  359. if(dialogid == 1) { // Our example inputbox
  360. if(response) {
  361. new message[256+1];
  362. format(message, 256, "You replied: %s", inputtext);
  363. SendClientMessage(playerid, 0xFFFFFFFF, message);
  364. } else {
  365. SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
  366. }
  367. return 1; // we processed it.
  368. }
  369. if(dialogid == 2) { // Our example listbox
  370. if(response) {
  371. new message[256+1];
  372. if(listitem != 5) {
  373. format(message, 256, "You selected item %d:", listitem);
  374. SendClientMessage(playerid, 0xFFFFFFFF, message);
  375. SendClientMessage(playerid, 0xFFFFFFFF, inputtext);
  376. } else {
  377. SendClientMessage(playerid, 0x5555FFFF, "A Lorikeet is NOT a weapon!");
  378. }
  379. } else {
  380. SendClientMessage(playerid, 0xFFFFFFFF, "You selected Cancel");
  381. }
  382. return 1; // we processed it.
  383. }
  384. return 0; // we didn't handle anything.
  385. }
  386. //-------------------------------------------
  387. // Example of handling scoreboard click.
  388. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  389. {
  390. if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
  391. new message[256+1];
  392. format(message, 256, "You clicked on player %d", clickedplayerid);
  393. SendClientMessage(playerid, 0xFFFFFFFF, message);
  394. return 1;
  395. }
  396. //-------------------------------------------
  397. /*
  398. public OnEnterExitModShop(playerid, enterexit, interiorid)
  399. {
  400. new message[256+1];
  401. if(enterexit) {
  402. format(message, 256, "You entered modshop at interior %d", interiorid);
  403. SendClientMessage(playerid, 0xFFFFFFFF, message);
  404. } else {
  405. format(message, 256, "You exited the modshop");
  406. SendClientMessage(playerid, 0xFFFFFFFF, message);
  407. }
  408. return 1;
  409. }
  410. */
  411. //-------------------------------------------