//===== rAthena Script =============================================
//= Punching Bag NPC
//===== By: ========================================================
//= Secretdataz
//===== Current Version: ===========================================
//= 0.2
//===== Changelog: =================================================
//= 0.1 Initial commit
//= 0.2 Add MD_KNOCKBACK_IMMUNE
//===== Compatible With: ===========================================
//= rAthena Project
//===== Additional Comments: =======================================
//= When duplicating this NPC. Only use NUMBER after the # [secret]
//==================================================================
prontera,224,79,0 script PunchingBag#0 HIDDEN_NPC,{
end;
OnMyMobDead:
OnInit:
killmonster("prontera",strnpcinfo(NPC_NAME)+"::OnMyMobDead");
getmapxy(.map$,.mapx,.mapy,UNITTYPE_NPC,strnpcinfo(NPC_NAME));
.mobid = monster(strnpcinfo(NPC_MAP),.mapx,.mapy,"Punching Bag",1905,1,strnpcinfo(NPC_NAME)+"::OnMyMobDead");
.@dupid = atoi(strnpcinfo(NPC_NAME_HIDDEN));
.gid[.@dupid] = .mobid;
setunitdata(.gid[.@dupid],UDT_MODE,UDT_MODE|0x00020|0x08000); // Set MD_STATUS_IMMUNE (0x4000000) because EDP/burn/%MHP based status can skew the DPS counter so much.
setunitdata(.gid[.@dupid],UDT_MAXHP,99999999);
setunitdata(.gid[.@dupid],UDT_HP,99999999);
.mhp[.@dupid] = getunitdata(.gid[.@dupid],UDT_MAXHP);
initnpctimer();
end;
OnTimer5000:
.@dupid = atoi(strnpcinfo(NPC_NAME_HIDDEN));
if(getunittype(.gid[.@dupid]) == 3){
.@mhp = getunitdata(.gid[.@dupid],UDT_HP);
.@diff = (.mhp[.@dupid] - .@mhp);
if(.@diff > 0){
npctalk "J'ai pris " + (.@diff/5) + " de DPS en 5 secondes.";
setunitdata(.gid[.@dupid],UDT_HP,.mhp[.@dupid]);
specialeffect EF_HEAL;
}
}
initnpctimer;
end;
}
prontera,216,79,0 duplicate(PunchingBag#0) PunchingBag#1 HIDDEN_NPC
prontera,224,70,0 duplicate(PunchingBag#0) PunchingBag#2 HIDDEN_NPC
prontera,216,58,0 duplicate(PunchingBag#0) PunchingBag#3 HIDDEN_NPC
prontera,224,58,0 duplicate(PunchingBag#0) PunchingBag#4 HIDDEN_NPC
prontera,216,46,0 duplicate(PunchingBag#0) PunchingBag#5 HIDDEN_NPC
prontera,224,46,0 duplicate(PunchingBag#0) PunchingBag#6 HIDDEN_NPC
prontera,252,80,0 duplicate(PunchingBag#0) PunchingBag#7 HIDDEN_NPC
prontera,260,80,0 duplicate(PunchingBag#0) PunchingBag#8 HIDDEN_NPC
prontera,252,70,0 duplicate(PunchingBag#0) PunchingBag#9 HIDDEN_NPC
prontera,260,70,0 duplicate(PunchingBag#0) PunchingBag#10 HIDDEN_NPC
prontera,252,58,0 duplicate(PunchingBag#0) PunchingBag#11 HIDDEN_NPC
prontera,260,58,0 duplicate(PunchingBag#0) PunchingBag#12 HIDDEN_NPC
prontera,252,46,0 duplicate(PunchingBag#0) PunchingBag#13 HIDDEN_NPC
prontera,260,46,0 duplicate(PunchingBag#0) PunchingBag#14 HIDDEN_NPC