From 8a4bf716002a017de77fe7df301ef8e4aaf00a2e Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 11:00:49 -0300 Subject: Initial commit --- npc/008-2-12/_import.txt | 5 ++ npc/008-2-12/_warps.txt | 4 ++ npc/008-2-12/mapflags.txt | 1 + npc/008-2-12/nurse.txt | 175 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 npc/008-2-12/_import.txt create mode 100644 npc/008-2-12/_warps.txt create mode 100644 npc/008-2-12/mapflags.txt create mode 100644 npc/008-2-12/nurse.txt (limited to 'npc/008-2-12') diff --git a/npc/008-2-12/_import.txt b/npc/008-2-12/_import.txt new file mode 100644 index 00000000..f5f593a2 --- /dev/null +++ b/npc/008-2-12/_import.txt @@ -0,0 +1,5 @@ +// Map 008-2-12: Hurnscald Clinic +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/008-2-12/_warps.txt", +"npc/008-2-12/mapflags.txt", +"npc/008-2-12/nurse.txt", diff --git a/npc/008-2-12/_warps.txt b/npc/008-2-12/_warps.txt new file mode 100644 index 00000000..efe934a0 --- /dev/null +++ b/npc/008-2-12/_warps.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 008-2-12: Hurnscald Clinic warps +008-2-12,30,32,0 warp #008-2-12_30_32 0,0,008-1,281,104 +008-2-12,36,27,0 warp #008-2-12_36_27 1,0,008-2-13,35,30 diff --git a/npc/008-2-12/mapflags.txt b/npc/008-2-12/mapflags.txt new file mode 100644 index 00000000..b52526a7 --- /dev/null +++ b/npc/008-2-12/mapflags.txt @@ -0,0 +1 @@ +008-2-12 mapflag town diff --git a/npc/008-2-12/nurse.txt b/npc/008-2-12/nurse.txt new file mode 100644 index 00000000..415746cf --- /dev/null +++ b/npc/008-2-12/nurse.txt @@ -0,0 +1,175 @@ +// Evol scripts. +// Author: +// gumi +// The Moubootaur Legends Development Team +// Quest states: +// [1] 0 - cannot do the quest +// [1] 1 - can do the quest +// [1] 2 - talked to inspector (1) <= start +// [1] 3 - talked to old woman (1) +// [1] 4 - talked to old woman (2) +// [1] 5 - talked to inspector (2) +// [1] 6 - talked to troupe leader (1) +// [1] 7 - talked to inspector (3) +// [1] 8 - talked to old man +// [1] 9 - talked to old woman (3) +// [1] 10 - talked to inspector (4) +// [1] 11 - talked to old woman (4) +// [1] 12 - talked to malek +// [1] 13 - searched the bookcase +// [1] 14 - talked to inspector (5) +// [1] 15 - talked to troupe leader (2) <= reward +// [1] 16 - talked to inspector (6) <= reward, end +// [2] unused +// [3] unused +// [t] unused +// Description: +// Hurnscald Nurse. Robberies in Hurnscald. + +008-2-12,28,30,0 script Nurse NPC_NURSE_LEGACY,{ + function bloodDonor; + .@q2=getq2(HurnscaldQuests_BloodDonor); + + speech(4, + l("How can I help you?")); + + // XXX: this npc used to teach the resist poison skill, do we still want that? + + selectd( + l("Oooh, these wounds! They hurt so much!"), + l("I don't feel so well, I might be sick."), + rif(.@q2 < gettimetick(2), l("I would like to donate blood.")), + l("No, I'm fine."), + rif(getq(.quest_inspector) == 2, l("Have you seen anything out of the ordinary?"))); + + switch (@menu) + { + case 1: + if (BaseLevel > .heal_max_level) + { + speech( + l("I'm sorry but I'm here only to help young adventurers and the town residents."), + l("Your level is already higher than %d.", .heal_max_level), + l("You can get some rest at the inn near here.")); + close; + } + speech(4, + l("Here, let me heal you.")); + + // Jesusalva: I don't trust npcskill() + npcskill(AL_HEAL, .heal_skill_level, .heal_npc_stats, .heal_npc_level); + + speech( + l("There you go, like new.")); + break; + case 2: + speech( + l("Then you should better see the doctor."), + l("He is usually in his office on the 3rd floor.")); + break; + case 3: + bloodDonor(); + break; + case 4: + speech( + l("Then I would ask you to leave."), + l("There are people who really need our help.")); + break; + case 5: + speech( + l("I'm too busy here to observe the town.")); + break; + } + close; + +function bloodDonor { + .@q2=getq2(HurnscaldQuests_BloodDonor); + .@q3=getq3(HurnscaldQuests_BloodDonor); + // Cheating??! + if (.@q2 > gettimetick(2)) + kick(getcharid(3)); + // Anyway, ML code comes here, adapted for TMW + mesc l("Donating blood will BLOCK YOUR MOVEMENT for three minutes."); + mesc l("Do not disconnect while waiting. You need 100% HP to donate."); + next; + // Always show Info if it is your first time donating blood + @menu = 1; + if (.@q3) { + select + l("Info"), + rif(readparam(Hp) == readparam(MaxHp), l("Yes, please use my blood to save lifes.")), + l("I changed my mind"); + mes ""; + } + if (@menu == 3) + return; + if (@menu == 1) { + mesn; + mesq l("Donating blood is a noble act, which allows to save lifes."); + next; + mesn; + mesq l("When people loses too much blood, they die, unless we can lend them somebody's else blood."); + next; + mesn; + mesq l("Not everyone can be a blood donor. For example, you must be healthy."); + mesq l("You can find more info about this on these links:"); + mes ""; + mes "[@@https://www.blood.co.uk/|https://www.blood.co.uk/@@]"; + mes "[@@https://www.nhsbt.nhs.uk/what-we-do/blood-services/blood-donation/|https://www.nhsbt.nhs.uk/what-we-do/blood-services/blood-donation/@@]"; + mes l("France: [@@https://dondesang.efs.sante.fr/|https://dondesang.efs.sante.fr/@@]"); + mes l("Brazil: [@@http://www.prosangue.sp.gov.br/home/Default.html|http://www.prosangue.sp.gov.br/home/Default.html@@]"); + if (readparam(Hp) < readparam(MaxHp)) + return; + next; + mesc l("Donate blood?", 1); + if (askyesno() == ASK_NO) + return; + } + // Donate blood + mesn; + mesq l("This will take only a short while."); + next; + setq1 HurnscaldQuests_BloodDonor, 2; + percentheal -90, 0; + addtimer(180000, "Nurse::OnDonationComplete"); + warp "008-2-14", 31, 27; + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, true); + dispbottom l("Any movement/skill/item will be without effect until time is up."); + closedialog; + return; +} + +OnDonationComplete: + if (checkpcblock() & PCBLOCK_ATTACK) + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, false); + warp "008-2-12", 30, 30; + percentheal 100, 0; + // Experience gain is based on HP + getexp readparam(Hp)*2, readparam(Hp)/100; + .@q3=getq3(HurnscaldQuests_BloodDonor)+1; + // Cooldown: 60*60*24*30: 30 days + setq HurnscaldQuests_BloodDonor, 1, gettimetick(2)+(2592000), .@q3; + if (BaseLevel >= 30) + getitem Bread, 1; + if (BaseLevel >= 50) + getitem ChocolateBar, 1; + if (BaseLevel >= 70) + getitem BottleOfWater, 1; + mesn; + mesq l("Thanks for donating blood. You can donate again in 30 days."); + mesq l("You should eat and drink water after donating blood. Thanks for saving lifes!"); + close; + + +OnInit: + .heal_max_level = 20; // she will only heal low level players + + .heal_skill_level = 10; // what level of the healing skill to use + .heal_npc_stats = 99; // what stat points the NPC has + .heal_npc_level = 60; // what level the npc has + + .quest_inspector = HurnscaldQuests_Inspector; + .quest_debug = .quest_inspector; + .distance = 3; + end; +} -- cgit v1.2.3-60-g2f50