summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/const.txt1
-rw-r--r--db/item_db.txt13
-rw-r--r--db/skill_db.txt77
-rw-r--r--npc/001-1_Tulimshar/bleacher.txt6
-rw-r--r--npc/009-2_Hurnscald/selim.txt8
-rw-r--r--npc/018-2_Woodland_mining_camp/caul.txt4
-rwxr-xr-xtools/aligncsv.py48
7 files changed, 91 insertions, 66 deletions
diff --git a/db/const.txt b/db/const.txt
index cd756b84..07027254 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -217,6 +217,7 @@ SKILL_LUCKY_COUNTER 351
SKILL_SPEED 352
SKILL_RESIST_POISON 353
SKILL_ASTRAL_SOUL 354
+SKILL_WARRIOR_BERSERK 355
// Magic skills
SKILL_MAGIC 340
diff --git a/db/item_db.txt b/db/item_db.txt
index a73ad081..e0e0fb92 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -269,7 +269,7 @@
755, AssassinShirt, Assassin Shirt, 5, 10000, 3000, 15, , 10, , -5, 0, 2, 512, , 0, 0, {}, {callfunc "UnreleasedItem";bonus bAgi, 10;}
756, AssassinGloves, Assassin Gloves, 5, 7000, 2000, 9, , 5, , -3, 0, 2, 4, , 0, 0, {}, {callfunc "UnreleasedItem";bonus bAgi, 5;}
757, AssassinBoots, Assassin Boots, 5, 7000, 2000, 10, , 5, , -3, 0, 2, 64, , 0, 0, {}, {callfunc "UnreleasedItem";bonus bAgi, 5;}
-758, WoodenStaff, Wooden Staff, 4, 4000, 2000, 1000, 50, , 1, 5, 0, 2, 2, 1, 1, 3, {}, {}
+758, WoodenStaff, Wooden Staff, 4, 4000, 2000, 1000, 50, , 1, 5, 0, 2, 2, 1, 1, 10, {}, {}
//759, PaladinsHelmet, Paladin's Helmet, , , , , , , , , , , , , , , {}, {}
//760, OverlordsHelmet, Overlord's Helmet, , , , , , , , , , , , , , , {}, {}
//761, DesertHelmet, Desert Helmet, , , , , , , , , , , , , , , {}, {}
@@ -560,6 +560,16 @@
2207, OrangeWizardHat, Orange Wizard Hat, 5, 5000, 2500, 20, , 5, , 5, 0, 2, 256, , 1, 0, {}, {bonus bInt, 3;}
2208, PurpleWizardHat, Purple Wizard Hat, 5, 5000, 2500, 20, , 5, , 5, 0, 2, 256, , 1, 0, {}, {bonus bInt, 3;}
2209, DarkGreenWizardHat, Dark Green Wizard Hat, 5, 5000, 2500, 20, , 5, , 5, 0, 2, 256, , 1, 0, {}, {bonus bInt, 3;}
+2210, RedBowlerHat, Red Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2211, GreenBowlerHat, Green Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2212, DarkBlueBowlerHat, Dark Blue Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2213, YellowBowlerHat, Yellow Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2214, LightBlueBowlerHat, Light Blue Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2215, PinkBowlerHat, Pink Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2216, BlackBowlerHat, Black Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2217, OrangeBowlerHat, Orange Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2218, PurpleBowlerHat, Purple Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+2219, DarkGreenBowlerHat, Dark Green Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
3000, JackOLantern, Jack-o-Lantern, 3, 200, 100, 1000, , , , , , , , , , , {}, {}
3001, RubberBat, Rubber Bat, 3, 200, 100, 30, , , , , , , , , , , {}, {}
3002, RealisticBrain, Realistic Brain, 3, 200, 100, 50, , , , , , , , , , , {}, {}
@@ -605,4 +615,5 @@
4028, WizardHat, Wizard Hat, 5, 5000, 2500, 20, , 5, , 5, 0, 2, 256, , 1, 0, {}, {bonus bInt, 3;}
4029, DementiaPotion, Dementia Potion, 3, 20, 10, 10, , , , , , 2, , , 0, , {}, {}
4030, BowlerHat, Bowler Hat, 5, 2500, 1250, 30, , 10, , 2, 0, 2, 256, , 0, 0, {}, {}
+4031, Monocle, Monocle, 5, 5000, 2500, 20, , 2, , 0, 0, 2, 256, , 0, 0, {}, {bonus bDex, 1;bonus bAtkRange, 1;}
diff --git a/db/skill_db.txt b/db/skill_db.txt
index 93a6e567..91bf1405 100644
--- a/db/skill_db.txt
+++ b/db/skill_db.txt
@@ -1,43 +1,40 @@
-//# This file can be imported to OpenOffice or similar as a "comma separated list (.csv)"
-//# So please use only(!) commas to separate different fields.
-//# and DO NOT use any kind of whitespace to make it miss-formated.
-//# Just use a serious csv editor!
-//id,range,hit,inf,pl,nk,maxrse,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,pool,stat,name
-1,0,0,0,0,0,0,1,0,no,0,0,0,none,0,no,none,Emote//NV_EMOTE
-2,0,0,0,0,0,0,1,0,no,0,0,0,none,0,no,none,Trade//NV_TRADE
-3,0,0,0,0,0,0,2,0,no,0,0,0,none,0,no,none,Party//NV_PARTY
-4,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,no,none,X0//SM_SWORD
-6,0,0,0,0,0,0,10,0,no,0,0,0,none,0,no,none,X1//SM_RECOVERY
-11,0,0,0,0,0,0,10,0,no,0,0,0,none,0,no,none,X2//MG_SRECOVERY
-38,0,0,0,0,0,0,10,0,no,0,0,0,none,0,no,none,X3//MC_INCCARRY
-39,0,0,0,0,0,0,10,0,no,0,0,0,none,0,no,none,X4//MC_DISCOUNT
-40,0,0,0,0,0,0,10,0,no,0,0,0,none,0,no,none,X5//MC_OVERCHARGE
-50,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,no,none,X6//TF_DOUBLE
-51,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,no,none,X7//TF_MISS
-54,1,6,4,0,0,0,100,1,no,0,1,0,none,0,no,none,X8//TF_POISON
-144,0,6,4,0,1,0,1,1,no,0,1,0,none,0,no,none,X9//NV_FIRSTAID
-146,0,0,0,0,0,0,1,0,no,0,1,0,none,0,no,none,X10//SM_MOVINGRECOVERY
-148,0,0,0,0,0,0,1,0,no,0,1,0,weapon,0,no,none,X11//SM_AUTOBERSERK
-152,0,6,4,0,1,0,1,1,no,0,1,0,weapon,5,no,none,X12//TF_BACKSLIDING
-178,1,6,4,0,0,0,100,1,no,0,1,0,none,0,no,none,X13//NPC_POISON
-190,1,6,4,0,0,0,100,1,no,0,1,0,none,0,no,none,X14//NPC_POISONATTACK
-198,0,0,4,0,1,0,10,1,no,0,2,0,magic,0,no,none,X15//NPC_SUMMONSLAVE
-199,0,0,4,0,1,0,10,1,no,0,2,0,none,0,no,none,X16//NPC_EMOTION
-3390,0,0,0,0,0,3,0,no,0,0,0,none,0,no,none,Skill_Pool//SKILL_POOL
-340,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,Magic//TMW_MAGIC
-341,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,Life_Magic//TMW_MAGIC_LIFE
-342,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,War_Magic//TMW_MAGIC_WAR
-343,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,Transmutation_Magic//TMW_MAGIC_TRANSMUTE
-344,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,Nature_Magic//TMW_MAGIC_NATURE
-345,0,0,0,0,0,0,5,0,no,0,0,0,magic,0,no,none,Astral_Magic//TMW_MAGIC_ASTRAL
-350,0,0,0,0,0,9,10,0,no,0,0,0,weapon,0,passive,agi,Brawling//TMW_BRAWLING
-351,0,0,0,0,0,9,10,0,no,0,0,0,weapon,0,passive,luk,Lucky_Counter//TMW_LUCKY_COUNTER
-352,0,0,0,0,0,9,10,0,no,0,0,0,none,0,passive,agi,Speed//TMW_SPEED
-353,0,0,0,0,0,9,10,0,no,0,0,0,none,0,passive,vit,Poison_Resistance//TMW_POISON_RESISTANCE
-354,0,0,0,0,0,9,10,0,no,0,0,0,magic,0,passive,int,Astral_Soul//TMW_ASTRAL_SOUL
-45,0,0,0,0,0,9,10,0,no,0,0,0,weapon,0,passive,dex,Mallard's_Eye//AC_OWL
-28,0,6,4,0,1,0,2,1,yes,0,0,0,magic,0,no,none,Teleport //AL_TELEPORT
-30,9,6,16,0,1,0,10,1,yes,0,0,0,magic,0,no,none,Heal //AL_HEAL
+//id, range, hit, inf, pl, nk, maxrse, max, list_num, castcancel, cast_defence_rate, inf2, maxcount, skill_type, blow_count, pool, stat, name
+1, 0, 0, 0, 0, 0, 0, 1, 0, no, 0, 0, 0, none, 0, no, none, Emote//NV_EMOTE
+2, 0, 0, 0, 0, 0, 0, 1, 0, no, 0, 0, 0, none, 0, no, none, Trade//NV_TRADE
+3, 0, 0, 0, 0, 0, 0, 2, 0, no, 0, 0, 0, none, 0, no, none, Party//NV_PARTY
+4, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0, no, none, X0//SM_SWORD
+6, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0, no, none, X1//SM_RECOVERY
+11, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0, no, none, X2//MG_SRECOVERY
+38, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0, no, none, X3//MC_INCCARRY
+39, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0, no, none, X4//MC_DISCOUNT
+40, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0, no, none, X5//MC_OVERCHARGE
+50, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0, no, none, X6//TF_DOUBLE
+51, 0, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0, no, none, X7//TF_MISS
+54, 1, 6, 4, 0, 0, 0, 100, 1, no, 0, 1, 0, none, 0, no, none, X8//TF_POISON
+144, 0, 6, 4, 0, 1, 0, 1, 1, no, 0, 1, 0, none, 0, no, none, X9//NV_FIRSTAID
+146, 0, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, none, 0, no, none, X10//SM_MOVINGRECOVERY
+148, 0, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, weapon, 0, no, none, X11//SM_AUTOBERSERK
+152, 0, 6, 4, 0, 1, 0, 1, 1, no, 0, 1, 0, weapon, 5, no, none, X12//TF_BACKSLIDING
+178, 1, 6, 4, 0, 0, 0, 100, 1, no, 0, 1, 0, none, 0, no, none, X13//NPC_POISON
+190, 1, 6, 4, 0, 0, 0, 100, 1, no, 0, 1, 0, none, 0, no, none, X14//NPC_POISONATTACK
+198, 0, 0, 4, 0, 1, 0, 10, 1, no, 0, 2, 0, magic, 0, no, none, X15//NPC_SUMMONSLAVE
+199, 0, 0, 4, 0, 1, 0, 10, 1, no, 0, 2, 0, none, 0, no, none, X16//NPC_EMOTION
+339, 0, 0, 0, 0, 0, 0, 3, 0, no, 0, 0, 0, none, 0, no, none, Skill_Pool//SKILL_POOL
+340, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, Magic//TMW_MAGIC
+341, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, Life_Magic//TMW_MAGIC_LIFE
+342, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, War_Magic//TMW_MAGIC_WAR
+343, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, Transmutation_Magic//TMW_MAGIC_TRANSMUTE
+344, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, Nature_Magic//TMW_MAGIC_NATURE
+345, 0, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0, no, none, Astral_Magic//TMW_MAGIC_ASTRAL
+350, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, weapon, 0, passive,agi, Brawling //TMW_BRAWLING
+351, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, weapon, 0, passive,luk, Lucky_Counter //TMW_LUCKY_COUNTER
+352, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, none, 0, passive,agi, Speed //TMW_SPEED
+353, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, none, 0, passive,vit, Poison_Resistance //TMW_POISON_RESISTANCE
+354, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, magic, 0, passive,int, Astral_Soul //TMW_ASTRAL_SOUL
+45, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, weapon, 0, passive,dex, Mallard's_Eye //AC_OWL
+355, 0, 0, 0, 0, 0, 9, 10, 0, no, 0, 0, 0, weapon, 0, passive,str, Beserking //SKILL_WARRIOR_BERSERK implemented
+28, 0, 6, 4, 0, 1, 0, 2, 1, yes, 0, 0, 0, magic, 0, no, none, Teleport //AL_TELEPORT
+30, 9, 6, 16, 0, 1, 0, 10, 1, yes, 0, 0, 0, magic, 0, no, none, Heal //AL_HEAL
// maxrse describes the max. level that the skill can be raised to through the `raise skill' option. Further raising has to happen via quests.
// maxrse < max.
// `pool' can be `no', `active', or `passive'.
diff --git a/npc/001-1_Tulimshar/bleacher.txt b/npc/001-1_Tulimshar/bleacher.txt
index b877642d..68707f65 100644
--- a/npc/001-1_Tulimshar/bleacher.txt
+++ b/npc/001-1_Tulimshar/bleacher.txt
@@ -34,6 +34,7 @@ L_bleach_menu:
"Cotton gloves", L_cotton_gloves,
"Rabbit ears", L_rabbit_ears,
"Wizard Hat", L_wizard_hat,
+ "Bowler Hat", L_bowler_hat,
"Nevermind", -;
goto L_close;
@@ -112,6 +113,11 @@ L_wizard_hat:
set @dyeBase, 2200;
goto L_choose_color;
+L_bowler_hat:
+ set @normal, 4030;
+ set @dyeBase, 2210;
+ goto L_choose_color;
+
L_choose_color:
mes "[Candide]";
mes "\"And the color?\"";
diff --git a/npc/009-2_Hurnscald/selim.txt b/npc/009-2_Hurnscald/selim.txt
index 7c39a2ab..de02de0d 100644
--- a/npc/009-2_Hurnscald/selim.txt
+++ b/npc/009-2_Hurnscald/selim.txt
@@ -32,6 +32,8 @@ L_clothes_choice:
"Cotton boots", L_cottonboots,
"Cotton gloves", L_cottongloves,
"Rabbit ears", L_rabbitears,
+ "Wizard hat", L_wizardhat,
+ "Bowler hat", L_bowlerhat,
"I'm fine for now, thanks.", -;
close;
@@ -129,6 +131,12 @@ L_wizardhat:
set @name$, "wizard hat";
goto L_picked_item;
+L_bowlerhat:
+ set @del, 4030;
+ set @new, 2210;
+ set @name$, "bowler hat";
+ goto L_picked_item;
+
L_picked_item:
if (countitem(@del) == 0) goto L_havenone;
L_colour:
diff --git a/npc/018-2_Woodland_mining_camp/caul.txt b/npc/018-2_Woodland_mining_camp/caul.txt
index c0b84544..2949c0e9 100644
--- a/npc/018-2_Woodland_mining_camp/caul.txt
+++ b/npc/018-2_Woodland_mining_camp/caul.txt
@@ -942,10 +942,6 @@ L_check_explosion:
// and multiply with 3 so there is definitly no chance to get it directly after starting
set @prob, (@prob * @prob) * 2;
L_check_exp_nof:
-
- //TODO remove next message:
- mes "check explosion: + " +@prob +" / 1000";
-
// in about 95% of the cases anything is fine, so return.
if (rand(1000) > @prob) return;
// in some cases it is not:
diff --git a/tools/aligncsv.py b/tools/aligncsv.py
index ce63a988..54bcd9d4 100755
--- a/tools/aligncsv.py
+++ b/tools/aligncsv.py
@@ -33,10 +33,11 @@ for x in range(length):
#find the longest entry in each line in each position
for lineno in range(len(lines)):
- sp=lines[lineno].split(",")
- for pieceno in range(len(sp)):
- sp[pieceno] = sp[pieceno].strip() + "," #for the comma add a char
- textarray[-1][pieceno] = max(len(sp[pieceno]),textarray[-1][pieceno])
+ if not lines[lineno].strip().startswith("//") or lines[lineno].strip().startswith("//id"):
+ sp=lines[lineno].split(",")
+ for pieceno in range(len(sp)):
+ sp[pieceno] = sp[pieceno].strip() + "," #for the comma add a char
+ textarray[-1][pieceno] = max(len(sp[pieceno]),textarray[-1][pieceno])
if tabs:
#make it divisable by 8 (tabs work then)
@@ -45,24 +46,29 @@ if tabs:
textarray[-1][pieceno] = (((textarray[-1][pieceno])/8)*8)+8
for lineno in range(len(lines)):
- sp=lines[lineno].split(",")
- for pieceno in range(length):
- textarray[lineno][pieceno] = ""
- if pieceno<len(sp):
- sp[pieceno]= sp[pieceno].strip()
- if pieceno<len(sp)-1:
- sp[pieceno]= sp[pieceno] + ","
-
- if (tabs):
- n=(textarray[-1][pieceno]-len(sp[pieceno]))
- textarray[lineno][pieceno] = sp[pieceno]
- if (n%8) != 0:
- textarray[lineno][pieceno] += "\t"*((n/8)+1)
+ if not lines[lineno].strip().startswith("//") or lines[lineno].strip().startswith("//id"):
+ sp=lines[lineno].split(",")
+ for pieceno in range(length):
+ textarray[lineno][pieceno] = ""
+ if pieceno<len(sp):
+ sp[pieceno]= sp[pieceno].strip()
+ if pieceno<len(sp)-1:
+ sp[pieceno]= sp[pieceno] + ","
+
+ if (tabs):
+ n=(textarray[-1][pieceno]-len(sp[pieceno]))
+ textarray[lineno][pieceno] = sp[pieceno]
+ if (n%8) != 0:
+ textarray[lineno][pieceno] += "\t"*((n/8)+1)
+ else:
+ textarray[lineno][pieceno] += "\t"*((n/8))
else:
- textarray[lineno][pieceno] += "\t"*((n/8))
- else:
- n=(textarray[-1][pieceno]-len(sp[pieceno])+additionalspaces)
- textarray[lineno][pieceno] = " "*(n) + sp[pieceno]
+ n=(textarray[-1][pieceno]-len(sp[pieceno])+additionalspaces)
+ textarray[lineno][pieceno] = " "*(n) + sp[pieceno]
+ else:
+ for pieceno in range(length):
+ textarray[lineno][pieceno] = ""
+ textarray[lineno][0]=lines[lineno].strip()
fname = sys.argv[2]