From d890751e6fad356e92c01839aa638378e0c48967 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 20 May 2019 15:17:33 -0300 Subject: Rework Blue Sage logic --- db/constants.conf | 25 +++++++------------------ npc/020-7-1/janitors.txt | 32 +++++++++++++++++++++----------- npc/020-7-1/pagefinders.txt | 10 ++++++++-- npc/020-7-1/pagemakers.txt | 23 ++++++++++++++++------- npc/020-7/elias.txt | 18 ++++++++---------- npc/020-7/workers.txt | 15 ++++++++++----- 6 files changed, 70 insertions(+), 53 deletions(-) diff --git a/db/constants.conf b/db/constants.conf index 018aa6341..da8890a41 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -4312,24 +4312,13 @@ constants_db: { BS_PMPAGE: 4 BS_PMGLUE: 8 // N - Npc - BS_NELIAS: 1 - BS_NMIRO: 2 - BS_NLENITA: 4 - BS_NEEVERT: 8 - BS_NJANIKA: 16 - BS_NKULLERVO: 32 - BS_NSANTERI: 64 - BS_NPYRY: 128 - BS_NNEA: 256 - BS_NARVO: 512 - BS_NKRISTIAN: 1024 - BS_NMIRJAMI: 2048 - BS_NENSIO: 4096 - BS_NHENRIIKKA: 8192 - BS_NTEUVO: 16384 - BS_NOSKARI: 32768 - BS_NPEETU: 65536 - BS_NNIKOLAI: 131072 + BS_NPC01: 1 + BS_NPC02: 2 + BS_NPC03: 4 + BS_NPC04: 8 + BS_NPC05: 16 + BS_NPC06: 32 + BS_NPC07: 64 // S - Slime Nest BS_SNEST1: 1 BS_SNEST2: 2 diff --git a/npc/020-7-1/janitors.txt b/npc/020-7-1/janitors.txt index 8ee068754..b94147df9 100644 --- a/npc/020-7-1/janitors.txt +++ b/npc/020-7-1/janitors.txt @@ -17,6 +17,7 @@ end; OnInit: + .bsId=BS_NPC06; .sex=G_MALE; .distance=5; npcsit; @@ -68,6 +69,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq2(NivalisQuest_BlueSageSlimes); next; @@ -103,8 +106,8 @@ function askQuestion { next; mesn; mesq l("I really wonder how that accident could've happened. I'd have never expected him to mess something up like that."); - if (is_between(4, 7, .@q)) - setq1 NivalisQuest_BlueSage, .@q + 3; + if (!(.@q3 & .bsId)) + setq3 NivalisQuest_BlueSage, .@q3 | .bsId; break; } } while (@menu != 4); @@ -112,6 +115,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC05; .sex=G_FEMALE; .distance=5; npcsit; @@ -163,6 +167,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq2(NivalisQuest_BlueSageSlimes); next; @@ -198,9 +204,8 @@ function askQuestion { next; mesn; mesq l("I tried to keep an eye on him after that, but when I got distracted by some newly arriving visitor he went over to the workshop again! Usually I enjoy my job, because I like talking to people, but this guy... was a pain, really."); - // It's safe in this context, don't worry - if (.@qs % 3 == 0) - setq1 NivalisQuest_BlueSage, .@q + 1; + if (!(.@q2 & .bsId)) + setq2 NivalisQuest_BlueSage, .@q2 | .bsId; break; case 3: mesn; @@ -212,6 +217,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC04; .sex=G_MALE; .distance=5; end; @@ -266,6 +272,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq2(NivalisQuest_BlueSageSlimes); next; @@ -293,9 +301,8 @@ function askQuestion { next; mesn; mesq l("But still, he can't just walk in there, fiddle with the experiments and disturb the helpers doing their work."); - // It's safe in this context, don't worry - if (.@qs % 3 == 0) - setq1 NivalisQuest_BlueSage, .@q + 1; + if (!(.@q2 & .bsId)) + setq2 NivalisQuest_BlueSage, .@q2 | .bsId; break; case 3: mesn; @@ -307,6 +314,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC05; .sex=G_MALE; .distance=5; end; @@ -353,6 +361,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq2(NivalisQuest_BlueSageSlimes); next; @@ -385,9 +395,8 @@ function askQuestion { next; mesn; mesq l("Visitors should keep away from those!"); - // It's safe in this context, don't worry - if (.@qs % 3 == 0) - setq1 NivalisQuest_BlueSage, .@q + 1; + if (!(.@q2 & .bsId)) + setq2 NivalisQuest_BlueSage, .@q2 | .bsId; break; case 3: mesn; @@ -399,6 +408,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC06; .sex=G_FEMALE; .distance=5; end; diff --git a/npc/020-7-1/pagefinders.txt b/npc/020-7-1/pagefinders.txt index 0a9defcee..719b7da6b 100644 --- a/npc/020-7-1/pagefinders.txt +++ b/npc/020-7-1/pagefinders.txt @@ -18,6 +18,7 @@ end; OnInit: + .bsId=BS_NPC07; .sex=G_MALE; .distance=5; npcsit; @@ -56,6 +57,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq3(NivalisQuest_BlueSage); next; @@ -150,6 +153,8 @@ OnInit: function askQuestion { do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); .@qt=getq3(NivalisQuest_BlueSage); next; @@ -178,8 +183,8 @@ function askQuestion { next; mesn; mesq l("But to be fair, from what I've seen Peetu was always very attentive and dutiful."); - if (is_between(4, 7, .@q)) - setq1 NivalisQuest_BlueSage, .@q + 3; + if (!(.@q3 & .bsId)) + setq3 NivalisQuest_BlueSage, .@q3 | .bsId; break; } } while (@menu != 4); @@ -187,6 +192,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC07; .sex=G_MALE; .distance=5; npcsit; diff --git a/npc/020-7-1/pagemakers.txt b/npc/020-7-1/pagemakers.txt index 1158b62d6..e54a7641b 100644 --- a/npc/020-7-1/pagemakers.txt +++ b/npc/020-7-1/pagemakers.txt @@ -96,6 +96,8 @@ function askQuestion { .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qt=getq2(NivalisQuest_BlueSagePagemaker); next; select @@ -115,8 +117,8 @@ function askQuestion { next; mesn; mesq l("That's why I'm really confused about this situation, since he was the one performing the sealing of the slimes. I wonder what went wrong."); - if (is_between(4, 7, .@q)) - setq1 NivalisQuest_BlueSage, .@q + 3; + if (!(.@q3 & .bsId)) + setq3 NivalisQuest_BlueSage, .@q3 | .bsId; break; case 4: close; @@ -126,6 +128,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC02; .sex=G_MALE; .distance=5; npcsit; @@ -198,6 +201,8 @@ function askQuestion { .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qt=getq2(NivalisQuest_BlueSagePagemaker); next; select @@ -214,9 +219,8 @@ function askQuestion { mesn; mesc l("She shakes her head."); mesq l("Sometimes I think it'd be better not to allow visitors here. But Nikolai set a high value on keeping contact with the population. Politics."); - // It's safe in this context, don't worry - if (.@q % 3 == 0) - setq1 NivalisQuest_BlueSage, .@q + 1; + if (!(.@q2 & .bsId)) + setq2 NivalisQuest_BlueSage, .@q2 | .bsId; break; case 3: mesn; @@ -229,6 +233,7 @@ function askQuestion { return; } OnInit: + .bsId=BS_NPC02; .sex=G_FEMALE; .distance=5; end; @@ -263,6 +268,7 @@ OnInit: end; OnInit: + .bsId=BS_NPC03; .sex=G_MALE; .distance=5; npcsit; @@ -336,6 +342,8 @@ function askQuestion { .@qs=BSQuestion(getq(NivalisQuest_BlueSage)); do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); .@qt=getq2(NivalisQuest_BlueSagePagemaker); next; select @@ -355,8 +363,8 @@ function askQuestion { next; mesn; mesq l("I really wonder what went wrong. I can't imagine Peetu messing up something so important."); - if (is_between(4, 7, .@q)) - setq1 NivalisQuest_BlueSage, .@q + 3; + if (!(.@q3 & .bsId)) + setq3 NivalisQuest_BlueSage, .@q3 | .bsId; break; case 4: mesn; @@ -368,6 +376,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC04; .sex=G_MALE; .distance=5; end; diff --git a/npc/020-7/elias.txt b/npc/020-7/elias.txt index 2c60ce465..14f171ef9 100644 --- a/npc/020-7/elias.txt +++ b/npc/020-7/elias.txt @@ -10,11 +10,10 @@ // NivalisQuest_BlueSage STRUCTURE // FIELD 1: // INVESTIGATION -// 1 - ACCESS GRANTED -// 2~11 - FOLLOW LOGIC +// 1 - STBY OUTSIDE +// 2 - ACCESS GRANTED +// 3 - QUEST ASSIGNED BY PEETU // 12 - COMPLETE -// 13 - STDBY OUTSIDE -// 14 - STDBY INSIDE // FIELD 2: // Bitwise (BS_QVISITOR) // FIELD 3: @@ -23,7 +22,7 @@ 020-7,44,41,0 script #BlueSageEntry NPC_HIDDEN,1,1,{ OnTouch: .@q=getq(NivalisQuest_BlueSage); - if (!.@q || .@q == 13) { + if (.@q < 2) { slide 42, 43; doevent "Elias::OnAccessDenied"; } @@ -38,9 +37,8 @@ OnTouch: function eliasConfirmed; mesn; mesq l("Hello, and welcome to Blue Sage's Residence, Library, and Nivalis Townhall."); - // TODO .@q=getq(NivalisQuest_BlueSage); - if (.@q && .@q != 13) + if (.@q >= 2) goto L_Main; next; mesn; @@ -50,7 +48,7 @@ OnTouch: select l("That's sad to hear."), rif(.@qn == 10 && !.@q, l("I have a letter from Rakinorf.")), - rif(.@q == 13, l("So? How was it?")), + rif(.@q == 1, l("So? How was it?")), l("What happened?"); mes ""; switch (@menu) { @@ -60,7 +58,7 @@ OnTouch: next; mesn; mesq l("Please wait here a short while."); - setq NivalisQuest_BlueSage, 13, 0, 0; + setq NivalisQuest_BlueSage, 1, 0, 0; break; case 3: mesn; @@ -71,7 +69,7 @@ OnTouch: next; mesn; mesq l("You may pass. The Sage is on the library waiting for you."); - setq NivalisQuest_BlueSage, 14, 0, 0; + setq NivalisQuest_BlueSage, 2, 0, 0; break; case 4: mesn; diff --git a/npc/020-7/workers.txt b/npc/020-7/workers.txt index 5643c9389..b5d2f734e 100644 --- a/npc/020-7/workers.txt +++ b/npc/020-7/workers.txt @@ -26,6 +26,8 @@ function askQuestion { .@qs=getarg(0); do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); next; select rif(.@qs & BS_QVISITOR, l("Do you know anything about the strange visitor?")), @@ -43,8 +45,8 @@ function askQuestion { next; mesn; mesq l("If Nikolai's helpers weren't so carefully chosen, I'd think this was some kind of a bad joke from someone."); - if (is_between(4, 7, .@q)) - setq1 NivalisQuest_BlueSage, .@q + 3; + if (!(.@q3 & .bsId)) + setq3 NivalisQuest_BlueSage, .@q3 | .bsId; break; } } while (@menu != 3); @@ -52,6 +54,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC01; .sex=G_MALE; .distance=5; npcsit; @@ -125,6 +128,8 @@ function askQuestion { .@qs=getarg(0); do { .@q=getq(NivalisQuest_BlueSage); + .@q2=getq2(NivalisQuest_BlueSage); + .@q3=getq3(NivalisQuest_BlueSage); next; select rif(.@qs & BS_QVISITOR, l("Do you know anything about the strange visitor?")), @@ -135,9 +140,8 @@ function askQuestion { case 1: mesn; mesq l("With a mask? Yeah, I remember. That was a strange guy. He came to visit the library, but he lurked around at the workshop area and they had to send him back to the books."); - // It's safe in this context, don't worry - if (.@q % 3 == 0) - setq1 NivalisQuest_BlueSage, .@q + 1; + if (!(.@q2 & .bsId)) + setq2 NivalisQuest_BlueSage, .@q2 | .bsId; break; case 2: mesn; @@ -149,6 +153,7 @@ function askQuestion { } OnInit: + .bsId=BS_NPC01; .sex=G_FEMALE; .distance=5; npcsit; -- cgit v1.2.3-60-g2f50