diff options
Diffstat (limited to 'npc/034-3')
-rw-r--r-- | npc/034-3/gemini.txt | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/npc/034-3/gemini.txt b/npc/034-3/gemini.txt index a41733a39..ffbc19205 100644 --- a/npc/034-3/gemini.txt +++ b/npc/034-3/gemini.txt @@ -4,4 +4,92 @@ // Description: // Gemini Sisters Quest - Outside the Building +034-3,57,29,0 script #GeminiDoor NPC_HIDDEN,0,0,{ + end; + +OnTouch: + if (instance_id() < 0 || getcharid(1) < 1) end; + GeminiCheck(8); + slide 58, 34; + percentheal -20, 0; + dispbottom l("You are pushed back violently. There is probably some way to break this barrier."); + end; +} + +034-3,51,38,0 script Engravings#Gemini NPC_NO_SPRITE,{ + mes l("You can read some words engraved inside this rock, but some are erased by wind and time:"); + next; + mes l("\".. can use this .. power..´. . .´. . . amplify a spell ..´."); + mes l(" . ´´. Don't let .. spell power .´..´ . .. fade away ..."); + mes l("´ .Use lazurite stones ´..´. they will appear. ..´ .. drop them inside .. this circle."); + mes l(". ´ power.. drains .. life..´. .´ focus . .not move at all´. .\""); + next; + mes l("Below this strange writing, you notice a word still deeply engraved in the stone:"); + next; + mesq b("catalazuli"); + next; + mes l("... that looks like an incantation or something."); + if (strcharinfo(0) != getpartyleader(.@p)) { + mes l("I probably should let %s chant it.", getpartyleader(.@p)); + close; + } + next; + mes l("I think this blue circle right here can be helpful to break the enchantment that blocks the door of the Inn."); + next; + mes l("Let's see how I can activate it..."); + mes l("But I should probably get inside it, first."); + close; + +OnChannel: + if (instance_id() < 0 || getcharid(1) < 1) end; + GeminiCheck(8); + + // Check location + getmapxy(.@m$, .@x, .@y, 0); + if (.@x < 52 || + .@x > 54 || + .@y < 37 || + .@y > 38) end; + + // Only party leader may proceed + if (strcharinfo(0) != getpartyleader(.@p)) { + percentheal 0, -25; + specialeffect(312, AREA, getcharid(3)); + dispbottom l("Argh! I assume I can't do this chant!"); + end; + } + + // Bonus is based on int + .@bonus = readparam2(bInt) / 25; + // Unlike TMW's, all Lazurites show up at same place + // ... + // amount of initial magic power + .@magic_power = 1811 + readparam2(bInt)*2; + // Channelling required power depends on the base Int of the character + .@magic_power_required = 5707 - 2*readparam2(bInt); + // magic power loss depends also on Int + .@magic_power_loss = 53 - ((readparam2(bInt)+1)*2)/10; + + dispbottom l("Ok, let's stay focused now!"); + // TODO: Loop + end; + +OnTalkNearby: + // not very obvious stuff by gumi + .@no_nick$ = strip(substr($@p0$, getstrlen(strcharinfo(PC_NAME)) + 3, getstrlen($@p0$) - 1)); + .@message$ = strtoupper(.@no_nick$); + if (.@message$ == "catalazuli") { + goto OnChannel; + } + end; + +OnInit: + .distance=3; + .pid=getnpcid(); + debugmes "Pattern %d", .pid; + //defpattern(.pid, "^([Kk][Aa][Tt][Aa][Zz][Uu][Ll][Ii])$", "OnTalkNearby"); + defpattern(.pid, "^(.*)$", "OnTalkNearby"); + activatepset(.pid); + end; +} |