summaryrefslogtreecommitdiff
path: root/npc/commands/debug-preset.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/commands/debug-preset.txt')
-rw-r--r--npc/commands/debug-preset.txt253
1 files changed, 0 insertions, 253 deletions
diff --git a/npc/commands/debug-preset.txt b/npc/commands/debug-preset.txt
deleted file mode 100644
index 1fbad520..00000000
--- a/npc/commands/debug-preset.txt
+++ /dev/null
@@ -1,253 +0,0 @@
-// Preset / routine system
-// Author:
-// gumi
-// Description:
-// allows to execute multiple commands in a single step
-// to ease testing and debugging
-//
-// usage: @pre [options] <instruction>[, <instruction>...]
-// usage: DoRoutine "[options] <instruction>[, <instruction>...]";
-//
-// example: @pre -s a22 v14
-// resets all stats, gives 22 agi, gives 14 vit
-//
-// ^ actual documentation may come one day, when I feel like it
-// *hides*
-
-function script DoRoutine {
-
- function parsev {
- // parsev(base, patterns{, min{, max}}) => value
- .@value = getarg(0, 0);
- .@raw$ = getarg(1, "");
- .@patterns = explode(.@patterns$, .@raw$, "|");
-
- for (.@pattern = 0; .@pattern < .@patterns; ++.@pattern)
- {
- .@pattern$ = .@patterns$[.@pattern];
- .@len = getstrlen(.@pattern$);
-
- if (charat(.@pattern$, 0) == "=" && .@len >= 2)
- {
- .@value = atoi(delchar(.@pattern$, 0));
- break;
- }
-
- else if (charat(.@pattern$, 0) == "+" && .@len >= 2)
- {
- if (charat(.@pattern$, 1) == "+" && getargcount() >= 4)
- .@value = getarg(3);
- else
- .@value += atoi(delchar(.@pattern$, 0));
- }
-
- else if (charat(.@pattern$, 0) == "-" && .@len >= 2)
- {
- if (charat(.@pattern$, 1) == "-" && getargcount() >= 3)
- .@value = getarg(2);
- else
- .@value -= atoi(delchar(.@pattern$, 0));
- }
-
- else if (charat(.@pattern$, 0) == ">" && .@len >= 2)
- {
- if (charat(.@pattern$, 1) == "=" && .@len >= 3)
- .@value = max(atoi(substr(.@pattern$, 2, .@len - 1)), .@value);
- else
- .@value = max(atoi(delchar(.@pattern$, 0)) + 1, .@value);
- }
-
- else if (charat(.@pattern$, 0) == "<" && .@len >= 2)
- {
- if (charat(.@pattern$, 1) == "=" && .@len >= 3)
- .@value = min(atoi(substr(.@pattern$, 2, .@len - 1)), .@value);
- else
- .@value = min(atoi(delchar(.@pattern$, 0)) - 1, .@value);
- }
-
- else if (.@len >= 1)
- {
- .@value = atoi(.@pattern$);
- break;
- }
- }
-
- if (getargcount() >= 3)
- .@value = max(getarg(2), .@value);
-
- if (getargcount() >= 4)
- .@value = min(getarg(3), .@value);
-
- return .@value;
- }
-
- .@routine$ = strip(getarg(0,""));
- .@m = explode(.@routine$[0], .@routine$, " "); // prep the base array
-
- if (charat(.@routine$[0], 0) == "-")
- {
- if (compare(.@routine$[0], "t"))
- {
- clearitem;
- }
-
- if (compare(.@routine$[0], "e"))
- {
- nude;
- }
-
- if (compare(.@routine$[0], "k"))
- {
- resetskill;
- }
-
- if (compare(.@routine$[0], "s"))
- {
- resetstatus;
- }
-
- if (compare(.@routine$[0], "x"))
- {
- resetlvl 2;
- }
-
- if (compare(.@routine$[0], "q"))
- {
- //doevent "::OnGlobalQuestReset"; // executes in all quest npcs // FIXME: maybe have a `resetquest` buildin?
- // FIXME: ^ need a buildin that can run *right now* instead of on script end
- }
-
- if (compare(.@routine$[0], "n"))
- {
- closeclientdialog;
- }
-
- .@i = 1;
- }
-
- for (; .@i < .@m; ++.@i)
- {
- .@type = ord(charat(strip(.@routine$[.@i]), 0));
-
- if (.@type > 0)
- {
- .@raw$ = delchar(.@routine$[.@i], 0);
- .@args = explode(.@args$, .@raw$, ",");
- .@a = atoi(.@args$[0]);
- .@b = atoi(.@args$[1]);
- .@c = atoi(.@args$[2]);
- .@d = atoi(.@args$[3]);
- .@e = atoi(.@args$[4]);
-
- switch (.@type)
- {
- case 97: /* a => Agi */
- .@base = readparam(bAgi);
- statusup2 bAgi, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- case 98: /* b => body type */
- .@desired_bt = max(1, min(3, .@a));
- break;
- case 99: /* c => job */
- jobchange max(0, min(6, .@a));
- break;
- case 100: /* d => Dex */
- .@base = readparam(bDex);
- statusup2 bDex, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- case 101: /* e => equip */
- equip max(1, min(32767, .@a));
- break;
- /* (f) */
- /* (g) */
- /* (h) */
- case 105: /* i => Int */
- .@base = readparam(bInt);
- statusup2 bInt, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- /* (j) */
- case 107: /* k => skill */
- .@k = max(1, min(32767, .@a));
- skill .@k, parsev(getskilllv(.@k), .@args$[1], 0, 10), 0;
- break;
- case 108: /* l => luk */
- .@base = readparam(bLuk);
- statusup2 bLuk, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- /* (m) => mercenary (reserved) */
- /* (n) => talk to npc (reserved) */
- /* (o) */
- case 112: /* p => pet */
- makepet max(1002, min(32767, .@a));
- break;
- case 113: /* q => quest */
- .@q = max(0, min(32767, .@a));
- setq .@q, parsev(getq(.@q), .@args$[1]),
- parsev(getq2(.@q), .@args$[2]),
- parsev(getq3(.@q), .@args$[3]),
- parsev(getqtime(.@q), .@args$[4]);
- break;
- /* (r) */
- case 115: /* s => Str */
- .@base = readparam(bStr);
- statusup2 bStr, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- case 116: /* t => item */
- .@t = max(1, min(32767, .@a));
- .@c = countitem(.@t);
- .@v = parsev(.@c, .@args$[1], 0, 32767);
- if (.@c > .@v)
- delitem .@t, .@c - .@v;
- else if (.@c < .@v)
- getitem .@t, .@v - .@c;
- break;
- /* (u) */
- case 118: /* v => vit */
- .@base = readparam(bVit);
- statusup2 bVit, parsev(.@base, .@args$[0], 1, 99) - .@base;
- break;
- case 119: /* w => warp */
- warp .@args$[0], .@b, .@c;
- break;
- case 120: /* x => base level */
- BaseLevel = parsev(BaseLevel, .@args$[0], 1, 99);
- BaseExp = parsev(BaseExp, .@args$[1], 0);
- break;
- case 121: /* y => job level */
- JobLevel = parsev(JobLevel, .@args$[0], 1, 255);
- JobExp = parsev(JobExp, .@args$[1], 0);
- break;
- case 122: /* z => zeny */
- Zeny = parsev(Zeny, .@args$[0], 0, 0x7FFFFFFE);
- BankVault = parsev(BankVault, .@args$[1], 0, MAX_BANK_ZENY);
- break;
- }
- }
- }
-
- if (.@desired_bt && BodyType != .@desired_bt) {
- sleep2(500);
- BodyType = .@desired_bt; // this forces a logout so we must be it last
- }
-
- return;
-}
-
-- script @pre 32767,{
- end;
-
-OnCall:
- if (!debug && !is_admin())
- {
- end;
- }
- if (.@atcmd_parameters$[0] != "")
- {
- .@atcmd_parameters$[0] = implode(.@atcmd_parameters$[0], " ");
- }
- DoRoutine strip(.@atcmd_parameters$[0]);
- end;
-
-OnInit:
- bindatcmd "pre", "@pre::OnCall", 0, 99, 0;
-}