summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-07-22 21:00:52 -0300
committerJesusaves <cpntb1@ymail.com>2019-07-22 21:00:52 -0300
commit65d7567dfa9b5a9fbd72d479f737ff09acbbafc0 (patch)
tree93eb38d21a2ad27e973d5339bf22030627496f18
parent415e14646f6737c230032eb77fc5676eb19627a0 (diff)
parent4f87977035126d5a4181fe11d651f2adc0a3399c (diff)
downloadserverdata-65d7567dfa9b5a9fbd72d479f737ff09acbbafc0.tar.gz
serverdata-65d7567dfa9b5a9fbd72d479f737ff09acbbafc0.tar.bz2
serverdata-65d7567dfa9b5a9fbd72d479f737ff09acbbafc0.tar.xz
serverdata-65d7567dfa9b5a9fbd72d479f737ff09acbbafc0.zip
Merge branch 'master' into testserver
-rw-r--r--db/constants.conf1
-rw-r--r--db/re/item_db.conf18
-rw-r--r--maps/re/003-1.mcachebin1302 -> 1303 bytes
-rw-r--r--npc/003-0-1/_import.txt1
-rw-r--r--npc/003-0-1/hiddenwarp.txt21
-rw-r--r--npc/003-0/recepcionist.txt31
-rw-r--r--npc/003-0/trickmaster.txt2
-rw-r--r--npc/003-1/_warps.txt2
-rw-r--r--npc/009-2/librarian.txt7
-rw-r--r--npc/functions/util.txt20
10 files changed, 94 insertions, 9 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 16d5c0522..c46df610b 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -4269,6 +4269,7 @@ constants_db: {
EE_SAXSO: 1
EE_DEMURE: 2
EE_PRSM: 4
+ EE_MAGICSCHOOL: 8
comment__: "Teleporter enum"
TP_NONE: 0
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index ab9a954ce..cc0c5b935 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -5424,6 +5424,24 @@ item_db: (
Refine: false
},
// <!-- ID 900~910 Reserved -->
+{
+ Id: 911
+ AegisName: "ScholarshipBadge"
+ Name: "Scholarship Badge"
+ Type: "IT_ETC"
+ Buy: 10000
+ Sell: 3500
+ Weight: 1
+ Refine: false
+ ViewSprite: 911
+ Trade: {
+ notrade: true
+ nodrop: true
+ noselltonpc: true
+ nomail: true
+ noauction: true
+ }
+},
// <!-- Necklaces -->
{
Id: 1000
diff --git a/maps/re/003-1.mcache b/maps/re/003-1.mcache
index e87aff702..302929038 100644
--- a/maps/re/003-1.mcache
+++ b/maps/re/003-1.mcache
Binary files differ
diff --git a/npc/003-0-1/_import.txt b/npc/003-0-1/_import.txt
index 5aa9264e7..0d04be190 100644
--- a/npc/003-0-1/_import.txt
+++ b/npc/003-0-1/_import.txt
@@ -3,6 +3,7 @@
"npc/003-0-1/_warps.txt",
"npc/003-0-1/audsbel.txt",
"npc/003-0-1/guards.txt",
+"npc/003-0-1/hiddenwarp.txt",
"npc/003-0-1/maxime.txt",
"npc/003-0-1/professor.txt",
"npc/003-0-1/researcher.txt",
diff --git a/npc/003-0-1/hiddenwarp.txt b/npc/003-0-1/hiddenwarp.txt
new file mode 100644
index 000000000..d6f339b58
--- /dev/null
+++ b/npc/003-0-1/hiddenwarp.txt
@@ -0,0 +1,21 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Easter Egg for Hello World player
+// TODO: In future, check player direction
+
+003-0-1,21,24,0 script #MSchoolRoof NPC_HIDDEN,0,0,{
+ end;
+
+OnTouch:
+ warp "003-1", 49, 24;
+ .@q=getq(General_EasterEggs);
+
+ if (!(.@q & EE_MAGICSCHOOL)) {
+ setq General_EasterEggs, .@q|EE_MAGICSCHOOL;
+ dispbottom l("For finding an Easter Egg, you got Strange Coins!");
+ getitem StrangeCoin, 3;
+ }
+
+ end;
+}
diff --git a/npc/003-0/recepcionist.txt b/npc/003-0/recepcionist.txt
index 3cb3e89de..7bd39ef0f 100644
--- a/npc/003-0/recepcionist.txt
+++ b/npc/003-0/recepcionist.txt
@@ -2,7 +2,7 @@
// Author:
// Jesusalva
// Description:
-// Magic School recepcionist
+// Magic School recepcionist (TODO: Give S. Badge)
003-0,47,44,4 script Recepcionist#003-0 NPC_FEMALE,{
if (getskilllv(TMW2_SKILLPERMIT) == 2 && MAGIC_LVL >= 3 && ST_TIER >= 1) goto L_T3_S0;
@@ -15,6 +15,8 @@
next;
mesn;
mesq l("I hope our new campus get built soon. It'll be much better than here.");
+ if (!MGQUEST)
+ goto L_Prologue;
if (!MAGIC_LVL)
close;
next;
@@ -36,6 +38,33 @@
goodbye;
close;
+//////////////
+/* Prologue */
+//////////////
+L_Prologue:
+ next;
+ mesn l("Magic Academy Tutorial");
+ mesc l("The Magic Academy System is responsible for learning most skills ingame. For that, you need two things: Magic Skill Points and a reagent.");
+ next;
+ mesn l("Magic Academy Tutorial");
+ mesc l("The reagent is always the same for the same class. If you do not have enough reagents but have an @@, it'll be used to continue.", getitemlink(ScholarshipBadge));
+ next;
+ mesn l("Magic Academy Tutorial");
+ mesc l("Magic Skill Points can be obtained in three ways: By touching a Mana Stone, by signing up in a Special Class (if you have enough magic power) and by having high amounts of Job Level.");
+ next;
+ mesn l("Magic Academy Tutorial");
+ mesc l("Upgrading a skill level can be done the same away and will always cost a single Magic Skill Point. Job Level points are obtained only after Lv @@, and is a single point each @@ levels.", 15+12, 12);
+ next;
+ inventoryplace ScholarshipBadge, 1;
+ mesn;
+ mesq l("That being said, I'll give you an @@, which allows you to learn a skill even if you can't pay for it.", getitemlink(ScholarshipBadge));
+ next;
+ mesn;
+ mesq l("Please note unless you have Magic Powers, obtained from the Mana Seed, all you will be able to learn are small tricks, so please make a wise choice.");
+ MGQUEST=true;
+ getitem ScholarshipBadge, 1;
+ close;
+
////////////////
/* First Tier */
////////////////
diff --git a/npc/003-0/trickmaster.txt b/npc/003-0/trickmaster.txt
index 8a51c2c58..19c590955 100644
--- a/npc/003-0/trickmaster.txt
+++ b/npc/003-0/trickmaster.txt
@@ -5,7 +5,7 @@
// Trickmaster of Tricksters Class
003-0,40,30,0 script Trickmaster NPC_SITTED_NINJA,{
- if (!MAGIC_LVL) goto L_NoMagic;
+ //if (!MAGIC_LVL) goto L_NoMagic;
mes l(".:: Trickster Class ::.");
mesc l("Specialized in miscellaneous skills.");
next;
diff --git a/npc/003-1/_warps.txt b/npc/003-1/_warps.txt
index 07b38bbfc..e552f7c33 100644
--- a/npc/003-1/_warps.txt
+++ b/npc/003-1/_warps.txt
@@ -20,3 +20,5 @@
003-1,58,54,0 warp #003-1_58_54 0,0,003-1-3,82,82
003-1,25,45,0 warp #003-1_25_45 0,0,003-1-3,37,85
003-1,52,35,0 warp #003-1_52_35 1,0,003-0-1,48,51
+003-1,49,23,0 warp #003-1_49_23 0,0,003-0-1,22,25
+003-1,54,23,0 warp #003-1_54_23 0,0,003-0-1,69,24
diff --git a/npc/009-2/librarian.txt b/npc/009-2/librarian.txt
index 19e43642e..4a471bbea 100644
--- a/npc/009-2/librarian.txt
+++ b/npc/009-2/librarian.txt
@@ -58,9 +58,9 @@ L_Prologue:
mesq l("Ah... I see. You are a lost soul, without parents, lost on the world with only some basic stuff.");
next;
mesn;
- mesq l("Alright, I'll look in the archives. I'll have an answer for you in two hours. Meanwhile, why don't you suppress the bandits on the cliff?");
+ mesq l("Alright, I'll look in the archives. I'll have an answer for you in @@. Meanwhile, why don't you suppress the bandits on the cliff?", l("45 minutes"));
// Please wait 2 hours
- setq General_Narrator, 7, santime()+(60*60*2);
+ setq General_Narrator, 7, santime()+(60*45);
next;
mesn;
mesq l("Also, Halinarzo is famous for the depleted mana mines in the town. You probably won't find a mana stone there, but it might be cool to look.");
@@ -127,10 +127,13 @@ L_Report:
mesn;
mesq l("Their first stop was Hurnscald, so please go to Hurnscald Townhall, and speak with the mayor, he can help you getting there. You can't reach there normally, after all.");
next;
+ inventoryplace ScholarshipBadge, 1;
mesn;
mesq l("Good luck, @@!", strcharinfo(0));
+ mesc l("@@ hands you an @@.", .name$, getitemlink(ScholarshipBadge));
next;
getexp BaseLevel*750, JobLevel*50;// Reference Levels: (40, 15)
+ getitem ScholarshipBadge, 1;
mesc b(l(".:: Main Quest 2-3 ::.")), 3;
mesc l("* Talk to Librarian in Halinarzo"), 2;
mesc l("* Return to Hurnscald Townhall"), 9;
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index f41c343fc..0e50e2d30 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -590,8 +590,10 @@ function script sk_maxpoints {
.@val=(MAGIC_LVL)*2;
// 1 point every twice magic level
.@val+=(MAGIC_LVL/2);
- // Excluding first 15, 1 point every 10 job levels
- .@val+=((JobLevel-15)/10);
+ // Excluding first 15, 1 point every 12 job levels (Up to JL 75)
+ .@val+=min(5, ((JobLevel-15)/12));
+ // 1 point per being a player
+ .@val+=1;
// 1 point per skill permit level
.@val+=getskilllv(TMW2_SKILLPERMIT);
return .@val;
@@ -630,21 +632,29 @@ function script mlearn {
.@ap=getarg(2);
.@it=getarg(3);
.@am=getarg(4);
+ .@learn$=l("learn");
if (getskilllv(.@sk) >= .@ff) {
mesc l("You've reached the maximum level for this skill."), 1;
return true;
}
- mesc l("To learn @@ you'll need @@/@@ point(s).", .@sk, .@ap, sk_points());
+ if (getskilllv(.@sk)) {
+ .@ap=1;
+ .@learn$=l("upgrade");
+ }
+ mesc l("To @@ @@ you'll need @@/@@ point(s).", .@learn$, .@sk, .@ap, sk_points());
mesc l("You'll also need to pay a fee of @@x @@", .@am, getitemlink(.@it));
next;
if (askyesno() == ASK_NO)
return true;
- if (countitem(.@it) < .@am)
+ if (countitem(.@it) < .@am && !(countitem(ScholarshipBadge)))
return false;
if (!sk_canlvup(.@ap))
return false;
- delitem .@it, .@am;
+ if (countitem(.@it) < .@am)
+ delitem ScholarshipBadge, 1;
+ else
+ delitem .@it, .@am;
sk_lvup(.@sk, .@ap);
return true;
}