Guest User

More Animations

a guest
Feb 2nd, 2014
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.06 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>//Standard
  4. #include <sscanf2>//Advanced Sscanf
  5. #include <zcmd>//CMD: Ability
  6. #include <foreach>//Improved loops
  7. #include <a_angles>//Special Angle Functions
  8.  
  9. #define COLOR_LIGHTRED 0xFF6347AA
  10. #define COLOR_WHITE 0xFFFFFFAA
  11. #define COLOR_LIGHTBLUE 0x00BFFFAA
  12.  
  13. new gPlayerUsingLoopingAnim[MAX_PLAYERS];
  14. new gPlayerAnimLibsPreloaded[MAX_PLAYERS];
  15.  
  16. new Text:txtAnimHelper;
  17. new ExitAnim[MAX_PLAYERS];
  18. new Offer[MAX_PLAYERS];
  19. new ChosenStyle[MAX_PLAYERS];
  20. //-------------------------------------------------
  21.  
  22. OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, freeze, time)
  23. {
  24. ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, freeze, time, 1);
  25. return;
  26. }
  27.  
  28. //-------------------------------------------------
  29.  
  30. LoopingAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, freeze, time)
  31. {
  32. gPlayerUsingLoopingAnim[playerid] = 1;
  33. ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, freeze, time, 1);
  34. TextDrawShowForPlayer(playerid,txtAnimHelper);
  35. return;
  36. }
  37.  
  38. //-------------------------------------------------
  39.  
  40. StopLoopingAnim(playerid)
  41. {
  42. if(gPlayerUsingLoopingAnim[playerid] == 2)
  43. {
  44. SetPlayerSpecialAction(playerid, 0);
  45. }
  46. if(ExitAnim[playerid] == 1)
  47. {
  48. OnePlayAnim(playerid, "ped", "SEAT_up", 4.0, 0, 0, 0, 0, 0);
  49. }
  50. else if(ExitAnim[playerid] == 2)
  51. {
  52. OnePlayAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 0, 0, 0, 0, 0);
  53. }
  54. else if(ExitAnim[playerid] == 3)
  55. {
  56. OnePlayAnim(playerid, "PARK", "Tai_Chi_Out", 4.0, 0, 0, 0, 0, 0);
  57. }
  58. else if(ExitAnim[playerid] == 4)
  59. {
  60. OnePlayAnim(playerid, "PAULNMAC", "wank_out", 4.0, 0, 0, 0, 0, 0);
  61. }
  62. else if(ExitAnim[playerid] == 5)
  63. {
  64. OnePlayAnim(playerid, "PAULNMAC", "Piss_out", 4.0, 0, 0, 0, 0, 0);
  65. }
  66. else if(ExitAnim[playerid] == 6)
  67. {
  68. OnePlayAnim(playerid, "BLOWJOBZ", "BJ_COUCH_END_W", 4.0, 0, 0, 0, 0, 0);
  69. }
  70. else if(ExitAnim[playerid] == 7)
  71. {
  72. OnePlayAnim(playerid, "CAR", "Fixn_Car_Out", 4.0, 0, 0, 0, 0, 0);
  73. }
  74. else if(ExitAnim[playerid] == 8)
  75. {
  76. OnePlayAnim(playerid, "Attractors", "Stepsit_out", 4.0, 0, 0, 0, 0, 0);
  77. }
  78. else if(ExitAnim[playerid] == 9)
  79. {
  80. OnePlayAnim(playerid, "FOOD", "FF_Sit_Out_L_180", 4.0, 0, 0, 0, 0, 0);
  81. }
  82. else if(ExitAnim[playerid] == 10)
  83. {
  84. OnePlayAnim(playerid, "FOOD", "FF_Sit_Out_R_180", 4.0, 0, 0, 0, 0, 0);
  85. }
  86. else if(ExitAnim[playerid] == 11)
  87. {
  88. OnePlayAnim(playerid, "ON_LOOKERS", "Pointup_out", 4.0, 0, 0, 0, 0, 0);
  89. }
  90. else
  91. {
  92. ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1);
  93. }
  94. ExitAnim[playerid] = 0;
  95. gPlayerUsingLoopingAnim[playerid] = 0;
  96. return;
  97. }
  98.  
  99. //-------------------------------------------------
  100.  
  101. PreloadAnimLib(playerid, animlib[])
  102. {
  103. ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0,0);
  104. return;
  105. }
  106.  
  107. //-------------------------------------------------
  108.  
  109. // ********** CALLBACKS **********
  110.  
  111. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  112. {
  113. if(!gPlayerUsingLoopingAnim[playerid]) return;
  114.  
  115. if(IsPlayerInAnyVehicle(playerid))
  116. {
  117. if((newkeys & 128) && !(oldkeys & 128))
  118. {
  119. StopLoopingAnim(playerid);
  120. TextDrawHideForPlayer(playerid,txtAnimHelper);
  121. }
  122. }
  123. else if((newkeys & KEY_SPRINT) && !(oldkeys & KEY_SPRINT))
  124. {
  125. StopLoopingAnim(playerid);
  126. TextDrawHideForPlayer(playerid,txtAnimHelper);
  127. }
  128. }
  129.  
  130. //------------------------------------------------
  131.  
  132. public OnPlayerDeath(playerid, killerid, reason)
  133. {
  134. // if they die whilst performing a looping anim, we should reset the state
  135. if(gPlayerUsingLoopingAnim[playerid])
  136. {
  137. ExitAnim[playerid] = 0;
  138. gPlayerUsingLoopingAnim[playerid] = 0;
  139. TextDrawHideForPlayer(playerid,txtAnimHelper);
  140. }
  141. return 1;
  142. }
  143.  
  144. //-------------------------------------------------
  145.  
  146. public OnPlayerSpawn(playerid)
  147. {
  148. if(!gPlayerAnimLibsPreloaded[playerid])
  149. {
  150. PreloadAnimLib(playerid,"MISC");
  151. PreloadAnimLib(playerid,"ped");
  152. PreloadAnimLib(playerid,"BEACH");
  153. PreloadAnimLib(playerid,"SMOKING");
  154. PreloadAnimLib(playerid,"BOMBER");
  155. PreloadAnimLib(playerid,"RAPPING");
  156. PreloadAnimLib(playerid,"SHOP");
  157. PreloadAnimLib(playerid,"COP_AMBIENT");
  158. PreloadAnimLib(playerid,"FOOD");
  159. PreloadAnimLib(playerid,"ON_LOOKERS");
  160. PreloadAnimLib(playerid,"SWEET");
  161. PreloadAnimLib(playerid,"DEALER");
  162. PreloadAnimLib(playerid,"CRACK");
  163. PreloadAnimLib(playerid,"BLOWJOBZ");
  164. PreloadAnimLib(playerid,"PARK");
  165. PreloadAnimLib(playerid,"GYMNASIUM");
  166. PreloadAnimLib(playerid,"PAULNMAC");
  167. PreloadAnimLib(playerid,"CAR");
  168. PreloadAnimLib(playerid,"GANGS");
  169. PreloadAnimLib(playerid,"GHANDS");
  170. PreloadAnimLib(playerid,"MEDIC");
  171. PreloadAnimLib(playerid,"Attractors");
  172. PreloadAnimLib(playerid,"HEIST9");
  173. PreloadAnimLib(playerid,"RIOT");
  174. PreloadAnimLib(playerid,"CARRY");
  175. gPlayerAnimLibsPreloaded[playerid] = 1;
  176. }
  177. Offer[playerid] = -1;
  178. return 1;
  179. }
  180.  
  181. //-------------------------------------------------
  182.  
  183. public OnPlayerConnect(playerid)
  184. {
  185. ExitAnim[playerid] = 0;
  186. ChosenStyle[playerid] = 0;
  187. Offer[playerid] = -1;
  188. gPlayerUsingLoopingAnim[playerid] = 0;
  189. gPlayerAnimLibsPreloaded[playerid] = 0;
  190. TextDrawHideForPlayer(playerid,txtAnimHelper);
  191. return 1;
  192. }
  193.  
  194. //-------------------------------------------------
  195.  
  196. public OnFilterScriptInit()
  197. {
  198. // Init our text display
  199. txtAnimHelper = TextDrawCreate(610.0, 400.0,
  200. "~r~~k~~PED_SPRINT~ ~w~to stop the animation");
  201. TextDrawUseBox(txtAnimHelper, 0);
  202. TextDrawFont(txtAnimHelper, 2);
  203. TextDrawSetShadow(txtAnimHelper,0); // no shadow
  204. TextDrawSetOutline(txtAnimHelper,1); // thickness 1
  205. TextDrawBackgroundColor(txtAnimHelper,0x000000FF);
  206. TextDrawColor(txtAnimHelper,0xFFFFFFFF);
  207. TextDrawAlignment(txtAnimHelper,3); // align right
  208. return 1;
  209. }
  210.  
  211. //---------------Commands-------------------
  212. CMD:animhelp(playerid) return cmd_animlist(playerid);
  213. CMD:animlist(playerid)
  214. {
  215. new main[800];
  216. new string[200];
  217. format(main, sizeof(main), "{FFFFFF}You type all animations like this: {7CFC00}'/AN [Name]'.\n{FFFFFF}The only exception is for {7CFC00}'/Kiss [playerid/PartOfName]' {FFFFFF}and {7CFC00}'/Greet [playerid/PartOfName]'{FFFFFF}.\n\nHere is a list of all animations:\n");
  218. format(string, sizeof(string),"{9ACD32}Cellin - Cellout - Hitch - Scratch - Sit - Lay - Smoke - Bomb - Laugh - Robman - Lookout - Crossarms - Hide - Vomit - Wave\n");
  219. strcat(main, string);
  220. format(string, sizeof(string),"Slapass - Blowjob - Deal - Idle - Pay - Crack - Chat - Fucku - Taichi - Dance - Injured - Shadowbox - Piss - Wank - Sleep\n");
  221. strcat(main, string);
  222. format(string, sizeof(string),"Point - Shout - Look - Aim - CPR - Fixcar - Flag - Bat - Lean - Gang - Wallshoot - What - Insult");
  223. strcat(main, string);
  224. ShowPlayerDialog(playerid, 110, DIALOG_STYLE_MSGBOX, "{00BFFF}Available animations",main, "Cool", "");
  225. return 1;
  226. }
  227.  
  228. CMD:an(playerid, params[]) return cmd_animation(playerid, params);
  229. CMD:anim(playerid, params[]) return cmd_animation(playerid, params);
  230. CMD:animation(playerid, params[])
  231. {
  232. if(CallRemoteFunction("IsPlayerBlocked", "d", playerid) != 0 || GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
  233. {
  234. SendClientMessage(playerid, COLOR_LIGHTRED, " You can't do that right now!");
  235. return 1;
  236. }
  237. new name[30],id;
  238. if(!sscanf(params, "s[29]I(0)", name, id))
  239. {
  240. if(!strcmp(name, "cellin", true))
  241. {
  242. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
  243. }
  244. else if(!strcmp(name, "cellout", true))
  245. {
  246. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
  247. }
  248. else if(!strcmp(name, "hitch", true))
  249. {
  250. LoopingAnim(playerid,"MISC","Hiker_Pose", 4.0, 1, 0, 0, 0, 0);
  251. }
  252. else if(!strcmp(name, "scratch", true))
  253. {
  254. LoopingAnim(playerid,"MISC","Scratchballs_01", 4.0, 1, 0, 0, 0, 0);
  255. }
  256. else if(!strcmp(name, "sit", true))
  257. {
  258. if(id == 1)
  259. {
  260. ExitAnim[playerid] = 1;
  261. LoopingAnim(playerid,"ped","SEAT_idle", 4.0, 1, 0, 0, 0, 0);
  262. }
  263. else if(id == 2)
  264. {
  265. LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0);
  266. }
  267. else if(id == 3)
  268. {
  269. LoopingAnim(playerid,"BEACH", "ParkSit_W_loop", 4.0, 1, 0, 0, 0, 0);
  270. }
  271. else if(id == 4)
  272. {
  273. LoopingAnim(playerid,"BEACH", "SitnWait_loop_W", 4.0, 1, 0, 0, 0, 0);
  274. }
  275. else if(id == 5)
  276. {
  277. ExitAnim[playerid] = 8;
  278. LoopingAnim(playerid,"Attractors", "Stepsit_loop", 4.0, 1, 0, 0, 0, 0);
  279. }
  280. else if(id == 6)
  281. {
  282. ExitAnim[playerid] = 9;
  283. LoopingAnim(playerid,"FOOD", "FF_Sit_In_L", 4.0, 0, 0, 0, 1, 0);
  284. }
  285. else if(id == 7)
  286. {
  287. ExitAnim[playerid] = 10;
  288. LoopingAnim(playerid,"FOOD", "FF_Sit_In_R", 4.0, 0, 0, 0, 1, 0);
  289. }
  290. else
  291. {
  292. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation sit [ID]");
  293. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Chair sit");
  294. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Male groundsit");
  295. SendClientMessage(playerid, COLOR_LIGHTBLUE, "3 - Female groundsit");
  296. SendClientMessage(playerid, COLOR_LIGHTBLUE, "4 - Bored seat");
  297. SendClientMessage(playerid, COLOR_LIGHTBLUE, "5 - Step seat");
  298. SendClientMessage(playerid, COLOR_LIGHTBLUE, "6 - Right booth seat");
  299. SendClientMessage(playerid, COLOR_LIGHTBLUE, "7 - left booth seat");
  300. }
  301. }
  302. else if(!strcmp(name, "lay", true))
  303. {
  304. LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0);
  305. }
  306. else if(!strcmp(name, "smoke", true))
  307. {
  308. if(id == 1)
  309. {
  310. LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0);
  311. }
  312. else if(id == 2)
  313. {
  314. LoopingAnim(playerid,"SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0);
  315. }
  316. else if(id == 3)
  317. {
  318. LoopingAnim(playerid,"SMOKING", "M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0);
  319. }
  320. else
  321. {
  322. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation smoke [ID]");
  323. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Male lean");
  324. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Female lean");
  325. SendClientMessage(playerid, COLOR_LIGHTBLUE, "3 - Male standing");
  326. }
  327. }
  328. else if(!strcmp(name, "bomb", true))
  329. {
  330. OnePlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
  331. }
  332. else if(!strcmp(name, "laugh", true))
  333. {
  334. OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0);
  335. }
  336. else if(!strcmp(name, "robman", true))
  337. {
  338. LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0);
  339. }
  340. else if(!strcmp(name, "lookout", true))
  341. {
  342. OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0);
  343. }
  344. else if(!strcmp(name, "crossarms", true))
  345. {
  346. LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 1, 0, 0, 0, 0);
  347. }
  348. else if(!strcmp(name, "hide", true))
  349. {
  350. LoopingAnim(playerid,"ped", "cower", 4.0, 1, 0, 0, 0, 0);
  351. }
  352. else if(!strcmp(name, "vomit", true))
  353. {
  354. LoopingAnim(playerid,"FOOD", "EAT_Vomit_P", 4.0, 1, 0, 0, 0, 0);
  355. }
  356. else if(!strcmp(name, "wave", true))
  357. {
  358. ExitAnim[playerid] = 2;
  359. LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0);
  360. }
  361. else if(!strcmp(name, "slapass", true))
  362. {
  363. OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0);
  364. }
  365. else if(!strcmp(name, "blowjob", true))
  366. {
  367. ExitAnim[playerid] = 6;
  368. LoopingAnim(playerid,"BLOWJOBZ","BJ_COUCH_LOOP_W",4.1,0,0,0,0,0);
  369. }
  370. //dealing
  371. else if(!strcmp(name, "deal", true))
  372. {
  373. OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0);
  374. }
  375. else if(!strcmp(name, "idle", true))
  376. {
  377. LoopingAnim(playerid, "DEALER", "DEALER_IDLE", 4.0, 1, 0, 0, 0, 0);
  378. }
  379. else if(!strcmp(name, "pay", true))
  380. {
  381. OnePlayAnim(playerid, "DEALER", "shop_pay", 4.0, 0, 0, 0, 0, 0);
  382. }
  383. else if(!strcmp(name, "crack", true))
  384. {
  385. LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
  386. }
  387. else if(!strcmp(name, "chat", true))
  388. {
  389. OnePlayAnim(playerid,"ped","IDLE_CHAT",4.0,0,0,0,0,0);
  390. }
  391. else if(!strcmp(name, "fucku", true))
  392. {
  393. OnePlayAnim(playerid,"ped","fucku",4.0,0,0,0,0,0);
  394. }
  395. else if(!strcmp(name, "taichi", true))
  396. {
  397. ExitAnim[playerid] = 3;
  398. LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
  399. }
  400. else if(!strcmp(name, "dance", true))
  401. {
  402. if(id == 1)
  403. {
  404. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
  405. }
  406. else if(id == 2)
  407. {
  408. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
  409. }
  410. else if(id == 3)
  411. {
  412. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
  413. }
  414. else if(id == 4)
  415. {
  416. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
  417. }
  418. else
  419. {
  420. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation dance [ID]");
  421. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1,2,3,4");
  422. }
  423. }
  424. else if(!strcmp(name, "injured", true))
  425. {
  426. LoopingAnim(playerid,"SWEET", "Sweet_injuredloop", 4.0,1,0,0,0,0);
  427. }
  428. else if(!strcmp(name, "shadowbox", true))
  429. {
  430. LoopingAnim(playerid,"GYMNASIUM", "GYMshadowbox", 1.800001, 1, 0, 0, 1, 600);
  431. }
  432. else if(!strcmp(name, "wank", true))
  433. {
  434. ExitAnim[playerid] = 4;
  435. LoopingAnim(playerid,"PAULNMAC", "wank_loop", 1.800001, 1, 0, 0, 1, 600);
  436. }
  437. else if(!strcmp(name, "piss", true))
  438. {
  439. ExitAnim[playerid] = 5;
  440. LoopingAnim(playerid,"PAULNMAC","Piss_loop",4.1,1,0,0,0,0);
  441. SetPlayerSpecialAction(playerid, 68);//Piss particles
  442. gPlayerUsingLoopingAnim[playerid] = 2;
  443. }
  444. else if(!strcmp(name, "sleep", true))
  445. {
  446. LoopingAnim(playerid,"CRACK","crckdeth1",4.1,1,0,0,0,0);
  447. }
  448. else if(!strcmp(name, "point", true))
  449. {
  450. ExitAnim[playerid] = 11;
  451. LoopingAnim(playerid,"ON_LOOKERS","Pointup_loop",4.1,1,0,0,0,0);
  452. }
  453. else if(!strcmp(name, "shout", true))
  454. {
  455. if(id == 1)
  456. {
  457. OnePlayAnim(playerid,"ON_LOOKERS", "shout_01", 4.0, 0, 0, 0, 0, 0);
  458. }
  459. else if(id == 2)
  460. {
  461. OnePlayAnim(playerid,"ON_LOOKERS", "shout_02", 4.0, 0, 0, 0, 0, 0);
  462. }
  463. else
  464. {
  465. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation shout [ID]");
  466. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1,2");
  467. }
  468. }
  469. else if(!strcmp(name, "look", true))
  470. {
  471. OnePlayAnim(playerid,"ON_LOOKERS", "lkaround_loop", 4.0, 0, 0, 0, 0, 0);
  472. }
  473. else if(!strcmp(name, "aim", true))
  474. {
  475. LoopingAnim(playerid,"ped", "ARRESTgun", 4.0, 1, 0, 0, 0, 0);
  476. }
  477. else if(!strcmp(name, "CPR", true))
  478. {
  479. OnePlayAnim(playerid,"MEDIC", "CPR", 4.0, 0, 0, 0, 0, 0);
  480. }
  481. //Car anims
  482. else if(!strcmp(name, "fixcar", true))
  483. {
  484. ExitAnim[playerid] = 7;
  485. LoopingAnim(playerid,"CAR","Fixn_Car_Loop",4.1,1,0,0,0,0);
  486. }
  487. else if(!strcmp(name, "flag", true))
  488. {
  489. OnePlayAnim(playerid,"CAR","flag_drop",4.1,0,0,0,0,0);
  490. }
  491. //Gang anims
  492. else if(!strcmp(name, "bat", true))
  493. {
  494. if(id == 1)
  495. {
  496. OnePlayAnim(playerid,"CRACK","Bbalbat_Idle_01",4.1,0,0,0,0,0);
  497. }
  498. else if(id == 2)
  499. {
  500. OnePlayAnim(playerid,"CRACK","Bbalbat_Idle_02",4.1,0,0,0,0,0);
  501. }
  502. else
  503. {
  504. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation bat [ID]");
  505. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Bat on shoulder");
  506. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Neck crack");
  507. }
  508. }
  509. else if(!strcmp(name, "lean", true))
  510. {
  511. if(id == 1)
  512. {
  513. LoopingAnim(playerid,"GANGS","leanIDLE",4.1,1,0,0,0,0);
  514. }
  515. else if(id == 2)
  516. {
  517. LoopingAnim(playerid,"MISC","Plyrlean_loop",4.1,1,0,0,0,0);
  518. }
  519. else
  520. {
  521. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation lean [ID]");
  522. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Back lean");
  523. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Left lean");
  524. }
  525. }
  526. else if(!strcmp(name, "gang", true))
  527. {
  528. if(id == 1)
  529. {
  530. OnePlayAnim(playerid,"GHANDS","gsign1",4.1,0,0,0,0,0);
  531. }
  532. else if(id == 2)
  533. {
  534. OnePlayAnim(playerid,"GHANDS","gsign2",4.1,0,0,0,0,0);
  535. }
  536. else if(id == 3)
  537. {
  538. OnePlayAnim(playerid,"GHANDS","gsign3",4.1,0,0,0,0,0);
  539. }
  540. else if(id == 4)
  541. {
  542. OnePlayAnim(playerid,"GHANDS","gsign4",4.1,0,0,0,0,0);
  543. }
  544. else if(id == 5)
  545. {
  546. OnePlayAnim(playerid,"GHANDS","gsign5",4.1,0,0,0,0,0);
  547. }
  548. else if(id == 6)
  549. {
  550. OnePlayAnim(playerid,"GHANDS","gsign1LH",4.1,0,0,0,0,0);
  551. }
  552. else if(id == 7)
  553. {
  554. OnePlayAnim(playerid,"GHANDS","gsign2LH",4.1,0,0,0,0,0);
  555. }
  556. else if(id == 8)
  557. {
  558. OnePlayAnim(playerid,"GHANDS","gsign3LH",4.1,0,0,0,0,0);
  559. }
  560. else if(id == 9)
  561. {
  562. OnePlayAnim(playerid,"GHANDS","gsign4LH",4.1,0,0,0,0,0);
  563. }
  564. else if(id == 10)
  565. {
  566. OnePlayAnim(playerid,"GHANDS","gsign5LH",4.1,0,0,0,0,0);
  567. }
  568. else
  569. {
  570. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation gang [ID]");
  571. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 to 10");
  572. }
  573. }
  574. else if(!strcmp(name, "wallshoot", true))
  575. {
  576. if(id == 1)
  577. {
  578. OnePlayAnim(playerid,"HEIST9","swt_wllshoot_out_L",4.1,0,0,0,0,0);
  579. }
  580. else if(id == 2)
  581. {
  582. OnePlayAnim(playerid,"HEIST9","swt_wllshoot_out_R",4.1,0,0,0,0,0);
  583. }
  584. else
  585. {
  586. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation wallshoot [ID]");
  587. SendClientMessage(playerid, COLOR_LIGHTBLUE, "1 - Shoot left");
  588. SendClientMessage(playerid, COLOR_LIGHTBLUE, "2 - Shoot right");
  589. }
  590. }
  591. else if(!strcmp(name, "what", true))
  592. {
  593. OnePlayAnim(playerid,"RIOT","RIOT_ANGRY",4.1,0,0,0,0,0);
  594. }
  595. else if(!strcmp(name, "insult", true))
  596. {
  597. OnePlayAnim(playerid,"RIOT","RIOT_FUKU",4.1,0,0,0,0,0);
  598. }
  599. else if(!strcmp(name, "list", true))
  600. {
  601. cmd_animlist(playerid);
  602. }
  603. else
  604. {
  605. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid name!");
  606. }
  607. return 1;
  608. }
  609. else
  610. {
  611. SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/An)imation [Name]");
  612. SendClientMessage(playerid, COLOR_LIGHTBLUE, "For a list of all animations type '/animlist'.");
  613. }
  614. return 1;
  615. }
  616.  
  617. CMD:kiss(playerid, params[])
  618. {
  619. if(CallRemoteFunction("IsPlayerBlocked", "d", playerid) != 0)
  620. {
  621. SendClientMessage(playerid, COLOR_LIGHTRED, " You can't do that right now!");
  622. return 1;
  623. }
  624. new playa,style;
  625. if(!sscanf(params, "ui", playa, style))
  626. {
  627. if(IsPlayerConnected(playa))
  628. {
  629. if(ProxDetectorS(1.5, playerid, playa))//Make sure they are close enough for the anim to work
  630. {
  631. if(style < 0 || style > 3)
  632. {
  633. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid style! (1-3)");
  634. return 1;
  635. }
  636. ChosenStyle[playa] = style;
  637. Offer[playa] = playerid;
  638. new string[100];
  639. format(string, sizeof(string), "* %s wants to greet you. Type '/Kiss' to accept.", PlayerNameEx(playerid));
  640. SendClientMessage(playa, COLOR_LIGHTBLUE, string);
  641. format(string, sizeof(string), "* You offered %s a greeting.", PlayerNameEx(playa));
  642. SendClientMessage(playa, COLOR_LIGHTBLUE, string);
  643. return 1;
  644. }
  645. else
  646. {
  647. SendClientMessage(playerid, COLOR_LIGHTRED, " You are too far away!");
  648. return 1;
  649. }
  650. }
  651. else
  652. {
  653. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid player!");
  654. return 1;
  655. }
  656. }
  657. else
  658. {
  659. if(Offer[playerid] > -1)
  660. {
  661. playa = Offer[playerid];
  662. style = ChosenStyle[playerid];
  663. if(IsPlayerConnected(playa))
  664. {
  665. if(ProxDetectorS(1.5, playerid, playa))//Make sure they are close enough for the anim to work
  666. {
  667. SetPlayerToFacePlayer(playerid, playa);//Make em face each other
  668. if(style == 1)
  669. {
  670. OnePlayAnim(playerid,"KISSING","Grlfrd_Kiss_01",4.1,0,0,0,0,0);
  671. OnePlayAnim(playa,"KISSING","Playa_Kiss_01",4.1,0,0,0,0,0);
  672. }
  673. else if(style == 2)
  674. {
  675. OnePlayAnim(playerid,"KISSING","Grlfrd_Kiss_02",4.1,0,0,0,0,0);
  676. OnePlayAnim(playa,"KISSING","Playa_Kiss_02",4.1,0,0,0,0,0);
  677. }
  678. else if(style == 3)
  679. {
  680. OnePlayAnim(playerid,"KISSING","Grlfrd_Kiss_03",4.1,0,0,0,0,0);
  681. OnePlayAnim(playa,"KISSING","Playa_Kiss_03",4.1,0,0,0,0,0);
  682. }
  683. else//Should anything happen just use the default
  684. {
  685. OnePlayAnim(playerid,"KISSING","Grlfrd_Kiss_03",4.1,0,0,0,0,0);
  686. OnePlayAnim(playa,"KISSING","Playa_Kiss_03",4.1,0,0,0,0,0);
  687. }
  688. return 1;
  689. }
  690. else
  691. {
  692. SendClientMessage(playerid, COLOR_LIGHTRED, " You are too far away!");
  693. }
  694. }
  695. else
  696. {
  697. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid player!");
  698. }
  699. Offer[playerid] = -1;
  700. ChosenStyle[playerid] = 0;
  701. }
  702. else
  703. {
  704. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /Kiss [playerid/PartOfName] [Style ID]");
  705. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Styles: 1 - 3");
  706. }
  707. }
  708. return 1;
  709. }
  710.  
  711. CMD:greet(playerid, params[])
  712. {
  713. if(CallRemoteFunction("IsPlayerBlocked", "d", playerid) != 0)
  714. {
  715. SendClientMessage(playerid, COLOR_LIGHTRED, " You can't do that right now!");
  716. return 1;
  717. }
  718. new playa,style;
  719. if(!sscanf(params, "ui", playa, style))
  720. {
  721. if(IsPlayerConnected(playa))
  722. {
  723. if(ProxDetectorS(1.5, playerid, playa))//Make sure they are close enough for the anim to work
  724. {
  725. if(style < 0 || style > 9)
  726. {
  727. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid style! (1-9)");
  728. return 1;
  729. }
  730. ChosenStyle[playa] = style;
  731. Offer[playa] = playerid;
  732. new string[100];
  733. format(string, sizeof(string), "* %s wants to greet you. Type '/Greet' to accept.", PlayerNameEx(playerid));
  734. SendClientMessage(playa, COLOR_LIGHTBLUE, string);
  735. format(string, sizeof(string), "* You offered %s a greeting.", PlayerNameEx(playa));
  736. SendClientMessage(playa, COLOR_LIGHTBLUE, string);
  737. return 1;
  738. }
  739. else
  740. {
  741. SendClientMessage(playerid, COLOR_LIGHTRED, " You are too far away!");
  742. return 1;
  743. }
  744. }
  745. else
  746. {
  747. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid player!");
  748. return 1;
  749. }
  750. }
  751. else
  752. {
  753. if(Offer[playerid] > -1)
  754. {
  755. playa = Offer[playerid];
  756. style = ChosenStyle[playerid];
  757. if(IsPlayerConnected(playa))
  758. {
  759. if(ProxDetectorS(1.5, playerid, playa))//Make sure they are close enough for the anim to work
  760. {
  761. SetPlayerToFacePlayer(playerid, playa);//Make em face each other
  762. if(style == 1)
  763. {
  764. OnePlayAnim(playerid,"GANGS","hndshkaa",4.1,0,0,0,0,0);
  765. OnePlayAnim(playa,"GANGS","hndshkaa",4.1,0,0,0,0,0);
  766. }
  767. else if(style == 2)
  768. {
  769. OnePlayAnim(playerid,"GANGS","hndshkaa",4.1,0,0,0,0,0);
  770. OnePlayAnim(playa,"GANGS","hndshkaa",4.1,0,0,0,0,0);
  771. }
  772. else if(style == 3)
  773. {
  774. OnePlayAnim(playerid,"GANGS","hndshkba",4.1,0,0,0,0,0);
  775. OnePlayAnim(playa,"GANGS","hndshkba",4.1,0,0,0,0,0);
  776. }
  777. else if(style == 4)
  778. {
  779. OnePlayAnim(playerid,"GANGS","hndshkca",4.1,0,0,0,0,0);
  780. OnePlayAnim(playa,"GANGS","hndshkca",4.1,0,0,0,0,0);
  781. }
  782. else if(style == 5)
  783. {
  784. OnePlayAnim(playerid,"GANGS","hndshkda",4.1,0,0,0,0,0);
  785. OnePlayAnim(playa,"GANGS","hndshkda",4.1,0,0,0,0,0);
  786. }
  787. else if(style == 6)
  788. {
  789. OnePlayAnim(playerid,"GANGS","hndshkea",4.1,0,0,0,0,0);
  790. OnePlayAnim(playa,"GANGS","hndshkea",4.1,0,0,0,0,0);
  791. }
  792. else if(style == 7)
  793. {
  794. OnePlayAnim(playerid,"GANGS","hndshkfa",4.1,0,0,0,0,0);
  795. OnePlayAnim(playa,"GANGS","hndshkfa",4.1,0,0,0,0,0);
  796. }
  797. else if(style == 8)
  798. {
  799. OnePlayAnim(playerid,"GANGS","prtial_hndshk_01",4.1,0,0,0,0,0);
  800. OnePlayAnim(playa,"GANGS","prtial_hndshk_01",4.1,0,0,0,0,0);
  801. }
  802. else if(style == 9)
  803. {
  804. OnePlayAnim(playerid,"GANGS","prtial_hndshk_biz_01",4.1,0,0,0,0,0);
  805. OnePlayAnim(playa,"GANGS","prtial_hndshk_biz_01",4.1,0,0,0,0,0);
  806. }
  807. else//Should anything happen just use the default
  808. {
  809. OnePlayAnim(playerid,"GANGS","prtial_hndshk_biz_01",4.1,0,0,0,0,0);
  810. OnePlayAnim(playa,"GANGS","prtial_hndshk_biz_01",4.1,0,0,0,0,0);
  811. }
  812. return 1;
  813. }
  814. else
  815. {
  816. SendClientMessage(playerid, COLOR_LIGHTRED, " You are too far away!");
  817. }
  818. }
  819. else
  820. {
  821. SendClientMessage(playerid, COLOR_LIGHTRED, " Invalid player!");
  822. }
  823. Offer[playerid] = -1;
  824. ChosenStyle[playerid] = 0;
  825. }
  826. else
  827. {
  828. SendClientMessage(playerid, COLOR_WHITE, "USAGE: /Greet [playerid/PartOfName] [Style ID]");
  829. SendClientMessage(playerid, COLOR_LIGHTBLUE, "Styles: 1 - 9");
  830. }
  831. }
  832. return 1;
  833. }
  834.  
  835. ProxDetectorS(Float:radi, playerid, targetid)
  836. {
  837. if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
  838. {
  839. if(GetPlayerState(targetid) != PLAYER_STATE_SPECTATING)
  840. {
  841. if(GetPlayerVirtualWorld(targetid) == GetPlayerVirtualWorld(playerid))
  842. {
  843. new Float:posx, Float:posy, Float:posz;
  844. new Float:oldposx, Float:oldposy, Float:oldposz;
  845. new Float:tempposx, Float:tempposy, Float:tempposz;
  846. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  847. //radi = 2.0; //Trigger Radius
  848. GetPlayerPos(targetid, posx, posy, posz);
  849. tempposx = (oldposx -posx);
  850. tempposy = (oldposy -posy);
  851. tempposz = (oldposz -posz);
  852. //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
  853. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  854. {
  855. return 1;
  856. }
  857. }
  858. }
  859. }
  860. return 0;
  861. }
  862.  
  863. stock PlayerNameEx(playerid)
  864. {
  865. new name[MAX_PLAYER_NAME];
  866. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  867. new i;
  868. while(name[i])
  869. {
  870. if(name[i] == '_') name[i] = ' ';
  871. i++;
  872. }
  873. return name;
  874. }
Add Comment
Please, Sign In to add comment