// #reapercry // Spell to warp to Keshlam Outskirts // Variable: @reapercry -> Holds summon state // // If this was Evol2 engine, I would be able to easily use bitmasks, // Having a custom password sequence unique per character. // But alas, on TMWA, I can't really abuse player variables. // So I allow you to cheat. Or not. Lemme think. Account variable... // This is actually an old script and I'm too lazy to redo. // Returns true if player inside candle area // call("alacriuspos", bitwise) function script alacriuspos { @alacriusp = 0; // Left side if (1 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_25_53_29_56; if (2 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_20_47_22_51; if (4 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_22_40_25_43; if (8 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_29_40_32_43; if (16 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_32_47_35_50; if (32 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_25_53_29_56; // Left not set if (1 == getarg(0)) goto L_29_40_32_43; if (2 == getarg(0)) goto L_32_47_35_50; if (4 == getarg(0)) goto L_25_53_29_56; if (8 == getarg(0)) goto L_20_47_22_51; if (16 == getarg(0)) goto L_22_40_25_43; if (32 == getarg(0)) goto L_29_40_32_43; // Right side if (64 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_49_53_53_56; if (128 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_43_47_46_51; if (256 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_46_40_49_43; if (512 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_53_40_56_43; if (1024 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_56_47_58_50; if (2048 == getarg(0) && #CRYPT_PASSWORD & getarg(0)) goto L_49_53_53_56; // Right side not set if (64 == getarg(0)) goto L_53_40_56_43; if (128 == getarg(0)) goto L_56_47_58_50; if (256 == getarg(0)) goto L_49_53_53_56; if (512 == getarg(0)) goto L_43_47_46_51; if (1024 == getarg(0)) goto L_46_40_49_43; if (2048 == getarg(0)) goto L_53_40_56_43; // Nope, all wrong @alacriusp = 0; return; L_29_40_32_43: @alacriusp = isin("027-8", 29, 40, 32, 43); return; L_22_40_25_43: @alacriusp = isin("027-8", 22, 40, 25, 43); return; L_20_47_22_51: @alacriusp = isin("027-8", 20, 47, 22, 51); return; L_25_53_29_56: @alacriusp = isin("027-8", 25, 53, 29, 56); return; L_32_47_35_50: @alacriusp = isin("027-8", 32, 47, 35, 50); return; L_53_40_56_43: @alacriusp = isin("027-8", 53, 40, 56, 43); return; L_46_40_49_43: @alacriusp = isin("027-8", 46, 40, 49, 43); return; L_43_47_46_51: @alacriusp = isin("027-8", 43, 47, 46, 51); return; L_49_53_53_56: @alacriusp = isin("027-8", 49, 53, 53, 56); return; L_56_47_58_50: @alacriusp = isin("027-8", 56, 47, 58, 50); return; } function script Reapercry { // Not in Terogan's Room if (getmapname() != "027-8") end; // Terogan is asleep if (!$@CRYPT_FIGHT3) end; // No password is set o.o if (!#CRYPT_PASSWORD) end; // Switch the quest state if (@reapercry == 0) goto L_Check0; if (@reapercry == 1) goto L_Check1; if (@reapercry == 2) goto L_Check2; if (@reapercry == 3) goto L_Check3; if (@reapercry == 4) goto L_Check4; if (@reapercry == 5) goto L_Check5; // Something went wrong!! end; L_Check0: callfunc("alacriuspos", 1); if (@alacriusp) goto L_Exec0; callfunc("alacriuspos", 64); if (@alacriusp) goto L_Exec0; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec0: misceffect FX_FIRE_EXPLOSION, strcharinfo(0); // Hmm FIXME @reapercry = 1; end; L_Check1: callfunc("alacriuspos", 2); if (@alacriusp) goto L_Exec1; callfunc("alacriuspos", 128); if (@alacriusp) goto L_Exec1; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec1: misceffect FX_FIRE_EXPLOSION, strcharinfo(0); // Hmm FIXME @reapercry = 2; end; L_Check2: callfunc("alacriuspos", 4); if (@alacriusp) goto L_Exec2; callfunc("alacriuspos", 256); if (@alacriusp) goto L_Exec2; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec2: misceffect FX_FIRE_EXPLOSION, strcharinfo(0); // Hmm FIXME @reapercry = 3; end; L_Check3: callfunc("alacriuspos", 8); if (@alacriusp) goto L_Exec3; callfunc("alacriuspos", 512); if (@alacriusp) goto L_Exec3; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec3: misceffect FX_FIRE_EXPLOSION, strcharinfo(0); // Hmm FIXME @reapercry = 4; end; L_Check4: callfunc("alacriuspos", 16); if (@alacriusp) goto L_Exec4; callfunc("alacriuspos", 1024); if (@alacriusp) goto L_Exec4; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec4: misceffect FX_FIRE_EXPLOSION, strcharinfo(0); // Hmm FIXME @reapercry = 5; end; L_Check5: callfunc("alacriuspos", 32); if (@alacriusp) goto L_Exec5; callfunc("alacriuspos", 2048); if (@alacriusp) goto L_Exec5; @reapercry = 0; misceffect FX_MAGIC_DARK_EXPLOSION, strcharinfo(0); end; L_Exec5: // This means cast sequence complete // Maybe FX_MAGIC_BLUE_TELEPORT? (iilia's effect) @reapercry = 0; getexp 100000, 0; misceffect FX_MAGIC_TELEPORT, strcharinfo(0); warp "099-7", 75, 36; end; }