Commit c2630c17 authored by Jesusaves's avatar Jesusaves

Contains fixes/reordering for races, guilds and genders.

PS. Gender change is broken, I blame Gumi

Note: Players will no longer be able to select Kralog and Raijin at start, because @WildX said they were rare. (This needs a patch to evol-tools)

FIXME: We'll need better names for human/talpan/viro race.
FIXME: Gumi's stock code did not work, rebirth is disabled.
parent 87dd784d
......@@ -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
......
......@@ -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
......@@ -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
......
......@@ -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" );
}
......@@ -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" );
}
......@@ -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;
......
......@@ -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.");
......
......@@ -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."),
......
......@@ -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."),
......
......@@ -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")),
......
......@@ -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;
......
......@@ -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;
}
......@@ -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");
}
......@@ -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];
}
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment