Advertisement
Guest User

OnPlayerChangeAnim

a guest
Dec 20th, 2011
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.51 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. /*
  4.     OnPlayerChangeAnim - by Dear
  5. */
  6.  
  7.  
  8. new gLastPlayerAnim[MAX_PLAYERS],
  9.     gPlayerDrownedTimer[MAX_PLAYERS],
  10.     Text3D:gPlayer3DText[MAX_PLAYERS];
  11.  
  12. forward OnPlayerChangeAnim(playerid, newanimid, oldanimid);
  13. forward Timer_DrownedDeath(playerid);
  14.  
  15.  
  16. main(){}
  17.  
  18. public OnFilterScriptInit()
  19. {
  20.     return 1;
  21. }
  22.  
  23. public OnPlayerConnect(playerid)
  24. {
  25.     gPlayer3DText[playerid] = Create3DTextLabel("  ", 0xFF8000AA, 0.0, 0.0, 0.0, 0.0, 0);
  26.     Attach3DTextLabelToPlayer(gPlayer3DText[playerid], playerid, 0.0, 0.0, 0.0);
  27.     return 1;
  28. }
  29.  
  30. public OnPlayerDisconnect(playerid, reason)
  31. {
  32.     Delete3DTextLabel(gPlayer3DText[playerid]);
  33.     gPlayer3DText[playerid] = Text3D:0;
  34. }
  35.  
  36. public OnPlayerUpdate(playerid)
  37. {
  38.     new Anim = GetPlayerAnimationIndex(playerid);
  39.  
  40.     if(gLastPlayerAnim[playerid] != Anim)
  41.     {
  42.         if(funcidx("OnPlayerChangeAnim") != -1)
  43.             CallLocalFunction("OnPlayerChangeAnim", "iii", playerid, Anim, gLastPlayerAnim[playerid]);
  44.  
  45.         gLastPlayerAnim[playerid] = Anim;
  46.     }
  47.  
  48.  
  49.     return 1;
  50. }
  51.  
  52. public OnPlayerChangeAnim(playerid, newanimid, oldanimid)
  53. {
  54.  
  55.     new animlib[32], animname[32],
  56.         old_animlib[32], old_animname[32];
  57.  
  58.     GetAnimationName(newanimid, animlib, 32, animname, 32);
  59.     GetAnimationName(oldanimid, old_animlib, 32, old_animname, 32);
  60.  
  61.     new pName[MAX_PLAYER_NAME];
  62.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  63.     printf("%s is now performing anim %s[%d]", pName, animname, newanimid);
  64.  
  65.     if(newanimid == 0)
  66.     {
  67.         animlib = "NULL";
  68.         animname = "Nullanim";
  69.     }
  70.     if(oldanimid == 0)
  71.     {
  72.         old_animlib = "NULL";
  73.         old_animname = "Nullanim";
  74.     }
  75.  
  76.     if(!strcmp("SWIM", animlib) && strcmp("SWIM", old_animlib))
  77.     {
  78.         SendClientMessage(playerid, -1, "Setting swim timer");
  79.         gPlayerDrownedTimer[playerid] = SetTimerEx("Timer_DrownedDeath", 20 * 1000, false, "i", playerid);
  80.     }
  81.  
  82.     if(!strcmp(old_animlib, "SWIM", true) && strcmp("SWIM", animlib))
  83.     {
  84.         SendClientMessage(playerid, -1, "Unsetting swim timer");
  85.         if(gPlayerDrownedTimer[playerid])
  86.         {
  87.             KillTimer(gPlayerDrownedTimer[playerid]);
  88.             gPlayerDrownedTimer[playerid] = 0;
  89.         }
  90.     }
  91.  
  92.     /////////////////////////////////////////////////////////////////////////////
  93.     /*
  94.  
  95.         I could make a complete compilation of firing anims, but I don't really see the point
  96.         of such thing.
  97.         I'm just making it simple and as fast as I can.
  98.  
  99.  
  100.         Side notes:
  101.  
  102.     */
  103.     new weapon = GetPlayerWeapon(playerid);
  104.  
  105.     if(weapon == 22) // Colt.45
  106.     {
  107.         if(!strcmp("colt45_fire", animname, true) && strcmp("colt45_fire", old_animname, true))
  108.         {
  109.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  110.             SendClientMessage(playerid, -1, "You're now shooting!");
  111.         }
  112.         else if(strcmp("colt45_fire", animname, true) && !strcmp("colt45_fire", old_animname, true))
  113.         {
  114.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  115.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  116.         }
  117.         return 1;
  118.     }
  119.     if(weapon == 24) // Pythom/Glock
  120.     {
  121.         if(!strcmp("python_fire", animname, true) && strcmp("python_fire", old_animname, true))
  122.         {
  123.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  124.             SendClientMessage(playerid, -1, "You're now shooting!");
  125.         }
  126.         else if(strcmp("python_fire", animname, true) && !strcmp("python_fire", old_animname, true))
  127.         {
  128.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  129.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  130.         }
  131.         return 1;
  132.     }
  133.     if(weapon == 33) // rifle
  134.     {
  135.         if(!strcmp("RIFLE_fire", animname, true) && strcmp("RIFLE_fire", old_animname, true))
  136.         {
  137.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  138.             SendClientMessage(playerid, -1, "You're now shooting!");
  139.         }
  140.         else if(strcmp("RIFLE_fire", animname, true) && !strcmp("RIFLE_fire", old_animname, true))
  141.         {
  142.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  143.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  144.         }
  145.         return 1;
  146.     }
  147.     if(weapon == 35 || weapon == 36) // Hs/rl
  148.     {
  149.         if(!strcmp("RocketFire", animname, true) && strcmp("RocketFire", old_animname, true))
  150.         {
  151.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  152.             SendClientMessage(playerid, -1, "You're now shooting!");
  153.         }
  154.         else if(strcmp("RocketFire", animname, true) && !strcmp("RocketFire", old_animname, true))
  155.         {
  156.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  157.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  158.         }
  159.         return 1;
  160.     }
  161.     if(weapon == 25) // shotgun
  162.     {
  163.         if(!strcmp("shotgun_fire", animname, true) && strcmp("shotgun_fire", old_animname, true))
  164.         {
  165.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  166.             SendClientMessage(playerid, -1, "You're now shooting!");
  167.         }
  168.         else if(strcmp("shotgun_fire", animname, true) && !strcmp("shotgun_fire", old_animname, true))
  169.         {
  170.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  171.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  172.         }
  173.         return 1;
  174.     }
  175.     if(weapon == 23) // silenced
  176.     {
  177.         if(!strcmp("Silence_fire", animname, true) && strcmp("Silence_fire", old_animname, true))
  178.         {
  179.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  180.             SendClientMessage(playerid, -1, "You're now shooting!");
  181.         }
  182.         else if(strcmp("Silence_fire", animname, true) && !strcmp("Silence_fire", old_animname, true))
  183.         {
  184.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  185.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  186.         }
  187.         return 1;
  188.     }
  189.     if(weapon == 32) // tec9
  190.     {
  191.         if(!strcmp("TEC_fire", animname, true) && strcmp("TEC_fire", old_animname, true))
  192.         {
  193.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  194.             SendClientMessage(playerid, -1, "You're now shooting!");
  195.         }
  196.         else if(strcmp("TEC_fire", animname, true) && !strcmp("TEC_fire", old_animname, true))
  197.         {
  198.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  199.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  200.         }
  201.         return 1;
  202.     }
  203.     if(weapon == 28) // tec9
  204.     {
  205.         if(!strcmp("UZI_fire", animname, true) && strcmp("UZI_fire", old_animname, true))
  206.         {
  207.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
  208.             SendClientMessage(playerid, -1, "You're now shooting!");
  209.         }
  210.         else if(strcmp("UZI_fire", animname, true) && !strcmp("UZI_fire", old_animname, true))
  211.         {
  212.             Update3DTextLabelText(gPlayer3DText[playerid], -1, "  ");
  213.             SendClientMessage(playerid, -1, "You're not shooting anymore!");
  214.         }
  215.         return 1;
  216.     }
  217.  
  218.     return 1;
  219. }
  220.  
  221. public Timer_DrownedDeath(playerid)
  222. {
  223.     SetPlayerHealth(playerid, 0);
  224.     gPlayerDrownedTimer[playerid] = 0;
  225.     return 1;
  226. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement