diff options
Diffstat (limited to 'world/map/npc/functions')
-rw-r--r-- | world/map/npc/functions/clear_vars.txt | 30 | ||||
-rw-r--r-- | world/map/npc/functions/gm_island.txt | 35 |
2 files changed, 65 insertions, 0 deletions
diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt index e98def7d..2abfb118 100644 --- a/world/map/npc/functions/clear_vars.txt +++ b/world/map/npc/functions/clear_vars.txt @@ -18,6 +18,7 @@ function|script|ClearVariables callsub S_Flags; callsub S_Bitmask; callsub S_BlueSage; + callsub S_Luca; callsub S_Easter; callsub S_Easter2008; @@ -236,6 +237,35 @@ S_BlueSage: set QUEST_BlueSage, QUEST_BlueSage & ~((1<<5)|(1<<6)|(1<<7)); return; +S_Luca: + if (FLAGS & FLAG_LUCA_FIX) goto S_Return; + if (FLAGS & FLAG_LUCA_6SKILLS_MAXED) goto S_Luca6; + if (FLAGS & FLAG_LUCA_4SKILLS_MAXED) goto S_Luca4; + if (FLAGS & FLAG_LUCA_2SKILLS_MAXED) goto S_Luca2; + goto S_LucaX; + +S_Luca6: + if (countitem("AssassinMask") < 1) goto S_Return; + delitem "AssassinMask", 1; + set FLAGS, FLAGS ^ FLAG_LUCA_6SKILLS_MAXED; + goto S_Luca4; + +S_Luca4: + if (countitem("AssassinPants") < 1) goto S_Return; + delitem "AssassinPants", 1; + set FLAGS, FLAGS ^ FLAG_LUCA_4SKILLS_MAXED; + goto S_Luca2; + +S_Luca2: + if (countitem("AssassinBoots") < 1) goto S_Return; + delitem "AssassinBoots", 1; + set FLAGS, FLAGS ^ FLAG_LUCA_2SKILLS_MAXED; + goto S_LucaX; + +S_LucaX: + set FLAGS, FLAGS | FLAG_LUCA_FIX; + return; + S_Flags: if (Open_Underground_Palace_Barrier) set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND; diff --git a/world/map/npc/functions/gm_island.txt b/world/map/npc/functions/gm_island.txt index 3e1127c4..e2763bbf 100644 --- a/world/map/npc/functions/gm_island.txt +++ b/world/map/npc/functions/gm_island.txt @@ -9,6 +9,41 @@ OnInit: disablenpc "Gm Event#3"; end; } +-|script|#Puppet|32767 +{ + mes "You found me! Now please send my coordinates to staff."; + close; + +OnSpawn: + if (GM < G_SYSOP) goto L_GM; + callfunc "argv_splitter"; + if (@argv$[4] == "") goto L_Failed; + set $@PMAP$, @argv$[0]; + set $@PX, @argv$[1]; + set $@PY, @argv$[2]; + set $@PNAME$, @argv$[3]; + set $@PNPC, @argv$[4]; + if (puppet($@PMAP$, $@PX, $@PY, $@PNAME$, $@PNPC) > 0) + gmlog "@puppeter " + @args$; + set $@PMAP$, ""; + set $@PX, 0; + set $@PY, 0; + set $@PNAME$, ""; + set $@PNPC, 0; + end; + +L_Failed: + message strcharinfo(0), "Syntax: @puppeter MAP X Y NAME NPCID"; + end; + +L_GM: + message strcharinfo(0), "puppeter : GM command is level "+ G_SYSOP +", but you are level " + GM; + end; + +OnInit: + registercmd chr(ATCMD_SYMBOL) + "puppeter", strnpcinfo(0)+"::OnSpawn"; + end; +} function|script|GmWarp { if ($@GM_EVENT_WARP == 1) warp "028-1", 110, 30; |