diff options
Diffstat (limited to 'npc/001-2-43/core.txt')
-rw-r--r-- | npc/001-2-43/core.txt | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/npc/001-2-43/core.txt b/npc/001-2-43/core.txt new file mode 100644 index 00000000..9f541b54 --- /dev/null +++ b/npc/001-2-43/core.txt @@ -0,0 +1,146 @@ +// Evol scripts. +// Author: +// Micksha, Jesusalva +// Description: +// Core of Henry's Quest + +001-2-43,25,24,0 script #ArtisThiefBook_1 NPC_NO_SPRITE,{ + .@q=getq(ThiefQuests_Artis); + .@q3=getq3(ThiefQuests_Artis); + + // Add a forced delay to prevent abuse + if (.@q != 1) end; + getmapxy(.@m$, @x, @y, 0); // Save in @x/@y + dispbottom l("Sec, lemme look this."); + addtimer 1000, .name$+"::OnRead"; + end; + +OnRead: + // Prepare the Quest Variables + .@q=getq(ThiefQuests_Artis); + .@q3=getq3(ThiefQuests_Artis); + + // You must not have moved + getmapxy(.@m$, .@x, .@y, 0); + if (.@x != @x || .@y != @y || .@q != 1) { + dispbottom l("I'm so busy, I can look there later."); + end; + } + + // Clear temporary variables + @x=@y=0; + + // Extract the quest ID from name (or fail trying) + explode(.@ni$, .name$, "_"); + .@id=atoi(.@ni$[1]); + + // Check if the file was here + if (.@q3 == .@id) { + // TODO: Dialog: How will you deal with the file? + // .@t$=faction_addrep("Legion", 50) + // .@t$=faction_addrep("Thief", 50) + // mesc .@t$; + mes l("This is it - Henry's files!"); + mes l("I need to decide swiftly what I'll do with them before I'm caught."); + next; + select + l("Hide the file below the pots"), + l("[Legion+] [Thieves-] Highlight the file"), + l("[Legion-] [Thieves+] Destroy the file"); + mes ""; + switch (@menu) { + case 2: + .@t$=faction_addrep("Legion", 50); + mesc .@t$; + .@t$=faction_addrep("Thief", -50); + mesc .@t$; + next; + break; + case 3: + .@t$=faction_addrep("Legion", -50); + mesc .@t$; + .@t$=faction_addrep("Thief", 50); + mesc .@t$; + next; + break; + } + dispbottom l("You notice by chance that the file does not have any picture on it."); + setq ThiefQuests_Artis, 2, 0, 0; + closeclientdialog; + } else { + dispbottom l("Not here, lets look elsewhere!"); + } + end; + +OnInit: + .distance=1; + end; +} + +// Duplicate the town files +001-2-43,24,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_2 NPC_NO_SPRITE +001-2-43,25,32,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_4 NPC_NO_SPRITE +001-2-43,29,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_8 NPC_NO_SPRITE +001-2-43,34,32,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_16 NPC_NO_SPRITE +001-2-43,38,32,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_32 NPC_NO_SPRITE +001-2-43,44,32,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_64 NPC_NO_SPRITE +001-2-43,48,32,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_128 NPC_NO_SPRITE +001-2-43,48,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_256 NPC_NO_SPRITE +001-2-43,43,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_512 NPC_NO_SPRITE +001-2-43,38,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_1024 NPC_NO_SPRITE +001-2-43,33,28,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_2048 NPC_NO_SPRITE +001-2-43,53,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_4096 NPC_NO_SPRITE +001-2-43,44,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_8192 NPC_NO_SPRITE +001-2-43,29,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_16384 NPC_NO_SPRITE +001-2-43,39,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_32768 NPC_NO_SPRITE +001-2-43,49,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_65536 NPC_NO_SPRITE +// Fail-safe; Henry's record should not be here +001-2-43,34,24,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_131072 NPC_NO_SPRITE +//001-2-43,29,31,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_131072 NPC_NO_SPRITE +//001-2-43,24,26,0 duplicate(#ArtisThiefBook_1) #ArtisThiefBook_262144 NPC_NO_SPRITE + + +// Logical Handler +001-2-43,0,0,0 script #ArtisThiefBook_0 NPC_HIDDEN,{ + end; +OnBust1: + if (getmap() != .map$) + end; + dispbottom col(l("90 seconds remaining."), 1); + addtimer 30000, "#ArtisThiefBook_0::OnBust2"; + end; + +OnBust2: + if (getmap() != .map$) + end; + dispbottom col(l("60 seconds remaining."), 1); + addtimer 30000, "#ArtisThiefBook_0::OnBust3"; + end; + +OnBust3: + if (getmap() != .map$) + end; + dispbottom col(l("30 seconds remaining."), 1); + addtimer 30000, "#ArtisThiefBook_0::OnBust4"; + end; + +OnBust4: + if (getmap() == .map$) { + // Warp you elsewhere before actually arresting + // Otherwise, you would return at Archives without this timer =/ + warp "001-1", 90, 55; + sleep2(10); + + // Check if you'll be caught + if (ArrestedChances()) { + mesc l("Arrested!"); + mesc l("You'll now spend a few minutes on the jail to reflect on your actions."); + ArrestPlayer(5); + } else { + mesc l("You're almost found out, but manage to make a quick escape!"); + warp "001-1", 90, 55; + } + } + close; +} + |