summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-06-17 03:37:14 +0000
committerJesusaves <cpntb1@ymail.com>2020-06-17 03:37:14 +0000
commit29e1ad40faa662f6b4d66cc3381ba1a8df4a73ad (patch)
treea4dacd45a3652603da6cae9eb01955f5eede6a21
parent87dd784da8d8d9fc53fe93d6527c112175ab2fc7 (diff)
parentc2630c1793acc2916c0f89786d86d371cd53df16 (diff)
downloadserverdata-29e1ad40faa662f6b4d66cc3381ba1a8df4a73ad.tar.gz
serverdata-29e1ad40faa662f6b4d66cc3381ba1a8df4a73ad.tar.bz2
serverdata-29e1ad40faa662f6b4d66cc3381ba1a8df4a73ad.tar.xz
serverdata-29e1ad40faa662f6b4d66cc3381ba1a8df4a73ad.zip
Merge branch 'jesusalva/selfmadeproblems001' into 'master'
Self Made Problems™ - Races, Guilds and Genders See merge request evol/serverdata!244
-rw-r--r--db/constants.conf30
-rw-r--r--db/job_db2.txt46
-rw-r--r--db/re/item_db.conf26
-rw-r--r--db/re/job_db.conf44
-rw-r--r--db/re/skill_tree.conf22
-rw-r--r--npc/000-0/sailors.txt16
-rw-r--r--npc/001-2-41/edouard.txt2
-rw-r--r--npc/001-2-6/books.txt16
-rw-r--r--npc/001-2-9/janus.txt1
-rw-r--r--npc/commands/debug-look.txt16
-rw-r--r--npc/commands/gender.txt6
-rw-r--r--npc/functions/barber.txt42
-rw-r--r--npc/functions/gender.txt4
-rw-r--r--npc/functions/main.txt47
-rw-r--r--npc/functions/util.txt36
15 files changed, 210 insertions, 144 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 192fb7fa..59dce74b 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3912,17 +3912,25 @@ constants_db: {
G_OTHER: 3
comment__: "races"
- Human: 0
- DarkUkar: 1
- FireKralog: 2
- LightRaijin: 3
- FrostKralog: 4
- DarkRaijin: 5
- BlueTritan: 6
- MediumHuman: 7
- DarkHuman: 8
- PurpleTritan: 9
- PinkUkar: 10
+ KaizeiViro: 0
+ ArgaesViro: 1
+ TonoriViro: 2
+ CaveUkar: 3
+ MountainUkar: 4
+ SeaTritan: 5
+ LakeTritan: 6
+ LightRaijin: 7
+ DarkRaijin: 8
+ FireKralog: 9
+ FrostKralog: 10
+
+ // DEPRECATED: Kept for compatibility
+ Human: 0
+ Viro: 0
+ Ukar: 3
+ Tritan: 5
+ Raijin: 7
+ Kralog: 9
comment__: "getraceflags"
GETRACE_RACE: 0
diff --git a/db/job_db2.txt b/db/job_db2.txt
index a8d71ed4..cd75322e 100644
--- a/db/job_db2.txt
+++ b/db/job_db2.txt
@@ -16,39 +16,39 @@
//
// .:: HUMANS ::.
-// Kaizei Human
+// Kaizei Viro
0,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1,0,0,0,0,5,0,0,0,0,4,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1
-// Argaes Human
-0,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1,0,0,0,0,5,0,0,0,0,4,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1
-// Tonori Human
-0,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1,0,0,0,0,5,0,0,0,0,4,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1
-
-
-// .:: RAIJINS ::.
-// Light Raijin
-3,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,4,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5
-// Dark Raijin
-5,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,4,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5
-
-
-// .:: KRALOGS ::.
-// Fire Kralog
-2,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,6,0,0,0,0,4,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1
-// Frost Kralog
-4,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,6,0,0,0,0,4,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1
+// Argaes Viro
+1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1,0,0,0,0,5,0,0,0,0,4,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1
+// Tonori Viro
+2,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1,0,0,0,0,5,0,0,0,0,4,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,2,0,0,0,0,1
// .:: UKARS ::.
// Cave Ukar
-1,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3
+3,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3
// Mountain Ukar
-10,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3
+4,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,3,0,0,0,0,1,0,0,0,0,2,0,0,0,0,3,0,0,0,0,5,0,0,0,0,6,0,0,0,0,1,0,0,0,0,3
// .:: TRITANS ::.
// Sea Tritan
-6,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1
+5,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1
// Lake Tritan
-9,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1
+6,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1,0,0,0,0,2,0,0,0,0,5,0,0,0,0,4,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,2,0,0,0,0,1
+
+
+
+// .:: RAIJINS ::.
+// Light Raijin
+7,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,4,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5
+// Dark Raijin
+8,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5,0,0,0,0,6,0,0,0,0,4,0,0,0,0,4,0,0,0,0,5,0,0,0,0,2,0,0,0,0,4,0,0,0,0,6,0,0,0,0,2,0,0,0,0,4,0,0,0,0,5
+
+// .:: KRALOGS ::.
+// Fire Kralog
+9,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,6,0,0,0,0,4,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1
+// Frost Kralog
+10,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1,0,0,0,0,6,0,0,0,0,4,0,0,0,0,1,0,0,0,0,6,0,0,0,0,3,0,0,0,0,5,0,0,0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,1
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 5594ee93..b9537c14 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -1336,16 +1336,11 @@ item_db: (
},
{
Id: 714
- AegisName: "AquadaBox"
- Name: "Aquada Box"
+ AegisName: "GuildCertification"
+ Name: "Guild Certification"
Type: "IT_ETC"
- Buy: 2
- Sell: 1
- Weight: 850
- Trade: {
- nodrop: true
- noselltonpc: true
- }
+ Buy: 100000
+ Sell: 100
},
{
Id: 715
@@ -1504,11 +1499,16 @@ item_db: (
},
{
Id: 730
- AegisName: "GuildCertification"
- Name: "Guild Certification"
+ AegisName: "AquadaBox"
+ Name: "Aquada Box"
Type: "IT_ETC"
- Buy: 100000
- Sell: 100
+ Buy: 2
+ Sell: 1
+ Weight: 850
+ Trade: {
+ nodrop: true
+ noselltonpc: true
+ }
},
{
Id: 731
diff --git a/db/re/job_db.conf b/db/re/job_db.conf
index 02b4e16a..825ed1e4 100644
--- a/db/re/job_db.conf
+++ b/db/re/job_db.conf
@@ -51,10 +51,10 @@ Job_Name: { // Job names as in src/map/pc.c (they are hardcoded at the moment so
}
*/
//====================================================
-Human: {
+Viro: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Weight: 20000
BaseASPD: {
Fist: 40
@@ -104,10 +104,10 @@ Human: {
1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160
}
-DarkUkar: {
+CaveUkar: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Weight: 20000
BaseASPD: {
Fist: 40
@@ -159,7 +159,7 @@ DarkUkar: {
FireKralog: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Weight: 20000
BaseASPD: {
Fist: 40
@@ -212,7 +212,7 @@ FireKralog: {
LightRaijin: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Weight: 20000
BaseASPD: {
Fist: 40
@@ -262,10 +262,10 @@ LightRaijin: {
1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160
}
-BlueTritan: {
+SeaTritan: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Weight: 20000
BaseASPD: {
Fist: 40
@@ -318,43 +318,43 @@ BlueTritan: {
FrostKralog: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Inherit: ( "FireKralog" ); // Base job from which this job will inherit its max weight, base ASPD set and HP/SP table.
}
DarkRaijin: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
+ MoveSpeed: 150
Inherit: ( "LightRaijin" ); // Base job from which this job will inherit its max weight, base ASPD set and HP/SP table.
}
-MediumHuman: {
+ArgaesViro: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
- Inherit: ( "Human" );
+ MoveSpeed: 150
+ Inherit: ( "Viro" );
}
-DarkHuman: {
+TonoriViro: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
- Inherit: ( "Human" );
+ MoveSpeed: 150
+ Inherit: ( "Viro" );
}
-PurpleTritan: {
+LakeTritan: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
- Inherit: ( "BlueTritan" );
+ MoveSpeed: 150
+ Inherit: ( "SeaTritan" );
}
-PinkUkar: {
+MountainUkar: {
BaseExpGroup: "EvolClasses"
JobExpGroup: "EvolClasses"
- MoveSpeed: 170
- Inherit: ( "DarkUkar" );
+ MoveSpeed: 150
+ Inherit: ( "CaveUkar" );
}
diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf
index f604479d..20a4dd64 100644
--- a/db/re/skill_tree.conf
+++ b/db/re/skill_tree.conf
@@ -25,7 +25,7 @@ Job_Name: { // Job names as in src/map/pc.c (they are hardcoded at the moment so
*/
//====================================================
-Human: {
+Viro: {
skills: {
SM_SWORD: 0
SM_TWOHAND: 0
@@ -89,7 +89,7 @@ Human: {
}
}
-DarkUkar: {
+CaveUkar: {
skills: {
SM_SWORD: 0
SM_TWOHAND: 0
@@ -281,7 +281,7 @@ LightRaijin: {
}
}
-BlueTritan: {
+SeaTritan: {
skills: {
SM_SWORD: 0
SM_TWOHAND: 0
@@ -354,19 +354,19 @@ DarkRaijin: {
inherit: ( "LightRaijin" );
}
-PurpleTritan: {
- inherit: ( "BlueTritan" );
+LakeTritan: {
+ inherit: ( "SeaTritan" );
}
-PinkUkar: {
- inherit: ( "DarkUkar" );
+MountainUkar: {
+ inherit: ( "CaveUkar" );
}
-MediumHuman: {
- inherit: ( "Human" );
+ArgaesViro: {
+ inherit: ( "Viro" );
}
-DarkHuman: {
- inherit: ( "Human" );
+TonoriViro: {
+ inherit: ( "Viro" );
}
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt
index 76870170..1e2fe739 100644
--- a/npc/000-0/sailors.txt
+++ b/npc/000-0/sailors.txt
@@ -34,7 +34,7 @@ OnTouch:
next;
setcamnpc "Sailors", 0, -32;
- mesn "Human Voice";
+ mesn "Viro Voice";
mesq lg("I think he's from the East...");
next;
@@ -53,6 +53,20 @@ OnTouch:
asklanguage(LANG_ON_SEA);
+ // TODO: This is gumi's code, I have no idea if it works or not
+ // Besides, is it lv 90, 95, 99, 100, or...?
+ // I believe Micksha said level 90 was plenty, but.
+ /*** FIXME ***
+ if ((LEGACY[1] & 0x7FFFFF00) >> 8) > 90)
+ REBIRTH=1;
+ *** FIXME ***/
+
+ // Players coming from TMW Legacy didn't got a chance to do this yet.
+ // So allow them now.
+ if (LEGACY) {
+ BarberChangeRace();
+ }
+
setcamnpc;
mes "";
mesn;
diff --git a/npc/001-2-41/edouard.txt b/npc/001-2-41/edouard.txt
index 2a3fd4cc..40d53085 100644
--- a/npc/001-2-41/edouard.txt
+++ b/npc/001-2-41/edouard.txt
@@ -131,7 +131,7 @@ OnChair:
l("What is my current hairstyle and hair color?"),
l("I'd like to get a different style."),
l("Can you do something with my color?"),
- l("How about changing my gender?"),
+ l("How about changing my body type?"),
l("What's your story again?"),
l("I'm fine for now, thank you.");
diff --git a/npc/001-2-6/books.txt b/npc/001-2-6/books.txt
index 975a1809..280f3a08 100644
--- a/npc/001-2-6/books.txt
+++ b/npc/001-2-6/books.txt
@@ -151,7 +151,7 @@ OnInit:
narrator(S_FIRST_BLANK_LINE,
l("Aemil was once a magnificent land unknown to us all."),
l("Before the end of the Mana War, a band of adventurers formed in the Ancean region of Argaes from those who had lost their homes and families."),
- l("They sailed from Hurnscald to Tulimshar and then Nivalis, the last permanent settlements of humans."),
+ l("They sailed from Hurnscald to Tulimshar and then Nivalis, the last permanent settlements of viros."),
l("There, they gathered merchants and warriors to join them in a journey to find a new land on which to live."),
l("The group found the support of Tulimshar's merchant lords and was given ships to sail east."),
l("They sailed past the Clear Sea and towards the Long Ocean which nobody had explored before."),
@@ -218,10 +218,10 @@ OnInit:
l("World Story For Dummies, Vol I - Ancean Era: From Keshlam to an Empire"),
l("The collection of four books entitled “World Story For Dummies” is based on the uncessable work from the Ukar scholars, thanks to whom this wouldn't be possible."),
l("The “Ancean Era” is a term used to defined the time period between the beginning of recorded history and the events at the Mana Tree, and thanks to Ukar scholars, this is widely accepted as year 1 on all Gasaron."),
- l("The first human settlement to develop an advanced political structure and to become a city-state was Keshlam."),
+ l("The first viro settlement to develop an advanced political structure and to become a city-state was Keshlam."),
l("Keshlam expanded rapidly under the rule of King Janeb the Founder, and soon annexed the whole Ancea continent - excluding solely the Land Of Fire - to its domains, creating the Platinum Kingdom."),
l("Three cities developed on the eastern side of Ancea: Tulimshar, Hurnscald and Nivalis."),
- l("The Platinum Kingdom grew and prospered, and drew most of the human population to the safety of the walls of Keshlam, Tulimshar, Hurnscald and Nivalis."),
+ l("The Platinum Kingdom grew and prospered, and drew most of the viro population to the safety of the walls of Keshlam, Tulimshar, Hurnscald and Nivalis."),
l("-- Continues on Volume II --"));
}
@@ -252,7 +252,7 @@ OnInit:
l("World Story For Dummies, Vol II - Ancean Era: Revolutions and Independence"),
l("On the year 206CCE, after a long crisis of succession, a minor noble only known as Queen Platyna the Red came to inherit the Platinum Crown."),
l("Due to neglect with day-to-day administration, which she delegated to her council, and uncontrolled expenses, the kingdom faced its first economic crisis."),
- l("With the growth of the Kingdom halted, slow maintenance, and two great famines which killed over half the human population, the council decided to seize power and depose Platyna the Red."),
+ l("With the growth of the Kingdom halted, slow maintenance, and two great famines which killed over half the viro population, the council decided to seize power and depose Platyna the Red."),
l("On March 213CCE, Chancellor Benjamin Frost, with support of the council, proclaimed the Republic of Ancea. This event would become known as the Blue Revolution."),
l("Frost held the title of Lord Prince of the Republic for eighteen months, when the council deposed him and declared itself head of the state."),
l("The Republic of Ancea ceased to exist officially in August 216CCE, when the cities of Tulimshar, Hurnscald and Nivalis installed their own independent governments."),
@@ -287,15 +287,15 @@ OnInit:
narrator(S_FIRST_BLANK_LINE | S_NO_NPC_NAME,
l("World Story For Dummies, Vol III - Aemilean Era: The Mana Tree and The Mana War"),
l("Aemilean Era. Tulimshar, Hurnscald and Nivalis held power of their surrounding lands, except for the Land Of Fire and Keshlam City."),
- l("All races were in peace until the Humans set forth to discover the Source of Magic, based on Ukar scholars studies."),
+ l("All races were in peace until the Viros set forth to discover the Source of Magic, based on Ukar scholars studies."),
l("Free Mana travels in many directions, and this search took several years before the expedition finally found the right direction to follow."),
l("A large tree was found in a deep cave underneath the island of Candor. Despise the darkness of the cave and absence of leaves, the tree grew strong. It gave light off itself and its energy empowered the wizards."),
l("The tree was entitled The Mana Tree, and the Wizard Order took control over Candor Island. They learnt to control the mana flow, and limited its use, claiming Magic to be too dangerous for public use."),
l("This action was met with widespread opposition from all races, and a war broke. The tritans led the offensive, in attempts to keep the tree untouched and mana available for all."),
- l("Unable to win, the tritans attacked Hurnscald. While human troops moved in attempts to avoid its fall, the Kralog and Ukar joined the tritans and they took the city."),
+ l("Unable to win, the tritans attacked Hurnscald. While viro troops moved in attempts to avoid its fall, the Kralog and Ukar joined the tritans and they took the city."),
l("The next and final battle happened at Candor. Wizards attacks from both sides near the Mana Tree provoked a Mana Storm. A Great Quake shook the earth of Ancea and the land began to split. Geography changed, and Keshlan vanished from the map."),
l("The Mana Tree was lost, the caves entrances destroyed, and the Wizard Order was split in two: One part was on Candor, and other at the Magic Tower."),
- l("After this war, the Raijin race was born. A race born of Magic. Humans encapsulated in a Mana storm and altered forever."),
+ l("After this war, the Raijin race was born. A race born of Magic. Viros encapsulated in a Mana storm and altered forever."),
l("-- Continues on Volume IV --"));
}
@@ -325,7 +325,7 @@ OnInit:
narrator(S_FIRST_BLANK_LINE | S_NO_NPC_NAME,
l("World Story For Dummies, Vol IV - Aemilean Era: The Fleet of Ancea"),
l("After the Mana War, the Ancea continent was mostly destroyed. It would take years to nature start repairing the damage of the event."),
- l("A band of adventurers formed in Argaes from those who had lost their homes and families. They visited the three permanent human settlements: Tulimshar, Hurnscald and Nivalis."),
+ l("A band of adventurers formed in Argaes from those who had lost their homes and families. They visited the three permanent viro settlements: Tulimshar, Hurnscald and Nivalis."),
l("They gathered merchants and warriors to join them in a journey to find new lands to live in. Tulimshar's merchant lords gave them ships to sail east."),
l("The newly created Fleet of Ancea travelled so far that they were never heard from again. They found a continent, present on legends of explorers who never came back."),
l("They named this continent as Aemil, in honour of one of such explorers. The area they docked in was called Aurora, after its beautiful sunrise."),
diff --git a/npc/001-2-9/janus.txt b/npc/001-2-9/janus.txt
index 6d176615..2ff2d5ac 100644
--- a/npc/001-2-9/janus.txt
+++ b/npc/001-2-9/janus.txt
@@ -71,6 +71,7 @@
}
function explain_service {
+ // NOTE: "human" refers to all races in Gasaron, so usage is correct.
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("You are on the human resource wing of the Town Hall."),
l("We offer party and guild certifications and we can also teach you how to use some basic communication skills."),
diff --git a/npc/commands/debug-look.txt b/npc/commands/debug-look.txt
index 23acc4da..cf63a207 100644
--- a/npc/commands/debug-look.txt
+++ b/npc/commands/debug-look.txt
@@ -2,15 +2,15 @@ function script BarberDebug {
function setGender {
clear();
- setnpcdialogtitle(l("Appearance Debug - Gender Change"));
- mes(l("Warning: changing your gender will send you back to the character selection screen."));
+ setnpcdialogtitle(l("Appearance Debug - Body Type Change"));
+ mes(l("Warning: changing your body type will send you back to the character selection screen."));
mes("");
- mes(l("Please choose the desired gender:"));
+ mes(l("Please choose the desired body type:"));
next();
menuint(
- l("Male"), GENDER_MALE,
- l("Female"), GENDER_FEMALE,
- l("Non-binary"), GENDER_HIDDEN);
+ l("Tanky"), GENDER_MALE,
+ l("Boobed"), GENDER_FEMALE,
+ l("Neutral"), GENDER_HIDDEN);
Gender = @menuret;
return;
@@ -54,7 +54,7 @@ function script BarberDebug {
mes "";
mes "---";
- mes l("Gender") + ": " + genderToString(Gender);
+ mes l("Body Type") + ": " + genderToString(Gender);
mes l("Hair style") + ": " + getlook(LOOK_HAIR);
mes l("Hair color") + ": " + getlook(LOOK_HAIR_COLOR);
mes l("Race") + ": " + Class + " (" + get_race() + ")";;
@@ -63,7 +63,7 @@ function script BarberDebug {
next;
mes l("What do you want to change?");
select
- menuimage("actions/edit", l("Gender") + " [" + l("Requires logout") + "]"),
+ menuimage("actions/edit", l("Body Type") + " [" + l("Requires logout") + "]"),
menuimage("actions/edit", l("Hair style")),
menuimage("actions/edit", l("Hair color")),
menuimage("actions/edit", l("Race")),
diff --git a/npc/commands/gender.txt b/npc/commands/gender.txt
index b852beb0..9ba2c9a4 100644
--- a/npc/commands/gender.txt
+++ b/npc/commands/gender.txt
@@ -6,17 +6,17 @@
OnCall:
if (.@atcmd_parameters$[0] == "") {
- dispbottom("Your current gender is " + genderToString());
+ dispbottom("Your current body type is " + genderToString());
end;
}
.@desired = stringToGender(.@atcmd_parameters$[0]);
if (.@desired == Gender) {
- dispbottom("Your gender is already " + genderToString());
+ dispbottom("Your body type is already " + genderToString());
} else {
Gender = .@desired;
- dispbottom("Gender changed to " + genderToString());
+ dispbottom("Body Type changed to " + genderToString());
}
end;
diff --git a/npc/functions/barber.txt b/npc/functions/barber.txt
index 1df0a307..c7004eb8 100644
--- a/npc/functions/barber.txt
+++ b/npc/functions/barber.txt
@@ -3,6 +3,7 @@
// omatt
// Reid
// Travolta
+// Jesusalva
// Description:
// Function for supporting barber NPC.
@@ -111,15 +112,46 @@ function script BarberChangeColor {
function script BarberChangeGender {
mesn("Warning");
- mes(b(l("Changing your gender will send you back to the character selection screen.")));
+ mes(b(l("Changing your body type will send you back to the character selection screen.")));
next();
- mes(l("Please select the desired gender:"));
+ mes(l("Please select the desired body type:"));
menuint(
- l("Female"), GENDER_FEMALE,
- l("Male"), GENDER_MALE,
- l("Non-binary"), GENDER_HIDDEN);
+ l("Boobed"), GENDER_FEMALE,
+ l("Tanky"), GENDER_MALE,
+ l("Neutral"), GENDER_HIDDEN);
Gender = @menuret;
return;
}
+
+// THIS FUNCTION SHOULD BE USED ONLY AT REBIRTH
+// Unless current game development design changes!
+function script BarberChangeRace {
+
+ mes l("What's your race?");
+ menuint
+ get_race(GETRACE_FULL, KaizeiViro), KaizeiViro,
+ get_race(GETRACE_FULL, ArgaesViro), ArgaesViro,
+ get_race(GETRACE_FULL, TonoriViro), TonoriViro,
+ get_race(GETRACE_FULL, CaveUkar), CaveUkar,
+ get_race(GETRACE_FULL, MountainUkar), MountainUkar,
+ get_race(GETRACE_FULL, SeaTritan), SeaTritan,
+ get_race(GETRACE_FULL, LakeTritan), LakeTritan,
+ rif(REBIRTH, get_race(GETRACE_FULL, LightRaijin)), LightRaijin,
+ rif(REBIRTH, get_race(GETRACE_FULL, DarkRaijin)), DarkRaijin,
+ rif(REBIRTH, get_race(GETRACE_FULL, FireKralog)), FireKralog,
+ rif(REBIRTH, get_race(GETRACE_FULL, FrostKralog)), FrostKralog;
+
+ mes "";
+ // Something went *terribly* wrong
+ if (@menuret >= LightRaijin && !REBIRTH) {
+ channelmes("#irc", "Illegal operation at BarberChangeRace, sysadmin help required.");
+ consolemes(CONSOLEMES_ERROR, "Account %d tried to change race to %d but rebirth is not set. Race not changed.", getcharid(3), @menuret);
+ return;
+ }
+
+ // Change race and we're done
+ Class = @menuret;
+ return;
+}
diff --git a/npc/functions/gender.txt b/npc/functions/gender.txt
index 0f153c53..209dcc37 100644
--- a/npc/functions/gender.txt
+++ b/npc/functions/gender.txt
@@ -8,6 +8,6 @@ function script stringToGender {
function script genderToString {
.@gender = getarg(0, Gender);
- return .@gender == GENDER_FEMALE ? l("female") :
- .@gender == GENDER_MALE ? l("male") : l("non-binary");
+ return .@gender == GENDER_FEMALE ? l("boobed") :
+ .@gender == GENDER_MALE ? l("tanky") : l("neutral");
}
diff --git a/npc/functions/main.txt b/npc/functions/main.txt
index c8a37b1c..9618e47e 100644
--- a/npc/functions/main.txt
+++ b/npc/functions/main.txt
@@ -222,3 +222,50 @@ function script getmercenarylink {
function script gethomunculuslink {
return "[@@h" + getarg(0) + "|@@]";
}
+
+// Returns the player race in plain text
+// GETRACE_RACE - returns player race (default)
+// GETRACE_SKIN - returns player skin
+// GETRACE_FULL - returns player skin + race
+// Can take an optional 2nd param with the class
+// get_race( {Flag, {Class}} )
+function script get_race {
+ .@m=getarg(0, GETRACE_RACE);
+ .@g=getarg(1, Class);
+
+ // We also allow this to run without player attached for... science.
+ if (playerattached())
+ {
+ setarray .@allraces$, l("Viro"), l("Viro"), l("Viro"),
+ l("Ukar"), l("Ukar"),
+ l("Tritan"), l("Tritan"),
+ l("Raijin"), l("Raijin"),
+ l("Kralog"), l("Kralog");
+ setarray .@allskins$, l("Kaizei"), l("Argaes"), l("Tonori"),
+ l("Cave"), l("Mountain"),
+ l("Sea"), l("Lake"),
+ l("Light"), l("Dark"),
+ l("Fire"), l("Frost");
+ }
+ else
+ {
+ setarray .@allraces$, ("Viro"), ("Viro"), ("Viro"),
+ ("Ukar"), ("Ukar"),
+ ("Tritan"), ("Tritan"),
+ ("Raijin"), ("Raijin"),
+ ("Kralog"), ("Kralog");
+ setarray .@allskins$, ("Kaizei"), ("Argaes"), ("Tonori"),
+ ("Cave"), ("Mountain"),
+ ("Sea"), ("Lake"),
+ ("Light"), ("Dark"),
+ ("Fire"), ("Frost");
+ }
+
+ if (.@m == GETRACE_RACE)
+ return .@allraces$[.@g];
+ else if (.@m == GETRACE_SKIN)
+ return .@allskins$[.@g];
+ else
+ return .@allskins$[.@g] + " " + .@allraces$[.@g];
+}
+
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index 8e263eb0..49801982 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -70,42 +70,6 @@ function script getmap {
return getmapname();
}
-// Returns the player race in plain text
-// GETRACE_RACE - returns player race (default)
-// GETRACE_SKIN - returns player skin
-// GETRACE_FULL - returns player skin + race
-// Can take an optional 2nd param with the class
-// get_race( {Flag, {Class}} )
-function script get_race {
- .@m=getarg(0, GETRACE_RACE);
- .@g=getarg(1, Class);
-
- // We also allow this to run without player attached for... science.
- if (playerattached())
- {
- setarray .@allraces$, l("Human"), l("Ukar"), l("Kralog"),
- l("Raijin"), l("Kralog"), l("Raijin"), l("Tritan"),
- l("Human"), l("Human"), l("Tritan"), l("Ukar");
- setarray .@allskins$, l("Kaizei"), l("Cave"), l("Fire"),
- l("Light"), l("Frost"), l("Dark"), l("Sea"), l("Argaes"),
- l("Tonori"), l("Lake"), l("Mountain");
- }
- else
- {
- setarray .@allraces$, "Human", "Ukar", "Kralog", "Raijin",
- "Kralog", "Raijin", "Tritan", "Human", "Human", "Tritan", "Ukar";
- setarray .@allskins$, "Kaizei", "Cave", "Fire", "Light",
- "Frost", "Dark", "Sea", "Argaes", "Tonori", "Lake", "Mountain";
- }
-
- if (.@m == GETRACE_RACE)
- return .@allraces$[.@g];
- else if (.@m == GETRACE_SKIN)
- return .@allskins$[.@g];
- else
- return .@allskins$[.@g] + " " + .@allraces$[.@g];
-}
-
// gettimeparam(GETTIME_X)
// Returns the number of seconds/minutes/hours/days/months/years since 01/01/1970
// This is for truly daily quests, which doesn't imposes a timed wait in hours