summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2019-07-29 14:15:06 -0400
committergumi <git@gumi.ca>2020-03-08 16:06:35 -0400
commit6e4491532daf12607093ad493a070f78aa7756d9 (patch)
tree18b226822fef5bd0eec661ce2c0eb8a15b782324
parent0b3c98ddcce3b7c306c3416ffa54cc65c0806975 (diff)
downloadserverdata-6e4491532daf12607093ad493a070f78aa7756d9.tar.gz
serverdata-6e4491532daf12607093ad493a070f78aa7756d9.tar.bz2
serverdata-6e4491532daf12607093ad493a070f78aa7756d9.tar.xz
serverdata-6e4491532daf12607093ad493a070f78aa7756d9.zip
hardcore server
-rw-r--r--world/conf/char_athena.conf2
-rw-r--r--world/conf/char_local.conf.example2
-rw-r--r--world/map/conf/battle_athena.conf24
-rw-r--r--world/map/db/params.txt2
-rw-r--r--world/map/npc/002-3/mapflags.txt1
-rw-r--r--world/map/npc/002-4/mapflags.txt1
-rw-r--r--world/map/npc/002-5/mapflags.txt1
-rw-r--r--world/map/npc/003-1/_import.txt1
-rw-r--r--world/map/npc/003-1/mapflags.txt1
-rw-r--r--world/map/npc/003-4/mapflags.txt1
-rw-r--r--world/map/npc/004-1/mapflags.txt1
-rw-r--r--world/map/npc/004-3/mapflags.txt1
-rw-r--r--world/map/npc/004-4/mapflags.txt1
-rw-r--r--world/map/npc/004-5/mapflags.txt1
-rw-r--r--world/map/npc/005-3/mapflags.txt1
-rw-r--r--world/map/npc/006-1/mapflags.txt1
-rw-r--r--world/map/npc/006-3/mapflags.txt1
-rw-r--r--world/map/npc/007-1/mapflags.txt1
-rw-r--r--world/map/npc/007-2/_import.txt1
-rw-r--r--world/map/npc/007-2/mapflags.txt1
-rw-r--r--world/map/npc/008-1/mapflags.txt1
-rw-r--r--world/map/npc/009-3/mapflags.txt1
-rw-r--r--world/map/npc/009-4/mapflags.txt1
-rw-r--r--world/map/npc/009-6/mapflags.txt1
-rw-r--r--world/map/npc/010-1/mapflags.txt1
-rw-r--r--world/map/npc/011-1/mapflags.txt1
-rw-r--r--world/map/npc/011-3/mapflags.txt1
-rw-r--r--world/map/npc/011-4/mapflags.txt1
-rw-r--r--world/map/npc/011-6/mapflags.txt1
-rw-r--r--world/map/npc/012-1/mapflags.txt1
-rw-r--r--world/map/npc/012-3/mapflags.txt1
-rw-r--r--world/map/npc/013-1/mapflags.txt1
-rw-r--r--world/map/npc/013-3/mapflags.txt1
-rw-r--r--world/map/npc/014-1/mapflags.txt1
-rw-r--r--world/map/npc/014-3/mapflags.txt1
-rw-r--r--world/map/npc/015-1/mapflags.txt1
-rw-r--r--world/map/npc/015-3/mapflags.txt1
-rw-r--r--world/map/npc/016-1/mapflags.txt1
-rw-r--r--world/map/npc/017-1/mapflags.txt1
-rw-r--r--world/map/npc/017-3/mapflags.txt1
-rw-r--r--world/map/npc/017-4/mapflags.txt1
-rw-r--r--world/map/npc/018-1/mapflags.txt1
-rw-r--r--world/map/npc/018-3/mapflags.txt1
-rw-r--r--world/map/npc/019-1/mapflags.txt1
-rw-r--r--world/map/npc/019-3/mapflags.txt1
-rw-r--r--world/map/npc/019-4/mapflags.txt1
-rw-r--r--world/map/npc/020-3/mapflags.txt1
-rw-r--r--world/map/npc/021-3/mapflags.txt1
-rw-r--r--world/map/npc/023-1/mapflags.txt1
-rw-r--r--world/map/npc/023-3/mapflags.txt1
-rw-r--r--world/map/npc/025-1/mapflags.txt1
-rw-r--r--world/map/npc/025-3/mapflags.txt1
-rw-r--r--world/map/npc/025-4/mapflags.txt1
-rw-r--r--world/map/npc/027-1/mapflags.txt1
-rw-r--r--world/map/npc/027-2/mapflags.txt1
-rw-r--r--world/map/npc/027-3/mapflags.txt1
-rw-r--r--world/map/npc/027-4/mapflags.txt1
-rw-r--r--world/map/npc/027-5/mapflags.txt1
-rw-r--r--world/map/npc/027-6/mapflags.txt1
-rw-r--r--world/map/npc/027-7/mapflags.txt1
-rw-r--r--world/map/npc/027-8/mapflags.txt1
-rw-r--r--world/map/npc/028-1/mapflags.txt1
-rw-r--r--world/map/npc/028-3/mapflags.txt1
-rw-r--r--world/map/npc/029-2/sorfina.txt404
-rw-r--r--world/map/npc/029-3/mapflags.txt1
-rw-r--r--world/map/npc/029-4/mapflags.txt1
-rw-r--r--world/map/npc/030-1/mapflags.txt1
-rw-r--r--world/map/npc/030-3/mapflags.txt1
-rw-r--r--world/map/npc/030-4/mapflags.txt1
-rw-r--r--world/map/npc/031-1/mapflags.txt1
-rw-r--r--world/map/npc/031-2/mapflags.txt1
-rw-r--r--world/map/npc/031-3/mapflags.txt1
-rw-r--r--world/map/npc/031-4/mapflags.txt1
-rw-r--r--world/map/npc/032-3/mapflags.txt1
-rw-r--r--world/map/npc/033-1/mapflags.txt1
-rw-r--r--world/map/npc/034-1/mapflags.txt1
-rw-r--r--world/map/npc/034-2/mapflags.txt1
-rw-r--r--world/map/npc/035-2/mapflags.txt1
-rw-r--r--world/map/npc/036-2/mapflags.txt1
-rw-r--r--world/map/npc/041-1/mapflags.txt1
-rw-r--r--world/map/npc/042-1/mapflags.txt1
-rw-r--r--world/map/npc/043-1/mapflags.txt1
-rw-r--r--world/map/npc/043-3/mapflags.txt1
-rw-r--r--world/map/npc/043-4/mapflags.txt1
-rw-r--r--world/map/npc/045-1/mapflags.txt1
-rw-r--r--world/map/npc/046-1/mapflags.txt1
-rw-r--r--world/map/npc/046-3/mapflags.txt1
-rw-r--r--world/map/npc/047-1/mapflags.txt1
-rw-r--r--world/map/npc/047-3/mapflags.txt1
-rw-r--r--world/map/npc/051-1/mapflags.txt1
-rw-r--r--world/map/npc/051-3/mapflags.txt1
-rw-r--r--world/map/npc/052-1/mapflags.txt1
-rw-r--r--world/map/npc/052-2/mapflags.txt1
-rw-r--r--world/map/npc/055-1/mapflags.txt1
-rw-r--r--world/map/npc/055-3/mapflags.txt1
-rw-r--r--world/map/npc/056-2/mapflags.txt1
-rw-r--r--world/map/npc/057-1/mapflags.txt1
-rw-r--r--world/map/npc/070-3/_import.txt1
-rw-r--r--world/map/npc/070-3/mapflags.txt4
-rw-r--r--world/map/npc/functions/death.txt63
-rw-r--r--world/map/npc/functions/ghost.txt11
-rw-r--r--world/map/npc/functions/global_event_handler.txt3
-rw-r--r--world/map/npc/items/warpTowels.txt6
-rw-r--r--world/map/npc/scripts.conf1
104 files changed, 197 insertions, 418 deletions
diff --git a/world/conf/char_athena.conf b/world/conf/char_athena.conf
index 3e0fa61d..8068430c 100644
--- a/world/conf/char_athena.conf
+++ b/world/conf/char_athena.conf
@@ -42,7 +42,7 @@ min_name_length: 4
// maximum characters allowed per account
// set to 1 if you want to limit accounts to 1 character
-char_slots: 9
+char_slots: 16
// max hair style and hair color
max_hair_style: 1
diff --git a/world/conf/char_local.conf.example b/world/conf/char_local.conf.example
index 920d7892..0cc95243 100644
--- a/world/conf/char_local.conf.example
+++ b/world/conf/char_local.conf.example
@@ -5,7 +5,7 @@ userid: s1
passwd: p1
// Server name, no more than 19 characters
-server_name: The Mana World
+server_name: TMW Hardcore
// Login Server IP
login_ip:127.0.0.1
diff --git a/world/map/conf/battle_athena.conf b/world/map/conf/battle_athena.conf
index 5c2f0f4d..6381b88b 100644
--- a/world/map/conf/battle_athena.conf
+++ b/world/map/conf/battle_athena.conf
@@ -4,7 +4,7 @@
enemy_critical: yes
// Enemy's Critical Rate (Note 2)
-enemy_critical_rate: 100
+enemy_critical_rate: 130
// Are enemy attacks effected by their strength? (Note 1)
enemy_str: yes
@@ -35,10 +35,10 @@ monster_skill_add_range: 0
player_damage_delay: no
// The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity)
-atcommand_spawn_quantity_limit: 100
+atcommand_spawn_quantity_limit: 10000
// If an item is droped, does it go stright into the users inventory? (Note 1)
-item_auto_get: no
+item_auto_get: yes
// How far away does drop protection apply?
drop_pickup_safety_zone: 20
@@ -60,10 +60,10 @@ item_second_get_time: 10000
item_third_get_time: 5000
// Rate at which exp. is given. (Note 2)
-base_exp_rate: 100
+base_exp_rate: 900
// Rate at which job exp. is given. (Note 2)
-job_exp_rate: 100
+job_exp_rate: 900
// When a player dies, how should we penalize them?
// 0 = No penalty.
@@ -113,7 +113,7 @@ monster_active_enable: yes
mob_skill_use: yes
// Rate of monsters on a map, 200 would be twice as many as normal. (Note 2)
-mob_count_rate: 100
+mob_count_rate: 300
// You must have basic skills to be able to sit, trade, form a party or create a chatroom? (Note 1)
basic_skill_check: no
@@ -158,13 +158,13 @@ max_sp: 32500
//
// this is only useful if you have adjusted your client
// to expect levels higher then 99
-max_lv: 99
+max_lv: 127
// Max limit of char stats. (agi, str, etc.)
-max_parameter: 99
+max_parameter: 120
// Save Clothes color. (This will degrade performance [in txt?]) (Note 1)
-save_clothcolor: yes
+save_clothcolor: no
// Undead type differeniate.
// 0 = element undead
@@ -250,7 +250,7 @@ maximum_level: 255
drops_by_luk: 0
// Do all monsters ignore GMs unless attacked? (Note 1)
-monsters_ignore_gm: no
+monsters_ignore_gm: yes
// PK Server Mode. Turns entire server pvp(excluding towns). Experience loss is doubled if killed by another player.
// When players hunt monsters over 20 levels higher, they will receive 15% additional exp., and 25% chance of receiving more items.
@@ -281,7 +281,7 @@ min_hair_color: 0
max_hair_color: 255
// Visible area size (how many squares away from a player can they see)
-area_size: 14
+area_size: 18
// chat system:
// More than flood lines in threshold seconds gets a ban
@@ -312,7 +312,7 @@ packet_spam_kick: 1
// -1: classic
// 0: all PCs on same tile
// 1 or more: all PCs within radius, if also within range
-mob_splash_radius: -1
+mob_splash_radius: 1
// local settings for this server in this file
import: conf/battle_local.conf
diff --git a/world/map/db/params.txt b/world/map/db/params.txt
index b2ff80c8..bcd803ea 100644
--- a/world/map/db/params.txt
+++ b/world/map/db/params.txt
@@ -47,7 +47,9 @@ ELTLVL 1001 1
ELTTYPE 1002 1
BASE_ATK 1014 1
POS_X 1074 1
+BL_X 1074 1
POS_Y 1075 1
+BL_Y 1075 1
PVP_CHANNEL 1076 1
BL_ID 1077 1
BL_TYPE 1078 1
diff --git a/world/map/npc/002-3/mapflags.txt b/world/map/npc/002-3/mapflags.txt
index 9b47ca70..9dd83716 100644
--- a/world/map/npc/002-3/mapflags.txt
+++ b/world/map/npc/002-3/mapflags.txt
@@ -1 +1,2 @@
002-3|mapflag|resave|002-3,72,66
+002-3|mapflag|pvp
diff --git a/world/map/npc/002-4/mapflags.txt b/world/map/npc/002-4/mapflags.txt
index c6b4a046..afd62552 100644
--- a/world/map/npc/002-4/mapflags.txt
+++ b/world/map/npc/002-4/mapflags.txt
@@ -1 +1,2 @@
002-4|mapflag|resave|002-3,72,66
+002-4|mapflag|pvp
diff --git a/world/map/npc/002-5/mapflags.txt b/world/map/npc/002-5/mapflags.txt
index b1250e34..1e1388a7 100644
--- a/world/map/npc/002-5/mapflags.txt
+++ b/world/map/npc/002-5/mapflags.txt
@@ -1 +1,2 @@
002-5|mapflag|resave|002-3,72,66
+002-5|mapflag|pvp
diff --git a/world/map/npc/003-1/_import.txt b/world/map/npc/003-1/_import.txt
index d1e00223..4f8cdfa7 100644
--- a/world/map/npc/003-1/_import.txt
+++ b/world/map/npc/003-1/_import.txt
@@ -4,4 +4,5 @@ map: 003-1
npc: npc/003-1/_mobs.txt
npc: npc/003-1/_nodes.txt
npc: npc/003-1/_warps.txt
+npc: npc/003-1/mapflags.txt
npc: npc/003-1/npcs.txt
diff --git a/world/map/npc/003-1/mapflags.txt b/world/map/npc/003-1/mapflags.txt
new file mode 100644
index 00000000..f01364fd
--- /dev/null
+++ b/world/map/npc/003-1/mapflags.txt
@@ -0,0 +1 @@
+003-1|mapflag|pvp
diff --git a/world/map/npc/003-4/mapflags.txt b/world/map/npc/003-4/mapflags.txt
index 888c987e..a1f73f5b 100644
--- a/world/map/npc/003-4/mapflags.txt
+++ b/world/map/npc/003-4/mapflags.txt
@@ -1 +1,2 @@
003-4|mapflag|resave|002-1,32,65
+003-4|mapflag|pvp
diff --git a/world/map/npc/004-1/mapflags.txt b/world/map/npc/004-1/mapflags.txt
index 0ef10a09..68414c62 100644
--- a/world/map/npc/004-1/mapflags.txt
+++ b/world/map/npc/004-1/mapflags.txt
@@ -1 +1,2 @@
004-1|mapflag|resave|002-1,32,65
+004-1|mapflag|pvp
diff --git a/world/map/npc/004-3/mapflags.txt b/world/map/npc/004-3/mapflags.txt
index 1365bc09..684fa9d6 100644
--- a/world/map/npc/004-3/mapflags.txt
+++ b/world/map/npc/004-3/mapflags.txt
@@ -1 +1,2 @@
004-3|mapflag|resave|001-1,60,105
+004-3|mapflag|pvp
diff --git a/world/map/npc/004-4/mapflags.txt b/world/map/npc/004-4/mapflags.txt
index fee09311..5f0b7809 100644
--- a/world/map/npc/004-4/mapflags.txt
+++ b/world/map/npc/004-4/mapflags.txt
@@ -1 +1,2 @@
004-4|mapflag|resave|001-1,60,105
+004-4|mapflag|pvp
diff --git a/world/map/npc/004-5/mapflags.txt b/world/map/npc/004-5/mapflags.txt
index d449e0f6..74c63308 100644
--- a/world/map/npc/004-5/mapflags.txt
+++ b/world/map/npc/004-5/mapflags.txt
@@ -1 +1,2 @@
004-5|mapflag|resave|001-1,60,105
+004-5|mapflag|pvp
diff --git a/world/map/npc/005-3/mapflags.txt b/world/map/npc/005-3/mapflags.txt
index 087876e0..91cf7e15 100644
--- a/world/map/npc/005-3/mapflags.txt
+++ b/world/map/npc/005-3/mapflags.txt
@@ -1 +1,2 @@
005-3|mapflag|resave|006-1,36,18
+005-3|mapflag|pvp
diff --git a/world/map/npc/006-1/mapflags.txt b/world/map/npc/006-1/mapflags.txt
index 5b3b3a39..e6ed9113 100644
--- a/world/map/npc/006-1/mapflags.txt
+++ b/world/map/npc/006-1/mapflags.txt
@@ -1 +1,2 @@
006-1|mapflag|resave|006-1,36,18
+006-1|mapflag|pvp
diff --git a/world/map/npc/006-3/mapflags.txt b/world/map/npc/006-3/mapflags.txt
index 9fb55277..cc500fff 100644
--- a/world/map/npc/006-3/mapflags.txt
+++ b/world/map/npc/006-3/mapflags.txt
@@ -1 +1,2 @@
006-3|mapflag|resave|006-1,36,18
+006-3|mapflag|pvp
diff --git a/world/map/npc/007-1/mapflags.txt b/world/map/npc/007-1/mapflags.txt
index a32e6b44..1a98247d 100644
--- a/world/map/npc/007-1/mapflags.txt
+++ b/world/map/npc/007-1/mapflags.txt
@@ -1 +1,2 @@
007-1|mapflag|resave|009-2,149,43
+007-1|mapflag|pvp
diff --git a/world/map/npc/007-2/_import.txt b/world/map/npc/007-2/_import.txt
index e68bb71b..18ffe561 100644
--- a/world/map/npc/007-2/_import.txt
+++ b/world/map/npc/007-2/_import.txt
@@ -4,4 +4,5 @@ map: 007-2
npc: npc/007-2/_mobs.txt
npc: npc/007-2/_nodes.txt
npc: npc/007-2/_warps.txt
+npc: npc/007-2/mapflags.txt
npc: npc/007-2/witch.txt
diff --git a/world/map/npc/007-2/mapflags.txt b/world/map/npc/007-2/mapflags.txt
new file mode 100644
index 00000000..2210a4ed
--- /dev/null
+++ b/world/map/npc/007-2/mapflags.txt
@@ -0,0 +1 @@
+007-2|mapflag|resave|009-2,149,43
diff --git a/world/map/npc/008-1/mapflags.txt b/world/map/npc/008-1/mapflags.txt
index 95ad83d5..0d6da34e 100644
--- a/world/map/npc/008-1/mapflags.txt
+++ b/world/map/npc/008-1/mapflags.txt
@@ -1 +1,2 @@
008-1|mapflag|resave|009-2,149,43
+008-1|mapflag|pvp
diff --git a/world/map/npc/009-3/mapflags.txt b/world/map/npc/009-3/mapflags.txt
index b56842f1..48a14cee 100644
--- a/world/map/npc/009-3/mapflags.txt
+++ b/world/map/npc/009-3/mapflags.txt
@@ -1 +1,2 @@
009-3|mapflag|resave|009-2,149,43
+009-3|mapflag|pvp
diff --git a/world/map/npc/009-4/mapflags.txt b/world/map/npc/009-4/mapflags.txt
index f9b9cfa9..2ebdcb8e 100644
--- a/world/map/npc/009-4/mapflags.txt
+++ b/world/map/npc/009-4/mapflags.txt
@@ -1 +1,2 @@
009-4|mapflag|resave|009-4,37,118
+009-4|mapflag|pvp
diff --git a/world/map/npc/009-6/mapflags.txt b/world/map/npc/009-6/mapflags.txt
index 22c55741..c631a512 100644
--- a/world/map/npc/009-6/mapflags.txt
+++ b/world/map/npc/009-6/mapflags.txt
@@ -1 +1,2 @@
009-6|mapflag|nosave|009-3,162,82
+009-6|mapflag|pvp
diff --git a/world/map/npc/010-1/mapflags.txt b/world/map/npc/010-1/mapflags.txt
index cfbe9788..e77e97c4 100644
--- a/world/map/npc/010-1/mapflags.txt
+++ b/world/map/npc/010-1/mapflags.txt
@@ -1 +1,2 @@
010-1|mapflag|resave|010-1,27,97
+010-1|mapflag|pvp
diff --git a/world/map/npc/011-1/mapflags.txt b/world/map/npc/011-1/mapflags.txt
index 0932c5c3..3d95a87e 100644
--- a/world/map/npc/011-1/mapflags.txt
+++ b/world/map/npc/011-1/mapflags.txt
@@ -1 +1,2 @@
011-1|mapflag|resave|011-1,103,34
+011-1|mapflag|pvp
diff --git a/world/map/npc/011-3/mapflags.txt b/world/map/npc/011-3/mapflags.txt
index 23143d92..1b388049 100644
--- a/world/map/npc/011-3/mapflags.txt
+++ b/world/map/npc/011-3/mapflags.txt
@@ -1 +1,2 @@
011-3|mapflag|resave|011-1,103,34
+011-3|mapflag|pvp
diff --git a/world/map/npc/011-4/mapflags.txt b/world/map/npc/011-4/mapflags.txt
index 499a6147..7e87c312 100644
--- a/world/map/npc/011-4/mapflags.txt
+++ b/world/map/npc/011-4/mapflags.txt
@@ -1 +1,2 @@
011-4|mapflag|resave|011-1,103,34
+011-4|mapflag|pvp
diff --git a/world/map/npc/011-6/mapflags.txt b/world/map/npc/011-6/mapflags.txt
index 47ba426a..b94f257a 100644
--- a/world/map/npc/011-6/mapflags.txt
+++ b/world/map/npc/011-6/mapflags.txt
@@ -1 +1,2 @@
011-6|mapflag|resave|011-1,103,34
+011-6|mapflag|pvp
diff --git a/world/map/npc/012-1/mapflags.txt b/world/map/npc/012-1/mapflags.txt
index 915346ad..7c0fd0a4 100644
--- a/world/map/npc/012-1/mapflags.txt
+++ b/world/map/npc/012-1/mapflags.txt
@@ -1 +1,2 @@
012-1|mapflag|resave|012-1,88,141
+012-1|mapflag|pvp
diff --git a/world/map/npc/012-3/mapflags.txt b/world/map/npc/012-3/mapflags.txt
index e3fd146f..a18ab7b1 100644
--- a/world/map/npc/012-3/mapflags.txt
+++ b/world/map/npc/012-3/mapflags.txt
@@ -1 +1,2 @@
012-3|mapflag|resave|012-1,88,141
+012-3|mapflag|pvp
diff --git a/world/map/npc/013-1/mapflags.txt b/world/map/npc/013-1/mapflags.txt
index 5c043bd9..9458adae 100644
--- a/world/map/npc/013-1/mapflags.txt
+++ b/world/map/npc/013-1/mapflags.txt
@@ -1 +1,2 @@
013-1|mapflag|resave|013-1,126,99
+013-1|mapflag|pvp
diff --git a/world/map/npc/013-3/mapflags.txt b/world/map/npc/013-3/mapflags.txt
index 73d2a995..f35fdbe7 100644
--- a/world/map/npc/013-3/mapflags.txt
+++ b/world/map/npc/013-3/mapflags.txt
@@ -1 +1,2 @@
013-3|mapflag|resave|013-1,126,99
+013-3|mapflag|pvp
diff --git a/world/map/npc/014-1/mapflags.txt b/world/map/npc/014-1/mapflags.txt
index 97fe03e3..80f6830a 100644
--- a/world/map/npc/014-1/mapflags.txt
+++ b/world/map/npc/014-1/mapflags.txt
@@ -1 +1,2 @@
014-1|mapflag|resave|014-1,89,102
+014-1|mapflag|pvp
diff --git a/world/map/npc/014-3/mapflags.txt b/world/map/npc/014-3/mapflags.txt
index eee5f6a9..bd1bb85d 100644
--- a/world/map/npc/014-3/mapflags.txt
+++ b/world/map/npc/014-3/mapflags.txt
@@ -1 +1,2 @@
014-3|mapflag|resave|014-1,89,102
+014-3|mapflag|pvp
diff --git a/world/map/npc/015-1/mapflags.txt b/world/map/npc/015-1/mapflags.txt
index fbf1ed0d..aa8c7057 100644
--- a/world/map/npc/015-1/mapflags.txt
+++ b/world/map/npc/015-1/mapflags.txt
@@ -1,2 +1,3 @@
015-1|mapflag|resave|010-1,27,97
015-1|mapflag|outside
+015-1|mapflag|pvp
diff --git a/world/map/npc/015-3/mapflags.txt b/world/map/npc/015-3/mapflags.txt
index 04397e31..aba1c4e9 100644
--- a/world/map/npc/015-3/mapflags.txt
+++ b/world/map/npc/015-3/mapflags.txt
@@ -1,2 +1,3 @@
015-3|mapflag|nosave|015-1,59,32
015-3|mapflag|resave|010-1,27,97
+015-3|mapflag|pvp
diff --git a/world/map/npc/016-1/mapflags.txt b/world/map/npc/016-1/mapflags.txt
index 90dc43f6..36fd7ae7 100644
--- a/world/map/npc/016-1/mapflags.txt
+++ b/world/map/npc/016-1/mapflags.txt
@@ -1,2 +1,3 @@
016-1|mapflag|resave|010-1,27,97
016-1|mapflag|outside
+016-1|mapflag|pvp
diff --git a/world/map/npc/017-1/mapflags.txt b/world/map/npc/017-1/mapflags.txt
index 5a7ac704..25309c0f 100644
--- a/world/map/npc/017-1/mapflags.txt
+++ b/world/map/npc/017-1/mapflags.txt
@@ -1 +1,2 @@
017-1|mapflag|resave|017-1,107,70
+017-1|mapflag|pvp
diff --git a/world/map/npc/017-3/mapflags.txt b/world/map/npc/017-3/mapflags.txt
index 90a2bb6f..d6dfc5f0 100644
--- a/world/map/npc/017-3/mapflags.txt
+++ b/world/map/npc/017-3/mapflags.txt
@@ -1 +1,2 @@
017-3|mapflag|resave|017-1,107,70
+017-3|mapflag|pvp
diff --git a/world/map/npc/017-4/mapflags.txt b/world/map/npc/017-4/mapflags.txt
index a137e471..91508740 100644
--- a/world/map/npc/017-4/mapflags.txt
+++ b/world/map/npc/017-4/mapflags.txt
@@ -1 +1,2 @@
017-4|mapflag|resave|017-1,107,70
+017-4|mapflag|pvp
diff --git a/world/map/npc/018-1/mapflags.txt b/world/map/npc/018-1/mapflags.txt
index a1b62aab..85d2a3fc 100644
--- a/world/map/npc/018-1/mapflags.txt
+++ b/world/map/npc/018-1/mapflags.txt
@@ -1 +1,2 @@
018-1|mapflag|resave|018-2,88,32
+018-1|mapflag|pvp
diff --git a/world/map/npc/018-3/mapflags.txt b/world/map/npc/018-3/mapflags.txt
index 6495e15c..9c687069 100644
--- a/world/map/npc/018-3/mapflags.txt
+++ b/world/map/npc/018-3/mapflags.txt
@@ -1 +1,2 @@
018-3|mapflag|resave|018-2,88,32
+018-3|mapflag|pvp
diff --git a/world/map/npc/019-1/mapflags.txt b/world/map/npc/019-1/mapflags.txt
index 888c4354..d1101487 100644
--- a/world/map/npc/019-1/mapflags.txt
+++ b/world/map/npc/019-1/mapflags.txt
@@ -1 +1,2 @@
019-1|mapflag|resave|020-1,52,118
+019-1|mapflag|pvp
diff --git a/world/map/npc/019-3/mapflags.txt b/world/map/npc/019-3/mapflags.txt
index 665b004c..1d908072 100644
--- a/world/map/npc/019-3/mapflags.txt
+++ b/world/map/npc/019-3/mapflags.txt
@@ -1 +1,2 @@
019-3|mapflag|resave|020-1,52,118
+019-3|mapflag|pvp
diff --git a/world/map/npc/019-4/mapflags.txt b/world/map/npc/019-4/mapflags.txt
index 8b5e272c..21d067ab 100644
--- a/world/map/npc/019-4/mapflags.txt
+++ b/world/map/npc/019-4/mapflags.txt
@@ -1 +1,2 @@
019-4|mapflag|resave|020-1,52,118
+019-4|mapflag|pvp
diff --git a/world/map/npc/020-3/mapflags.txt b/world/map/npc/020-3/mapflags.txt
index 0f84b04c..bbdf4c2a 100644
--- a/world/map/npc/020-3/mapflags.txt
+++ b/world/map/npc/020-3/mapflags.txt
@@ -1 +1,2 @@
020-3|mapflag|resave|020-1,52,118
+020-3|mapflag|pvp
diff --git a/world/map/npc/021-3/mapflags.txt b/world/map/npc/021-3/mapflags.txt
index d7155503..af0f90df 100644
--- a/world/map/npc/021-3/mapflags.txt
+++ b/world/map/npc/021-3/mapflags.txt
@@ -1 +1,2 @@
021-3|mapflag|resave|001-1,60,105
+021-3|mapflag|pvp
diff --git a/world/map/npc/023-1/mapflags.txt b/world/map/npc/023-1/mapflags.txt
index 9bf0492b..7fcb547e 100644
--- a/world/map/npc/023-1/mapflags.txt
+++ b/world/map/npc/023-1/mapflags.txt
@@ -1 +1,2 @@
023-1|mapflag|resave|002-1,32,65
+023-1|mapflag|pvp
diff --git a/world/map/npc/023-3/mapflags.txt b/world/map/npc/023-3/mapflags.txt
index 596d0788..8bcf6c59 100644
--- a/world/map/npc/023-3/mapflags.txt
+++ b/world/map/npc/023-3/mapflags.txt
@@ -1 +1,2 @@
023-3|mapflag|resave|002-1,32,65
+023-3|mapflag|pvp
diff --git a/world/map/npc/025-1/mapflags.txt b/world/map/npc/025-1/mapflags.txt
index 8e3a046f..b6724c8e 100644
--- a/world/map/npc/025-1/mapflags.txt
+++ b/world/map/npc/025-1/mapflags.txt
@@ -1,2 +1,3 @@
025-1|mapflag|resave|016-1,94,30
025-1|mapflag|outside
+025-1|mapflag|pvp
diff --git a/world/map/npc/025-3/mapflags.txt b/world/map/npc/025-3/mapflags.txt
index 58e68ca5..621cf083 100644
--- a/world/map/npc/025-3/mapflags.txt
+++ b/world/map/npc/025-3/mapflags.txt
@@ -1 +1,2 @@
025-3|mapflag|resave|025-1,33,50
+025-3|mapflag|pvp
diff --git a/world/map/npc/025-4/mapflags.txt b/world/map/npc/025-4/mapflags.txt
index ba5835ac..af4c954d 100644
--- a/world/map/npc/025-4/mapflags.txt
+++ b/world/map/npc/025-4/mapflags.txt
@@ -1,2 +1,3 @@
025-4|mapflag|nosave|025-1,33,50
025-4|mapflag|resave|025-1,33,50
+025-4|mapflag|pvp
diff --git a/world/map/npc/027-1/mapflags.txt b/world/map/npc/027-1/mapflags.txt
index 790b44a9..2730cdcb 100644
--- a/world/map/npc/027-1/mapflags.txt
+++ b/world/map/npc/027-1/mapflags.txt
@@ -1,2 +1,3 @@
027-1|mapflag|resave|026-1,28,35
027-1|mapflag|outside
+027-1|mapflag|pvp
diff --git a/world/map/npc/027-2/mapflags.txt b/world/map/npc/027-2/mapflags.txt
index 6f419bf4..12604cc8 100644
--- a/world/map/npc/027-2/mapflags.txt
+++ b/world/map/npc/027-2/mapflags.txt
@@ -1,2 +1,3 @@
027-2|mapflag|resave|026-1,28,35
026-2|mapflag|town
+026-2|mapflag|pvp
diff --git a/world/map/npc/027-3/mapflags.txt b/world/map/npc/027-3/mapflags.txt
index d0b162e7..f08b1472 100644
--- a/world/map/npc/027-3/mapflags.txt
+++ b/world/map/npc/027-3/mapflags.txt
@@ -1 +1,2 @@
027-3|mapflag|resave|027-2,28,94
+027-3|mapflag|pvp
diff --git a/world/map/npc/027-4/mapflags.txt b/world/map/npc/027-4/mapflags.txt
index 6a0e6dba..6f8e8a5b 100644
--- a/world/map/npc/027-4/mapflags.txt
+++ b/world/map/npc/027-4/mapflags.txt
@@ -1 +1,2 @@
027-4|mapflag|resave|027-2,28,94
+027-4|mapflag|pvp
diff --git a/world/map/npc/027-5/mapflags.txt b/world/map/npc/027-5/mapflags.txt
index afe7748a..ebc9fc77 100644
--- a/world/map/npc/027-5/mapflags.txt
+++ b/world/map/npc/027-5/mapflags.txt
@@ -1 +1,2 @@
027-5|mapflag|resave|027-2,28,94
+027-5|mapflag|pvp
diff --git a/world/map/npc/027-6/mapflags.txt b/world/map/npc/027-6/mapflags.txt
index 1defed7b..341671b3 100644
--- a/world/map/npc/027-6/mapflags.txt
+++ b/world/map/npc/027-6/mapflags.txt
@@ -1,2 +1,3 @@
027-6|mapflag|nosave|027-3,82,90
027-6|mapflag|resave|027-3,82,90
+027-6|mapflag|pvp
diff --git a/world/map/npc/027-7/mapflags.txt b/world/map/npc/027-7/mapflags.txt
index d592dbdc..6d6ac4fd 100644
--- a/world/map/npc/027-7/mapflags.txt
+++ b/world/map/npc/027-7/mapflags.txt
@@ -1,2 +1,3 @@
027-7|mapflag|nosave|027-4,73,78
027-7|mapflag|resave|027-4,73,78
+027-7|mapflag|pvp
diff --git a/world/map/npc/027-8/mapflags.txt b/world/map/npc/027-8/mapflags.txt
index e1aa73b1..11eb1342 100644
--- a/world/map/npc/027-8/mapflags.txt
+++ b/world/map/npc/027-8/mapflags.txt
@@ -1,2 +1,3 @@
027-8|mapflag|nosave|027-5,70,27
027-8|mapflag|resave|027-5,70,27
+027-8|mapflag|pvp
diff --git a/world/map/npc/028-1/mapflags.txt b/world/map/npc/028-1/mapflags.txt
index f1de8f33..3e18ee11 100644
--- a/world/map/npc/028-1/mapflags.txt
+++ b/world/map/npc/028-1/mapflags.txt
@@ -1 +1,2 @@
028-1|mapflag|nosave|009-1,53,40
+028-1|mapflag|pvp
diff --git a/world/map/npc/028-3/mapflags.txt b/world/map/npc/028-3/mapflags.txt
index 4fe56202..40b33df8 100644
--- a/world/map/npc/028-3/mapflags.txt
+++ b/world/map/npc/028-3/mapflags.txt
@@ -1 +1,2 @@
028-3|mapflag|nosave|009-1,53,40
+028-3|mapflag|pvp
diff --git a/world/map/npc/029-2/sorfina.txt b/world/map/npc/029-2/sorfina.txt
index 7c6a589f..e6f40c1b 100644
--- a/world/map/npc/029-2/sorfina.txt
+++ b/world/map/npc/029-2/sorfina.txt
@@ -5,298 +5,29 @@
set @npc_distance, 2;
callfunc "PCtoNPCRange";
if(@npc_check) end;
- goto L_Main;
-
-L_Main:
- if (QL_BEGIN == 10) goto L_Hasan;
- if (QL_BEGIN >= 4) goto L_Again;
- if (QL_BEGIN == 3) goto L_Clothes;
- if (QL_BEGIN == 2) goto L_Dresser;
- if (QL_BEGIN == 1) goto L_Carpet;
goto L_Start;
L_Start:
- mes "You open your eyes.";
+ mes "Welcome to TMW Hardcore.";
+ mes "This server is intented to provide a bigger challenge to players who have mastered the main server.";
mes "";
- mes "[Old Woman]";
- mes "\"Ah, you woke up. You washed ashore on the beach 3 days ago. You've been asleep since.";
- mes "You must have been thrown off one of the ships sailing during that last tremor.\"";
- mes "\"My little granddaughter Tanisha found you. Kaan was able to carry you to bed.";
- mes "We've been taking care of you ever since. Waiting for you to wake up.\"";
- mes "\"You didn't have any possessions on you when we found you and no one knows who you are.\"";
- mes "Do you have a name?";
- menu
- strcharinfo(0), L_Name;
-
-L_Name:
- mes "[Old Woman]";
- mes "\"Well " + strcharinfo(0) + " what else can you tell me about yourself?.\"";
- menu
- "I'm a woman from ...", L_Woman,
- "I'm a man that lived in ...", L_Man,
- "My home is in ...", L_N;
-
-L_Woman:
- set Sex, 0;
- goto L_Species;
-
-L_Man:
- set Sex, 1;
- goto L_Species;
-
-L_N:
- set Sex, 2;
- goto L_Species;
-
-L_Species:
- mes "[Old Woman]";
- mes "\"Go on. If you need to think a bit, take your time.\"";
- menu
- "... Tulimshar in Tonori ... I'm a Talpan.", L_Talpan;
-
-L_Talpan:
- set Class, 1;
- goto L_AnythingElse;
-
-L_AnythingElse:
- mes "[Old Woman]";
- mes "\"Anything else you can remember?\"";
- menu
- "Umm... no... I... I don't remember anything else...", L_KnowNothing;
-
-L_KnowNothing:
- mes "[Old Woman]";
- mes "\"Well I can tell you some useful things, if you want to hear.";
- mes "Some of it might jog your memory or at least help you catch your bearings.";
- mes "Oh, and by the way my name is Sorfina.\"";
- menu
- "That would be great!",L_Tut,
- "No, thanks. I already know how things are going.",L_SkipTut;
-
-L_Tut:
- mes "She smiles at you.";
- mes "[Sorfina]";
- mes "\"You have arrived at a very strange time. The Council is visiting Candor today.\"";
- mes "\"All the recent rumbling from the cave has all of Candor worried.\"";
- mes "\"Our guess is something with the last big shaker was the reason you ended up here.\"";
- mes "\"Ok, lets start by getting you dressed.\"";
- goto L_Carpet;
-
-L_Carpet:
- mes "[Sorfina]";
- mes "\"Try to take a few steps and walk to that carpet over there.";
- next;
- camera "#Carpet";
- mapmask getmask() | 4;
- next;
- camera;
- mes "Press [###keyMoveUp;] to move up, press [###keyMoveDown;] to move down, ";
- mes "press [###keyMoveLeft;] to move left, press [###keyMoveRight;] to move right ";
- mes " or click on the place you want to go to.\"";
- set QL_BEGIN, 1;
- goto L_Close;
-
-L_Dresser:
- mes "[Sorfina]";
- mes "\"You should get dressed now.\"";
- next;
- camera "Dresser#tutorial";
- mapmask getmask() | 32;
- mes "\"In that dresser there are some clothes you can wear.\"";
- mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press [###keyTargetNPC;] to focus and [###keyTalk;] to talk/activate.\"";
- next;
- camera;
- mes "\"Now get the clothes out of the dresser.\"";
- goto L_Close;
-
-L_Naked:
- mes "[Sorfina]";
- mes "\"Press [###keyWindowInventory;] or click on the Inventory button in the bar at the upper right corner to open your bag.\"";
- mes "\"Once we stop talking, double-click on the clothes to equip.\"";
- mes "\"Talk to me again after you get dressed. You can either click on me, or press [###keyTargetNPC;] to focus on me and [###keyTalk;] to talk.\"";
- goto L_Close;
-
-L_Clothes:
- if (getequipid(equip_torso) < 0)
- goto L_Naked;
- mes "[Sorfina]";
- mes "\"That's much better, don't you think?\"";
- mes "\"Here take this.\"";
- getitem "HitchhikersTowel", 1;
- mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
- mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
- mes "\"I think this will help you a bit. To get more information, press the button Setup and look at the controls on the Keyboard tab. You can also change them as you like.";
- mes "Talk to me again if you want me to explain more things.\"";
-
- mes "\"Oh, and if you're looking for extra work, you should talk to Aidan and Valon when you go outside. They're giving rewards for monster hunting.";
- mes "You can find Aidan near the camp fire outside and Valon out by the fields in the east.\"";
- next;
-
- mes "She digs in her pocket for a moment.";
- mes "\"And here is some money for you. Don't spend it all in one place.";
- mes "Now go help Tanisha downstairs.\"";
- mapmask getmask() | 8;
- set Zeny, Zeny + 30;
- set QL_BEGIN, 4;
- goto L_Close;
-
-L_Again:
- mes "[Sorfina]";
- mes "\"Make yourself at home! Do you have any questions?\"";
- menu
- "Yes, could you explain about...",L_Explain,
- "Could I get Healed?",L_Heal,
- "No, thanks.",L_Close;
-
-L_Heal:
- if (BaseLevel > 20)
- goto L_NoHeal;
- mes "[Sorfina]";
- mes "\"Hello Dear! You look tired, you should rest a moment.\"";
- mes "You take a short nap and feel refreshed.";
- heal MaxHp, 0;
- goto L_Main;
-
-L_NoHeal:
- mes "[Sorfina]";
- mes "\"I'm sorry but your wounds are far to advanced for my skills.\"";
- goto L_Main;
-
-L_Explain:
- menu
- "... walking?",L_Walk,
- "... talking?",L_Talk,
- "... the inventory and items?",L_Items,
- "... shortcuts?",L_Shortcut,
- "... what to do in Candor?",L_Aidan,
- "... change my appearence?",L_Barber,
- "... nevermind.",L_Close;
-
-L_Walk:
- mes "[Sorfina]";
- mes "\"You can use the arrow keys to walk around.";
- mes "Press [###keyMoveUp;] to move up, press [###keyMoveDown;] to move down, ";
- mes "press [###keyMoveLeft;] to move left, press [###keyMoveRight;] to move right ";
- mes " or click on the place you want to go to.";
- mes "This only works if that place is reachable and walkable.\"";
- goto L_Close;
-
-L_Talk:
- mes "[Sorfina]";
- mes "\"If you want to talk to a normal person, you can click at him or her.";
- mes "Or you can press [###keyTargetNPC;] to focus on the nearest person and then press [###keyTalk;] to talk.\"";
- next;
- mes "\"If you want to talk to other adventurers, press [###keyChat;] to open your chat window.";
- mes "Then type your message and press Enter to send.\"";
- next;
- mes "\"You may want to talk privately to another adventurer sometimes. In that case you can whisper.";
- mes "After pressing [###keyChat;] type '/whisper [name] [message]'.";
- mes "Or you can right click on someone and choose the whisper option.\"";
- next;
- mes "\"Press [###keyWindowChat;] to show and hide your chat window.\"";
- goto L_Close;
-
-L_Items:
- mes "[Sorfina]";
- mes "\"There are three types of items.";
- mes "They can be Consumables, Equipment or Miscellaneous.\"";
- next;
- mes "\"Consumable items such as Potions, can be used only once.";
- mes "After use, they will disappear from your inventory.";
- mes "There are some rare items that can be used but don't get consumed.\"";
- next;
- mes "\"Equipment items like Armors, Weapons, Accessories can be equipped for fashionable purposes or to raise your status.\"";
- next;
- mes "\"Miscellaneous items such as maggot slime, can be used in creating other items, or just to trade and sell.\"";
- next;
- mes "\"Your HitchHikers Towel will return you to your last set soul menhir or here if not set.\"";
- mes "\"It can't be used constantly as the magic needs time to power the jump.\"";
- next;
- mes "\"Press [###keyWindowInventory;] to open your inventory.";
- mes "When placing your cursor over an item there, you can see a box with some information about that item.\"";
- next;
- mes "\"To use or equip an item, select it by double-clicking on it.";
- mes "Selecting the item then pressing Use or Equip also works.\"";
- goto L_Close;
-
-L_Shortcut:
- mes "[Sorfina]";
- mes "\"Press [###keyWindowShortcut;] or click the Shortcut button in the bar at the upper right to open your shortcut window.\"";
- next;
- mes "\"You can select the item you want to put on a shortcut with your mouse and then click on the position in the shortcut window you want to place it.\"";
- next;
- mes "\"Now you can use or equip/unequip it by pressing the number of the shortcut.\"";
- goto L_Close;
-
-L_Aidan:
- mes "[Sorfina]";
- mes "\"I heard Aidan and Valon are looking for brave adventurers, you might want to talk to them. ";
- mes "You can find Aidan near the camp fire outside. The fields are just south of the town exit. ";
- mes "You'll see Valon of the city gaurd standing there. They both are offering rewards for monster hunting.\"";
- next;
- mes "\"When you leave this area to the South, you'll come to the docks.";
- mes "They will take you to Hurnscald, a major trading port.\"";
- next;
- mes "\"Go east out of Candor and north. You will find the cave everyone is talking about to the north.";
- next;
- mes "Talk to everybody. You can never tell when they might know something useful.\"";
- goto L_Close;
-
-L_Barber:
- mes "[Sorfina]";
- mes "\"Jessie downstairs can change your appearance.\"";
- mes "\"They will allow you to change your hair color or style as well as gender.\"";
- next;
- mes "\"There are a number of people across the continent that can change this for you.\"";
- mes "\"There is no cost or limit to the number of times it can be changed.\"";
- goto L_Close;
-
-L_Hasan:
- mes "[Sorfina]";
- mes "\"Make yourself at home! Do you have any questions?\"";
- menu
- "A guy named Hasan is bullying people.",L_Next,
- "Yes, could you explain again about...",L_Explain,
- "No, thanks.",L_Close;
-
-L_Next:
- mes "\"Ah, Hasan. He's causing trouble again?\"";
- mes "She shakes her head.";
- mes "[Sorfina]";
- mes "\"This guy has been a plague ever since he could walk. He's always causing trouble.\"";
- mes "\"And his father... Well, one day his father thought he should teach Hasan a lesson.\"";
- mes "\"He took him into the desert and then left him there!";
- mes "Hasan was only seven years old!\"";
- mes "\"I never understood how someone could do something like that to a child, even if it's a rascal like Hasan.\"";
- mes "\"Anyway, Hasan tried to find his way back home, but stumbled into a nest of scorpions!\"";
- mes "She shakes her head.";
- mes "\"If Valon hadn't have come along that moment, Hasan would have died that day.\"";
- mes "\"However, the scorpions poison caused a bad fever and once Hasan had recovered from that, he was even more malicious than before.\"";
- mes "She sighs.";
- set QL_BEGIN, 11;
- goto L_Close;
-
-L_SkipTut:
- mes "[Sorfina]";
- mes "\"Really? You seem quite unexperienced. Listening to some advice won't hurt.\"";
- menu
- "Thinking about it twice... please tell me.",L_Tut,
- "Yeah, but thanks for the offer. Bye.",L_Bye;
+ mes "The game rules are slightly different here:";
+ mes "- Death is permanent.";
+ mes "- Obtaining experience and leveling is much faster.";
+ mes "- The level cap is 127 and stats can go to 120.";
+ mes "- Killing other players is possible in any map (except towns).";
+ mes "- Upon killing a player, you obtain all of their belongings.";
+ mes "";
+ mes "If you die you may start over by creating a new character.";
-L_Bye:
- mes "[Sorfina]";
- mes "\"Alright, if you say so. But take at least this. See you later.\"";
getitem "Knife", 1;
getitem "SlingShot", 1;
getitem "SlingBullet", 500;
getitem "HitchhikersTowel", 1;
getitem "CottonShirt", 1;
getitem "RaggedShorts", 1;
- set Zeny, Zeny + 35; // tanisha gives 5 zeny
+ set Zeny, Zeny + 35;
set QL_BEGIN, 8;
- goto L_Close;
-
-L_Close:
close;
OnTouch:
@@ -304,116 +35,3 @@ OnTouch:
end;
goto L_Start;
}
-
-029-2,33,27,0|script|#Carpet|127,1,1
-{
- if (QL_BEGIN != 1)
- end;
- mapmask getmask();
- mes "[Sorfina]";
- mes "\"You should get dressed now.\"";
- next;
- camera "Dresser#tutorial";
- mapmask getmask() | 16;
- mes "\"In that dresser there are some clothes you can wear.\"";
- mes "\"To interact with things in your environment or talk to NPCs you can either click on it or press N to focus and T to talk/activate.\"";
- next;
- camera;
- mes "\"Now get the clothes out of the dresser.\"";
- set QL_BEGIN, 2;
- close;
-}
-
-029-2,29,23,0|script|Dresser#tutorial|400
-{
- set @npc_distance, 2;
- set @distance_handler, 1;
- callfunc "PCtoNPCRange";
- if (@npc_check)
- goto L_CloseDis;
- if (QL_BEGIN > 2) goto L_Empty;
- if (QL_BEGIN == 2) goto L_Shirt;
- goto L_Walk;
-
-L_Walk:
- mes "[Sorfina]";
- mes "\"Thats not what I said to do. Please don't skip ahead.\"";
- close;
-
-L_Shirt:
- mapmask getmask();
- mes "You take a simple Cotton Shirt and some very worn-out Ragged Shorts out of the dresser.";
- getitem "CottonShirt", 1;
- getitem "RaggedShorts", 1;
- mes "[Sorfina]";
- mes "\"Great! Now you can equip it.\"";
- mes "\"You can open your inventory by pressing F3 or clicking on the 'Inventory' button in the bar at the upper right corner.\"";
- next;
- mes "\"After we finish talking, click on the clothes and press the equip button.\"";
- set QL_BEGIN, 3;
- close;
-
-L_Empty:
- mes "The dresser is empty.";
- close;
-
-L_CloseDis:
- mes "You cannot reach that far.";
- close;
-}
-
-029-2,44,31,0|script|#DoorOutTut1|45,0,0
-{
- if (QL_BEGIN < 4)
- goto L_Block;
- mapmask getmask();
- warp "029-2", 112, 85;
- end;
-
-L_Block:
- message strcharinfo(0), "Sorfina : ##BWait a moment! ##bYou're not ready to leave.";
- // FIXME: this should be changed to npctalk with strcharinfo(0) once we increase the view area
- end;
-}
-029-2,23,24,0|script|#GameRules1|32767,0,1
-{
- if (TUT_var > 0)
- end;
- mes "[Server/Client Notice]";
- mes "The explanations in this tutorial are based on the official client, Manaplus.";
- mes "If you're using another client, settings and controls may be different.";
- callfunc "GameRules";
- close;
-}
-029-2,21,24,0|script|#GameRules2|32767,0,1
-{
- if (TUT_var > 0)
- end;
- mes "[Server/Client Notice]";
- mes "The explanations in this tutorial are based on the official client, Manaplus.";
- mes "If you're using another client, settings and controls may be different.";
- callfunc "GameRules";
- close;
-}
-029-2,22,26,0|script|#GameRules3|32767,1,0
-{
- if (TUT_var == 0)
- goto L_KnockBack;
- end;
-
-L_KnockBack:
- message strcharinfo(0), "Server : ##BPlease Accept the Game rules";
- warp "029-2", 22, 24;
- end;
-}
-029-2,24,24,0|script|#GameRules4|32767,0,1
-{
- if (TUT_var == 0)
- goto L_KnockBack;
- end;
-
-L_KnockBack:
- message strcharinfo(0), "Server : ##BPlease Accept the Game rules";
- warp "029-2", 22, 24;
- end;
-}
diff --git a/world/map/npc/029-3/mapflags.txt b/world/map/npc/029-3/mapflags.txt
index 81d4e7fb..baa81aae 100644
--- a/world/map/npc/029-3/mapflags.txt
+++ b/world/map/npc/029-3/mapflags.txt
@@ -1,2 +1,3 @@
029-3|mapflag|nosave|029-1,39,102
029-3|mapflag|resave|029-1,39,102
+029-3|mapflag|pvp
diff --git a/world/map/npc/029-4/mapflags.txt b/world/map/npc/029-4/mapflags.txt
index 8e181716..d571b40a 100644
--- a/world/map/npc/029-4/mapflags.txt
+++ b/world/map/npc/029-4/mapflags.txt
@@ -1 +1,2 @@
029-4|mapflag|resave|029-4,69,69
+029-4|mapflag|pvp
diff --git a/world/map/npc/030-1/mapflags.txt b/world/map/npc/030-1/mapflags.txt
index 1069bff8..f19a2510 100644
--- a/world/map/npc/030-1/mapflags.txt
+++ b/world/map/npc/030-1/mapflags.txt
@@ -1 +1,2 @@
030-1|mapflag|resave|020-1,52,118
+030-1|mapflag|pvp
diff --git a/world/map/npc/030-3/mapflags.txt b/world/map/npc/030-3/mapflags.txt
index ea20b58f..b1d41b2c 100644
--- a/world/map/npc/030-3/mapflags.txt
+++ b/world/map/npc/030-3/mapflags.txt
@@ -1 +1,2 @@
030-3|mapflag|resave|020-1,52,118
+030-3|mapflag|pvp
diff --git a/world/map/npc/030-4/mapflags.txt b/world/map/npc/030-4/mapflags.txt
index c95a8d5f..979c095d 100644
--- a/world/map/npc/030-4/mapflags.txt
+++ b/world/map/npc/030-4/mapflags.txt
@@ -1,2 +1,3 @@
030-4|mapflag|nosave|030-2,151,25
030-4|mapflag|resave|030-2,151,25
+030-4|mapflag|pvp
diff --git a/world/map/npc/031-1/mapflags.txt b/world/map/npc/031-1/mapflags.txt
index 9b4dcc26..b7cfedb1 100644
--- a/world/map/npc/031-1/mapflags.txt
+++ b/world/map/npc/031-1/mapflags.txt
@@ -1 +1,2 @@
031-1|mapflag|resave|020-1,52,118
+031-1|mapflag|pvp
diff --git a/world/map/npc/031-2/mapflags.txt b/world/map/npc/031-2/mapflags.txt
index e188a3e0..47f11975 100644
--- a/world/map/npc/031-2/mapflags.txt
+++ b/world/map/npc/031-2/mapflags.txt
@@ -1 +1,2 @@
031-2|mapflag|resave|020-1,52,118
+031-2|mapflag|pvp
diff --git a/world/map/npc/031-3/mapflags.txt b/world/map/npc/031-3/mapflags.txt
index 205f7580..dc021969 100644
--- a/world/map/npc/031-3/mapflags.txt
+++ b/world/map/npc/031-3/mapflags.txt
@@ -1 +1,2 @@
031-3|mapflag|resave|020-1,52,118
+031-3|mapflag|pvp
diff --git a/world/map/npc/031-4/mapflags.txt b/world/map/npc/031-4/mapflags.txt
index 11b07dc8..a7b0f047 100644
--- a/world/map/npc/031-4/mapflags.txt
+++ b/world/map/npc/031-4/mapflags.txt
@@ -1,2 +1,3 @@
031-4|mapflag|nosave|031-3,46,26
031-4|mapflag|resave|031-3,46,26
+031-4|mapflag|pvp
diff --git a/world/map/npc/032-3/mapflags.txt b/world/map/npc/032-3/mapflags.txt
index b7e94a3e..ca7f74a8 100644
--- a/world/map/npc/032-3/mapflags.txt
+++ b/world/map/npc/032-3/mapflags.txt
@@ -1 +1,2 @@
032-3|mapflag|resave|006-1,36,18
+032-3|mapflag|pvp
diff --git a/world/map/npc/033-1/mapflags.txt b/world/map/npc/033-1/mapflags.txt
index 08a33311..8f2b9cef 100644
--- a/world/map/npc/033-1/mapflags.txt
+++ b/world/map/npc/033-1/mapflags.txt
@@ -1 +1,2 @@
033-1|mapflag|resave|033-1,67,33
+033-1|mapflag|pvp
diff --git a/world/map/npc/034-1/mapflags.txt b/world/map/npc/034-1/mapflags.txt
index 35e50a76..f3d05f99 100644
--- a/world/map/npc/034-1/mapflags.txt
+++ b/world/map/npc/034-1/mapflags.txt
@@ -1 +1,2 @@
034-1|mapflag|resave|033-1,67,33
+034-1|mapflag|pvp
diff --git a/world/map/npc/034-2/mapflags.txt b/world/map/npc/034-2/mapflags.txt
index b5c4f28f..4352821b 100644
--- a/world/map/npc/034-2/mapflags.txt
+++ b/world/map/npc/034-2/mapflags.txt
@@ -1 +1,2 @@
034-2|mapflag|resave|033-1,67,33
+034-2|mapflag|pvp
diff --git a/world/map/npc/035-2/mapflags.txt b/world/map/npc/035-2/mapflags.txt
index 2866ca80..85860adc 100644
--- a/world/map/npc/035-2/mapflags.txt
+++ b/world/map/npc/035-2/mapflags.txt
@@ -1,2 +1,3 @@
035-2|mapflag|town
035-2|mapflag|resave|035-2,20,21
+035-2|mapflag|pvp
diff --git a/world/map/npc/036-2/mapflags.txt b/world/map/npc/036-2/mapflags.txt
index a21839b0..723d2657 100644
--- a/world/map/npc/036-2/mapflags.txt
+++ b/world/map/npc/036-2/mapflags.txt
@@ -1,2 +1,3 @@
036-2|mapflag|town
036-2|mapflag|resave|036-2,20,21
+036-2|mapflag|pvp
diff --git a/world/map/npc/041-1/mapflags.txt b/world/map/npc/041-1/mapflags.txt
index 07ef50ce..57c6592a 100644
--- a/world/map/npc/041-1/mapflags.txt
+++ b/world/map/npc/041-1/mapflags.txt
@@ -1 +1,2 @@
041-1|mapflag|resave|002-1,32,65
+041-1|mapflag|pvp
diff --git a/world/map/npc/042-1/mapflags.txt b/world/map/npc/042-1/mapflags.txt
index 50566b0a..5212b7c3 100644
--- a/world/map/npc/042-1/mapflags.txt
+++ b/world/map/npc/042-1/mapflags.txt
@@ -1 +1,2 @@
042-1|mapflag|resave|002-1,32,65
+042-1|mapflag|pvp
diff --git a/world/map/npc/043-1/mapflags.txt b/world/map/npc/043-1/mapflags.txt
index 1650bbdd..54798b8e 100644
--- a/world/map/npc/043-1/mapflags.txt
+++ b/world/map/npc/043-1/mapflags.txt
@@ -1 +1,2 @@
043-1|mapflag|resave|002-1,32,65
+043-1|mapflag|pvp
diff --git a/world/map/npc/043-3/mapflags.txt b/world/map/npc/043-3/mapflags.txt
index b44307a2..69014c21 100644
--- a/world/map/npc/043-3/mapflags.txt
+++ b/world/map/npc/043-3/mapflags.txt
@@ -1 +1,2 @@
043-3|mapflag|resave|002-3,72,66
+043-3|mapflag|pvp
diff --git a/world/map/npc/043-4/mapflags.txt b/world/map/npc/043-4/mapflags.txt
index 9acc0b8a..6747efa8 100644
--- a/world/map/npc/043-4/mapflags.txt
+++ b/world/map/npc/043-4/mapflags.txt
@@ -1 +1,2 @@
043-4|mapflag|resave|002-3,72,66
+043-4|mapflag|pvp
diff --git a/world/map/npc/045-1/mapflags.txt b/world/map/npc/045-1/mapflags.txt
index c3cbf1da..d6331d0b 100644
--- a/world/map/npc/045-1/mapflags.txt
+++ b/world/map/npc/045-1/mapflags.txt
@@ -1 +1,2 @@
045-1|mapflag|resave|017-1,170,25
+045-1|mapflag|pvp
diff --git a/world/map/npc/046-1/mapflags.txt b/world/map/npc/046-1/mapflags.txt
index 8e5720df..ec69a7fe 100644
--- a/world/map/npc/046-1/mapflags.txt
+++ b/world/map/npc/046-1/mapflags.txt
@@ -1 +1,2 @@
046-1|mapflag|resave|046-1,92,48
+046-1|mapflag|pvp
diff --git a/world/map/npc/046-3/mapflags.txt b/world/map/npc/046-3/mapflags.txt
index 941f4c1a..06cd5eff 100644
--- a/world/map/npc/046-3/mapflags.txt
+++ b/world/map/npc/046-3/mapflags.txt
@@ -1 +1,2 @@
046-3|mapflag|resave|046-1,92,48
+046-3|mapflag|pvp
diff --git a/world/map/npc/047-1/mapflags.txt b/world/map/npc/047-1/mapflags.txt
index 12a7c9cb..2584993f 100644
--- a/world/map/npc/047-1/mapflags.txt
+++ b/world/map/npc/047-1/mapflags.txt
@@ -1 +1,2 @@
047-1|mapflag|resave|048-2,26,46
+047-1|mapflag|pvp
diff --git a/world/map/npc/047-3/mapflags.txt b/world/map/npc/047-3/mapflags.txt
index b3562bf7..0fe1c6e3 100644
--- a/world/map/npc/047-3/mapflags.txt
+++ b/world/map/npc/047-3/mapflags.txt
@@ -1 +1,2 @@
047-3|mapflag|resave|047-1,145,20
+047-3|mapflag|pvp
diff --git a/world/map/npc/051-1/mapflags.txt b/world/map/npc/051-1/mapflags.txt
index ddac528a..11868396 100644
--- a/world/map/npc/051-1/mapflags.txt
+++ b/world/map/npc/051-1/mapflags.txt
@@ -1,2 +1,3 @@
051-1|mapflag|nosave|007-2,36,23
051-1|mapflag|resave|007-2,36,23
+051-1|mapflag|pvp
diff --git a/world/map/npc/051-3/mapflags.txt b/world/map/npc/051-3/mapflags.txt
index 3615db4b..8eadeed1 100644
--- a/world/map/npc/051-3/mapflags.txt
+++ b/world/map/npc/051-3/mapflags.txt
@@ -1,2 +1,3 @@
051-3|mapflag|nosave|007-2,36,23
051-3|mapflag|resave|007-2,36,23
+051-3|mapflag|pvp
diff --git a/world/map/npc/052-1/mapflags.txt b/world/map/npc/052-1/mapflags.txt
index c937dc79..2631e86c 100644
--- a/world/map/npc/052-1/mapflags.txt
+++ b/world/map/npc/052-1/mapflags.txt
@@ -1,2 +1,3 @@
052-1|mapflag|nosave|007-2,36,23
052-1|mapflag|resave|007-2,36,23
+052-1|mapflag|pvp
diff --git a/world/map/npc/052-2/mapflags.txt b/world/map/npc/052-2/mapflags.txt
index 3fe6852b..4f632d68 100644
--- a/world/map/npc/052-2/mapflags.txt
+++ b/world/map/npc/052-2/mapflags.txt
@@ -1,2 +1,3 @@
052-2|mapflag|nosave|007-2,36,23
052-2|mapflag|resave|007-2,36,23
+052-2|mapflag|pvp
diff --git a/world/map/npc/055-1/mapflags.txt b/world/map/npc/055-1/mapflags.txt
index 31c2f835..66af5deb 100644
--- a/world/map/npc/055-1/mapflags.txt
+++ b/world/map/npc/055-1/mapflags.txt
@@ -1 +1,2 @@
055-1|mapflag|resave|055-1,133,61
+055-1|mapflag|pvp
diff --git a/world/map/npc/055-3/mapflags.txt b/world/map/npc/055-3/mapflags.txt
index 3d62e240..2e926b31 100644
--- a/world/map/npc/055-3/mapflags.txt
+++ b/world/map/npc/055-3/mapflags.txt
@@ -1 +1,2 @@
055-3|mapflag|resave|055-1,133,61
+055-3|mapflag|pvp
diff --git a/world/map/npc/056-2/mapflags.txt b/world/map/npc/056-2/mapflags.txt
index 02af4171..a0d87054 100644
--- a/world/map/npc/056-2/mapflags.txt
+++ b/world/map/npc/056-2/mapflags.txt
@@ -1,2 +1,3 @@
056-2|mapflag|nosave|017-1,107,70
056-2|mapflag|resave|017-1,107,70
+056-2|mapflag|pvp
diff --git a/world/map/npc/057-1/mapflags.txt b/world/map/npc/057-1/mapflags.txt
index 245bb2fa..d7c3aea2 100644
--- a/world/map/npc/057-1/mapflags.txt
+++ b/world/map/npc/057-1/mapflags.txt
@@ -1 +1,2 @@
057-1|mapflag|resave|055-1,133,61
+057-1|mapflag|pvp
diff --git a/world/map/npc/070-3/_import.txt b/world/map/npc/070-3/_import.txt
index fbb44538..c11b4c9d 100644
--- a/world/map/npc/070-3/_import.txt
+++ b/world/map/npc/070-3/_import.txt
@@ -4,3 +4,4 @@ map: 070-3
npc: npc/070-3/_mobs.txt
npc: npc/070-3/_nodes.txt
npc: npc/070-3/_warps.txt
+npc: npc/070-3/mapflags.txt
diff --git a/world/map/npc/070-3/mapflags.txt b/world/map/npc/070-3/mapflags.txt
new file mode 100644
index 00000000..b72b8c1e
--- /dev/null
+++ b/world/map/npc/070-3/mapflags.txt
@@ -0,0 +1,4 @@
+070-3|mapflag|resave|070-3,37,37
+070-3|mapflag|nosave|070-3,37,37
+070-3|mapflag|nowarp
+070-3|mapflag|pvp
diff --git a/world/map/npc/functions/death.txt b/world/map/npc/functions/death.txt
new file mode 100644
index 00000000..5818f315
--- /dev/null
+++ b/world/map/npc/functions/death.txt
@@ -0,0 +1,63 @@
+function|script|WarpToHell
+{
+ setarray @death_points[0], 35,63, 36,63, 55,34, 56,34;
+ set @point, rand(4) * 2;
+ warp "070-3", @death_points[@point], @death_points[@point + 1];
+ return;
+}
+
+function|script|CheckDeath
+{
+ if (getmap() != "070-3" && PC_DIE_COUNTER == 0) goto L_Return;
+ message strcharinfo(0), "Server : You are dead. Forever.";
+ if (getmap() == "070-3") goto L_Return;
+ callfunc "WarpToHell";
+ return;
+
+L_Return:
+ return;
+}
+
+function|script|HardKill
+{
+ if (getmap(@victimrid) == "070-3") goto L_Return;
+ announce strcharinfo(0) + " has brutally murdered " + strcharinfo(0, @victimrid) + " %%e", 0;
+ set Zeny, Zeny + get(Zeny, @victimrid); // loot them
+ getexp get(BaseExp, @victimrid), get(JobExp, @victimrid); // steal their exp
+ set @killed, 1, @victimrid;
+ return;
+
+L_Return:
+ return;
+}
+
+function|script|HardDeath
+{
+ if (getmap() == "070-3") goto L_Return;
+ getinventorylist;
+ set @item_it, 0;
+ freeloop 1;
+ goto L_Drop; // drop all items
+
+L_Drop:
+ makeitem @inventorylist_id[@item_it], @inventorylist_amount[@item_it], getmap(), POS_X + rand(-2, 2), POS_Y + rand(-2, 2);
+ set @item_it, @item_it + 1;
+ if (@item_it >= @inventorylist_count) goto L_Getstuff;
+ goto L_Drop;
+
+L_Getstuff:
+ if (@killed) goto L_Warp;
+ announce strcharinfo(0) + " has died %%S", 0;
+ makeitem "CasinoCoins", Zeny / 10, getmap(), POS_X + rand(-2, 2), POS_Y + rand(-2, 2);
+ goto L_Warp;
+
+L_Warp:
+ freeloop 0;
+ set @killed, 0;
+ set @item_it, 0;
+ callfunc "WarpToHell";
+ return;
+
+L_Return:
+ return;
+}
diff --git a/world/map/npc/functions/ghost.txt b/world/map/npc/functions/ghost.txt
index 921b8b79..f020092f 100644
--- a/world/map/npc/functions/ghost.txt
+++ b/world/map/npc/functions/ghost.txt
@@ -3,17 +3,6 @@ function|script|SpawnGhost
if ($GHOSTS_DISABLED)
goto L_Return;
- if (BaseLevel >= 40 &&
- (getmap() == "026-1" ||
- getmap() == "027-1" ||
- getmap() == "027-2" ||
- getmap() == "027-3" ||
- getmap() == "027-4" ||
- getmap() == "027-5"))
- goto L_Spawn;
- return;
-
-L_Spawn:
set .@x, POS_X;
set .@y, POS_Y;
diff --git a/world/map/npc/functions/global_event_handler.txt b/world/map/npc/functions/global_event_handler.txt
index fe87b380..01d01e62 100644
--- a/world/map/npc/functions/global_event_handler.txt
+++ b/world/map/npc/functions/global_event_handler.txt
@@ -16,12 +16,14 @@ OnPCLoginEvent:
addtimer 0, "Magic Timer::OnLogin"; // prevent cast rate abuse
callfunc "MaybeGiveBirthday";
callfunc "MiriamExpire"; // force the speed skill quest to expire
+ callfunc "CheckDeath";
// add more here
set @login_event, 2;
end;
OnPCKillEvent:
callfunc "elanore_decrease_exp"; // decrease heal exp for doing bad things
+ callfunc "HardKill";
end;
OnMobKillEvent:
@@ -33,6 +35,7 @@ OnPCDieEvent:
addtimer 0, "Magic Timer::OnClear"; // reset magic block on death
callfunc "SpawnGhost";
callfunc "MiriamExpire"; // force the speed skill quest to expire
+ callfunc "HardDeath";
set @killerrid, 0; // reset killer rid
end;
diff --git a/world/map/npc/items/warpTowels.txt b/world/map/npc/items/warpTowels.txt
index b6faaec3..6c9fb4f6 100644
--- a/world/map/npc/items/warpTowels.txt
+++ b/world/map/npc/items/warpTowels.txt
@@ -6,6 +6,8 @@ function|script|WarpTowel
goto L_DontPanic;
if (isin("botcheck",25,27,51,47))
goto L_Prison;
+ if (isin("070-3",2,2,300,300))
+ goto L_Dead;
if (getmapflag(getmap(), MF_NOSAVE) || getmapflag(getmap(), MF_NOTELEPORT) || getmapflag(getmap(), MF_NOWARP) || isin("009-7",$@fightclub_x1,$@fightclub_y1,$@fightclub_x2,$@fightclub_y2))
goto L_Forbid;
@@ -130,6 +132,10 @@ L_Prison:
message strcharinfo(0), "Towel : You must be warped by a GM to leave the botcheck area.";
goto L_Keep;
+L_Dead:
+ message strcharinfo(0), "Towel : You are dead. Forever.";
+ return;
+
L_DontPanic:
callfunc "HumanTime";
message strcharinfo(0), "Towel : Your towel is still too low on power to jump again. Try again in ##B"+ @time$ + "##b.";
diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf
index ee63f684..3cade541 100644
--- a/world/map/npc/scripts.conf
+++ b/world/map/npc/scripts.conf
@@ -31,6 +31,7 @@ npc: npc/functions/DyeConfig.txt
npc: npc/functions/motd.txt
npc: npc/functions/motdconfig.txt
npc: npc/functions/ghost.txt
+npc: npc/functions/death.txt
npc: npc/functions/global_event_handler.txt
// Item Functions