summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2019-08-20 23:14:12 -0400
committergumi <git@gumi.ca>2020-03-08 16:07:59 -0400
commitd8c9ff3ba3ece0973d313847f43fc9a866868d3b (patch)
tree6e284b3fa574beb6b67acb5bf6473209cde21ac3
parent71f5ceed044d3908b971f5f5f6457086e0ebaa30 (diff)
downloadserverdata-d8c9ff3ba3ece0973d313847f43fc9a866868d3b.tar.gz
serverdata-d8c9ff3ba3ece0973d313847f43fc9a866868d3b.tar.bz2
serverdata-d8c9ff3ba3ece0973d313847f43fc9a866868d3b.tar.xz
serverdata-d8c9ff3ba3ece0973d313847f43fc9a866868d3b.zip
avoid killing players in quest NPCshardcore
-rw-r--r--world/map/npc/002-5/sema.txt5
-rw-r--r--world/map/npc/007-2/witch.txt2
-rw-r--r--world/map/npc/008-1/hinnak.txt2
-rw-r--r--world/map/npc/009-2/nurse.txt3
-rw-r--r--world/map/npc/009-4/torches.txt3
-rw-r--r--world/map/npc/009-8/celestia.txt4
-rw-r--r--world/map/npc/011-1/oscar.txt5
-rw-r--r--world/map/npc/011-6/crastur.txt4
-rw-r--r--world/map/npc/013-1/sagatha.txt2
-rw-r--r--world/map/npc/013-2/notes.txt3
-rw-r--r--world/map/npc/015-3/katze.txt2
-rw-r--r--world/map/npc/017-1/flowerpentagram5.txt2
-rw-r--r--world/map/npc/017-4/orum.txt2
-rw-r--r--world/map/npc/017-4/waric.txt10
-rw-r--r--world/map/npc/018-2/caul.txt6
-rw-r--r--world/map/npc/025-4/battlecaves.txt36
-rw-r--r--world/map/npc/026-1/mapflags.txt1
-rw-r--r--world/map/npc/029-1/hasan.txt3
-rw-r--r--world/map/npc/033-1/kimarr.txt3
-rw-r--r--world/map/npc/034-1/yetiSpawn.txt3
-rw-r--r--world/map/npc/048-2/slimes.txt21
-rw-r--r--world/map/npc/051-1/desert.txt3
-rw-r--r--world/map/npc/051-1/forest.txt7
-rw-r--r--world/map/npc/051-3/ambush.txt21
-rw-r--r--world/map/npc/051-3/reinforcements.txt6
-rw-r--r--world/map/npc/052-1/channelling.txt6
-rw-r--r--world/map/npc/052-2/lobby.txt6
-rw-r--r--world/map/npc/055-1/pumpkins.txt3
-rw-r--r--world/map/npc/056-2/mirak.txt4
-rw-r--r--world/map/npc/commands/_import.txt1
-rw-r--r--world/map/npc/commands/python.txt6
-rw-r--r--world/map/npc/magic/_procedures.txt9
32 files changed, 121 insertions, 73 deletions
diff --git a/world/map/npc/002-5/sema.txt b/world/map/npc/002-5/sema.txt
index 32da7044..8da15c1a 100644
--- a/world/map/npc/002-5/sema.txt
+++ b/world/map/npc/002-5/sema.txt
@@ -49,8 +49,9 @@ L_Sema_TooMany:
L_Sema_Not_Happy:
set QL_MINEALL, 26;
- heal -Hp, 0;
- mes "A stone falls on your head.";
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
+ message strcharinfo(0), "A stone falls on your head.";
goto L_Close;
L_Sema_Done:
diff --git a/world/map/npc/007-2/witch.txt b/world/map/npc/007-2/witch.txt
index 360f2885..ed82aa49 100644
--- a/world/map/npc/007-2/witch.txt
+++ b/world/map/npc/007-2/witch.txt
@@ -666,7 +666,7 @@ OnTimer300000:
goto L_EndQuest;
L_KillHero:
- heal -Hp, 0;
+ set Hp, 1;
goto L_EndQuest;
}
diff --git a/world/map/npc/008-1/hinnak.txt b/world/map/npc/008-1/hinnak.txt
index d16460c3..3c320549 100644
--- a/world/map/npc/008-1/hinnak.txt
+++ b/world/map/npc/008-1/hinnak.txt
@@ -29,7 +29,7 @@ L_No_NohMask:
L_Intro_Hat:
mes "The farmer lunges at you with a farming implement.";
next;
- heal -50, 0;
+ set Hp, max(1, Hp - 50);
menu
"I'm out of here.", L_Close,
"Whoa, what are you doing?", L_Intro_Hat_Explain;
diff --git a/world/map/npc/009-2/nurse.txt b/world/map/npc/009-2/nurse.txt
index efad521a..95417198 100644
--- a/world/map/npc/009-2/nurse.txt
+++ b/world/map/npc/009-2/nurse.txt
@@ -390,7 +390,8 @@ L_hl_m_vn:
next;
mes ".......";
// bye bye player!
- heal -Hp, 0;
+ set Hp, 1;
+ warp "009-2", 149, 43;
// close instead of telling how much stabilizer is needed
goto L_Close;
// goto L_check_st;
diff --git a/world/map/npc/009-4/torches.txt b/world/map/npc/009-4/torches.txt
index 0164acd4..e9aff9ff 100644
--- a/world/map/npc/009-4/torches.txt
+++ b/world/map/npc/009-4/torches.txt
@@ -254,7 +254,8 @@ L_Failed:
misceffect 16;
set @TorchIntensity, 0;
callfunc "SetTorchIntensity";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
close2;
return;
}
diff --git a/world/map/npc/009-8/celestia.txt b/world/map/npc/009-8/celestia.txt
index 3c199f74..65b72c3a 100644
--- a/world/map/npc/009-8/celestia.txt
+++ b/world/map/npc/009-8/celestia.txt
@@ -41,7 +41,7 @@ L_YetiMask:
mes "You catch a glimpse of a black bow while some kind of dark mist quickly overcomes you.";
next;
mes "You feel a sharp pain in your heart and everything fades into darkness.";
- heal -Hp + 1, 0; // set the current hp to 1
+ set Hp, 1;
set @scared_celestia, 1; // set a temporary variable (resets on log out) in the player scope (variable is stored in the player, not in the npc)
warp "009-2", 148, 43;
close; // terminate the script and require the player to press the "close" button
@@ -332,7 +332,7 @@ OnPCLoginEvent:
end;
L_Stomp:
- set Hp, 0;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
diff --git a/world/map/npc/011-1/oscar.txt b/world/map/npc/011-1/oscar.txt
index ad088eff..1041c823 100644
--- a/world/map/npc/011-1/oscar.txt
+++ b/world/map/npc/011-1/oscar.txt
@@ -379,7 +379,7 @@ OnPD:
set @discover_poisonous_pumpkin_again, 1;
// Small damages
misceffect FX_PUMPKIN_EXPLOSION, strcharinfo(0);
- heal -10, 0;
+ set Hp, max(1, Hp - 10);
sc_start sc_poison, 1, 3;
// Spawn mobs or get items
set @halloween_rand, rand(0,100);
@@ -407,7 +407,8 @@ OnPDP:
L_KillBadHunter:
misceffect FX_PUMPKIN_EXPLOSION, strcharinfo(0);
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_PumpkinsRuined:
diff --git a/world/map/npc/011-6/crastur.txt b/world/map/npc/011-6/crastur.txt
index 52298863..f29216d5 100644
--- a/world/map/npc/011-6/crastur.txt
+++ b/world/map/npc/011-6/crastur.txt
@@ -151,11 +151,13 @@ L_Regular:
L_Insult:
npctalk strnpcinfo(0), "Crastur : Die " + strcharinfo(0) + "!";
- heal -10000, 0;
+ set Hp, 1;
emotion EMOTE_VICIOUS;
mes "[Crastur]";
mes "";
mes "\"Oh I am so sorry, my Dagger must have slipped\"";
+ close2;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
goto L_Close;
L_Unsure:
diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt
index fe2a4e6f..2900ec4c 100644
--- a/world/map/npc/013-1/sagatha.txt
+++ b/world/map/npc/013-1/sagatha.txt
@@ -136,7 +136,7 @@ L_hat_attack:
mes "\"Let me show you...\"";
misceffect sfx_magic_war, strcharinfo(0);
misceffect sfx_magic_war;
- heal -300, 0;
+ set Hp, max(1, Hp - 300);
close;
L_intro_name:
diff --git a/world/map/npc/013-2/notes.txt b/world/map/npc/013-2/notes.txt
index 99de40df..2ab0a653 100644
--- a/world/map/npc/013-2/notes.txt
+++ b/world/map/npc/013-2/notes.txt
@@ -197,7 +197,8 @@ L_Close:
next;
mes "You're losing control of your body... everything turns black... while slipping to the floor, you hear a faraway scream... suddenly, you see THE LIGHT!";
next;
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
close;
}
diff --git a/world/map/npc/015-3/katze.txt b/world/map/npc/015-3/katze.txt
index 15dea917..a9944750 100644
--- a/world/map/npc/015-3/katze.txt
+++ b/world/map/npc/015-3/katze.txt
@@ -43,7 +43,7 @@ L_NeedsMilk:
L_ThrowStone:
set @cat, 0;
callsub S_Update_Katze;
- heal ((MaxHp/100) * -30), 0;
+ heal max(1, ((MaxHp/100) * -30)), 0;
warp "015-1", 60, 32;
mes "\"GRAAUWL! Hissss...\"";
mes "Yikes, the cat attacked you! Your whole body is scratched. Maybe throwing a stone wasn't such a great idea...";
diff --git a/world/map/npc/017-1/flowerpentagram5.txt b/world/map/npc/017-1/flowerpentagram5.txt
index f8947dbd..44db161f 100644
--- a/world/map/npc/017-1/flowerpentagram5.txt
+++ b/world/map/npc/017-1/flowerpentagram5.txt
@@ -40,7 +40,7 @@ L_Place:
mes "Nervous about what's going to happen, you take the last of the flowers and put it into its place.";
next;
mes "Tension builds up around you, much stronger than before. You can feel it compressing your head, and a liquid warmth spreads under your nose, leaving a metallic taste on your lips.";
- heal -5, 0;
+ set Hp, max(1, Hp - 5);
next;
callfunc "FlowerPentagramCount";
if (($@Flower_Pentagram_Time > gettimetick(2) - 3600) && ($@Flower_Pentagram_Mobcount > 15))
diff --git a/world/map/npc/017-4/orum.txt b/world/map/npc/017-4/orum.txt
index 213f14af..a6f9b785 100644
--- a/world/map/npc/017-4/orum.txt
+++ b/world/map/npc/017-4/orum.txt
@@ -656,7 +656,7 @@ L_Additive:
mes "Orum agrees and starts mixing the powders. You're ready to pour in the additive once the mixture reached a high level of bubbling.";
next;
mes "The next dash of powder Orum adds causes the mixture to sputter and splash. Some of the hot liquid lands on the back of your hand!";
- heal -5, 0;
+ set Hp, max(1, Hp - 5);
menu
"Ouch!",L_Next24,
"Aah!", L_Next24,
diff --git a/world/map/npc/017-4/waric.txt b/world/map/npc/017-4/waric.txt
index 7a8c4e68..9c641b11 100644
--- a/world/map/npc/017-4/waric.txt
+++ b/world/map/npc/017-4/waric.txt
@@ -215,8 +215,7 @@ L_Next3:
set @SUP_lvl, 2;
callfunc "SkillUp";
next;
- heal MaxHp, 0;
- heal ((MaxHp/100) * -99), 0;
+ set Hp, 1;
mes "You feel completely exhausted.";
set OrumQuest, 36;
goto L_Close;
@@ -224,8 +223,7 @@ L_Next3:
L_NoOath:
mes "Waric mumbles something. You guess it's a magic spell.";
warp "005-3", 86 , 33;
- heal MaxHp, 0;
- heal ((MaxHp/100) * -50), 0;
+ set Hp, min(Hp, MaxHp / 2);
set OrumQuest, OrumQuest + 1;
goto L_Close;
@@ -364,7 +362,9 @@ L_Banished:
mes "The wizard looks at you with despise.";
mes "[Waric]";
mes "\"How did you...\"";
- heal -Hp, 0;
+ set Hp, 1;
+ close2;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
goto L_Close;
L_NoItem:
diff --git a/world/map/npc/018-2/caul.txt b/world/map/npc/018-2/caul.txt
index 4709cfc9..2616d72f 100644
--- a/world/map/npc/018-2/caul.txt
+++ b/world/map/npc/018-2/caul.txt
@@ -463,7 +463,7 @@ L_mo_explode:
goto L_mo_explode_dodge;
mes "The burst of boiling monster brew hits you.";
next;
- heal (15 * rand(Vit)) - 1500, 0, 1;
+ heal max(0 - Hp + 1, (15 * rand(Vit)) - 1500), 0, 1;
close;
L_mo_explode_dodge:
@@ -1022,10 +1022,10 @@ L_check_exp_nof:
// in some cases it is not:
// kabooom!
close2;
- heal -(Hp/2), 0;
misceffect 5;
misceffect 16;
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_calc_dempo_color:
diff --git a/world/map/npc/025-4/battlecaves.txt b/world/map/npc/025-4/battlecaves.txt
index ffab9a05..808e0440 100644
--- a/world/map/npc/025-4/battlecaves.txt
+++ b/world/map/npc/025-4/battlecaves.txt
@@ -16,7 +16,8 @@
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -108,7 +109,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -198,7 +200,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -289,7 +292,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -383,7 +387,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -477,7 +482,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -571,7 +577,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -667,7 +674,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -763,7 +771,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -854,7 +863,8 @@ L_Done:
if ($@battlecave10 == 1 && cavefights & BATTLE_CAVE1 && cavefights & BATTLE_CAVE2 && cavefights & BATTLE_CAVE3 && cavefights & BATTLE_CAVE4 && cavefights & BATTLE_CAVE5 && cavefights & BATTLE_CAVE6 && cavefights & BATTLE_CAVE7 && cavefights & BATTLE_CAVE8 && cavefights & BATTLE_CAVE9 && Rossy_Quest == 15)
goto L_Start;
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Start:
@@ -981,7 +991,7 @@ L_Out:
if (Rossy_Quest > 15)
goto L_Done;
message strcharinfo(0), "As you try to walk through, you bump into a strong magical barrier.";
- heal ((MaxHp/100) * -10), 0;
+ set Hp, max(1, Hp - 100);
end;
L_Done:
@@ -1003,7 +1013,8 @@ L_Done:
L_Cheat:
message strcharinfo(0), "You shouldn't be here, you cheater.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Done:
@@ -1015,4 +1026,3 @@ L_Save:
message strcharinfo(0), "You can't leave Julia here, all alone!";
end;
}
-
diff --git a/world/map/npc/026-1/mapflags.txt b/world/map/npc/026-1/mapflags.txt
index 1a059118..4d1e4d8b 100644
--- a/world/map/npc/026-1/mapflags.txt
+++ b/world/map/npc/026-1/mapflags.txt
@@ -1,2 +1,3 @@
026-1|mapflag|resave|026-1,28,35
026-1|mapflag|outside
+026-1|mapflag|pvp
diff --git a/world/map/npc/029-1/hasan.txt b/world/map/npc/029-1/hasan.txt
index 724db18c..01238526 100644
--- a/world/map/npc/029-1/hasan.txt
+++ b/world/map/npc/029-1/hasan.txt
@@ -164,7 +164,8 @@ L_Summon:
L_SummonAgain:
message strcharinfo(0), "Kaan is mad at you for your interference! He summons a rock above your head, then summons another scorpion near Hasan!";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
goto L_Summon;
OnTimer5000:
diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt
index a0da1a9f..48ae9e47 100644
--- a/world/map/npc/033-1/kimarr.txt
+++ b/world/map/npc/033-1/kimarr.txt
@@ -330,7 +330,8 @@ L_Punish:
areamonster "033-1", 79, 29, 88, 42, "", 1072, 1, "Kimarr::OnYetiDeath";
npctalk strnpcinfo(0), strcharinfo(0) + "! This hunt is for " + $@Fluffy_Fighter$ + " alone!";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
set @MobID, 0;
end;
diff --git a/world/map/npc/034-1/yetiSpawn.txt b/world/map/npc/034-1/yetiSpawn.txt
index c1f60312..b06d21b8 100644
--- a/world/map/npc/034-1/yetiSpawn.txt
+++ b/world/map/npc/034-1/yetiSpawn.txt
@@ -51,7 +51,8 @@ L_End:
L_NonQuestKill:
message strcharinfo(0), "The dying Yeti takes you along to the other side.";
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
goto L_End;
S_Update_Mask:
diff --git a/world/map/npc/048-2/slimes.txt b/world/map/npc/048-2/slimes.txt
index b07420db..3b5be732 100644
--- a/world/map/npc/048-2/slimes.txt
+++ b/world/map/npc/048-2/slimes.txt
@@ -36,7 +36,8 @@
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -125,7 +126,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -214,7 +216,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -303,7 +306,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -392,7 +396,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -481,7 +486,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
@@ -570,7 +576,8 @@ L_ClearedPoint:
goto L_End;
L_BlowUp:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
message strcharinfo(0), "A slime dripped out of a bookshelf right in front of you and stepped onto it. It exploded. That hurt.";
goto L_End;
diff --git a/world/map/npc/051-1/desert.txt b/world/map/npc/051-1/desert.txt
index 73dc7c9a..326113b0 100644
--- a/world/map/npc/051-1/desert.txt
+++ b/world/map/npc/051-1/desert.txt
@@ -50,7 +50,8 @@ OnTimer6500:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_HintToHelpers:
diff --git a/world/map/npc/051-1/forest.txt b/world/map/npc/051-1/forest.txt
index 870465c3..dbae2c26 100644
--- a/world/map/npc/051-1/forest.txt
+++ b/world/map/npc/051-1/forest.txt
@@ -22,7 +22,8 @@
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_HandleHelper:
@@ -71,7 +72,8 @@ L_TaskComplete:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_Blocked:
@@ -86,4 +88,3 @@ L_Warp:
warp "051-3", 24, 60;
end;
}
-
diff --git a/world/map/npc/051-3/ambush.txt b/world/map/npc/051-3/ambush.txt
index 7d659710..13aa29d2 100644
--- a/world/map/npc/051-3/ambush.txt
+++ b/world/map/npc/051-3/ambush.txt
@@ -29,7 +29,8 @@ L_PrepareAmbush:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
@@ -47,8 +48,9 @@ L_MakeAmbush:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
message strcharinfo(0), "Your throat got cut by a sneaky bandit!";
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
@@ -92,7 +94,8 @@ OnA:
if (strcharinfo(0) == $@ILLIA_HELPER3$)
goto L_CaptureHelper3;
// kill that player otherwise, since not part of the quest.
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_CaptureHero:
@@ -100,8 +103,7 @@ L_CaptureHero:
// Unequip all equipments
nude;
// put the health at 40%.
- heal MaxHp, 0;
- heal ((MaxHp/100) * -60), 0;
+ set Hp, (MaxHp / 100) * 40;
warp "051-3", 69, 109;
message strcharinfo(0), "Meh... Where am I?";
end;
@@ -111,8 +113,7 @@ L_CaptureHelper1:
// Unequip all equipments
nude;
// put the health at 40%.
- heal MaxHp, 0;
- heal ((MaxHp/100) * -60), 0;
+ set Hp, (MaxHp / 100) * 40;
warp "051-3", 64, 102;
message strcharinfo(0), "Meh... Where am I?";
end;
@@ -122,8 +123,7 @@ L_CaptureHelper2:
// Unequip all equipments
nude;
// put the health at 40%.
- heal MaxHp, 0;
- heal ((MaxHp/100) * -60), 0;
+ set Hp, (MaxHp / 100) * 40;
warp "051-3", 62, 102;
message strcharinfo(0), "Meh... Where am I?";
end;
@@ -133,8 +133,7 @@ L_CaptureHelper3:
// Unequip all equipments
nude;
// put the health at 40%.
- heal MaxHp, 0;
- heal ((MaxHp/100) * -60), 0;
+ set Hp, (MaxHp / 100) * 40;
warp "051-3", 58, 102;
message strcharinfo(0), "Meh... Where am I?";
end;
diff --git a/world/map/npc/051-3/reinforcements.txt b/world/map/npc/051-3/reinforcements.txt
index 5870671c..5184f173 100644
--- a/world/map/npc/051-3/reinforcements.txt
+++ b/world/map/npc/051-3/reinforcements.txt
@@ -10,7 +10,8 @@ L_CallReinforcements:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
@@ -24,7 +25,8 @@ L_ShouldNotBeHere:
"Do nothing", L_Close;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
L_TryOpen:
diff --git a/world/map/npc/052-1/channelling.txt b/world/map/npc/052-1/channelling.txt
index 59628d0b..b2cc9636 100644
--- a/world/map/npc/052-1/channelling.txt
+++ b/world/map/npc/052-1/channelling.txt
@@ -21,7 +21,8 @@ L_EnchantDoor:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
@@ -330,7 +331,8 @@ L_ChannellingFail:
end;
L_ShouldNotBeHere:
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
OnInit:
diff --git a/world/map/npc/052-2/lobby.txt b/world/map/npc/052-2/lobby.txt
index 1b36d929..4777224e 100644
--- a/world/map/npc/052-2/lobby.txt
+++ b/world/map/npc/052-2/lobby.txt
@@ -28,7 +28,8 @@ L_Warp:
end;
L_ShouldNotBeHere:
- heal -100, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
@@ -46,7 +47,8 @@ L_StartVoices:
end;
L_ShouldNotBeHere:
- heal -100, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
}
diff --git a/world/map/npc/055-1/pumpkins.txt b/world/map/npc/055-1/pumpkins.txt
index 87dfca4c..69389fef 100644
--- a/world/map/npc/055-1/pumpkins.txt
+++ b/world/map/npc/055-1/pumpkins.txt
@@ -60,7 +60,8 @@ L_HeavyPoison1:
L_HeavyPoison2:
set @discover_poisonous_pumpkin, @discover_poisonous_pumpkin + 1;
misceffect FX_PUMPKIN_EXPLOSION, strcharinfo(0);
- heal -Hp, 0;
+ set Hp, 1;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
goto L_Destroy;
OnAppear:
diff --git a/world/map/npc/056-2/mirak.txt b/world/map/npc/056-2/mirak.txt
index e1a37347..d7b53803 100644
--- a/world/map/npc/056-2/mirak.txt
+++ b/world/map/npc/056-2/mirak.txt
@@ -103,7 +103,7 @@ L_TooSoon:
L_Kill:
misceffect sfx_magic_war, strcharinfo(0);
- heal -Hp, 0;
+ set Hp, 1;
set @annoy, 0;
callsub S_Update_Mask_Annoy;
set Mirak_Bantime, gettimetick(2) + 86400;
@@ -115,6 +115,8 @@ L_Kill:
mes "I feel better now.\"";
next;
mes "The old man sits back down and continues to read.";
+ close2;
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
close;
L_Trade:
diff --git a/world/map/npc/commands/_import.txt b/world/map/npc/commands/_import.txt
index 74fd8a1e..d57e7939 100644
--- a/world/map/npc/commands/_import.txt
+++ b/world/map/npc/commands/_import.txt
@@ -17,3 +17,4 @@ npc: npc/commands/python.txt
npc: npc/commands/gm.txt
npc: npc/commands/automod.txt
npc: npc/commands/valentine.txt
+npc: npc/commands/absolve.txt
diff --git a/world/map/npc/commands/python.txt b/world/map/npc/commands/python.txt
index 8924338c..c31cf424 100644
--- a/world/map/npc/commands/python.txt
+++ b/world/map/npc/commands/python.txt
@@ -14,7 +14,11 @@
OnKill:
if (!(isloggedin(@python[0]))) end;
gmlog "stomped " + if_then_else(@python[0] == BL_ID, "themselves", strcharinfo(0, @python[0])) + " with a giant foot!";
- set Hp, 0, @python[0];
+ addtimer 0, strnpcinfo(0) + "::OnWarp", @python[0];
+ end;
+
+OnWarp:
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
end;
OnInit:
diff --git a/world/map/npc/magic/_procedures.txt b/world/map/npc/magic/_procedures.txt
index 6ba748a9..95958fcb 100644
--- a/world/map/npc/magic/_procedures.txt
+++ b/world/map/npc/magic/_procedures.txt
@@ -116,8 +116,13 @@ L_Escape:
L_Backfire:
message strcharinfo(0), "Magic : ##3##BYour spell backfires!";
- if (rand(110) < Luk) heal 0 - ((BaseLevel+1)*(BaseLevel+2)*(rand(28)+3)), 0;
- else heal 0 - (BaseLevel + 1), 0;
+ if (rand(110) < Luk) heal max(0 - Hp + 1, 0 - ((BaseLevel+1)*(BaseLevel+2)*(rand(28)+3))), 0;
+ else heal max(0 - Hp + 1, 0 - (BaseLevel + 1)), 0;
+ if (Hp <= 2) goto L_Warp;
+ return;
+
+L_Warp:
+ warp getsavepoint(0), getsavepoint(1), getsavepoint(2);
return;
L_Perfect: