diff options
-rw-r--r-- | npc/functions/util.txt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/npc/functions/util.txt b/npc/functions/util.txt index 6e390a70b..60274204e 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -650,3 +650,55 @@ function script gettimeparam { return .@t; } + +// Bug Warning +// ReportBug( BugID, {Flags{, Return Code}} ) +function script ReportBug { + // Fill variable + .@msg$=getarg(0); + .@gf=getarg(1,RB_DEFAULT); + + if (.@gf & RB_DISPBOTTOM) + dispbottom("ERROR: "+.@msg$); + + if (.@gf & RB_DEBUGMES) + debugmes("[Warning] "+.@msg$); + + if (.@gf & RB_SPEECH) + mesc("ERROR, REPORT ME! "+.@msg$, 1); + + if (.@gf & RB_PLEASEREPORT) + dispbottom("Please take a screenshot and report this bug, explaining how it happened."); + + if (.@gf & RB_ISFATAL) { + if (.@gf & RB_SPEECH) { + mesc l("This error is fatal."), 1; + close; + } + if (.@gf & RB_DISPBOTTOM) + dispbottom("This error is fatal, we stop execution."); + + if (.@gf & RB_DEBUGMES) + debugmes("[Error] The error is fatal."); + end; + } + + return getarg(2, 0); + +} + +// Upon entering a town +// EnterTown( LocName ) +function script EnterTown { + // Fill variable + .@v$=getarg(0); + + // Validade variable, see npc/000-1/exit.txt first + setarray .@locs$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Lilit", "Nival", "Frostia"; + if (array_find(.@locs$, .@v$) < 0) + return ReportBug("Invalid location passed to EnterTown: "+.@v$); + + LOCATION$=.@v$; + return; +} + |