Advertisement
Guest User

Animation FS - Balli

a guest
Apr 29th, 2011
1,082
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.86 KB | None | 0 0
  1. //-------------------------------------------------
  2. //
  3. // Generic Special Actions And Anims
  4. // kyeman 2007
  5. //
  6. //Added more Animations : Balli
  7. //All credits to kyeman
  8. //
  9. //
  10. //
  11. //
  12. //-------------------------------------------------
  13.  
  14. #include <a_samp>
  15. #include <core>
  16. #include <float>
  17. #pragma tabsize 0
  18.  
  19.  
  20. new gPlayerUsingLoopingAnim[MAX_PLAYERS];
  21. new gPlayerAnimLibsPreloaded[MAX_PLAYERS];
  22.  
  23. new Text:txtAnimHelper;
  24.  
  25. //-------------------------------------------------
  26.  
  27. OnePlayAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
  28. {
  29.     ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
  30. }
  31.  
  32. //-------------------------------------------------
  33.  
  34. LoopingAnim(playerid,animlib[],animname[], Float:Speed, looping, lockx, locky, lockz, lp)
  35. {
  36.     gPlayerUsingLoopingAnim[playerid] = 1;
  37.     ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp);
  38.     TextDrawShowForPlayer(playerid,txtAnimHelper);
  39. }
  40.  
  41. //-------------------------------------------------
  42.  
  43. StopLoopingAnim(playerid)
  44. {
  45.     gPlayerUsingLoopingAnim[playerid] = 0;
  46.     ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0);
  47. }
  48.  
  49. //-------------------------------------------------
  50.  
  51. PreloadAnimLib(playerid, animlib[])
  52. {
  53.     ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
  54. }
  55.  
  56. //-------------------------------------------------
  57.  
  58. // ********** CALLBACKS **********
  59.  
  60. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  61. {
  62.     if(!gPlayerUsingLoopingAnim[playerid]) return;
  63.  
  64.     if(IsKeyJustDown(KEY_SPRINT,newkeys,oldkeys)) {
  65.         StopLoopingAnim(playerid);
  66.         TextDrawHideForPlayer(playerid,txtAnimHelper);
  67.     }
  68. }
  69.  
  70. //------------------------------------------------
  71.  
  72. public OnPlayerDeath(playerid, killerid, reason)
  73. {
  74.     // if they die whilst performing a looping anim, we should reset the state
  75.     if(gPlayerUsingLoopingAnim[playerid]) {
  76.         gPlayerUsingLoopingAnim[playerid] = 0;
  77.         TextDrawHideForPlayer(playerid,txtAnimHelper);
  78.     }
  79.  
  80.     return 1;
  81. }
  82.  
  83. //-------------------------------------------------
  84.  
  85. public OnPlayerSpawn(playerid)
  86. {
  87.     if(!gPlayerAnimLibsPreloaded[playerid]) {
  88.         PreloadAnimLib(playerid,"BOMBER");
  89.         PreloadAnimLib(playerid,"RAPPING");
  90.         PreloadAnimLib(playerid,"SHOP");
  91.         PreloadAnimLib(playerid,"BEACH");
  92.         PreloadAnimLib(playerid,"SMOKING");
  93.         PreloadAnimLib(playerid,"FOOD");
  94.         PreloadAnimLib(playerid,"ON_LOOKERS");
  95.         PreloadAnimLib(playerid,"DEALER");
  96.         PreloadAnimLib(playerid,"CRACK");
  97.         PreloadAnimLib(playerid,"CARRY");
  98.         PreloadAnimLib(playerid,"COP_AMBIENT");
  99.         PreloadAnimLib(playerid,"PARK");
  100.         PreloadAnimLib(playerid,"INT_HOUSE");
  101.         PreloadAnimLib(playerid,"FOOD");
  102.         gPlayerAnimLibsPreloaded[playerid] = 1;
  103.     }
  104.     return 1;
  105. }
  106.  
  107. //-------------------------------------------------
  108.  
  109. public OnPlayerConnect(playerid)
  110. {
  111.     gPlayerUsingLoopingAnim[playerid] = 0;
  112.     gPlayerAnimLibsPreloaded[playerid] = 0;
  113.    
  114.     return 1;
  115. }
  116.  
  117. //-------------------------------------------------
  118.  
  119. public OnFilterScriptInit()
  120. {
  121.     // Init our text display
  122.     txtAnimHelper = TextDrawCreate(610.0, 400.0,
  123.     "~r~~k~~PED_SPRINT~ ~w~to stop the animation");
  124.     TextDrawUseBox(txtAnimHelper, 0);
  125.     TextDrawFont(txtAnimHelper, 2);
  126.     TextDrawSetShadow(txtAnimHelper,0); // no shadow
  127.     TextDrawSetOutline(txtAnimHelper,1); // thickness 1
  128.     TextDrawBackgroundColor(txtAnimHelper,0x000000FF);
  129.     TextDrawColor(txtAnimHelper,0xFFFFFFFF);
  130.     TextDrawAlignment(txtAnimHelper,3); // align right
  131. }
  132.  
  133. //-------------------------------------------------
  134.  
  135. public OnPlayerCommandText(playerid, cmdtext[])
  136. {
  137.     new cmd[256];
  138.     new idx;
  139.     new dancestyle;
  140.     new sexstyle;
  141.     cmd = strtok(cmdtext, idx);
  142.  
  143.     if(strcmp(cmd,"/anims",true)==0)
  144.     {
  145.         SendClientMessage(playerid,0xFF8200FF,"Available Animations:");
  146.         SendClientMessage(playerid,0xFF8200FF,"Anim: /sit /kiss /wank /handsup /drunk /bomb /getarrested /laugh /lookout /robman");
  147.         SendClientMessage(playerid,0xFF8200FF,"Anim: /adie /medic /crossarms /lay /ahide /vomit /eat /wave /taichi");
  148.         SendClientMessage(playerid,0xFF8200FF,"Anim: /deal /crack /smokem /smokef /groundsit /chat /fucku");
  149.         SendClientMessage(playerid,0xFF8200FF,"Special: /handsup /cellin /cellout /beer /wine /sprunk /ciggy /piss /dance");
  150.         return 1;
  151.     }
  152.    
  153.     if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) {
  154.         // We don't handle anything here that can be used InVehicle
  155.         return 0;
  156.     }
  157. if(strcmp(cmdtext, "/Sex", true) == 0) {
  158. LoopingAnim(playerid,"SNM","SPANKING_ENDW",4.1,0,1,1,1,1);
  159. return 1;
  160. }
  161.  
  162. if(strcmp(cmdtext, "/adie", true) == 0) {
  163. ApplyAnimation(playerid,"PED","BIKE_fallR",4.1,0,1,1,1,1);
  164. LoopingAnim(playerid,"PED","BIKE_fallR",4.1,0,1,1,1,1);
  165. return 1;
  166. }
  167.  
  168.  
  169. if(strcmp(cmdtext, "/medic", true) == 0) {
  170. LoopingAnim(playerid,"MEDIC","CPR",4.1,0,1,1,1,0);
  171. return 1;
  172. }
  173. if (strcmp(cmdtext, "/kiss", true)==0)
  174. {
  175.                
  176.      LoopingAnim(playerid,"KISSING","Grlfrd_Kiss_02",4.0,1,0,0,1,0);
  177.      return 1;
  178. }
  179.  
  180.  
  181.  
  182.      if (strcmp(cmdtext, "/wank", true)==0)
  183.         {
  184.             LoopingAnim(playerid,"PAULNMAC","wank_loop",4.0,1,1,1,1,0);
  185.             return 1;
  186. }
  187.  
  188.  
  189.     // HANDSUP
  190.     if(strcmp(cmd, "/handsup", true) == 0) {
  191.         SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
  192.         return 1;
  193.     }
  194.    
  195.     // CELLPHONE IN
  196.     if(strcmp(cmd, "/cellin", true) == 0) {
  197.         SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
  198.         return 1;
  199.     }
  200.    
  201.     // CELLPHONE OUT
  202.     if(strcmp(cmd, "/cellout", true) == 0) {
  203.         SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
  204.         return 1;
  205.     }
  206.  
  207.     // CELLPHONE OUT
  208.     if(strcmp(cmd, "/cellout", true) == 0) {
  209.         SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
  210.         return 1;
  211.     }
  212.  
  213.     // SIT >> uncomment if you don't have one. ( delete the /* and */ ) <<
  214.     if(strcmp(cmd, "/sit", true) == 0)
  215.     {
  216.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SITTING);
  217.         return 1;
  218.     }
  219.    
  220.     // PEE
  221.     if(strcmp(cmd, "/piss", true) == 0)
  222.     {
  223.         SetPlayerSpecialAction(playerid, 68); // not defined in a_players.inc, so it's just the ID.
  224.         return 1;
  225.     }
  226.    
  227.     // DRINK - BEER
  228.     if(strcmp(cmd, "/beer", true) == 0)
  229.     {
  230.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER);
  231.         SendClientMessage(playerid, 0xff8c00ff, "HINT: To drink, use the FIRE KEY."); // 0xff8c00ff - ORANGE
  232.         return 1;
  233.     }
  234.    
  235.     // DRINK - WINE
  236.     if(strcmp(cmd, "/wine", true) == 0)
  237.     {
  238.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE);
  239.         SendClientMessage(playerid, 0xff8c00ff, "HINT: To drink, use the FIRE KEY."); // 0xff8c00ff - ORANGE
  240.         return 1;
  241.     }
  242.    
  243.     // DRINK - SPRUNK
  244.     if(strcmp(cmd, "/sprunk", true) == 0)
  245.     {
  246.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);
  247.         SendClientMessage(playerid, 0xff8c00ff, "HINT: To drink, use the FIRE KEY."); // 0xff8c00ff - ORANGE
  248.         return 1;
  249.     }
  250.    
  251.     // SMOKE CIGAR
  252.     if(strcmp(cmd, "/ciggy", true) == 0)
  253.     {
  254.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
  255.         SendClientMessage(playerid, 0xff8c00ff, "HINT: To smoke, use the FIRE KEY."); // 0xff8c00ff - ORANGE
  256.         return 1;
  257.     }
  258.    
  259.     // Drunk
  260.     if(strcmp(cmd, "/drunk", true) == 0) {
  261.         LoopingAnim(playerid,"PED","WALK_DRUNK",4.0,1,1,1,0,0);
  262.         return 1;
  263.     }
  264.    
  265.     // Place a Bomb
  266.     if (strcmp("/bomb", cmdtext, true) == 0) {
  267.         ClearAnimations(playerid);
  268.         OnePlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); // Place Bomb
  269.         return 1;
  270.     }
  271.     // Police Arrest
  272.     if (strcmp("/getarrested", cmdtext, true, 7) == 0) {
  273.           LoopingAnim(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); // Gun Arrest
  274.           return 1;
  275.     }
  276.     // Laugh
  277.     if (strcmp("/laugh", cmdtext, true) == 0) {
  278.           OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh
  279.           return 1;
  280.     }
  281.     // Rob Lookout
  282.     if (strcmp("/lookout", cmdtext, true) == 0) {
  283.           OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
  284.           return 1;
  285.     }
  286.     // Rob Threat
  287.     if (strcmp("/robman", cmdtext, true) == 0) {
  288.           LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob
  289.           return 1;
  290.     }
  291.     // Arms crossed
  292.     if (strcmp("/crossarms", cmdtext, true) == 0) {
  293.           LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed
  294.           return 1;
  295.     }
  296.     // Lay Down
  297.     if (strcmp("/lay", cmdtext, true, 6) == 0) {
  298.           LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down
  299.           return 1;
  300.     }
  301.     // Take Cover
  302.     if (strcmp("/ahide", cmdtext, true, 3) == 0) {
  303.           LoopingAnim(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover
  304.           return 1;
  305.     }
  306.     // Vomit
  307.     if (strcmp("/vomit", cmdtext, true) == 0) {
  308.           OnePlayAnim(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit BAH!
  309.           return 1;
  310.     }
  311.     // Eat Burger
  312.     if (strcmp("/eat", cmdtext, true) == 0) {
  313.           OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
  314.           return 1;
  315.     }
  316.     // Wave
  317.     if (strcmp("/wave", cmdtext, true) == 0) {
  318.           LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave
  319.           return 1;
  320.     }
  321.     // Slap Ass
  322.     if (strcmp("/slapass", cmdtext, true) == 0) {
  323.          OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); // Ass Slapping
  324.           return 1;
  325.     }
  326.     // Dealer
  327.     if (strcmp("/deal", cmdtext, true) == 0) {
  328.           OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); // Deal Drugs
  329.           return 1;
  330.     }
  331.     // Crack Dieing
  332.     if (strcmp("/crack", cmdtext, true, 6) == 0) {
  333.           LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Dieing of Crack
  334.           return 1;
  335.     }
  336.     // Male Smoking
  337.     if (strcmp("/smokem", cmdtext, true, 4) == 0) {
  338.           LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Smoke
  339.           return 1;
  340.     }
  341.     // Female Smoking
  342.     if (strcmp("/smokef", cmdtext, true) == 0) {
  343.           LoopingAnim(playerid, "SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); // Female Smoking
  344.           return 1;
  345.     }
  346.     // Sit
  347.     if (strcmp("/groundsit", cmdtext, true) == 0) {
  348.           LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); // Sit
  349.           return 1;
  350.     }
  351.     // Idle Chat
  352.     if(strcmp(cmd, "/chat", true) == 0) {
  353.          OnePlayAnim(playerid,"PED","IDLE_CHAT",4.0,0,0,0,0,0);
  354.          return 1;
  355.     }
  356.     // Fucku
  357.     if(strcmp(cmd, "/fucku", true) == 0) {
  358.          OnePlayAnim(playerid,"PED","fucku",4.0,0,0,0,0,0);
  359.          return 1;
  360.     }
  361.     // TaiChi
  362.     if(strcmp(cmd, "/taichi", true) == 0) {
  363.          LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0);
  364.          return 1;
  365.     }
  366.    
  367.     // ChairSit
  368.     if(strcmp(cmd, "/chairsit", true) == 0) {
  369.          LoopingAnim(playerid,"BAR","dnk_stndF_loop",4.0,1,0,0,0,0);
  370.          return 1;
  371.     }
  372.    
  373.      /*Would allow people to troll... but would be cool as a script
  374.        controlled function
  375.      Bed Sleep R*/
  376.     if(strcmp(cmd, "/inbedright", true) == 0) {
  377.          LoopingAnim(playerid,"INT_HOUSE","BED_Loop_R",4.0,1,0,0,0,0);
  378.          return 1;
  379.     }
  380.     // Bed Sleep L
  381.     if(strcmp(cmd, "/inbedleft", true) == 0) {
  382.          LoopingAnim(playerid,"INT_HOUSE","BED_Loop_L",4.0,1,0,0,0,0);
  383.          return 1;
  384.     }
  385.    
  386.  
  387.  
  388. /*if(strcmp(cmd, "/sex", true) == 0) {
  389. new tmp[256];
  390.  
  391. tmp = strtok(cmdtext, idx);
  392. if(!strlen(tmp) || strlen(tmp > 2) {
  393. SendClientMessage(playerid, 0xFF0000FF, "USAGE: /sex 1-8");
  394. return 1;
  395. }
  396.  
  397. sexstyle = strval(tmp);
  398. if(sexstyle < 1 || sexstyle > 8) {
  399. SendClientMessage(playerid,0xFF0000FF, "USAGE: /sex 1-8");
  400. return 1;
  401. }
  402. if(sexstyle == 1) {
  403. LoopingAnim(playerid,"SNM","SPANKING_IDLEW",4.0,1,0,0,0,0);
  404. } else if(sexstyle = 2) {
  405. LoopingAnim(playerid,"SNM","SPANKING_IDLEP",4.0,1,0,0,0,0);
  406. } else if(sexstyle = 3) {
  407. LoopingAnim(playerid,"SNM","SPANKINGW",4.0,1,0,0,0,0);
  408. } else if(sexstyle = 4) {
  409. LoopingAnim(playerid,"SNM","SPANKINGP",4.0,1,0,0,0,0);
  410. } else if(sexstyle = 5) {
  411. LoopingAnim(playerid,"SNM","SPANKEDW",4.0,1,0,0,0,0);
  412. } else if(sexstyle = 6) {
  413. LoopingAnim(playerid,"SNM","SPANKEDP",4.0,1,0,0,0,0);
  414. } else if(sexstyle = 7) {
  415. LoopingAnim(playerid,"SNM","SPANKING_ENDW",4.0,1,0,0,0,0);
  416. } else if(sexstyle = 8) {
  417. LoopingAnim(playerid,"SNM","SPANKING_ENDP",4.0,1,0,0,0,0);
  418. }
  419. return 1;
  420. }*/
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.     // START DANCING
  428.     if(strcmp(cmd, "/dance", true) == 0) {
  429.             new tmp[256];
  430.  
  431.             // Get the dance style param
  432.             tmp = strtok(cmdtext, idx);
  433.             if(!strlen(tmp) || strlen(tmp) > 2) {
  434.                 SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
  435.                 return 1;
  436.             }
  437.            
  438.             dancestyle = strval(tmp);
  439.             if(dancestyle < 1 || dancestyle > 4) {
  440.                 SendClientMessage(playerid,0xFF0000FF,"USAGE: /dance [style 1-4]");
  441.                 return 1;
  442.             }
  443.            
  444.             if(dancestyle == 1) {
  445.                 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
  446.             } else if(dancestyle == 2) {
  447.                 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
  448.             } else if(dancestyle == 3) {
  449.                 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
  450.             } else if(dancestyle == 4) {
  451.                 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
  452.             }
  453.             return 1;
  454.     }
  455.  
  456.     return 0;
  457. }
  458.  
  459. //----------------------------------------------------------
  460.  
  461. stock strtok(const string[], &index)
  462. {
  463.     new length = strlen(string);
  464.     while ((index < length) && (string[index] <= ' '))
  465.     {
  466.         index++;
  467.     }
  468.  
  469.     new offset = index;
  470.     new result[20];
  471.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  472.     {
  473.         result[index - offset] = string[index];
  474.         index++;
  475.     }
  476.     result[index - offset] = EOS;
  477.     return result;
  478. }
  479.  
  480. //------------------------------------------------
  481.  
  482. //----------------------------------------------------------
  483.  
  484. stock IsKeyJustDown(key, newkeys, oldkeys)
  485. {
  486.     if((newkeys & key) && !(oldkeys & key)) return 1;
  487.     return 0;
  488. }
  489.  
  490. //----------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement