summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/003-0/mainquest.txt67
-rw-r--r--npc/functions/hub.txt9
2 files changed, 72 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;
}
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index 3b1b078b1..5b28bac7e 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -450,7 +450,16 @@ function script HUB_SkillInvoke {
// Physical Class - mostly builtin
// TODO: Archery effect-absorb skill
+
// TODO: Something powerful for swords? Like a skill combo?
+ // No cast time, but cooldown present
+ // DEF lowers as cast, damage based on combo.
+ case TMW2_HORIZONTALSLASH:
+ case TMW2_DIAGONALSLASH:
+ case TMW2_VERTICALSLASH:
+ case TMW2_STAB:
+ case TMW2_GRANDBLAST:
+ break;
// Brawling Class
case TMW2_BRAWLING: