// TMW-2 Script // Author: // Jesusalva // Description: // Hasan is the city bully and steals the player. He lost his father to a Murderer // Scorpion. Will respect player if they kill one. His mother is Sorfina, whom // explains this and cries that he never touched a Soul Menhir. Allowing player // to kill scorpion on Mahoud's Basement. // // Player must report theft first to Dausen, who will tell the player that's // normal and nobody messes with Hasan, and giving player pointer that he should // tell his mother, Sorfina. // // Reward: Cotton Short, Hasan won't steal you anymore. // // GETQ1 Variable Value; // 0 - Never stolen by Hasan // 1 - Already stolen by Hasan // 2 - Dausen pointed player to Sorfina // 3 - Sorfina unlocked Mahoud's Basement // 4 - Player killed Murderer Scorpion // 5 - Quest is complete // // $HASAN_ST // Number of Scorpions killed during Autumn // $HASAN_GP // Total money Hasan collected for Autumn event // $HASAN_LT // Previous collected money, for rewards calc // // PS. $@GM_OVERRIDE will disable Season restrictions, but values from 20/09 and 21/12 // must be set manually. // Temporary sprite 003-1,62,148,0 script Hasan NPC_ELVEN_MAN_RED,2,2,{ if (getq(TulimsharQuest_Hasan) == 0) goto L_Safe; if (getq(TulimsharQuest_Hasan) == 4) goto L_Finish; if (getq(TulimsharQuest_Hasan) == 5) goto L_Complete; mesn strcharinfo(0); mesq l("Give me back what you've stole, thief!"); next; mesn; mesq l("I stole nothing from you. Do you have any proof?"); next; menu l("I have a print screen!"), L_Print, l("No..."), L_Close; close; L_Away: mesn; mesq l("Hey... Go bother someone else."); close; L_Print: mes ""; mesn; mesq l("Let me analyze that."); mesc l("Hasan takes your print screen and analyzes it."); next; mesn; mesq l("Photoshopped. Definitely. Good luck convincing somebody with that! %%a"); next; mesn; mesq l("If you go to Lieutenant Dausen, he'll say that you used Gimp. Just give up."); close; // TODO L_Finish: mesn; mesq l("Is that... Wait... Wow. You... Killed a murderer scorpion."); next; mesn; mesq l("I promise I'll never steal from you again. Here, take this shorts."); mesq l("Good job, man!"); setq TulimsharQuest_Hasan, 5; getitem CottonShorts, 1; getexp 99, 55; close; L_Complete: mesn; mesq l("Thanks for avenging my father."); next; mesn; mesq l("I am collecting money for the Yearly Autumn Scorpion Hunter quest."); mesq l("You're, of course, invited. Thus far, the total prize money I've collected is @@ GP.", $HASAN_GP); if (season() == AUTUMN || $@GM_OVERRIDE) { mesq l("You've killed @@ scorpions, and a total of @@ were killed this season.", getq2(SQuest_Autumn), $HASAN_ST); mesq l("If the event ended now, you would get @@ GP.", getq2(SQuest_Autumn)*$HASAN_GP/$HASAN_ST); menuint l("Thanks."),0, rif(Zeny >= 5, l("Donate 5 GP for prize")),5, rif(Zeny >= 15, l("Donate 15 GP for prize")),15, rif(Zeny >= 50, l("Donate 50 GP for prize")),50, rif(Zeny >= 100, l("Donate 100 GP for prize")),100; if (@menuret > 0) { Zeny=Zeny-@menuret; $HASAN_GP=$HASAN_GP+@menuret; } } if ((season() == WINTER || $@GM_OVERRIDE == 2) && getq(SQuest_Autumn) == gettime(GETTIME_YEAR)) { .@p=getq2(SQuest_Autumn)*$HASAN_LT/$HASAN_ST; mesn l("Summary"); mes l("Scorpions killed: @@/@@ scorpions", getq2(SQuest_Autumn), $HASAN_ST); mes l("Total money collected: @@ GP", $HASAN_LT); mes l("##2Your prize: @@ GP", .@p); if (getq2(SQuest_Autumn) > 20) getexp (getq2(SQuest_Autumn)/20), 0; if (.@p >= 1) Zeny=Zeny+.@p; setq SQuest_Autumn, 1970, 0; } close; L_TouchComplete: npctalkonce l("Hey there, @@! Good luck killing monsters!", strcharinfo(0)), 3; end; L_Close: close; OnTouch: if (getq(TulimsharQuest_Hasan) == 5) goto L_TouchComplete; if (Zeny > 15) goto L_Steal; end; L_Steal: npctalkonce(l("*whistle*")); if (getq(TulimsharQuest_Hasan) == 0) goto L_DoSteal; if (getq(TulimsharQuest_Hasan) <= 4 && rand(0,100) < 20) goto L_DoSteal; end; L_DoSteal: .@s=rand(3,12); $HASAN_GP=$HASAN_GP+.@s; Zeny=Zeny-.@s; if (getq(TulimsharQuest_Hasan) == 0) setq TulimsharQuest_Hasan, 1; dispbottom l("##BYou were robbed##b by an evil NPC."); end; OnInit: .sex = G_MALE; .distance = 5; //npcspeed(150); //npcwalkto(, ); end; // Restart hasan status on 20/09 (double-sure) OnDay0920: $HASAN_ST=0; end; // Once autumn is over (21/12) restart GP poll and send value to backup OnDay1221: $HASAN_LT=0+$HASAN_GP; $HASAN_GP=0; end; } function script SQuest_Hasan { if (season() != AUTUMN && !$@GM_OVERRIDE) return; if (getq(SQuest_Autumn) != gettime(GETTIME_YEAR)) setq SQuest_Autumn, gettime(GETTIME_YEAR), 0; // All scorpions are counting for Hasan Autumn Quest if ( killedrid == Scorpion || killedrid == RedScorpion || killedrid == BlackScorpion || killedrid == CandorScorpion || killedrid == AngryScorpion || killedrid == AngryRedScorpion || killedrid == NightScorpion || killedrid == GoldenScorpion || killedrid == MurdererScorpion) { setq2 SQuest_Autumn, getq2(SQuest_Autumn)+1; $HASAN_ST=$HASAN_ST+1; } return; }