I do not want to spam with another topic, I'll post then a new question in this one:
Now this is something I completely don't understand. I've gotten a headache due to this thing therefore I can no longer think about it.
Here are the 4 last states in DARKKNGT:
IF ~~ THEN BEGIN DK14
SAY ~Dobrze, że się rozumiemy. Od dnia dzisiejszego możesz się uważać, za najbezpieczniejszego złodzieja w okolicy! Ha, do zobaczenia, <CHARNAME>.~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",1)~ EXIT
END
IF ~Global("DarkKnightSpeaks","GLOBAL",1)~ THEN BEGIN DK15
SAY ~Witaj znowu, <CHARNAME>. W gildii nic się nie zmieniło, nie masz żadnych nowych gości, nikt też nie próbował cię zabić. Jest dość nudno, postaraj się o większą ilość wrogów bo zapomnę jak się walczy! No, ale póki co czuj się jak u siebie ... bo to w końcu twoja gildia.~
IF ~~ THEN EXIT
END
Below is the code that starts a new quest, if GLOBAL is 2 (for now I'm getting it using console). This part works, it causes Senion guy to say what he should - so it is SE0 (Senion.d is posted below DARKKNGT)
IF ~Global("DarkKnightSpeaks","GLOBAL",2)~ THEN BEGIN DK18
SAY ~<CHARNAME>! W samą porę, kilka minut temu schwytaliśmy groźnego maga. Wdarł się tu tylnym wejściem, na szczęście moje cienie natychmiast dały mi znać.~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",3)~ EXTERN ~Senion~ 0
END
However, when Senion says SE0 (~Żądam [...]~), it doesn't go to DK19 (that from below), but to ..
IF ~Global("DarkKnightSpeaks","GLOBAL",4)~ THEN BEGIN DK19
SAY ~Ha! Żałosne sztuczki ci nie pomogą, śmiertelniku! Chciałeś zaskoczyć <CHARNAME> i puścić w niego kilka ognistych kul, a potem zmyć się tymi samymi drzwiami, którymi się tu dostałeś! <CHARNAME>, co z nim zrobimy? Chętnie uśmierciłbym go na miejscu albo uczynił niewolnikiem!~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",5)~ EXTERN ~Senion~ 1
END
.. this one. I'm out of ideas what is causing that. Globals seem to be allright, both conditions and setting actions, so what's the hell wrong?
IF ~Global("DarkKnightSpeaks","GLOBAL",6)~ THEN BEGIN DK20
SAY ~Szefie! Czy nie widzisz, że ten człowiek przyszedł cię zabić? Czuć od niego smród nekromanty!~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",8)~ EXTERN ~Senion~ 6
END
DK20 leads to SE6, as it should be.
----
And here is the whole Senion.d
I'll analogically repeat what I typed above. So,
The state from below should lead to DK19, but it isn't - instead it goes to DK20.
BEGIN senion
IF ~Global("DarkKnightSpeaks","GLOBAL",3)~ THEN BEGIN SE0
SAY ~Żądam, żeby mnie natychmiast wypuszczono! Po prostu pomyliłem drzwi!~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",4)~ EXTERN ~DARKKNGT~ 19
END
This part doesn't show cause of those jumps, but if I get the global with console, it works.
IF ~Global("DarkKnightSpeaks","GLOBAL",5)~ THEN BEGIN SE1
SAY ~Ostrzegam, nie ścierpię dłużej takiej bezczelności! Jeżeli zaraz mnie nie wypuścisz, wezwę swoich towarzyszy!~
IF ~~ THEN REPLY ~Nie miej pretensji do Asmona. Schwytał cię, bo zakradłeś się do mojej gildii, na dodatek tylnimi drzwiami. Powiesz mi po co tu przyszedłeś?~ GOTO SE2
IF ~~ THEN REPLY ~Głupi czarodzieju, teraz jesteś moim niewolnikiem! Trzeba było myśleć zanim zadarłeś ze mną i z moimi ludźmi!~ GOTO SE3
IF ~~ THEN REPLY ~Wypuszczę cię, jeżeli mi zapłacisz. Myślę, że 10000 sztuk złota wystarczy, a to i tak niewielka cena za życie.~ GOTO SE4
IF ~~ THEN REPLY ~Lepiej nie zadzierać z niebezpiecznymi magami. Możesz iść, Senion. Nie radzę ci jednak tu wracać~ GOTO SE5
END
Works.
IF ~~ THEN BEGIN SE2
SAY ~Pomyliłem drzwi! A gdzie tak naprawdę chciałem dotrzeć nie powinno cię już obchodzić! Nie interesujesz mnie ani ty, ani twój irytujący upiorny rycerz! Wypusć mnie, a nigdy się już nie zobaczymy! Przetrzymaj mnie jeszcze chwilę, a wszyscy skończycie martwi!~
IF ~~ THEN REPLY ~Głupi czarodzieju, teraz jesteś moim niewolnikiem! Trzeba było myśleć zanim zadarłeś ze mną i z moimi ludźmi!~ GOTO SE3
IF ~~ THEN REPLY ~Wypuszczę cię, jeżeli mi zapłacisz. Myślę, że 10000 sztuk złota wystarczy, a to i tak niewielka cena za życie.~ GOTO SE4
IF ~~ THEN REPLY ~Lepiej nie zadzierać z niebezpiecznymi magami. Możesz iść, Senion. Nie radzę ci jednak tu wracać.~ GOTO SE5
END
Works.
IF ~~ THEN BEGIN SE3
SAY ~Pożałujesz chwili, w której wypowiedziałeś te słowa! Mina, Gabriel - do mnie! Zasadzka się nie udała, ale wciąż mamy szansę na bezpośrednie uderzenie!~
IF ~~ THEN DO ~ChangeEnemyAlly(Myself,EVILCUTOFF)
SetGlobal("SenionAttacks","GLOBAL",1)
Enemy()~ EXIT
END
Works.
IF ~~ THEN BEGIN SE4
SAY ~Żądasz ode mnie zapłaty? Głupi <PRO_RACE>, będziesz błagał, abym i ja jej zażądał w zamian za twój marny żywot! Mina, Gabriel - do mnie!~
IF ~~ THEN DO ~ChangeEnemyAlly(Myself,EVILCUTOFF)
SetGlobal("SenionAttacks","GLOBAL",1)
Enemy()~ EXIT
END
But, this one doesn't - it should go to DK20. Continuing the dialog, after this state game shuts down.
IF ~~ THEN BEGIN SE5
SAY ~Zapewniam cię, że po dzisiejszym dniu nie będę miał po co tu wracać.~
IF ~~ THEN DO ~SetGlobal("DarkKnightSpeaks","GLOBAL",6)~ EXTERN ~DARKKNGT~ 20
END
And that one works, so appears after DK20.
IF ~Global("DarkKnightSpeaks","GLOBAL",8)~ THEN BEGIN SE6
SAY ~To prawda, jestem nekromantą. Żałuję, że nie mogę skorzystać z dobroci twojego serca <CHARNAME>, ale wysłano mnie tu z konkretnym zadaniem. Mina, Gabriel! Możecie się ujawnić! Skończmy z nimi, a Slythe nas wynagrodzi!~
IF ~~ THEN DO ~ChangeEnemyAlly(Myself,EVILCUTOFF)
SetGlobal("SenionAttacks","GLOBAL",1)
Enemy()~ EXIT
END
As you see it is a bit complicated and I cannot find any solution myself - Globals look right, but in fact they aren't.