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/DyeConfig.txt42
-rw-r--r--world/map/npc/functions/ferry.txt4
-rw-r--r--world/map/npc/functions/game_rules.txt32
-rw-r--r--world/map/npc/functions/time.txt57
-rw-r--r--world/map/npc/functions/travelers.txt7
5 files changed, 117 insertions, 25 deletions
diff --git a/world/map/npc/functions/DyeConfig.txt b/world/map/npc/functions/DyeConfig.txt
new file mode 100644
index 00000000..1da1e734
--- /dev/null
+++ b/world/map/npc/functions/DyeConfig.txt
@@ -0,0 +1,42 @@
+009-2,32,105,0|script|#DyeChecker|-1
+{
+ end;
+OnInit:
+ /******************************
+ Config Starts Here
+ ******************************/
+ setarray $@DYE_color_names$, "Red", "Green", "Dark Blue", "Yellow", "Light blue", "Pink", "Black", "Orange", "Purple", "Dark Green";
+ setarray $@DYE_colors$, "Red", "Green", "DarkBlue", "Yellow", "LightBlue", "Pink", "Black", "Orange", "Purple", "DarkGreen";
+
+ setarray $@DYE_items$, "CottonShirt", "CottonCloth", "VNeckSweater", "Turtleneck", "CottonShorts", "CottonTrousers", "CottonSkirt", "Miniskirt", "TankTop", "ShortTankTop", "SilkRobe", "CottonHeadband", "DesertHat", "CottonBoots", "CottonGloves", "RabbitEars", "WizardHat", "BowlerHat", "BowlerHatBrown", "FineDress", "Contributor", "SorcererRed", "SorcererGreen", "SorcererDBlue", "SorcererYellow", "SorcererLBlue", "SorcererPink", "SorcererBlack", "SorcererOrange", "SorcererPurple", "SorcererDGreen", "SorcererWhite";
+ setarray $@DYE_item_names$, "Cotton Shirt", "Cotton Cloth", "V-Neck Sweater", "Turtleneck Sweater", "Cotton Shorts", "Cotton Trousers", "Cotton Skirt", "Miniskirt", "Tank Top", "Short Tank Top", "Silk Robe", "Cotton Headband", "Desert Hat", "Cotton Boots", "Cotton Gloves", "Rabbit Ears", "Wizard Hat", "Bowler Hat", "Bowler Hat (brown)", "Fine Dress", "Contributor Shirt", "Sorcerer Robe (Red)", "Sorcerer Robe (Green)", "Sorcerer Robe (Dark Blue)", "Sorcerer Robe (Yellow)", "Sorcerer Robe (Light Blue)", "Sorcerer Robe (Pink)", "Sorcerer Robe (Black)", "Sorcerer Robe (Orange)", "Sorcerer Robe (Purple)", "Sorcerer Robe (Dark Green)", "Sorcerer Robe (White)";
+ /******************************
+ Config Ends Here
+ ******************************/
+
+ set $@w, 0;
+ freeloop 1; // do not check for infinity loop
+ callsub S_Array;
+ freeloop 0; // re-enable infinity loop check
+ set $@w, 0;
+ set $@c, 0;
+ end;
+
+S_Array:
+ if(getitemname($@DYE_items$[$@w]) == "Unknown Item") goto L_Fail;
+ set $@c, 0;
+ callsub S_Color;
+ set $@w, $@w + 1;
+ if($@w < getarraysize($@DYE_items$)) goto S_Array;
+ return;
+
+L_Fail:
+ debugmes "Dye Fail: "+$@DYE_items$[$@w];
+ mapexit;
+
+S_Color:
+ if(getitemname($@DYE_colors$[$@c] + $@DYE_items$[$@w]) == "Unknown Item") goto L_Fail;
+ set $@c, $@c + 1;
+ if($@c < getarraysize($@DYE_colors$)) goto S_Color;
+ return;
+}
diff --git a/world/map/npc/functions/ferry.txt b/world/map/npc/functions/ferry.txt
index 3d5f8ebb..aad92b14 100644
--- a/world/map/npc/functions/ferry.txt
+++ b/world/map/npc/functions/ferry.txt
@@ -40,8 +40,6 @@ L_NextDock:
donpcevent "#k1sound::OnCommandDing";
donpcevent "#k2sound::OnCommandDing";
- //mapannounce "035-2", " Koga - Main:* Now arriving in "+$@MainDocks$[$@MainCurrentDock]+".", 0;
- //mapannounce "036-2", " Koga - Candor:* Now arriving in "+$@CandorDocks$[$@CandorCurrentDock]+".", 0;
initnpctimer;
if($@MainCurrentDock == 2) goto L_k1city1;
@@ -52,8 +50,6 @@ L_NextDock:
OnTimer8000:
if ($@DockTickCount > $@DockLeaveCount)
goto L_NextDock;
- //mapannounce "035-2", "Koga - Main:* Now docked in "+$@MainDocks$[$@MainCurrentDock]+", Departing soon", 0;
- //mapannounce "036-2", "Koga - Candor:* Now docked in "+$@CandorDocks$[$@CandorCurrentDock]+", Departing soon", 0;
set $@DockTickCount, $@DockTickCount + 1;
initnpctimer;
end;
diff --git a/world/map/npc/functions/game_rules.txt b/world/map/npc/functions/game_rules.txt
index cbd4b8fb..d0b30c0d 100644
--- a/world/map/npc/functions/game_rules.txt
+++ b/world/map/npc/functions/game_rules.txt
@@ -78,14 +78,14 @@ L_French:
goto L_End;
L_Spanish:
- mes "Los jugadores que infrinjan las siguientes reglas pueden ser bloqueados (incluso permanentemente) o se reiniciarán al nivel 1 sus personajes, según el criterio de los GM:";
- mes "1. No abuse de otros jugadores (esto incluye insultos, malas palabras, y similares dirigidas a una o varias personas)";
- mes "2. No utilizar programas automáticos (incluyendo CUALQUIER actividad con el usuario lejos del teclado o el seguimiento automático)";
- mes "3. No envíe mensajes publicitarios o inunde el chat de mensajes (incluyendo los mensajes de intercambio)";
+ mes "Los jugadores que rompan las siguientes reglas pueden ser bloqueados (incluso permanentemente), o se les restablecerán sus personajes, según el criterio del GM:";
+ mes "1. No abusar de otros jugadores (insultos, malas palabras, y similares dirigidas a una o varias personas)";
+ mes "2. No utilizar programas automáticos (incluyendo el seguimiento automático y CUALQUIER otra actividad mientras el jugador está lejos del teclado)";
+ mes "3. No enviar mensajes publicitarios ni inundar el chat de mensajes (incluyendo los mensajes de intercambio)";
mes "4. No mendigar.";
- mes "5. Escriba únicamente en Inglés en el chat público";
- mes "6. Trate a los demás de la misma forma que le gustaría ser tratado";
- mes "El uso de programas automáticos para jugar sin estar frente al teclado se determinará hablando con los jugadores que estén moviéndose y/o atacando.";
+ mes "5. Hablar únicamente en Inglés en el chat público";
+ mes "6. Tratar a los demás de la misma forma que le gustaría ser tratado";
+ mes "El uso de programas automáticos para jugar sin estar frente al teclado será determinado al hablar con los jugadores que estén moviéndose y/o atacando.";
mes "El seguimiento automático será determinado por observación.";
goto L_End;
@@ -125,15 +125,15 @@ L_Polish:
goto L_End;
L_Italian:
- mes "ATTENTION: this translation is outdated. Please refer to the English version and submit a patch.";
- mes "I giocatori che infrangeranno le seguenti regole saranno bannati (anche permanentemente) o saranno resettati, a discrezione dei Game Masters:";
- mes "1. Vietato abusare degli altri giocatori (insulti, imprecazioni e simili, diretti verso una particolare persona o gruppi di persone)";
- mes "2. Vietato usare bot (ossia effettuare QUALSIASI attività quando non si è presenti alla tastiera)";
- mes "3. Vietato spammare / postare ripetutamente messaggi inutili (incluso spam di richieste di scambio)";
- mes "4. Vietato implorare";
- mes "5. Parlare solo inglese nella chat pubblica";
- mes "6. Tratta gli altri giocatori come vuoi che gli altri trattino te.";
- mes "I bot saranno determinati in base alle risposte e ai movimenti dei giocatori esaminati.";
+ mes "Gli account dei giocatori che infrangeranno le seguenti regole verranno bloccati (anche permanentemente) o i loro personaggi saranno resettati, a discrezione dei GM:";
+ mes "1. Non trattare male gli altri giocatori (questo include insulti, imprecazioni, e simili, diretti verso una persona in particolare o verso gruppi di persone)";
+ mes "2. Non usare bot (ossia non effettuare NESSUNA attività quando non si è al computer)";
+ mes "3. Non effettuare spam o scrivere ripetutamente messaggi inutili (incluso spam con richieste di scambio)";
+ mes "4. Non fare il mendicante, ovvero non importunare gli altri chiedendo soldi o oggetti";
+ mes "5. Non parlare altre lingue al di fuori dell'inglese nella chat pubblica";
+ mes "6. Non fare agli altri ciò che non vuoi sia fatto a te.";
+ mes "I bot saranno individuati scrivendo ai giocatori sospetti che attaccano o camminano, esaminandone le risposte e i movimenti.";
+ mes "Chiunque segua automaticamente un altro giocatore senza dimostrare di non essere un bot, verrà considerato come tale.";
goto L_End;
L_End:
diff --git a/world/map/npc/functions/time.txt b/world/map/npc/functions/time.txt
index 695c4cec..7d16a200 100644
--- a/world/map/npc/functions/time.txt
+++ b/world/map/npc/functions/time.txt
@@ -61,13 +61,20 @@ function|script|time_stamp
// HumanTime - returns a human-readable time
// author: meko
-// Variables:
+// Internal variables:
+// @separator$, @unit$, @unit2$, @unit3$, @unit4$, @unit5$
+// @seconds, @minutes, @hours, @days
+
+// Public Variables:
// input @ms integer
// output @time$ string
function|script|HumanTime
{
set @time$, "now";
+ if(@seconds) set @ms, @ms + (@seconds * 1000);
+ if(@minutes) set @ms, @ms + (@minutes * 60000);
+ if(@days) set @ms, @ms + (@days * 1440000);
if(@ms < 1000) goto L_Millis; // under 1 second we have nothing to count
set @seconds, @ms / 1000;
set @ms, @ms % 1000;
@@ -77,8 +84,11 @@ function|script|HumanTime
if(@minutes < 60) goto L_Minutes;
set @hours, @minutes / 60;
set @minutes, @minutes % 60;
- if(@hours < 60) goto L_Hours;
- return;
+ if(@hours < 24) goto L_Hours;
+ set @days, @hours / 24;
+ set @hours, @hours % 24;
+ if(@days) goto L_Days;
+ goto L_Clean;
L_Millis:
set @time$, @ms + "ms";
@@ -91,7 +101,7 @@ L_Seconds:
if(@ms > 1) set @unit2$, "milliseconds";
set @time$, @seconds + " " + @unit$;
if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit2$;
- return;
+ goto L_Clean;
L_Minutes:
set @unit$, "minute";
@@ -105,7 +115,7 @@ L_Minutes:
if(@ms) set @separator$, ", ";
if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit2$;
if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit3$;
- return;
+ goto L_Clean;
L_Hours:
set @unit$, "hour";
@@ -124,5 +134,42 @@ L_Hours:
if(@ms) set @separator$, ", ";
if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit3$;
if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit4$;
+ goto L_Clean;
+
+L_Days:
+ set @unit$, "day";
+ if(@hours > 1) set @unit$, "days";
+ set @unit2$, "hour";
+ if(@hours > 1) set @unit2$, "hours";
+ set @unit3$, "minute";
+ if(@minutes > 1) set @unit3$, "minutes";
+ set @unit4$, "second";
+ if(@seconds > 1) set @unit4$, "seconds";
+ set @unit5$, "millisecond";
+ if(@ms > 1) set @unit5$, "milliseconds";
+ set @time$, @days + " " + @unit$;
+ set @separator$, " and ";
+ if(@minutes || @seconds || @ms) set @separator$, ", ";
+ if(@hours) set @time$, @time$ + @separator$ + @hours + " " + @unit2$;
+ set @separator$, " and ";
+ if(@seconds || @ms) set @separator$, ", ";
+ if(@minutes) set @time$, @time$ + @separator$ + @minutes + " " + @unit3$;
+ set @separator$, " and ";
+ if(@ms) set @separator$, ", ";
+ if(@seconds) set @time$, @time$ + @separator$ + @seconds + " " + @unit3$;
+ if(@ms) set @time$, @time$ + " and " + @ms + " " + @unit4$;
+ goto L_Clean;
+
+L_Clean:
+ set @unit$, "";
+ set @unit2$, "";
+ set @unit3$, "";
+ set @unit4$, "";
+ set @unit5$, "";
+ set @seconds, 0;
+ set @minutes, 0;
+ set @hours, 0;
+ set @days, 0;
+ set @separator$, "";
return;
}
diff --git a/world/map/npc/functions/travelers.txt b/world/map/npc/functions/travelers.txt
index a1db712e..07b084d9 100644
--- a/world/map/npc/functions/travelers.txt
+++ b/world/map/npc/functions/travelers.txt
@@ -189,6 +189,13 @@ L_TravelPachua:
set @NextLocationMap$, "006-1";
set @NextLocationX, 28;
set @NextLocationY, 97;
+ if(QUEST_MIRIAM_start != 0) goto L_Cheat;
+ goto L_TravelChecks;
+
+L_Cheat:
+ set QUEST_MIRIAM_cheat, 1;
+ set QUEST_MIRIAM_run, gettimetick(2) - QUEST_MIRIAM_start;
+ set QUEST_MIRIAM_start, 0;
goto L_TravelChecks;
L_TravelBarbarians: