1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
// TMW-2 Script
// Author:
// Jesusalva
// Crazyfefe
// Notes:
// HurnscaldQuest_BloodDonor
// 1 - Donation finished
// 2 - Donation in progress
// Structure
// Status, Next Attempt Timer
012-6,56,67,6 script Hurnscald's Nurse NPC_FEMALE,{
.@q2=getq2(HurnscaldQuest_BloodDonor);
if (.@q2 > gettimetick(2)) {
npctalk3 l("You can donate blood again in %s", FuzzyTime(.@q2));
Nurse(.name$, 10, 6);
close;
}
mesn;
mesq l("Hello there. Do you want to donate blood?");
mesc l("Donating blood will BLOCK YOUR MOVEMENT for three minutes.");
mesc l("Do not disconnect while waiting. You need 100% HP to donate.");
L_BLCore:
mes "";
select
l("I need infirmary services."),
l("Info"),
rif(readparam(Hp) == readparam(MaxHp), l("Yes, please use my blood to save lifes."));
mes "";
switch (@menu) {
case 1:
Nurse(.name$, 10, 6);
close;
case 2:
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@@]");
next;
goto L_BLCore;
case 3:
mesn;
mesq l("Please don't sound like I was some sort of vampire or something...");
next;
mesn;
mesq l("This will take only a short while.");
next;
setq1 HurnscaldQuest_BloodDonor, 2;
percentheal -90, 0;
addtimer(180000, "Hurnscald's Nurse::OnDonationComplete");
slide 34, 29;
setpcblock(PCBLOCK_SOFT, true);
dispbottom l("Any movement/skill/item will be without effect until time is up.");
closedialog;
close;
}
close;
OnDonationComplete:
if (checkpcblock() & PCBLOCK_ATTACK)
setpcblock(PCBLOCK_SOFT, false);
slide 58, 67;
percentheal 100, 0;
getexp readparam(Hp)*2, readparam(Hp)/100;
.@q3=getq3(HurnscaldQuest_BloodDonor)+1;
// Cooldown: 60*60*24*30: 30 days
setq HurnscaldQuest_BloodDonor, 1, gettimetick(2)+(2592000), .@q3;
if (BaseLevel >= 30)
getitem Bread, 1;
if (BaseLevel >= 50)
getitem ChocolateBar, 1;
if (BaseLevel >= 70)
getitem BottleOfWoodlandWater, 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!");
if (.@q3 == 5) {
getitem Slippers, 1;
next;
mesn;
mesq l("Now you must feel homelike already here... take these slippers so your feet stays warm!");
}
close;
OnInit:
.@npcId = getnpcid(.name$);
//setunitdata(.@npcId, UDT_HEADTOP, BrimmedFeatherHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, MiniSkirt);
setunitdata(.@npcId, UDT_HEADBOTTOM, ShortTankTop);
setunitdata(.@npcId, UDT_HAIRSTYLE, 12);
setunitdata(.@npcId, UDT_HAIRCOLOR, 16);
.sex = G_FEMALE;
.distance = 5;
end;
}
|