From 1e3050b638726ea407d28f4b860fb2b5722b069b Mon Sep 17 00:00:00 2001 From: wushin Date: Mon, 9 Nov 2015 14:34:54 -0600 Subject: Purged gender from quest dialogue Changed Eurni to new genders --- world/map/npc/002-1/bard.txt | 5 +---- world/map/npc/002-2/eurni.txt | 29 +++++++++++++++++++++++++++-- world/map/npc/006-1/spirit.txt | 6 +----- world/map/npc/009-1/jack.txt | 7 +------ world/map/npc/009-2/wyara.txt | 5 +---- world/map/npc/009-4/waric.txt | 9 +-------- world/map/npc/011-1/auldsbel.txt | 12 +++--------- world/map/npc/013-1/sagatha.txt | 5 +---- world/map/npc/015-1/sword.txt | 5 +---- world/map/npc/018-2/angus.txt | 5 +---- world/map/npc/019-1/snowman.txt | 7 +------ world/map/npc/020-2/baktar.txt | 6 +----- world/map/npc/027-2/crying_child.txt | 9 +++------ world/map/npc/027-2/headless_man.txt | 8 ++------ world/map/npc/027-2/husband.txt | 20 ++++---------------- world/map/npc/027-2/innkeeper.txt | 19 ++++--------------- world/map/npc/031-4/cindyCave.txt | 6 +----- world/map/npc/commands/_atcommand_local.txt | 12 ++++++++++++ 18 files changed, 66 insertions(+), 109 deletions(-) create mode 100644 world/map/npc/commands/_atcommand_local.txt (limited to 'world') diff --git a/world/map/npc/002-1/bard.txt b/world/map/npc/002-1/bard.txt index 22c3b113..c8e67582 100644 --- a/world/map/npc/002-1/bard.txt +++ b/world/map/npc/002-1/bard.txt @@ -7,10 +7,7 @@ "\"As the Sun sets down in the forest's brown, she whom the fragrance holds counts her gold.\""; set @name$, "Bill Ballshaker the Bard"; mes "[" + @name$ + "]"; - if (Sex) - mes "\"Greetings, traveler! Have you come to listen to my stories?\""; - if (!Sex) - mes "\"Greetings, fair lady! Well met, on such a lovely day! Might I entertain you with a tale or two?\""; + mes "\"Greetings, traveler! Have you come to listen to my stories?\""; next; goto L_Main; diff --git a/world/map/npc/002-2/eurni.txt b/world/map/npc/002-2/eurni.txt index f965b84b..c9735ad0 100644 --- a/world/map/npc/002-2/eurni.txt +++ b/world/map/npc/002-2/eurni.txt @@ -18,14 +18,39 @@ next; menu - "Please do.", L_Change, + "Please do.", L_Change_Menu, "Leave my family treasures alone!", L_Close; +L_Change_Menu: + menu + "Female.", L_Female, + "Male.", L_Male, + "Non-binary.", L_NonBinary; + +L_Female: + set @sex, 0; + goto L_Change; + +L_Male: + set @sex, 1; + goto L_Change; + +L_NonBinary: + set @sex, 3; + goto L_Change; + L_Change: + if (Sex == @sex) + goto L_Already_Change; if (Zeny < @SERVICES_ZENY) goto L_NoMoney; set Zeny, Zeny - @SERVICES_ZENY; - set Sex, !Sex; + set Sex, @sex; + close; + +L_Already_Change: + mes "[Eurni the Surgeon]"; + mes "\"Umm, you are that gender already.\""; close; L_TooYoung: diff --git a/world/map/npc/006-1/spirit.txt b/world/map/npc/006-1/spirit.txt index ecf3a4b1..8c7155fa 100644 --- a/world/map/npc/006-1/spirit.txt +++ b/world/map/npc/006-1/spirit.txt @@ -21,9 +21,6 @@ L_message: set @Q_STATUS_STUDENT2, 4; set @Q_STATUS_STUDENT3, 5; - set @s$, "girl"; - if (Sex) set @s$, "boy"; - if (MAGIC_FLAGS & MFLAG_KNOWS_IMP) goto L_wb; mes "[Well]"; @@ -261,7 +258,7 @@ L_silly_close: mes "[Earth Spirit]"; if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP)) mes "[Well]"; - mes "\"Silly " + @s$ + ".\""; + mes "\"Fool.\""; goto L_Close; L_Close: @@ -278,7 +275,6 @@ L_Close: set @Q_STATUS_STUDENT1, 0; set @Q_STATUS_STUDENT2, 0; set @Q_STATUS_STUDENT3, 0; - set @s$, ""; return; S_update_var: diff --git a/world/map/npc/009-1/jack.txt b/world/map/npc/009-1/jack.txt index 05c9f8c5..7a4f6573 100644 --- a/world/map/npc/009-1/jack.txt +++ b/world/map/npc/009-1/jack.txt @@ -149,13 +149,8 @@ L_Shield_state_0: set @Q_Woodenshield, 1; callsub S_Update_Mask; - if (Sex == 0) - set @child_of_jack$, "daughter"; - if (Sex == 1) - set @child_of_jack$, "son"; - mes "[Jack Lumber]"; - mes "\"You no doubt remember how I struggled with those beasts, fighting for my life. Scared me, those seven-branched little stumps did! Never since that day have I strayed near them, and yet there you are, cutting them down one by one. I'm proud of you – to dare to fight those trunks is admirable indeed. You're as strong as if you were my own " + @child_of_jack$ + "!\""; + mes "\"You no doubt remember how I struggled with those beasts, fighting for my life. Scared me, those seven-branched little stumps did! Never since that day have I strayed near them, and yet there you are, cutting them down one by one. I'm proud of you – to dare to fight those trunks is admirable indeed. You're as strong as if you were my own child!\""; next; goto L_Shield_state_1; diff --git a/world/map/npc/009-2/wyara.txt b/world/map/npc/009-2/wyara.txt index 17f6bc61..153373f7 100644 --- a/world/map/npc/009-2/wyara.txt +++ b/world/map/npc/009-2/wyara.txt @@ -31,10 +31,7 @@ if (@Q_status == @STATUS_PURIFY_TWICE) goto L_M_purify_done; mes "[Wyara the witch]"; - if (!Sex) - mes "\"Greetings, fair traveller! What can I do for you?\""; - if (Sex) - mes "\"Hello! What brings you here?\""; + mes "\"Greetings, fair traveller! What can I do for you?\""; next; set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_WYARA; goto L_Main; diff --git a/world/map/npc/009-4/waric.txt b/world/map/npc/009-4/waric.txt index 83c1ba78..9598ecaa 100644 --- a/world/map/npc/009-4/waric.txt +++ b/world/map/npc/009-4/waric.txt @@ -2,20 +2,13 @@ 009-4,99,33,0|script|#WizardTrap|32767,2,1 { - set @gender$, "They're"; - if (Sex == 0) - set @gender$, "She's"; - if (Sex == 1) - set @gender$, "He's"; - mes "As you explore further into the cave you see a figure looking at you who appears angry. But as you begin to speak, he quickly chants some words and you start to lose conciousness!"; next; warp "009-4", 117, 40; mes "When you awake you find yourself unable to move. You seem to be held in place by something. As your eyes regain focus you see Orum talking with the figure you saw earlier. Orum looks over at you and mumbles."; mes ""; mes "[Orum]"; - mes "\"Be quiet Waric... " + @gender$ + " awake...\""; - set @gender$, ""; + mes "\"Be quiet Waric... They're awake...\""; close; } diff --git a/world/map/npc/011-1/auldsbel.txt b/world/map/npc/011-1/auldsbel.txt index 23e3f84a..8547fd95 100644 --- a/world/map/npc/011-1/auldsbel.txt +++ b/world/map/npc/011-1/auldsbel.txt @@ -31,10 +31,6 @@ set @has_magic, getskilllv(SKILL_MAGIC); - set @address$, "chap"; - if (Sex == 0) - set @address$, "girl"; - if (@Q_main_status >= @Q_STATUS_POSTINTRO) goto L_short_intro; @@ -70,8 +66,6 @@ L_intro_nopowder: L_intro_identity: mes "[Robed Man]"; mes "He eyes you more carefully."; - if (Sex == 0) - mes "\"How odd. I could have sworn that you were a man the last time we met. Not that I mind...\""; mes "\"Wait. You're not Padric.\""; next; set @xmsg$, "Right... my name is " + strcharinfo(0) + "."; @@ -783,11 +777,11 @@ L_c_quest_1: mes "\"Good, good... I am trying to come up with a way to best use the Mauve leaves you brought me, but it seems that I will need further components. I am not sure about the exact composition yet, but I will need a few potions.\""; next; mes "[Auldsbel the Wizard]"; - mes "\"Please be a good " + @address$ + " and get me an iron potion, a concentration potion, and three small and three medium healing potions.\""; + mes "\"Please be a good helper and get me an iron potion, a concentration potion, and three small and three medium healing potions.\""; next; menu "Here you are.", L_Next4, - "I'm not your 'good " + @address$ + "'!", L_main_menu, + "I'm not your 'good helper'!", L_main_menu, "I'll see what I can do.", L_main_menu; L_Next4: @@ -859,7 +853,7 @@ L_Next6: delitem "MaggotSlime", 25; set Zeny, Zeny + 5000; mes "[Auldsbel the Wizard]"; - mes "\"Good " + @address$ + "! Another 5,000 GP for you.\""; + mes "\"Good helper! Another 5,000 GP for you.\""; mes "\"I believe that I have figured out one possible way to integrate the tincture into the spell... I will let you know how that goes.\""; mes "[You gain 10,000 experience points]"; getexp 10000, 0; diff --git a/world/map/npc/013-1/sagatha.txt b/world/map/npc/013-1/sagatha.txt index 456b184b..558e9b70 100644 --- a/world/map/npc/013-1/sagatha.txt +++ b/world/map/npc/013-1/sagatha.txt @@ -106,10 +106,7 @@ L_next: mes "Before you stands a beautiful woman, dressed in dark purple robes and wearing a witch's hat."; - if (Sex) - mes "She looks at you suspiciously."; - if (!Sex) - mes "She looks at you impassively."; + mes "She looks at you suspiciously."; next; menu "Who are you?", L_Next, diff --git a/world/map/npc/015-1/sword.txt b/world/map/npc/015-1/sword.txt index 7f32bf60..239de752 100644 --- a/world/map/npc/015-1/sword.txt +++ b/world/map/npc/015-1/sword.txt @@ -190,10 +190,7 @@ L_Next1: mes "\"Lords of Thunder, Fire, Rage!\""; mes "\"Grant thy powers to this mage,\""; mes "\"Rising with thy dreadful roar,\""; - if (Sex) - mes "\"Answer to his call to War!\""; - if (!Sex) - mes "\"Answer to her call to War!\""; + mes "\"Answer to their call to War!\""; next; mes "[Mystic Sword]"; mes "Your heart starts pounding, and suddenly you can hear the sound of drums in your head."; diff --git a/world/map/npc/018-2/angus.txt b/world/map/npc/018-2/angus.txt index e49d91ae..3c53862d 100644 --- a/world/map/npc/018-2/angus.txt +++ b/world/map/npc/018-2/angus.txt @@ -2,9 +2,6 @@ 018-2,31,39,0|script|Angus|147 { - set @honorific$, "lad"; - if (Sex == 0) set @honorific$, "lass"; - set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT); if (@inspector == 10) goto L_NohMask; @@ -16,7 +13,7 @@ L_NohMask: mes "[Angus]"; - mes "\"I'm sorry, " + @honorific$ + ", I truely am, but I stay in the town. One o' the miners might have heard something.\""; + mes "\"I'm sorry, I truely am, but I stay in the town. One o' the miners might have heard something.\""; goto L_Close; L_Close: diff --git a/world/map/npc/019-1/snowman.txt b/world/map/npc/019-1/snowman.txt index 893ddce4..98b749df 100644 --- a/world/map/npc/019-1/snowman.txt +++ b/world/map/npc/019-1/snowman.txt @@ -11,16 +11,12 @@ goto L_Close; L_Quest: - if (Sex == 0) - set @sex$, "lady"; - if (Sex == 1) - set @sex$, "man"; set @candy_amount, 15; set @chocolate_amount, 10; set @cactus_amount, 5; mes "[Snowman]"; - mes "\"Hello there young " + @sex$ + "."; + mes "\"Hello there."; mes "Would you like a Christmas hat?\""; next; goto L_Menu; @@ -84,7 +80,6 @@ L_TooMany: goto L_Close; L_Close: - set @sex$, ""; set @candy_amount, 0; set @chocolate_amount, 0; set @cactus_amount, 0; diff --git a/world/map/npc/020-2/baktar.txt b/world/map/npc/020-2/baktar.txt index b769e1e9..9d1f658b 100644 --- a/world/map/npc/020-2/baktar.txt +++ b/world/map/npc/020-2/baktar.txt @@ -69,14 +69,10 @@ L_Delivery: goto L_Close; L_Start: - if(Sex) - set @type$, "man"; - if(!Sex) - set @type$, "woman"; if(QL_BAKTAR & (1<<@BIT_KNOWHIM)) goto L_KnowAlready; mes @npcname$; - mes "\"Hello, " + @type$ + ", did you come from Tulimshar? Because you have a nice tan. \""; + mes "\"Hello, did you come from Tulimshar? Because you have a nice tan. \""; menu "Yes, I'm from Tulimshar", L_exotic, "Well, I just like sunbathing", L_Close, diff --git a/world/map/npc/027-2/crying_child.txt b/world/map/npc/027-2/crying_child.txt index 4a1254ec..0a7b2396 100644 --- a/world/map/npc/027-2/crying_child.txt +++ b/world/map/npc/027-2/crying_child.txt @@ -21,8 +21,6 @@ set @minLevel, 85; - if (Sex == 0) set @madamsir$, "Madam"; - if (Sex == 1) set @madamsir$, "Sir"; if (@state == 7) goto L_return5; if (@state == 6) goto L_return4; if (@state == 4 || @state == 5) goto L_return3; @@ -50,13 +48,13 @@ L_intro: L_WhatHappen: mes "[Crying Child]"; - mes "\"Oh, what? Who are you "+@madamsir$+", what are you doing here?\""; + mes "\"Oh, what? Who are you, what are you doing here?\""; next; menu "My name is "+strcharinfo(0)+". I heard you cry and decided to check if you needed any help.",L_MyNameIs; L_MyNameIs: - mes "The child looks at you from head to toe and says: \"" +@madamsir$+ ", aren't you scared of me?\""; + mes "The child looks at you from head to toe and says: aren't you scared of me?\""; next; menu "No... Why would I be scared of you?",L_NotScaredOf; @@ -101,7 +99,7 @@ L_DontWorryFind: L_return: mes "[Aldred]"; - mes "\"Please, help me " +@madamsir$+ ". If you find that ring, I think things will be a little better between me and my parents.\""; + mes "\"Please, help me. If you find that ring, I think things will be a little better between me and my parents.\""; goto L_Close; @@ -207,7 +205,6 @@ L_full: goto L_Close; L_Close: - set @madamsir$, ""; set @Graveyard_Inn_MASK, 0; set @Graveyard_Inn_SHIFT, 0; set @state, 0; diff --git a/world/map/npc/027-2/headless_man.txt b/world/map/npc/027-2/headless_man.txt index 7345b535..fafa17ef 100644 --- a/world/map/npc/027-2/headless_man.txt +++ b/world/map/npc/027-2/headless_man.txt @@ -7,9 +7,6 @@ 027-2,22,76,0|script|Thurstan|318 { - if (Sex == 0) set @madamsir$, "Madam"; - if (Sex == 1) set @madamsir$, "Sir"; - set @Graveyard_Inn_MASK, NIBBLE_6_MASK; set @Graveyard_Inn_SHIFT, NIBBLE_6_SHIFT; @@ -39,14 +36,14 @@ if (BaseLevel < 85) goto L_greet; mes "[Headless Man]"; - mes "\"Hello " + @madamsir$ + ". My name is Thurstan. Could I ask your assistance with something? I seem to be in a spot of difficulty.\""; + mes "\"Hello. My name is Thurstan. Could I ask your assistance with something? I seem to be in a spot of difficulty.\""; menu "I'll listen, just keep that thing from dripping on me.", L_Quest_ask, "Ack, a bloody talking head! Gross, no way!", L_Close; L_greet: mes "[Headless Man]"; - mes "\"Greetings " + @madamsir$ + "! Do you have any duck tape?\""; + mes "\"Greetings! Do you have any duck tape?\""; goto L_Close; L_Quest_ask: @@ -189,7 +186,6 @@ L_Final: L_Close: - set @madamsir$, ""; set @Graveyard_Inn_MASK, 0; set @Graveyard_Inn_SHIFT, 0; set @state, 0; diff --git a/world/map/npc/027-2/husband.txt b/world/map/npc/027-2/husband.txt index e62b5097..8897e697 100644 --- a/world/map/npc/027-2/husband.txt +++ b/world/map/npc/027-2/husband.txt @@ -194,12 +194,8 @@ L_Savaric: mes "\"That cheeky egomaniac - \""; next; - if ((Sex == 0) - && (@kidstate < 7)) - goto L_Woman; - if ((Sex == 1) - && (@kidstate < 7)) - goto L_Man; + if (@kidstate < 7) + goto L_Problem; mes "\"Well, I have been thinking about you. You seem to be a very helpful and wise person. Even my son told me good things about you, making a long speech about how great you are and your ability to comprehend and deal with delicate matters. I wonder how he reached that conclusion... But anyway, I'll tell you about Savaric.\""; next; goto L_Jealousy; @@ -223,17 +219,9 @@ L_Jealousy: callsub S_Update_Mask; goto L_Close; -L_Man: +L_Problem: mes "[Hamond]"; - mes "\"You're a man - I think you would understand what is happening to me.\""; - mes "\"But, to be honest, I think I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\""; - goto L_Close; - -L_Woman: - mes "[Hamond]"; - mes "\"Hrm - I don't think you'll understand. It is a problem between men.\""; - next; - mes "\"And, to be honest, I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\""; + mes "\"To be honest, I think I'd only be able to talk about such a complicated matter if I am sure I am sharing my feelings with a good, wise and understanding person. No offense, it is just that I barely know you...\""; goto L_Close; L_Ring: diff --git a/world/map/npc/027-2/innkeeper.txt b/world/map/npc/027-2/innkeeper.txt index adc4a75d..ac4e867a 100644 --- a/world/map/npc/027-2/innkeeper.txt +++ b/world/map/npc/027-2/innkeeper.txt @@ -235,12 +235,8 @@ L_Check_Kid: menu "Hi. I found this in the main hall. Do you know to whom it belongs?", L_Ring; - if ((Sex == 1) - && (@kidstate < 7)) - goto L_Man; - if ((Sex == 0) - && (@kidstate < 7)) - goto L_Woman; + if (@kidstate < 7) + goto L_Problem; mes "\"What I'm going to tell you is very personal, but your acts have shown me that you're a person I can trust. You kindly asked me about that ring you have found... and also, even my son, who is always so reserved with strangers, came to me and spent a long time telling me a lot of nice things about you. So I will tell you about my sad love.\""; next; @@ -405,16 +401,9 @@ L_Not_Enough_Tears: mes "\"This is beautiful! But " + @tears + " of them aren't enough to represent my sadness.\""; goto L_Close; -L_Man: +L_Problem: mes "[Reid's Ghost]"; - mes "\"What I have to tell is very personal. You're a man - I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive man, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \""; - goto L_Close; - -L_Woman: - mes "[Reid's Ghost]"; - mes "\"What I have to tell you is something very personal. You are a woman like me - I'm sure you would understand.\""; - next; - mes "\"But I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive woman, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \""; + mes "\"What I have to tell is very personal. I'm not sure if I want to tell you. I know you helped me already and showed me you are a sensitive, but I barely know you. I am sorry, but I have to think a little bit more. Maybe later, when I know you better, I can tell you more about it. \""; goto L_Close; L_Ring: diff --git a/world/map/npc/031-4/cindyCave.txt b/world/map/npc/031-4/cindyCave.txt index 377a6b06..33c3a16f 100644 --- a/world/map/npc/031-4/cindyCave.txt +++ b/world/map/npc/031-4/cindyCave.txt @@ -11,9 +11,6 @@ set @KEYS_AMOUNT, 10; set @minlevel, 70; - if (Sex == 0) set @title$, "Misses"; - if (Sex == 1) set @title$, "Mister"; - if (QL_CINDY == 4) goto L_Please_Visit; if (QL_CINDY == 2) goto L_Reward; if (QL_CINDY == 1) goto L_Please_Help; @@ -33,7 +30,7 @@ L_Next: mes "Cindy doesn't look so scared anymore."; next; mes "[Cindy]"; - mes "\"Hello, dear " + @title$ + " adventurer. Did my mother send you?\""; + mes "\"Hello, adventurer. Did my mother send you?\""; next; mes "\"It's so cold in here! Can you please open the cage?\""; next; @@ -119,7 +116,6 @@ L_Full_Inv: L_Close: set @KEYS_AMOUNT, 0; - set @title$, ""; set @minlevel, 0; set @inventorylist_count, 0; cleararray @wizardhats, 0, 10; diff --git a/world/map/npc/commands/_atcommand_local.txt b/world/map/npc/commands/_atcommand_local.txt new file mode 100644 index 00000000..a195d580 --- /dev/null +++ b/world/map/npc/commands/_atcommand_local.txt @@ -0,0 +1,12 @@ +-|script|GM|32767 +{ + end; + +OnInit: + // define permissions here + set .zeny, G_ADMIN; + + // permissions for events + set .killthegm, G_EVENT; + end; +} -- cgit v1.2.3-60-g2f50 From 401ff146cbd56e214007c1a298194fdef66d5a96 Mon Sep 17 00:00:00 2001 From: mekolat Date: Tue, 5 Jan 2016 10:30:44 -0500 Subject: remove the cruft left behind, prepare for new races --- world/map/db/const.txt | 40 ++++---- world/map/npc/commands/_atcommand_local.txt | 12 --- world/map/npc/functions/announcements.txt | 5 +- world/map/npc/functions/barber.txt | 87 +++++++++++----- world/map/npc/functions/global_event_handler.txt | 2 +- world/map/npc/functions/headstyles.txt | 120 ++++++++++++++++------- world/map/npc/items/mirror.txt | 21 ++-- world/map/npc/items/scissors.txt | 6 +- world/map/npc/items/shock_sweet.txt | 2 +- 9 files changed, 184 insertions(+), 111 deletions(-) delete mode 100644 world/map/npc/commands/_atcommand_local.txt (limited to 'world') diff --git a/world/map/db/const.txt b/world/map/db/const.txt index af5cc476..71f1f06c 100644 --- a/world/map/db/const.txt +++ b/world/map/db/const.txt @@ -209,26 +209,26 @@ LOOK_MISC2 13 // Hairstyles HS_Bald 0 -HS_FlatPonytail 1 -HS_BowlCut 2 -HS_CombedBack 3 -HS_Emo 4 -HS_Mohawk 5 -HS_Pompadour 6 -HS_CenterParting 7 -HS_LongAndSlick 8 -HS_ShortAndCurly 9 -HS_Pigtails 10 -HS_LongAndCurly 11 -HS_Parted 12 -HS_PerkyPonytail 13 -HS_Wave 14 -HS_Mane 15 -HS_Bun 16 -HS_ShoulderLengthFlick 17 -HS_Fizzy 18 -HS_LongAndClipped 19 -HS_BaldTwo 20 +HS_BaldTwo 1 +HS_FlatPonytail 2 +HS_BowlCut 3 +HS_CombedBack 4 +HS_Emo 5 +HS_Mohawk 6 +HS_Pompadour 7 +HS_CenterParting 8 +HS_LongAndSlick 9 +HS_ShortAndCurly 10 +HS_Pigtails 11 +HS_LongAndCurly 12 +HS_Parted 13 +HS_PerkyPonytail 14 +HS_Wave 15 +HS_Mane 16 +HS_Bun 17 +HS_ShoulderLengthFlick 18 +HS_Fizzy 19 +HS_LongAndClipped 20 // Hair Colors HC_LIGHT_BROWN 0 diff --git a/world/map/npc/commands/_atcommand_local.txt b/world/map/npc/commands/_atcommand_local.txt deleted file mode 100644 index a195d580..00000000 --- a/world/map/npc/commands/_atcommand_local.txt +++ /dev/null @@ -1,12 +0,0 @@ --|script|GM|32767 -{ - end; - -OnInit: - // define permissions here - set .zeny, G_ADMIN; - - // permissions for events - set .killthegm, G_EVENT; - end; -} diff --git a/world/map/npc/functions/announcements.txt b/world/map/npc/functions/announcements.txt index dd56eadc..0a62e144 100644 --- a/world/map/npc/functions/announcements.txt +++ b/world/map/npc/functions/announcements.txt @@ -178,9 +178,8 @@ function|script|getBroadcast goto L_ReturningPlayer; L_NewPlayer: - // todo: show game rules on login (in another PR) - // ... does not look like it work.. the `menu` - // builtin behaves weirdly when on login + // todo: show game rules on login + // FIXME: needs to spawn a 32767 puppet goto L_Return; L_ReturningPlayer: diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt index 2c940c33..2413e0fe 100644 --- a/world/map/npc/functions/barber.txt +++ b/world/map/npc/functions/barber.txt @@ -4,13 +4,15 @@ // o11c updated it according to new scripting standards while adding pink. // ... and added the code that shows your old color/style. -// Note: there is a soft limit of 12 colors (0-11) and 20 styles (0-19) +// Note: there is a soft limit of 15 colors per classes and 20 styles (0-19) // This is the number that can be set when creating a character // or using GM commands, but scripts (such as this one) can set // any value 0-255 function|script|Barber { + if (getequipid(equip_head) == 647) + goto L_Debug; callfunc "getHeadStyles"; goto L_Main; @@ -21,12 +23,11 @@ L_Main: set @color$, "Unknown"; if (@style >= 1 && @style <= 20) set @style$, @HairStyles$[(@style - 1)]; - if (Class > 1) - set @color, (@color - (15 * Class)); + if (@color == ((HC_WHITE - Class) + 1)) + set @color$, "Shocked White"; + set @color, (@color - (15 * (Class - 1))); if (@color >= 0 && @color <= 15) set @color$, @HairColors$[@color]; - if (@color == 127) - set @color$, "Shocked White"; mes "Your current style is " + @style$ + " and your current color is " + @color$ + "."; set @style$, ""; set @color$, ""; @@ -61,24 +62,22 @@ L_Style: @HairStyles$[18], L_MenuItems, @HairStyles$[19], L_MenuItems, @HairStyles$[20], L_MenuItems, - @HairStyles$[21], L_MenuItems, - @HairStyles$[22], L_MenuItems, - @HairStyles$[23], L_MenuItems, - @HairStyles$[24], L_MenuItems, - @HairStyles$[25], L_MenuItems; + @HairStyles$[21], L_MenuItems; L_MenuItems: if (@menu == @style) goto L_SameStyle; if(@menu == (getarraysize(@HairStyles$) - 1)) goto L_RandomStyle; - if(@menu == getarraysize(@HairStyles$)) goto L_Done; + if(@menu >= getarraysize(@HairStyles$)) goto L_Done; setlook LOOK_HAIR_STYLE, @menu; goto L_Main; L_RandomStyle: - set @randomStyle, rand(1, (getarraysize(@HairStyles$) -4)); - if(@randomStyle == @style) goto L_RandomStyle; - setlook LOOK_HAIR_STYLE, @randomStyle; + setarray @randomStyle[0], rand(1, (getarraysize(@HairStyles$) - 2)); + setarray @randomStyle[1], @randomStyle[1] + 1; // infinite loop prevention + if(@randomStyle[0] == @style && @randomStyle[1] < 15) goto L_RandomStyle; + setlook LOOK_HAIR_STYLE, @randomStyle[0]; + setarray @randomStyle[1], 0; menu "Surprise me once again", L_RandomStyle, "Go back", L_Main, @@ -89,7 +88,6 @@ L_SameStyle: goto L_Main; L_Color: - if(@style == @BaldStyle) goto L_SameColor; // last headstyle of any class is bald if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Surprise me"; if(!@colorOpts) set @HairColors$[getarraysize(@HairColors$)], "Nah, I'm fine"; if(!@colorOpts) set @colorOpts, 1; @@ -116,24 +114,26 @@ L_MenuItems1: if (@menu - 1 == @color) goto L_SameColor; if(@menu == (getarraysize(@HairColors$) - 1)) goto L_RandomColor; - if(@menu == getarraysize(@HairColors$)) goto L_Done; + if(@menu >= getarraysize(@HairColors$)) goto L_Done; setlook LOOK_HAIR_COLOR, ((@menu - 1) + (15 * (Class - 1))); goto L_Main; L_RandomColor: - set @randomColor, rand((15 * (Class - 1)), ((getarraysize(@HairColors$) -4) + (15 * (Class - 1)))); - if(@randomColor == @color) goto L_RandomColor; - setlook LOOK_HAIR_COLOR, @randomColor; + setarray @randomColor[0], rand((15 * (Class - 1)), ((getarraysize(@HairColors$) - 3) + (15 * (Class - 1)))); + setarray @randomColor[1], @randomColor[1] + 1; + if(@randomColor[0] == @color && @randomColor[1] < 15) goto L_RandomColor; + setlook LOOK_HAIR_COLOR, @randomColor[0]; + setarray @randomColor[1], 0; menu "Surprise me once again", L_RandomColor, "Go back", L_Main, "Goodbye", L_Done; L_SameColor: - mes "You are either bald or your hair is already that color."; + mes "You already have that color."; goto L_Main; -S_Janitor: +L_Done: // cleanup set @menu, 0; set @style, 0; @@ -144,7 +144,46 @@ S_Janitor: set @colorOpts, 0; return; -L_Done: - callsub S_Janitor; - return; +L_Debug: + npcaction 9; // FIXME: this should become a builtin (ie `clear`) + mes "Class: " + Class; + mes "Style: " + getlook(LOOK_HAIR_STYLE); + mes "Color: " + getlook(LOOK_HAIR_COLOR); + menu + "edit| Set Class", L_DebugClass, + "edit| Set Style", L_DebugStyle, + "edit| Set Color", L_DebugColor, + "toggle| Simulate logout", L_DebugLogout, + "Close", L_Done; + +L_DebugLogout: + callfunc "fixHeadStyles"; + goto L_Debug; + +L_DebugClass: + set @dbg_class, 0; + mes "input class (0-32767)"; + input @dbg_class; + if (@dbg_class >= 0 && @dbg_class <= 32767) + set Class, @dbg_class; + set @dbg_class, 0; + goto L_Debug; + +L_DebugStyle: + set @dbg_style, 0; + mes "input style (0-255)"; + input @dbg_style; + if (@dbg_style >= 0 && @dbg_style <= 255) + setlook LOOK_HAIR_STYLE, @dbg_style; + set @dbg_style, 0; + goto L_Debug; + +L_DebugColor: + set @dbg_color, 0; + mes "input color (0-255)"; + input @dbg_color; + if (@dbg_color >= 0 && @dbg_color <= 255) + setlook LOOK_HAIR_COLOR, @dbg_color; + set @dbg_color, 0; + goto L_Debug; } diff --git a/world/map/npc/functions/global_event_handler.txt b/world/map/npc/functions/global_event_handler.txt index 7d380b0c..d5c20b06 100644 --- a/world/map/npc/functions/global_event_handler.txt +++ b/world/map/npc/functions/global_event_handler.txt @@ -9,7 +9,7 @@ OnPCLoginEvent: set @login_event, 1; - callfunc "getHeadStyles"; // converts class, color and hair + callfunc "fixHeadStyles"; // convert headstyles callfunc "ClearVariables"; // removes / converts old variables callfunc "DisplayMOTD"; // send the motd to the client, if enabled callfunc "getBroadcast"; // get the scheduled broadcast, if any diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt index 9645d339..4eae0862 100644 --- a/world/map/npc/functions/headstyles.txt +++ b/world/map/npc/functions/headstyles.txt @@ -1,46 +1,94 @@ // headstyles config file // author: meko +function|script|fixHeadStyles +{ + if (Class < 1 || Class > 5) // usable classes + set Class, 1; // it is impossible to use custom styling for class 0 in m+ so default is 1 + + callfunc "getHeadStyles"; + set @style, getlook(LOOK_HAIR_STYLE); // FIXME: this needs to be a param in the future + set @color, getlook(LOOK_HAIR_COLOR); // FIXME: this needs to be a param in the future + if (@style < 1 || @style > getarraysize(@HairStyles$)) // leftover from previous attempt at classes + setlook LOOK_HAIR_STYLE, 1; // FIXME: this needs to be a param in the future + if (@color == HC_WHITE && Class > 1) // convert shock white + set @color, (HC_WHITE - Class) + 1; + if (@color < 105 && ((@color - (15 * (Class - 1))) < 0 || @color > ((15 * (Class - 1)) + (getarraysize(@HairColors$) - 1)))) + set @color, 15 * (Class - 1); // it is possible to style color 0 but not style 0 since style is treated as an item + setlook LOOK_HAIR_COLOR, @color; // FIXME: this needs to be a param in the future + return; +} + function|script|getHeadStyles { - set @HairStyles$, 0; - set @HairColors$, 0; - set @BaseClass, 1; // this is the default class cleararray @HairStyles$, "", getarraysize(@HairStyles$); cleararray @HairColors$, "", getarraysize(@HairColors$); - cleararray @ValidClasses, "", getarraysize(@ValidClasses); - setarray @ValidClasses, 1; // add new classes here - set @loop, 0; - goto L_LoopValid; - -L_Janitor: - set @BaldStyle, getarraysize(@HairStyles$); // we set it as a variable because we use it with the barber - if(getlook(LOOK_HAIR_STYLE) < 1) setlook LOOK_HAIR_STYLE, @BaldStyle; // the last head of any race has no hair/fins/whatever + + if (Class == 2) goto L_Tritan; + elif (Class == 3) goto L_Ifriton; + elif (Class == 4) goto L_Gispaan; + elif (Class == 5) goto L_Sparron; + else set Class, 1; // we can not style custom classes, so reset when using the barber + goto L_Talpan; + +L_Talpan: + setarray @HairStyles$[0], + "Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk", + "Pompadour", "Center parting/Short and slick", "Long and slick", + "Short and curly", "Pigtails", "Long and curly", "Parted", + "Perky ponytail", "Wave", "Mane", "Bun", "Shoulder Length Flick", + "Fizzy", "Long and Clipped"; + setarray @HairColors$[0], + "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde", + "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink", + "Brown";//, "(free slot)", "(free slot)"; return; -L_LoopValid: // here we fix non-existant classes - if(@ValidClasses[@loop] == Class) goto L_ValidClass; - set @loop, (@loop + 1); - if(@loop >= getarraysize(@ValidClasses)) goto L_FixClass; - goto L_LoopValid; - -L_FixClass: - set Class, @BaseClass; - goto L_ValidClass; - -L_ValidClass: - if(Class == 1) - setarray @HairStyles$, // TALPONIAN (human) - "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk", - "Pompadour", "Center parting/Short and slick", "Long and slick", - "Short and curly", "Pigtails", "Long and curly", "Parted", - "Perky ponytail", "Wave", "Mane", "Bun", "Shoulder Length Flick", - "Fizzy", "Long and Clipped", "Bald"; - if(Class == 1) - setarray @HairColors$, // TALPONIAN (human) - "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde", - "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink", - "Brown";//, "(free slot)", "(free slot)"; - // adding a new species is as simple as adding another if(Class == X) and adding the class to @ValidClasses - goto L_Janitor; +L_Tritan: + setarray @HairStyles$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", + "16", "17", "18", "19", "20"; + setarray @HairColors$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15"; + return; + +L_Gispaan: + setarray @HairStyles$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", + "16", "17", "18", "19", "20"; + setarray @HairColors$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15"; + return; + +L_Sparron: + setarray @HairStyles$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", + "16", "17", "18", "19", "20"; + setarray @HairColors$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15"; + return; + +L_Ifriton: + setarray @HairStyles$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", + "16", "17", "18", "19", "20"; + setarray @HairColors$[0], + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15"; + return; } diff --git a/world/map/npc/items/mirror.txt b/world/map/npc/items/mirror.txt index dcca9398..c5dc5525 100644 --- a/world/map/npc/items/mirror.txt +++ b/world/map/npc/items/mirror.txt @@ -1,20 +1,19 @@ function|script|useMirror { - callfunc "getHeadStyles"; - goto L_Rand; + callfunc "getHeadStyles"; + goto L_Rand; - L_Rand: - set @style, rand(1,(getarraysize(@HairStyles$) -2)); - set @color, rand((15 * (Class - 1)),((getarraysize(@HairColors$) -2) + (15 * (Class - 1)))); - if((getlook(LOOK_HAIR_STYLE) == @style) || (getlook(LOOK_HAIR_COLOR) == @color)) - goto L_Rand; - goto L_Proceed; - - L_Proceed: +L_Rand: + set @mirror_rnd, @mirror_rnd + 1; + set @style, rand(1,getarraysize(@HairStyles$)); + set @color, rand((15 * (Class - 1)),((15 * (Class - 1)) + (getarraysize(@HairColors$) - 1))); + if(((getlook(LOOK_HAIR_STYLE) == @style) || (getlook(LOOK_HAIR_COLOR) == @color)) && @mirror_rnd < 15) + goto L_Rand; if(@fixedMirror) - setlook LOOK_HAIR_STYLE, @style; + setlook LOOK_HAIR_STYLE, @style; setlook LOOK_HAIR_COLOR, @color; //if(!@fixedMirror) getitem "SilverMirror", 1; <== this can be used in the future to have a portable hair color changer (like scissors but for the color) set @fixedMirror, 0; + set @mirror_rnd, 0; return; } diff --git a/world/map/npc/items/scissors.txt b/world/map/npc/items/scissors.txt index 640cc1c5..fbf3b344 100644 --- a/world/map/npc/items/scissors.txt +++ b/world/map/npc/items/scissors.txt @@ -1,14 +1,14 @@ function|script|useScissors { + getitem "Scissors", 1; if (rand(3)) goto L_Change; message strcharinfo(0), "Whoops!"; heal -20 - rand(Hp >> 1), 0; - getitem "Scissors", 1; return; L_Change: - setlook LOOK_HAIR_STYLE, rand(20); - getitem "Scissors", 1; + callfunc "getHeadStyles"; + setlook LOOK_HAIR_STYLE, rand(1,getarraysize(@HairStyles$)); return; } diff --git a/world/map/npc/items/shock_sweet.txt b/world/map/npc/items/shock_sweet.txt index 4de758d1..ea5992c3 100644 --- a/world/map/npc/items/shock_sweet.txt +++ b/world/map/npc/items/shock_sweet.txt @@ -7,7 +7,7 @@ function|script|useShockSweet return; L_Change: - setlook LOOK_HAIR_COLOR, HC_WHITE; + setlook LOOK_HAIR_COLOR, (HC_WHITE - Class) + 1; message strcharinfo(0), "Gah! That was some strong stuff!"; sc_start sc_poison, 1, 20; misceffect 15, strcharinfo(0); -- cgit v1.2.3-60-g2f50 From 5ee9d4a5523a792de751ec547a6f8d11740770e7 Mon Sep 17 00:00:00 2001 From: mekolat Date: Thu, 7 Jan 2016 13:48:00 -0500 Subject: add disguise function to gm debug --- world/map/db/item_db_use.txt | 2 +- world/map/npc/functions/gm_island.txt | 33 ++++++++++++++++++++++++++++++--- world/map/npc/functions/headstyles.txt | 2 +- world/map/npc/items/pickled_beets.txt | 10 ++++++++++ world/map/npc/scripts.conf | 1 + 5 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 world/map/npc/items/pickled_beets.txt (limited to 'world') diff --git a/world/map/db/item_db_use.txt b/world/map/db/item_db_use.txt index 8015786d..65acd000 100644 --- a/world/map/db/item_db_use.txt +++ b/world/map/db/item_db_use.txt @@ -90,7 +90,7 @@ 3007, Marshmallow, 0, 5, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {heal 10, 0, 1;}, {} 3009, JellySkull, 0, 5, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {heal 10, 0, 1;}, {} 3010, CandyPumpkin, 0, 5, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {heal 10, 0, 1;}, {} -4035, PickledBeets, 0, 100, 50, 150, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {heal 50, 0, 1; setlook LOOK_HAIR_COLOR, HC_PURPLE;}, {} +4035, PickledBeets, 0, 100, 50, 150, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {callfunc "usePickledBeets";}, {} 4036, RoastedAcorn, 0, 100, 50, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, {heal 15, 0, 1;}, {} 5126, MTJarofOwnBlood, 0, 200, 100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {heal -250, 0;getitem 5127, 1;}, {} //ID, Name___________________, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, {UseScript}, {EquipScript} diff --git a/world/map/npc/functions/gm_island.txt b/world/map/npc/functions/gm_island.txt index 89c0790a..1bd7b5e9 100644 --- a/world/map/npc/functions/gm_island.txt +++ b/world/map/npc/functions/gm_island.txt @@ -16,11 +16,12 @@ function|script|GmWarp } function|script|GmDebug { - mes "[Gm Debug]"; + mes "[GM Debug]"; mes "What do you want to do?"; menu - "Start Event.", L_GmStart, - "Stop Event.", L_GmStop; + "Open Event Portals.", L_GmStart, + "Close Event Portals.", L_GmStop, + "Disguise.", L_Disguise; L_GmStart: enablenpc "Gm Event#1"; @@ -33,6 +34,32 @@ L_GmStop: disablenpc "Gm Event#2"; disablenpc "Gm Event#3"; return; + +L_Disguise: + npcaction 9; + mes "[GM Debug - Disguise]"; + mes "The Disguise function allows GMs to disguise themselves as mobs or npcs."; + mes "---"; + mes "Mob IDs: [@@https://www.themanaworld.org/index.php/Monster_Reference|Monster Reference@@]"; + mes "You can either logout or use id ##B0##b to reset."; + mes "---"; + mes "Please input the mob ID:"; + input @disguise_id; + if (@disguise_id < 1000 || @disguise_id > 32767) + goto L_ResetClass; + mes "Your disguise has been changed."; + if (Class <= 5) + set @old_class, Class; + set Class, @disguise_id; + mes ""; + mes "For technical reasons, you are not able to see your own disguise, but other players will see it."; + return; + +L_ResetClass: + mes "Your appearance has been reset."; + set Class, if_then_else(@old_class, @old_class, 1); + callfunc "fixHeadStyles"; + return; } 001-1,49,68,0|script|Gm Event#1|368,0,0 { diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt index 4eae0862..02cc895f 100644 --- a/world/map/npc/functions/headstyles.txt +++ b/world/map/npc/functions/headstyles.txt @@ -11,7 +11,7 @@ function|script|fixHeadStyles set @color, getlook(LOOK_HAIR_COLOR); // FIXME: this needs to be a param in the future if (@style < 1 || @style > getarraysize(@HairStyles$)) // leftover from previous attempt at classes setlook LOOK_HAIR_STYLE, 1; // FIXME: this needs to be a param in the future - if (@color == HC_WHITE && Class > 1) // convert shock white + if (@color >= 123 && @color <= HC_WHITE) // convert shock white set @color, (HC_WHITE - Class) + 1; if (@color < 105 && ((@color - (15 * (Class - 1))) < 0 || @color > ((15 * (Class - 1)) + (getarraysize(@HairColors$) - 1)))) set @color, 15 * (Class - 1); // it is possible to style color 0 but not style 0 since style is treated as an item diff --git a/world/map/npc/items/pickled_beets.txt b/world/map/npc/items/pickled_beets.txt new file mode 100644 index 00000000..4aaa1f1c --- /dev/null +++ b/world/map/npc/items/pickled_beets.txt @@ -0,0 +1,10 @@ +function|script|usePickledBeets +{ + heal 50, 0, 1; + if (Class == 1) + setlook LOOK_HAIR_COLOR, HC_PURPLE; + elif (Class == 2) + setlook LOOK_HAIR_COLOR, 18; + // add more here for races that have purple + return; +} diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf index f9251214..e9bceb20 100644 --- a/world/map/npc/scripts.conf +++ b/world/map/npc/scripts.conf @@ -37,6 +37,7 @@ npc: npc/functions/motdconfig.txt npc: npc/items/magic_gm_top_hat.txt npc: npc/items/purification_potion.txt npc: npc/items/scissors.txt +npc: npc/items/pickled_beets.txt npc: npc/items/shock_sweet.txt npc: npc/items/unreleased_item.txt npc: npc/items/require_stat.txt -- cgit v1.2.3-60-g2f50 From f28b9ef883c8da9a890096d8e05865b90795c46d Mon Sep 17 00:00:00 2001 From: wushin Date: Sun, 17 Jan 2016 19:10:01 -0600 Subject: Fix gender as a starting condition make sex changes free make barbers do sex changes --- world/map/npc/002-2/eurni.txt | 21 +-------------------- world/map/npc/029-2/sorfina.txt | 4 +++- world/map/npc/functions/barber.txt | 30 ++++++++++++++++++++++++++++++ world/map/npc/functions/change_sex.txt | 24 ++++++++++++++++++++++++ world/map/npc/functions/game_rules.txt | 1 - 5 files changed, 58 insertions(+), 22 deletions(-) create mode 100644 world/map/npc/functions/change_sex.txt (limited to 'world') diff --git a/world/map/npc/002-2/eurni.txt b/world/map/npc/002-2/eurni.txt index c9735ad0..7e7254ed 100644 --- a/world/map/npc/002-2/eurni.txt +++ b/world/map/npc/002-2/eurni.txt @@ -2,19 +2,13 @@ 002-2,22,77,0|script|Eurni|136 { - set @SERVICES_ZENY, 10000; - set @halloween_npc_id, $@halloween_npc_eurni; callfunc "TrickOrTreat"; - if (BaseLevel < 10) goto L_TooYoung; - if (Zeny < @SERVICES_ZENY) goto L_NoMoney; - mes "[Eurni the Surgeon]"; mes "\"Are you tired of who you are?\""; next; - mes "\"Would you be interested in changing your sex?"; - mes "It'll cost ##B" + @SERVICES_ZENY + " GP##b.\""; + mes "\"Would you be interested in changing your sex?\""; next; menu @@ -42,9 +36,6 @@ L_NonBinary: L_Change: if (Sex == @sex) goto L_Already_Change; - if (Zeny < @SERVICES_ZENY) - goto L_NoMoney; - set Zeny, Zeny - @SERVICES_ZENY; set Sex, @sex; close; @@ -53,16 +44,6 @@ L_Already_Change: mes "\"Umm, you are that gender already.\""; close; -L_TooYoung: - mes "[Eurni the Surgeon]"; - mes "\"Move along, kid.\""; - close; - -L_NoMoney: - mes "[Eurni the Surgeon]"; - mes "\"You don't have the kind of money to pay for my services.\""; - close; - L_Close: close; } diff --git a/world/map/npc/029-2/sorfina.txt b/world/map/npc/029-2/sorfina.txt index ff5b3a3b..9e35b549 100644 --- a/world/map/npc/029-2/sorfina.txt +++ b/world/map/npc/029-2/sorfina.txt @@ -342,6 +342,7 @@ L_Block: mes "[Server/Client Notice]"; mes "The explanations in this tutorial are based on the official client, Manaplus."; mes "If you're using another client, settings and controls may be different."; + callfunc "ChangeSex"; callfunc "GameRules"; close; } @@ -349,10 +350,11 @@ L_Block: { if (TUT_var > 0) end; - callfunc "GameRules"; mes "[Server/Client Notice]"; mes "The explanations in this tutorial are based on the official client, Manaplus."; mes "If you're using another client, settings and controls may be different."; + callfunc "ChangeSex"; + callfunc "GameRules"; close; } 029-2,22,26,0|script|#GameRules3|32767,1,0 diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt index 2413e0fe..effa3436 100644 --- a/world/map/npc/functions/barber.txt +++ b/world/map/npc/functions/barber.txt @@ -34,8 +34,38 @@ L_Main: menu "Change my style", L_Style, "Change my color", L_Color, + "Change my gender", L_Gender, "Nah, I'm fine", L_Done; +L_Gender: + menu + "Female.", L_Female, + "Male.", L_Male, + "Non-binary.", L_NonBinary, + "Nah, I'm fine", L_Done; + +L_Female: + set @sex, 0; + goto L_Change; + +L_Male: + set @sex, 1; + goto L_Change; + +L_NonBinary: + set @sex, 3; + goto L_Change; + +L_Change: + if (Sex == @sex) + goto L_Already_Change; + set Sex, @sex; + return; + +L_Already_Change: + mes "\"Umm, you are that gender already.\""; + return; + L_Style: if(!@hairOpts) set @HairStyles$[getarraysize(@HairStyles$)], "Surprise me"; if(!@hairOpts) set @HairStyles$[getarraysize(@HairStyles$)], "Nah, I'm fine"; diff --git a/world/map/npc/functions/change_sex.txt b/world/map/npc/functions/change_sex.txt new file mode 100644 index 00000000..f81334f6 --- /dev/null +++ b/world/map/npc/functions/change_sex.txt @@ -0,0 +1,24 @@ +function|script|ChangeSex +{ + mes "Please select a character gender:"; + menu + "Female.", L_Female, + "Male.", L_Male, + "Non-binary.", L_NonBinary; + +L_Female: + set @sex, 0; + goto L_Change; + +L_Male: + set @sex, 1; + goto L_Change; + +L_NonBinary: + set @sex, 3; + goto L_Change; + +L_Change: + set Sex, @sex; + return; +} diff --git a/world/map/npc/functions/game_rules.txt b/world/map/npc/functions/game_rules.txt index cb72dfec..e2b9df81 100644 --- a/world/map/npc/functions/game_rules.txt +++ b/world/map/npc/functions/game_rules.txt @@ -2,7 +2,6 @@ function|script|GameRules { - mes "[Game Rules]"; mes "Please select a language:"; menu -- cgit v1.2.3-60-g2f50 From d0b2262fc38ecfa47671e1738d657b4317238499 Mon Sep 17 00:00:00 2001 From: wushin Date: Tue, 26 Jan 2016 13:32:37 -0600 Subject: Move gender selection to intro dialogue --- world/conf/char_athena.conf | 8 +++---- world/map/db/const.txt | 2 +- world/map/npc/029-2/sorfina.txt | 38 +++++++++++++++++++++++++++++----- world/map/npc/029-2/stat_reset.txt | 12 +++++++++-- world/map/npc/029-2/tanisha.txt | 3 ++- world/map/npc/functions/barber.txt | 11 ++++++++++ world/map/npc/functions/change_sex.txt | 24 --------------------- world/map/npc/functions/headstyles.txt | 11 +++++++--- 8 files changed, 69 insertions(+), 40 deletions(-) delete mode 100644 world/map/npc/functions/change_sex.txt (limited to 'world') diff --git a/world/conf/char_athena.conf b/world/conf/char_athena.conf index 64f8b082..3e0fa61d 100644 --- a/world/conf/char_athena.conf +++ b/world/conf/char_athena.conf @@ -45,17 +45,17 @@ min_name_length: 4 char_slots: 9 // max hair style and hair color -max_hair_style: 20 -max_hair_color: 11 +max_hair_style: 1 +max_hair_color: 1 // the minimum value for stats (str, agi, ...) min_stat_value: 1 // the maximum value for stats (str, agi, ...) -max_stat_value: 9 +max_stat_value: 1 // the sum of all stats combined (str + agi + int + ...) -total_stat_sum: 30 +total_stat_sum: 6 // Filename of the file which receives the online players list in text online_txt_filename: online.txt diff --git a/world/map/db/const.txt b/world/map/db/const.txt index 71f1f06c..d3b42ee4 100644 --- a/world/map/db/const.txt +++ b/world/map/db/const.txt @@ -14,7 +14,7 @@ Hp 5 1 MaxHp 6 1 Sp 7 1 MaxSp 8 1 -//StatusPoint 9 1 +StatusPoint 9 1 BaseLevel 11 1 //SkillPoint 12 1 Class 19 1 diff --git a/world/map/npc/029-2/sorfina.txt b/world/map/npc/029-2/sorfina.txt index 9e35b549..9d2d4bb3 100644 --- a/world/map/npc/029-2/sorfina.txt +++ b/world/map/npc/029-2/sorfina.txt @@ -26,13 +26,43 @@ L_Start: mes "\"You didn't have any possessions on you when we found you and no one knows who you are.\""; mes "Do you have a name?"; menu - strcharinfo(0), L_name; + strcharinfo(0), L_Name; -L_name: +L_Name: mes "[Old Woman]"; mes "\"Well " + strcharinfo(0) + " what else can you tell me about yourself?.\""; menu - "Umm... I... I don't remember anything...", L_KnowNothing; + "I'm a woman from ...", L_Woman, + "I'm a man that lived in ...", L_Man, + "My home is in ...", L_N; + +L_Woman: + set Sex, 0; + goto L_Species; + +L_Man: + set Sex, 1; + goto L_Species; + +L_N: + set Sex, 2; + goto L_Species; + +L_Species: + mes "[Old Woman]"; + mes "\"Go on. If you need to think a bit, take your time.\""; + menu + "... Tulimshar in Tonori ... I'm a Talpan.", L_Talpan; + +L_Talpan: + set Class, 1; + goto L_AnythingElse; + +L_AnythingElse: + mes "[Old Woman]"; + mes "\"Anything else you can remember?\""; + menu + "Umm... no... I... I don't remember anything else...", L_KnowNothing; L_KnowNothing: mes "[Old Woman]"; @@ -342,7 +372,6 @@ L_Block: mes "[Server/Client Notice]"; mes "The explanations in this tutorial are based on the official client, Manaplus."; mes "If you're using another client, settings and controls may be different."; - callfunc "ChangeSex"; callfunc "GameRules"; close; } @@ -353,7 +382,6 @@ L_Block: mes "[Server/Client Notice]"; mes "The explanations in this tutorial are based on the official client, Manaplus."; mes "If you're using another client, settings and controls may be different."; - callfunc "ChangeSex"; callfunc "GameRules"; close; } diff --git a/world/map/npc/029-2/stat_reset.txt b/world/map/npc/029-2/stat_reset.txt index 6123f632..427a1da5 100644 --- a/world/map/npc/029-2/stat_reset.txt +++ b/world/map/npc/029-2/stat_reset.txt @@ -11,11 +11,18 @@ mes "[Jessie]"; mes "\"I know a spell that will"; mes "reset status points on the youngings."; + mes ""; + mes "I can also change their appearance.\""; next; menu "Reset my stats",L_Reset, + "Change my appearance", L_Appearance, "Forget about it",L_Pass; +L_Appearance: + callfunc "Barber"; + goto L_Pass; + L_Reset: resetstatus; @@ -35,8 +42,9 @@ L_Sorry: mes "\"My spell only works on the very young, sorry.\""; next; mes "\"You can try Mailvox in the Tulimshar Bazaar or Wyara in the Potion Shop in Hurnscald.\""; - next; - goto L_Close; + menu + "Change my appearance", L_Appearance, + "Bye", L_Close; L_Close: close; diff --git a/world/map/npc/029-2/tanisha.txt b/world/map/npc/029-2/tanisha.txt index d69195a5..7142721e 100644 --- a/world/map/npc/029-2/tanisha.txt +++ b/world/map/npc/029-2/tanisha.txt @@ -110,7 +110,8 @@ L_StatsRe: next; mes "\"Think about how you want to play before assigning the points.\""; mes "\"My Uncle sitting at the counter knows a spell to help the younglings reset their stats.\""; - mes "\"He also knows of mages with even more powerful reset spells.\""; + mes "\"He can also change your hair style and color, along with your gender.\""; + mes "\"Furthermore, he knows of mages with even more powerful reset spells for your stats.\""; next; if (QL_BEGIN == 7) goto L_Money; diff --git a/world/map/npc/functions/barber.txt b/world/map/npc/functions/barber.txt index effa3436..54732418 100644 --- a/world/map/npc/functions/barber.txt +++ b/world/map/npc/functions/barber.txt @@ -179,10 +179,12 @@ L_Debug: mes "Class: " + Class; mes "Style: " + getlook(LOOK_HAIR_STYLE); mes "Color: " + getlook(LOOK_HAIR_COLOR); + mes "Gender: " + Sex; menu "edit| Set Class", L_DebugClass, "edit| Set Style", L_DebugStyle, "edit| Set Color", L_DebugColor, + "edit| Set Gender", L_DebugGender, "toggle| Simulate logout", L_DebugLogout, "Close", L_Done; @@ -216,4 +218,13 @@ L_DebugColor: setlook LOOK_HAIR_COLOR, @dbg_color; set @dbg_color, 0; goto L_Debug; + +L_DebugGender: + set @dbg_gender, 0; + mes "input gender (0-3)"; + input @dbg_gender; + if (@dbg_gender >= 0 && @dbg_gender <= 3) + set Sex, @dbg_gender; + set @dbg_gender, 0; + goto L_Debug; } diff --git a/world/map/npc/functions/change_sex.txt b/world/map/npc/functions/change_sex.txt deleted file mode 100644 index f81334f6..00000000 --- a/world/map/npc/functions/change_sex.txt +++ /dev/null @@ -1,24 +0,0 @@ -function|script|ChangeSex -{ - mes "Please select a character gender:"; - menu - "Female.", L_Female, - "Male.", L_Male, - "Non-binary.", L_NonBinary; - -L_Female: - set @sex, 0; - goto L_Change; - -L_Male: - set @sex, 1; - goto L_Change; - -L_NonBinary: - set @sex, 3; - goto L_Change; - -L_Change: - set Sex, @sex; - return; -} diff --git a/world/map/npc/functions/headstyles.txt b/world/map/npc/functions/headstyles.txt index 02cc895f..1098c80c 100644 --- a/world/map/npc/functions/headstyles.txt +++ b/world/map/npc/functions/headstyles.txt @@ -3,10 +3,9 @@ function|script|fixHeadStyles { - if (Class < 1 || Class > 5) // usable classes - set Class, 1; // it is impossible to use custom styling for class 0 in m+ so default is 1 - callfunc "getHeadStyles"; + if ((TUT_var < 1 || QL_BEGIN < 1) && StatusPoint < 1) + goto L_RandomHair; // on first login set @style, getlook(LOOK_HAIR_STYLE); // FIXME: this needs to be a param in the future set @color, getlook(LOOK_HAIR_COLOR); // FIXME: this needs to be a param in the future if (@style < 1 || @style > getarraysize(@HairStyles$)) // leftover from previous attempt at classes @@ -17,6 +16,12 @@ function|script|fixHeadStyles set @color, 15 * (Class - 1); // it is possible to style color 0 but not style 0 since style is treated as an item setlook LOOK_HAIR_COLOR, @color; // FIXME: this needs to be a param in the future return; + +L_RandomHair: + resetstatus; // <= important! gives 48 stat points + setlook LOOK_HAIR_STYLE, rand(1, getarraysize(@HairStyles$)); + setlook LOOK_HAIR_COLOR, rand((15 * (Class - 1)),((15 * (Class - 1)) + (getarraysize(@HairColors$) - 1))); + return; } function|script|getHeadStyles -- cgit v1.2.3-60-g2f50 From 74a611e0ced3df2b5c40b143ab4166eb9fbb7a9a Mon Sep 17 00:00:00 2001 From: mekolat Date: Mon, 8 Feb 2016 21:00:35 -0500 Subject: hitchhiker quest bug fix --- world/map/npc/002-2/stranger.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'world') diff --git a/world/map/npc/002-2/stranger.txt b/world/map/npc/002-2/stranger.txt index 0b47e716..8186636b 100644 --- a/world/map/npc/002-2/stranger.txt +++ b/world/map/npc/002-2/stranger.txt @@ -1,9 +1,12 @@ +// FIXME: this script is very cringeworthy and almost never clears the arrays so they just fill up +// also some arrays should be global (and npc vars later), not stored in every single player +// -> should GET RID of that fugly magic-secrets system; the answers are public anyway 002-2,38,57,0|script|Stranger|192 { set @IRONINGOT, 5; set @PINKANTENNA, 21; set @Exp, 20000; - setarray @towelReq$, "WhiteHitchhikersTowel","RedHitchhikersTowel","GreenHitchhikersTowel","BlueHitchhikersTowel","YellowHitchhikersTowel","PurpleHitchhikersTowel","OrangeHitchhikersTowel","PinkHitchhikersTowel","TealHitchhikersTowel","LimeHitchhikersTowel","HitchhikersTowel"; + setarray @towelReq$[0], "HitchhikersTowel"; if (FLAGS & FLAG_TOWEL_COMPLETED) goto L_Event_Done; if ((gettimetick(2)-TUT_var < 6*7*86400) || (BaseLevel < 42)) //player must be created at least 6 weeks ago and at least level 42 -- cgit v1.2.3-60-g2f50 From ec011e27ec8459277563222d94c4cf981d752d11 Mon Sep 17 00:00:00 2001 From: mekolat Date: Mon, 8 Feb 2016 21:22:48 -0500 Subject: news commit, submodule commits --- client-data | 2 +- tools | 2 +- world/map/news.d/55-v2016.2.9.txt | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 world/map/news.d/55-v2016.2.9.txt (limited to 'world') diff --git a/client-data b/client-data index e3a7d7aa..aed37c0a 160000 --- a/client-data +++ b/client-data @@ -1 +1 @@ -Subproject commit e3a7d7aa1ec52c43c2488a9b5eacd5b944b9fd43 +Subproject commit aed37c0ac8e958e3fcf0683f191443fb33b64e4c diff --git a/tools b/tools index 5c0af2db..ac88cc36 160000 --- a/tools +++ b/tools @@ -1 +1 @@ -Subproject commit 5c0af2dba65a391a08e8a6cc1a94777a662a00d3 +Subproject commit ac88cc365e1f35764bab5ff9c27549fc3a02d654 diff --git a/world/map/news.d/55-v2016.2.9.txt b/world/map/news.d/55-v2016.2.9.txt new file mode 100644 index 00000000..20269968 --- /dev/null +++ b/world/map/news.d/55-v2016.2.9.txt @@ -0,0 +1,30 @@ +{title:Third Gender} +{date:2016-02-09} + +Some modifications pertaining to gender and char creation, +along with the usual bug fixes. + +{red}This release will change your hairstyle. You can change it back by talking to the barber in Tulimshar, or Jessie in Candor.{/red} + +Release Notes v2016.02.09 +{ul} +{li}You can now choose male, female or non-binary (third gender) genders.{/li} +{li}Sex change is now free.{/li} +{li}Barbers can perform sex change.{/li} +{li}All characters on an account can now have a separate gender.{/li} +{li}Character creation has been moved in-game.{/li} +{li}You can once again register chars with a space in the name.{/li} +{li}The Great Typo Hunt continues, with some more sentences fixed.{/li} +{li}The towel cooldown has been reduced to 20 minutes.{/li} +{li}Other towels will no longer be removed from your inventory upon using one.{/li} +{li}The rubber bat now has a 2 second delay.{/li} +{li}The Sanguine Vault bartender no longer sells Small Mana Elixir.{/li} +{li}The potion shop in Nivalis now sells Small, Medium and Large Mana Elixirs.{/li} +{li}A new shop in Candor sells Tiny and Small Mana Elixirs.{/li} +{li}The restrictions on the Skeleton Charm have been lifted.{/li} +{li}Valia (the npc for the Illia quest) has been moved indoors.{/li} +{/ul} + +Read More: {link:http://bit.ly/1PLaVbx} + +{author:TMW Development Team} -- cgit v1.2.3-60-g2f50