Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- /*
- OnPlayerChangeAnim - by Dear
- */
- new gLastPlayerAnim[MAX_PLAYERS],
- gPlayerDrownedTimer[MAX_PLAYERS],
- Text3D:gPlayer3DText[MAX_PLAYERS];
- forward OnPlayerChangeAnim(playerid, newanimid, oldanimid);
- forward Timer_DrownedDeath(playerid);
- main(){}
- public OnFilterScriptInit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- gPlayer3DText[playerid] = Create3DTextLabel(" ", 0xFF8000AA, 0.0, 0.0, 0.0, 0.0, 0);
- Attach3DTextLabelToPlayer(gPlayer3DText[playerid], playerid, 0.0, 0.0, 0.0);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Delete3DTextLabel(gPlayer3DText[playerid]);
- gPlayer3DText[playerid] = Text3D:0;
- }
- public OnPlayerUpdate(playerid)
- {
- new Anim = GetPlayerAnimationIndex(playerid);
- if(gLastPlayerAnim[playerid] != Anim)
- {
- if(funcidx("OnPlayerChangeAnim") != -1)
- CallLocalFunction("OnPlayerChangeAnim", "iii", playerid, Anim, gLastPlayerAnim[playerid]);
- gLastPlayerAnim[playerid] = Anim;
- }
- return 1;
- }
- public OnPlayerChangeAnim(playerid, newanimid, oldanimid)
- {
- new animlib[32], animname[32],
- old_animlib[32], old_animname[32];
- GetAnimationName(newanimid, animlib, 32, animname, 32);
- GetAnimationName(oldanimid, old_animlib, 32, old_animname, 32);
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
- printf("%s is now performing anim %s[%d]", pName, animname, newanimid);
- if(newanimid == 0)
- {
- animlib = "NULL";
- animname = "Nullanim";
- }
- if(oldanimid == 0)
- {
- old_animlib = "NULL";
- old_animname = "Nullanim";
- }
- if(!strcmp("SWIM", animlib) && strcmp("SWIM", old_animlib))
- {
- SendClientMessage(playerid, -1, "Setting swim timer");
- gPlayerDrownedTimer[playerid] = SetTimerEx("Timer_DrownedDeath", 20 * 1000, false, "i", playerid);
- }
- if(!strcmp(old_animlib, "SWIM", true) && strcmp("SWIM", animlib))
- {
- SendClientMessage(playerid, -1, "Unsetting swim timer");
- if(gPlayerDrownedTimer[playerid])
- {
- KillTimer(gPlayerDrownedTimer[playerid]);
- gPlayerDrownedTimer[playerid] = 0;
- }
- }
- /////////////////////////////////////////////////////////////////////////////
- /*
- I could make a complete compilation of firing anims, but I don't really see the point
- of such thing.
- I'm just making it simple and as fast as I can.
- Side notes:
- */
- new weapon = GetPlayerWeapon(playerid);
- if(weapon == 22) // Colt.45
- {
- if(!strcmp("colt45_fire", animname, true) && strcmp("colt45_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("colt45_fire", animname, true) && !strcmp("colt45_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 24) // Pythom/Glock
- {
- if(!strcmp("python_fire", animname, true) && strcmp("python_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("python_fire", animname, true) && !strcmp("python_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 33) // rifle
- {
- if(!strcmp("RIFLE_fire", animname, true) && strcmp("RIFLE_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("RIFLE_fire", animname, true) && !strcmp("RIFLE_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 35 || weapon == 36) // Hs/rl
- {
- if(!strcmp("RocketFire", animname, true) && strcmp("RocketFire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("RocketFire", animname, true) && !strcmp("RocketFire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 25) // shotgun
- {
- if(!strcmp("shotgun_fire", animname, true) && strcmp("shotgun_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("shotgun_fire", animname, true) && !strcmp("shotgun_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 23) // silenced
- {
- if(!strcmp("Silence_fire", animname, true) && strcmp("Silence_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("Silence_fire", animname, true) && !strcmp("Silence_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 32) // tec9
- {
- if(!strcmp("TEC_fire", animname, true) && strcmp("TEC_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("TEC_fire", animname, true) && !strcmp("TEC_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- if(weapon == 28) // tec9
- {
- if(!strcmp("UZI_fire", animname, true) && strcmp("UZI_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, "I'm shooting!");
- SendClientMessage(playerid, -1, "You're now shooting!");
- }
- else if(strcmp("UZI_fire", animname, true) && !strcmp("UZI_fire", old_animname, true))
- {
- Update3DTextLabelText(gPlayer3DText[playerid], -1, " ");
- SendClientMessage(playerid, -1, "You're not shooting anymore!");
- }
- return 1;
- }
- return 1;
- }
- public Timer_DrownedDeath(playerid)
- {
- SetPlayerHealth(playerid, 0);
- gPlayerDrownedTimer[playerid] = 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement