summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf17
-rw-r--r--db/pre-re/item_db.conf2
-rw-r--r--db/pre-re/skill_db.conf82
-rw-r--r--db/pre-re/skill_tree.conf481
-rw-r--r--npc/magic/config.txt111
5 files changed, 180 insertions, 513 deletions
diff --git a/db/constants.conf b/db/constants.conf
index eb263129..7ed2dbae 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -5277,13 +5277,16 @@ more than one separator can be used in a row (so 12_3___456 is illegal).
ROSSY_READY: 1023
ROSSY_BOSSCAVE: 1024
- comment__: "Kylian Quest Constants"
- KYLIAN_YANIS: 1
- KYLIAN_WEELLOS: 2
- KYLIAN_FIERI: 4
- KYLIAN_CASINO: 8
- KYLIAN_HETCHEL: 16
- KYLIAN_HOCUS: 32
+ comment__: "Focus Constants"
+ FSKILL_MALLARDS_EYE: 1
+ FSKILL_BRAWLING: 2
+ FSKILL_SPEED: 4
+ FSKILL_RESIST_POISON: 8
+ FSKILL_ASTRAL_SOUL: 16
+ FSKILL_RAGING: 32
+ FSKILL_TOTAL: 6
+
+ AC_OWL: 43 // i.e. Mallard's Eye, compatibility purposes
comment__: "TMW Constants"
bDeaf:70
diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf
index 94f7b83f..1f5bd39e 100644
--- a/db/pre-re/item_db.conf
+++ b/db/pre-re/item_db.conf
@@ -11471,7 +11471,7 @@ item_db: (
BindOnEquip: false
Delay: 0
OnEquipScript: <"
- bonus bDeaf, 1;
+ bonus bDeaf, 1; // FIXME SC_SILENCE or Manner = 0 or whatever
">
},
{
diff --git a/db/pre-re/skill_db.conf b/db/pre-re/skill_db.conf
index 29e24b08..f77e26e2 100644
--- a/db/pre-re/skill_db.conf
+++ b/db/pre-re/skill_db.conf
@@ -1751,7 +1751,7 @@ skill_db: (
},
{
Id: 43
- Name: "AC_OWL"
+ Name: "SKILL_MALLARDS_EYE"
Description: "Owl's Eye"
MaxLevel: 10
NumberOfHits: 0
@@ -38417,8 +38417,8 @@ skill_db: (
},
{
Id: 20002
- Name: "EVOL_SUPER_MENU"
- Description: "Super Menu"
+ Name: "TMW2_FAKESKILL"
+ Description: "Resync"
MaxLevel: 1
SkillType: {
Self: true
@@ -38426,22 +38426,82 @@ skill_db: (
},
{
Id: 20003
- Name: "EVOL_MONSTER_IDENTIFY"
- Description: "Monster Identify"
- MaxLevel: 1
+ Name: "SKILL_POOL"
+ Description: "Focus"
+ MaxLevel: 10
SkillType: {
- Self: true
+ Passive: true
}
- CoolDown: 3000
},
-{
+/*{
Id: 20004
- Name: "EVOL_CRAFTING"
- Description: "Crafting"
+ Name: "SKILL_MALLARDS_EYE"
+ Description: "Mallard Eye"
+ MaxLevel: 10
+ SkillType: {
+ Passive: true
+ }
+},*/
+{
+ Id: 20005
+ Name: "SKILL_BRAWLING"
+ Description: "Brawling"
+ MaxLevel: 10
+ SkillType: {
+ Passive: true
+ }
+},
+{
+ Id: 20006
+ Name: "SKILL_SPEED"
+ Description: "Speed"
+ MaxLevel: 10
+ SkillType: {
+ Passive: true
+ }
+},
+{
+ Id: 20007
+ Name: "SKILL_RESIST_POISON"
+ Description: "Resist Status Condition"
+ MaxLevel: 10
+ SkillType: {
+ Passive: true
+ }
+},
+{
+ Id: 20008
+ Name: "SKILL_ASTRAL_SOUL"
+ Description: "Astral Soul"
+ MaxLevel: 10
+ SkillType: {
+ Passive: true
+ }
+},
+{
+ Id: 20009
+ Name: "SKILL_RAGING"
+ Description: "Raging"
MaxLevel: 10
SkillType: {
Passive: true
}
},
+{
+ Id: 20010
+ Name: "EVOL_AREA_PROVOKE"
+ Description: "Itenplz"
+ MaxLevel: 9
+ SkillType: {
+ //Self: true
+ Friend: true // <- Can it aim an enemy??
+ }
+ CoolDown: 1000
+ Requirements: {
+ SPCost: 0 // FIXME?
+ }
+},
+// TODO: Bind magic scripts
+// Wand Aggravate(AreaProvoke) Abizit FlareDart Alizarin Cobalt Gamboge Mauve Lum MagicBlade Sulphur Kalmurk Parum ArrowHail Barrier(OK) EnchantLifestone FlyingBackpack(?) Joyplim Hide(?) LayOnHands Ingrav Knuclkes MakeArrow MakeIronPowder MakeShirt MakeTanktop MakeSTanktop Protect Rain Shear SFluffy SMouboo SPinkie SSnake SSPiky SWicked ToxicDart Necro
)
diff --git a/db/pre-re/skill_tree.conf b/db/pre-re/skill_tree.conf
index 934769c0..bdabe1ad 100644
--- a/db/pre-re/skill_tree.conf
+++ b/db/pre-re/skill_tree.conf
@@ -34,512 +34,73 @@ Talpan: {
EVOL_MONSTER_IDENTIFY: 0
AC_SHOWER: 0
MG_FIREWALL: 0
+ TMW2_FAKESKILL: 0
- /*
- EVOL_CRAFTING: 0
- SM_SWORD: 0
- SM_TWOHAND: 0
- AC_OWL: 0
- NV_FIRSTAID: 0
- WE_BABY: 0
- WE_CALLPARENT: 0
- WE_CALLBABY: 0
- MC_VENDING: 0
- MC_PUSHCART: 0
- ALL_BUYING_STORE: 0
- KN_RIDING: 0
- SM_BASH: 0
- TK_HIGHJUMP: 0
- MG_THUNDERSTORM: 0
- AS_CLOAKING: 0
- TF_DOUBLE: 0
- TF_HIDING: 0
- WZ_VERMILION: 0
- ST_CHASEWALK: 0
- WS_CARTBOOST: 0
- TK_RUN: 0
- RA_RESEARCHTRAP: 0
- SC_DIMENSIONDOOR: 0
- WZ_STORMGUST: 0
- WL_SUMMONFB: 0
- WL_RELEASE: 0
- WL_SUMMONSTONE: 0
- SC_INVISIBILITY: 0
- RG_GRAFFITI: 0
- RG_CLEANER: 0
- SA_COMA: 0
- CH_SOULCOLLECT: 0
- SL_STUN: 0
- AL_BLESSING: 0
- WL_STASIS: 0
- RA_CAMOUFLAGE: 0
- SC_MANHOLE: 0
- AL_RUWACH: 0
- AL_TELEPORT: 0
- MG_SAFETYWALL: 0
- WZ_QUAGMIRE: 0
- MO_BODYRELOCATION: 0
- MO_CALLSPIRITS: 0
- GN_HELLS_PLANT: 0
- GN_DEMONIC_FIRE: 0
- GN_CRAZYWEED: 0
- GN_WALLOFTHORN: 0
- WE_MALE: 0
- WE_FEMALE: 0
- WE_CALLPARTNER: 0
- MG_COLDBOLT: 0
+ SKILL_POOL: 0
+ SKILL_MALLARDS_EYE: 0
+ SKILL_BRAWLING: 0
+ SKILL_SPEED: 0
+ SKILL_RESIST_POISON: 0
+ SKILL_ASTRAL_SOUL: 0
+ SKILL_RAGING: 0
- SA_FREECAST: 0
- ALL_FULL_THROTTLE: 0
- SA_DRAGONOLOGY: 0
- CR_TRUST: 0
- SM_RECOVERY: 0
- MG_SRECOVERY: 0
- MC_MAMMONITE: 0
- TF_DETOXIFY: 0
- NV_TRICKDEAD: 0
- HW_MAGICPOWER: 0
- TF_POISON: 0
- TF_BACKSLIDING: 0
- MC_DISCOUNT: 0
- GC_DARKILLUSION: 0
- AC_CHARGEARROW: 0
- ASC_METEORASSAULT: 0
- SN_SHARPSHOOTING: 0
- KN_AUTOCOUNTER: 0
- AC_VULTURE: 0
- MG_SOULSTRIKE: 0
- MG_NAPALMBEAT: 0
- SA_SEISMICWEAPON: 0
- SN_WINDWALK: 0
- MG_LIGHTNINGBOLT: 0
- SA_FLAMELAUNCHER: 0
- MG_FIREBOLT: 0
- MG_FIREBALL: 0
- SO_FIREWALK: 0
- SA_FROSTWEAPON: 0
- MG_FROSTDIVER: 0
- WZ_FROSTNOVA: 0
- SM_PROVOKE: 0
- EVOL_MASS_PROVOKE: 0
- TF_STEAL: 0
- MC_OVERCHARGE: 0
- AL_HOLYLIGHT: 0
- AL_HEAL: 0
- AB_HIGHNESSHEAL: 0
- */
+ EVOL_AREA_PROVOKE: 0
}
}
CaveUkar: {
skills: {
- EVOL_CRAFTING: 0
- SM_SWORD: 0
- SM_TWOHAND: 0
- AC_OWL: 0
NV_BASIC: 0
- NV_FIRSTAID: 0
- WE_BABY: 0
- WE_CALLPARENT: 0
- WE_CALLBABY: 0
- MC_VENDING: 0
- MC_PUSHCART: 0
- ALL_BUYING_STORE: 0
+ ALL_INCCARRY: 0
AM_CALLHOMUN: 0
- KN_RIDING: 0
- SM_BASH: 0
- TK_HIGHJUMP: 0
- MG_THUNDERSTORM: 0
- AS_CLOAKING: 0
- TF_DOUBLE: 0
- TF_HIDING: 0
- WZ_VERMILION: 0
- ST_CHASEWALK: 0
- WS_CARTBOOST: 0
- TK_RUN: 0
- RA_RESEARCHTRAP: 0
- SC_DIMENSIONDOOR: 0
- WZ_STORMGUST: 0
- WL_SUMMONFB: 0
- WL_RELEASE: 0
- WL_SUMMONSTONE: 0
- SC_INVISIBILITY: 0
- RG_GRAFFITI: 0
- RG_CLEANER: 0
- SA_COMA: 0
- CH_SOULCOLLECT: 0
- SL_STUN: 0
- AL_BLESSING: 0
- WL_STASIS: 0
- RA_CAMOUFLAGE: 0
- SC_MANHOLE: 0
- AL_RUWACH: 0
- AL_TELEPORT: 0
- MG_SAFETYWALL: 0
- WZ_QUAGMIRE: 0
- MO_BODYRELOCATION: 0
- MO_CALLSPIRITS: 0
- GN_HELLS_PLANT: 0
- GN_DEMONIC_FIRE: 0
- GN_CRAZYWEED: 0
- GN_WALLOFTHORN: 0
- WE_MALE: 0
- WE_FEMALE: 0
- WE_CALLPARTNER: 0
- MG_COLDBOLT: 0
EVOL_PHYSICAL_SHIELD: 0
EVOL_MONSTER_IDENTIFY: 0
-
- SA_FREECAST: 0
- ALL_FULL_THROTTLE: 0
- SA_DRAGONOLOGY: 0
- CR_TRUST: 0
- SM_RECOVERY: 0
- MG_SRECOVERY: 0
- MC_MAMMONITE: 0
- TF_DETOXIFY: 0
- NV_TRICKDEAD: 0
- HW_MAGICPOWER: 0
- TF_POISON: 0
- TF_BACKSLIDING: 0
- MC_DISCOUNT: 0
- GC_DARKILLUSION: 0
- AC_CHARGEARROW: 0
AC_SHOWER: 0
- ASC_METEORASSAULT: 0
- SN_SHARPSHOOTING: 0
- KN_AUTOCOUNTER: 0
- AC_VULTURE: 0
- MG_SOULSTRIKE: 0
- MG_NAPALMBEAT: 0
- SA_SEISMICWEAPON: 0
- SN_WINDWALK: 0
- MG_LIGHTNINGBOLT: 0
MG_FIREWALL: 0
- SA_FLAMELAUNCHER: 0
- MG_FIREBOLT: 0
- MG_FIREBALL: 0
- SO_FIREWALK: 0
- SA_FROSTWEAPON: 0
- MG_FROSTDIVER: 0
- WZ_FROSTNOVA: 0
- SM_PROVOKE: 0
- EVOL_MASS_PROVOKE: 0
- TF_STEAL: 0
- MC_OVERCHARGE: 0
- ALL_INCCARRY: 0
- AL_HOLYLIGHT: 0
- AL_HEAL: 0
- AB_HIGHNESSHEAL: 0
+ TMW2_FAKESKILL: 0
+
}
}
FireKralog: {
skills: {
- EVOL_CRAFTING: 0
- SM_SWORD: 0
- SM_TWOHAND: 0
- AC_OWL: 0
NV_BASIC: 0
- NV_FIRSTAID: 0
- WE_BABY: 0
- WE_CALLPARENT: 0
- WE_CALLBABY: 0
- MC_VENDING: 0
- MC_PUSHCART: 0
- ALL_BUYING_STORE: 0
+ ALL_INCCARRY: 0
AM_CALLHOMUN: 0
- KN_RIDING: 0
- SM_BASH: 0
- TK_HIGHJUMP: 0
- MG_THUNDERSTORM: 0
- AS_CLOAKING: 0
- TF_DOUBLE: 0
- TF_HIDING: 0
- WZ_VERMILION: 0
- ST_CHASEWALK: 0
- WS_CARTBOOST: 0
- TK_RUN: 0
- RA_RESEARCHTRAP: 0
- SC_DIMENSIONDOOR: 0
- WZ_STORMGUST: 0
- WL_SUMMONFB: 0
- WL_RELEASE: 0
- WL_SUMMONSTONE: 0
- SC_INVISIBILITY: 0
- RG_GRAFFITI: 0
- RG_CLEANER: 0
- SA_COMA: 0
- CH_SOULCOLLECT: 0
- SL_STUN: 0
- AL_BLESSING: 0
- WL_STASIS: 0
- RA_CAMOUFLAGE: 0
- SC_MANHOLE: 0
- AL_RUWACH: 0
- AL_TELEPORT: 0
- MG_SAFETYWALL: 0
- WZ_QUAGMIRE: 0
- MO_BODYRELOCATION: 0
- MO_CALLSPIRITS: 0
- GN_HELLS_PLANT: 0
- GN_DEMONIC_FIRE: 0
- GN_CRAZYWEED: 0
- GN_WALLOFTHORN: 0
- WE_MALE: 0
- WE_FEMALE: 0
- WE_CALLPARTNER: 0
- MG_COLDBOLT: 0
EVOL_PHYSICAL_SHIELD: 0
EVOL_MONSTER_IDENTIFY: 0
-
- SA_FREECAST: 0
- ALL_FULL_THROTTLE: 0
- SA_DRAGONOLOGY: 0
- CR_TRUST: 0
- SM_RECOVERY: 0
- MG_SRECOVERY: 0
- MC_MAMMONITE: 0
- TF_DETOXIFY: 0
- NV_TRICKDEAD: 0
- HW_MAGICPOWER: 0
- TF_POISON: 0
- TF_BACKSLIDING: 0
- MC_DISCOUNT: 0
- GC_DARKILLUSION: 0
- AC_CHARGEARROW: 0
AC_SHOWER: 0
- ASC_METEORASSAULT: 0
- SN_SHARPSHOOTING: 0
- KN_AUTOCOUNTER: 0
- AC_VULTURE: 0
- MG_SOULSTRIKE: 0
- MG_NAPALMBEAT: 0
- SA_SEISMICWEAPON: 0
- SN_WINDWALK: 0
- MG_LIGHTNINGBOLT: 0
MG_FIREWALL: 0
- SA_FLAMELAUNCHER: 0
- MG_FIREBOLT: 0
- MG_FIREBALL: 0
- SO_FIREWALK: 0
- SA_FROSTWEAPON: 0
- MG_FROSTDIVER: 0
- WZ_FROSTNOVA: 0
- SM_PROVOKE: 0
- EVOL_MASS_PROVOKE: 0
- TF_STEAL: 0
- MC_OVERCHARGE: 0
- ALL_INCCARRY: 0
- AL_HOLYLIGHT: 0
- AL_HEAL: 0
- AB_HIGHNESSHEAL: 0
+ TMW2_FAKESKILL: 0
+
}
}
LightRaijin: {
skills: {
- EVOL_CRAFTING: 0
- SM_SWORD: 0
- SM_TWOHAND: 0
- AC_OWL: 0
NV_BASIC: 0
- NV_FIRSTAID: 0
- WE_BABY: 0
- WE_CALLPARENT: 0
- WE_CALLBABY: 0
- MC_VENDING: 0
- MC_PUSHCART: 0
- ALL_BUYING_STORE: 0
+ ALL_INCCARRY: 0
AM_CALLHOMUN: 0
- KN_RIDING: 0
- SM_BASH: 0
- TK_HIGHJUMP: 0
- MG_THUNDERSTORM: 0
- AS_CLOAKING: 0
- TF_DOUBLE: 0
- TF_HIDING: 0
- WZ_VERMILION: 0
- ST_CHASEWALK: 0
- WS_CARTBOOST: 0
- TK_RUN: 0
- RA_RESEARCHTRAP: 0
- SC_DIMENSIONDOOR: 0
- WZ_STORMGUST: 0
- WL_SUMMONFB: 0
- WL_RELEASE: 0
- WL_SUMMONSTONE: 0
- SC_INVISIBILITY: 0
- RG_GRAFFITI: 0
- RG_CLEANER: 0
- SA_COMA: 0
- CH_SOULCOLLECT: 0
- SL_STUN: 0
- AL_BLESSING: 0
- WL_STASIS: 0
- RA_CAMOUFLAGE: 0
- SC_MANHOLE: 0
- AL_RUWACH: 0
- AL_TELEPORT: 0
- MG_SAFETYWALL: 0
- WZ_QUAGMIRE: 0
- MO_BODYRELOCATION: 0
- MO_CALLSPIRITS: 0
- GN_HELLS_PLANT: 0
- GN_DEMONIC_FIRE: 0
- GN_CRAZYWEED: 0
- GN_WALLOFTHORN: 0
- WE_MALE: 0
- WE_FEMALE: 0
- WE_CALLPARTNER: 0
- MG_COLDBOLT: 0
EVOL_PHYSICAL_SHIELD: 0
EVOL_MONSTER_IDENTIFY: 0
-
- SA_FREECAST: 0
- ALL_FULL_THROTTLE: 0
- SA_DRAGONOLOGY: 0
- CR_TRUST: 0
- SM_RECOVERY: 0
- MG_SRECOVERY: 0
- MC_MAMMONITE: 0
- TF_DETOXIFY: 0
- NV_TRICKDEAD: 0
- HW_MAGICPOWER: 0
- TF_POISON: 0
- TF_BACKSLIDING: 0
- MC_DISCOUNT: 0
- GC_DARKILLUSION: 0
- AC_CHARGEARROW: 0
AC_SHOWER: 0
- ASC_METEORASSAULT: 0
- SN_SHARPSHOOTING: 0
- KN_AUTOCOUNTER: 0
- AC_VULTURE: 0
- MG_SOULSTRIKE: 0
- MG_NAPALMBEAT: 0
- SA_SEISMICWEAPON: 0
- SN_WINDWALK: 0
- MG_LIGHTNINGBOLT: 0
MG_FIREWALL: 0
- SA_FLAMELAUNCHER: 0
- MG_FIREBOLT: 0
- MG_FIREBALL: 0
- SO_FIREWALK: 0
- SA_FROSTWEAPON: 0
- MG_FROSTDIVER: 0
- WZ_FROSTNOVA: 0
- SM_PROVOKE: 0
- EVOL_MASS_PROVOKE: 0
- TF_STEAL: 0
- MC_OVERCHARGE: 0
- ALL_INCCARRY: 0
- AL_HOLYLIGHT: 0
- AL_HEAL: 0
- AB_HIGHNESSHEAL: 0
+ TMW2_FAKESKILL: 0
+
}
}
SeaTritan: {
skills: {
- EVOL_CRAFTING: 0
- SM_SWORD: 0
- SM_TWOHAND: 0
- AC_OWL: 0
NV_BASIC: 0
- NV_FIRSTAID: 0
- WE_BABY: 0
- WE_CALLPARENT: 0
- WE_CALLBABY: 0
- MC_VENDING: 0
- MC_PUSHCART: 0
- ALL_BUYING_STORE: 0
+ ALL_INCCARRY: 0
AM_CALLHOMUN: 0
- KN_RIDING: 0
- SM_BASH: 0
- TK_HIGHJUMP: 0
- MG_THUNDERSTORM: 0
- AS_CLOAKING: 0
- TF_DOUBLE: 0
- TF_HIDING: 0
- WZ_VERMILION: 0
- ST_CHASEWALK: 0
- WS_CARTBOOST: 0
- TK_RUN: 0
- RA_RESEARCHTRAP: 0
- SC_DIMENSIONDOOR: 0
- WZ_STORMGUST: 0
- WL_SUMMONFB: 0
- WL_RELEASE: 0
- WL_SUMMONSTONE: 0
- SC_INVISIBILITY: 0
- RG_GRAFFITI: 0
- RG_CLEANER: 0
- SA_COMA: 0
- CH_SOULCOLLECT: 0
- SL_STUN: 0
- AL_BLESSING: 0
- WL_STASIS: 0
- RA_CAMOUFLAGE: 0
- SC_MANHOLE: 0
- AL_RUWACH: 0
- AL_TELEPORT: 0
- MG_SAFETYWALL: 0
- WZ_QUAGMIRE: 0
- MO_BODYRELOCATION: 0
- MO_CALLSPIRITS: 0
- GN_HELLS_PLANT: 0
- GN_DEMONIC_FIRE: 0
- GN_CRAZYWEED: 0
- GN_WALLOFTHORN: 0
- WE_MALE: 0
- WE_FEMALE: 0
- WE_CALLPARTNER: 0
- MG_COLDBOLT: 0
EVOL_PHYSICAL_SHIELD: 0
EVOL_MONSTER_IDENTIFY: 0
-
- SA_FREECAST: 0
- ALL_FULL_THROTTLE: 0
- SA_DRAGONOLOGY: 0
- CR_TRUST: 0
- SM_RECOVERY: 0
- MG_SRECOVERY: 0
- MC_MAMMONITE: 0
- TF_DETOXIFY: 0
- NV_TRICKDEAD: 0
- HW_MAGICPOWER: 0
- TF_POISON: 0
- TF_BACKSLIDING: 0
- MC_DISCOUNT: 0
- GC_DARKILLUSION: 0
- AC_CHARGEARROW: 0
AC_SHOWER: 0
- ASC_METEORASSAULT: 0
- SN_SHARPSHOOTING: 0
- KN_AUTOCOUNTER: 0
- AC_VULTURE: 0
- MG_SOULSTRIKE: 0
- MG_NAPALMBEAT: 0
- SA_SEISMICWEAPON: 0
- SN_WINDWALK: 0
- MG_LIGHTNINGBOLT: 0
MG_FIREWALL: 0
- SA_FLAMELAUNCHER: 0
- MG_FIREBOLT: 0
- MG_FIREBALL: 0
- SO_FIREWALK: 0
- SA_FROSTWEAPON: 0
- MG_FROSTDIVER: 0
- WZ_FROSTNOVA: 0
- SM_PROVOKE: 0
- EVOL_MASS_PROVOKE: 0
- TF_STEAL: 0
- MC_OVERCHARGE: 0
- ALL_INCCARRY: 0
- AL_HOLYLIGHT: 0
- AL_HEAL: 0
- AB_HIGHNESSHEAL: 0
+ TMW2_FAKESKILL: 0
+
}
}
diff --git a/npc/magic/config.txt b/npc/magic/config.txt
index 141c2dd3..608b2223 100644
--- a/npc/magic/config.txt
+++ b/npc/magic/config.txt
@@ -190,40 +190,6 @@ function script rectharm {
}
-// mescordialog(text, color, {dialog=1})
-function script mescordialog {
- if (getarg(2, true))
- mesc getarg(0), getarg(1);
- else
- dispbottom col(getarg(0), getarg(1));
- return;
-}
-
-// ShowAbizit({dialog=1})
-function script ShowAbizit {
- .@dial=getarg(0, true);
- if (.@dial)
- mesn l("Current Magic Control");
-
- // FIXME
- .@val=MAGIC_EXP+rand(-MAGIC_LVL*5, MAGIC_LVL*5);
- .@base=((MAGIC_LVL*2)**3);
- if (.@val > .@base*5)
- mescordialog l("You are perfectly in control of your magic."), 3, .@dial;
- else if (.@val > .@base*4)
- mescordialog l("You are mostly in control of your magic."), 2, .@dial;
- else if (.@val > .@base*3)
- mescordialog l("You are somewhat in control of your magic."), 4, .@dial;
- else if (.@val > .@base*2)
- mescordialog l("Your magic is more powerful than you, but you can control."), 7, .@dial;
- else if (.@val > .@base)
- mescordialog l("You still are overwhelmed by your magic."), 6, .@dial;
- else
- mescordialog l("You are completly overwhelmed by your magic."), 1, .@dial;
- return;
-}
-
-
// SK_summon(ID, amount, mexp)
function script SK_summon {
.@mob=getarg(0);
@@ -344,12 +310,89 @@ function script massprovoke {
return;
}
+
+// mescordialog(text, color, {dialog=1})
+function script mescordialog {
+ if (getarg(2, true))
+ mesc getarg(0), getarg(1);
+ else
+ dispbottom col(getarg(0), getarg(1));
+ return;
+}
+
+// ShowAbizit({dialog=1})
+function script ShowAbizit {
+ .@dial=getarg(0, true);
+ if (.@dial)
+ mesn l("Current Magic Control");
+
+ // FIXME
+ .@val=MAGIC_EXP+rand(-MAGIC_LVL*5, MAGIC_LVL*5);
+ .@base=((MAGIC_LVL*2)**3);
+ if (.@val > .@base*5)
+ mescordialog l("You are perfectly in control of your magic."), 3, .@dial;
+ else if (.@val > .@base*4)
+ mescordialog l("You are mostly in control of your magic."), 2, .@dial;
+ else if (.@val > .@base*3)
+ mescordialog l("You are somewhat in control of your magic."), 4, .@dial;
+ else if (.@val > .@base*2)
+ mescordialog l("Your magic is more powerful than you, but you can control."), 7, .@dial;
+ else if (.@val > .@base)
+ mescordialog l("You still are overwhelmed by your magic."), 6, .@dial;
+ else
+ mescordialog l("You are completly overwhelmed by your magic."), 1, .@dial;
+ return;
+}
+
+// getactivatedpoolskilllist(?)
+function script getactivatedpoolskilllist {
+ @skilllist_count=bitmask_count(FOCUSING);
+ // FIXME @skilllist_name$ @skilllist_id? Or just rewrite Luca
+ return @skilllist_count;
+}
+
+// getdeactivatedpoolskilllist(?)
+function script getdeactivatedpoolskilllist {
+ @skilllist_count=bitmask_count(FOCUSING)-FSKILL_TOTAL;
+ return @skilllist_count;
+}
+
+// getpoolskillFID(ID)
+function script getpoolskillFID {
+ switch (getarg(0)) {
+ case SKILL_MALLARDS_EYE: return FSKILL_MALLARDS_EYE;
+ case SKILL_BRAWLING: return FSKILL_BRAWLING;
+ case SKILL_SPEED: return FSKILL_SPEED;
+ case SKILL_RESIST_POISON: return FSKILL_RESIST_POISON;
+ case SKILL_ASTRAL_SOUL: return FSKILL_ASTRAL_SOUL;
+ case SKILL_RAGING: return FSKILL_RAGING;
+ }
+ return Exception("Invalid focus skill ID: "+getarg(0), RB_DEFAULT|RB_ISFATAL);
+}
+
+// poolskill(skill)
+function script poolskill {
+ if (bitmask_count(FOCUSING) < getskilllv(SKILL_POOL))
+ FOCUSING=FOCUSING | getpoolskillFID(getarg(0));
+ return;
+}
+
+// unpoolskill(skill)
+function script unpoolskill {
+ .@f=getpoolskillFID(getarg(0);
+ if (FOCUSING & .@f)
+ FOCUSING=FOCUSING ^ .@f);
+ return;
+}
+
- script Magic Load NPC_HIDDEN,{
OnInit:
end;
OnSkillInvoke:
+ callfunc("HUB_SkillInvoke");
end;
OnPCBonusEvent:
+ callfunc("HUB_PCBonus");
end;
}