summaryrefslogtreecommitdiff
path: root/npc/003-0
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-06-26 12:51:31 -0300
committerJesusaves <cpntb1@ymail.com>2020-06-26 12:51:31 -0300
commitd368ba19418011e8651a7fa40a4285e6b486638d (patch)
tree33f16513ebdbf75e2c9f6a5e4e08c961aa9250c7 /npc/003-0
parent2133b7f03c15ecf058a84f9551cb5644ff822d25 (diff)
downloadserverdata-d368ba19418011e8651a7fa40a4285e6b486638d.tar.gz
serverdata-d368ba19418011e8651a7fa40a4285e6b486638d.tar.bz2
serverdata-d368ba19418011e8651a7fa40a4285e6b486638d.tar.xz
serverdata-d368ba19418011e8651a7fa40a4285e6b486638d.zip
Tweak a bit MQ2 - Assassin
Diffstat (limited to 'npc/003-0')
-rw-r--r--npc/003-0/mainquest.txt67
1 files changed, 63 insertions, 4 deletions
diff --git a/npc/003-0/mainquest.txt b/npc/003-0/mainquest.txt
index 8edf60189..97f2cf862 100644
--- a/npc/003-0/mainquest.txt
+++ b/npc/003-0/mainquest.txt
@@ -28,6 +28,7 @@ OnCheck:
OnBegin:
.@m$=getmap();
.@n$=instance_npcname(.name$);
+ .PLAYER=getcharid(3);
// Is assassin ambushing you or professor?
if (is_night()) {
@@ -44,19 +45,75 @@ OnBegin:
warp .@m$, 49, 33;
atcommand("@refresh");
}
- @ASSASSIN=monster(.@m$, .@x, .@y, l("Assassin"), Assassin, 1, .@n$+"::OnAssassinDefeat");
- unittalk(@ASSASSIN, l("Die now!!"));
+ .ASSASSIN=monster(.@m$, .@x, .@y, l("Assassin"), Assassin, 1, .@n$+"::OnAssassinDefeat");
+ unittalk(.ASSASSIN, l("Die now!!"));
+ // Nerf ATK, boost HP
+ /*
+ Hp: 4211
+ Attack: [198, 214]
+ */
+ setunitdata(.@REF, UDT_MAXHP, 4750);
+ setunitdata(.@REF, UDT_HP, 4750);
+ setunitdata(.@REF, UDT_ATKMIN, 150);
+ setunitdata(.@REF, UDT_ATKMAX, 180);
+
// TODO: unitwalk
// TODO: Energy Balls. Should they spawn at (21,31) and (69,31)?
// At this time they are utterly deadly. You could use a skill to
// disable them... Perhaps... A grenade?
dispbottom col(l("SCRIPT ERROR (%s/%s)", .@m$, .@n$), 1);
dispbottom l("An error happened: unitwalk failed");
- dispbottom l("An error happened: Unable to initialize timer");
- dispbottom l("An error happened: Unable to spawn: 'Energy Ball'");
+ // TODO: Assassinate
+ initnpctimer;
+ end;
+
+OnTimer15000:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("Heh... He gave me a ball, but..."));
+ end;
+
+OnTimer20000:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("I can do this alone!"));
+ end;
+
+OnTimer60000:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("Tsc...! I'll need reinforcements!"));
+ end;
+
+OnTimer65000:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("How was the summoning again...?!"));
+ end;
+
+OnTimer75000:
+ .@m$=getmap();
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("Oh, that's right!"));
+ end;
+
+OnTimer82000:
+ .@n$=instance_npcname(.name$);
+ unittalk(.ASSASSIN, l("ENEEEEEEEEERGY BALLLLLLL!"));
+ getmapxy(.@m$, .@x, .@y, UNITTYPE_MOB, .ASSASSIN);
+ .@REF=monster(.@m$, .@x, .@y, "Energy Ball", EnergyBall, 1);
+
+ // Nerf the monster, be careful, it has a powerful skill!
+ setunitdata(.@REF, UDT_AGI, 1);
+ setunitdata(.@REF, UDT_LUK, 1);
+ setunitdata(.@REF, UDT_DEF, 10);
+ setunitdata(.@REF, UDT_MDEF, 20);
+ setunitdata(.@REF, UDT_MAXHP, 1000);
+ setunitdata(.@REF, UDT_HP, 1000);
end;
OnAssassinDefeat:
+ stopnpctimer;
.@m$=getmap();
.@n$=instance_npcname(.name$);
delcells "MQ2Wall"+getcharid(0);
@@ -79,6 +136,8 @@ OnInstanceInit:
.@n$=instance_npcname("Professor#003-0");
enablenpc .@n$;
}
+ .ASSASSIN=0;
+ .PLAYER=0;
end;
}