summaryrefslogtreecommitdiff
path: root/world/map/npc/functions
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions')
-rw-r--r--world/map/npc/functions/gm_island.txt33
-rw-r--r--world/map/npc/functions/headstyles.txt2
2 files changed, 31 insertions, 4 deletions
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