Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean AttackNPCMage(int NPCID) {
- if (npcs[NPCID] == null) return false;
- if (npcs[npcs[NPCID].attacknpc] == null) {
- ResetAttackNPC(NPCID);
- return false;
- }
- int attacknpc = npcs[NPCID].attacknpc;
- npcs[NPCID].faceNPC(attacknpc);
- int EnemyX = server.npcHandler.npcs[attacknpc].absX;
- int EnemyY = server.npcHandler.npcs[attacknpc].absY;
- int EnemyHP = server.npcHandler.npcs[attacknpc].HP;
- int maxhit = 0;
- if (!GoodDistance(EnemyX, EnemyY, npcs[NPCID].absX, npcs[NPCID].absY, 6))
- FollowNpcCB(NPCID, attacknpc);
- else if (npcs[NPCID].actionTimer == 0)
- if (server.npcHandler.npcs[attacknpc].IsDead == true)
- ResetAttackNPC(NPCID);
- else {
- int Projectile = -1;
- switch (npcs[NPCID].npcType) {
- case 3752:
- case 3753:
- case 3754:
- case 3755:
- case 3756:
- case 3757:
- case 3758:
- case 3759:
- case 3760:
- case 3761:
- npcs[NPCID].animNumber = 3882;
- Projectile = 659;
- maxhit = 8;
- break;
- case 3762:
- case 3763:
- case 3764:
- case 3765:
- case 3766:
- case 3767:
- case 3768:
- case 3769:
- case 3770:
- case 3771:
- npcs[NPCID].animNumber = 3920;
- Projectile = 668;
- maxhit = 8;
- break;
- }
- if (Projectile != -1) {
- int offsetX = (npcs[NPCID].absX - EnemyX) * -1;
- int offsetY = (npcs[NPCID].absY - EnemyY) * -1;
- GraphicsHandler.NCreateProjectile(npcs[NPCID].absY, npcs[NPCID].absX, offsetY, offsetX, 50, 85, Projectile, 43, 31, attacknpc + 1, 0, 51);
- }
- npcs[NPCID].animUpdateRequired = true;
- npcs[NPCID].updateRequired = true;
- if (misc.random(2) != 2) maxhit = 0;
- npcs[attacknpc].gethurt(misc.random(maxhit));
- npcs[NPCID].actionTimer = 6;
- }
- return true;
- }
- public boolean AttackNPC(int NPCID) {
- if (NPCID < 0) return false;
- if (npcs[NPCID] != null) {
- if (npcs[npcs[NPCID].attacknpc] != null) {
- int attacknpc = npcs[NPCID].attacknpc;
- FollowNpcCB(NPCID, attacknpc);
- npcs[NPCID].faceNPC(attacknpc);
- if (npcs[NPCID].actionTimer == 0) {
- int EnemyX = npcs[attacknpc].absX;
- int EnemyY = npcs[attacknpc].absY;
- int EnemyHP = npcs[attacknpc].HP;
- int hitDiff = misc.random(npcs[NPCID].MaxHP / 8);
- if (GoodDistance(EnemyX, EnemyY, npcs[NPCID].absX, npcs[NPCID].absY, 1)) {
- if (server.npcHandler.npcs[npcs[NPCID].attacknpc].IsDead == true) {
- ResetAttackNPC(NPCID);
- } else {
- //if(npcs[NPCID].npcType >= 3732 && npcs[NPCID].npcType <= 3741) {
- npcs[NPCID].animNumber = 3901;
- npcs[NPCID].animUpdateRequired = true;
- npcs[NPCID].updateRequired = true;
- //}
- if ((EnemyHP - hitDiff) < 0) {
- hitDiff = EnemyHP;
- }
- if (misc.random(2) != 2) hitDiff = 0;
- npcs[attacknpc].gethurt(hitDiff);
- npcs[NPCID].actionTimer = 7;
- return true;
- }
- }
- }
- }
- }
- return false;
- }
- public boolean ResetAttackNPC(int NPCID) {
- npcs[NPCID].IsUnderAttackNpc = false;
- npcs[NPCID].IsAttackingNPC = false;
- npcs[NPCID].RandomWalk = true;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement