Unfixed problems?

Discussion in 'General Modification' started by Ausir, Nov 11, 2003.

Remove all ads!
  1. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    @Raaagh:
    Could you post the line numbers of the repeated dialogue. I'll check on it when I get back home.
     
  2. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Code:
    {161}{Not so easy Gremag. My price is 200 gold pieces. Take it or leave it.}{}{8}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    
    {163}{No. You give me 200. That fair I think.}{}{8}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    Hmm. How that I reexamine the code, I see two dialog choices for -7 in the second field as well.
     
  3. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Aha, that's because they got the normal and dumb responses for lines {162} and {163} mixed up. I can now see why someone might not have got the option for 200G. That's because they used a dumb speaker.
    In essence swapping the Int criteria for the 2 aforementioned lines will result in:

    {161}{Not so easy Gremag. My price is 200 gold pieces. Take it or leave it.}{}{8}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    {162}{OK. I?ll take 50 gold to keep quiet about this.}{}{8}{}{190}{pc.money_adj(+5000)}
    {163}{No. You give me 200. That fair I think.}{}{-7}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    {164}{Ok. Me keep mouth shout for 50.}{}{-7}{}{190}{pc.money_adj(+5000)}

    instead of

    {161}{Not so easy Gremag. My price is 200 gold pieces. Take it or leave it.}{}{8}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    {162}{OK. I?ll take 50 gold to keep quiet about this.}{}{-7}{}{190}{pc.money_adj(+5000)}
    {163}{No. You give me 200. That fair I think.}{}{8}{pc.skill_level_get(npc,skill_diplomacy) >= 5}{190}{pc.money_adj(+20000)}
    {164}{Ok. Me keep mouth shout for 50.}{}{-7}{}{190}{pc.money_adj(+5000)}


    Luckily your efforts on inspecting the code were more detailed. I only used a normal speaker in my field tests. Teaches me to be more thorough next time.
    Mystery solved. Thanks. :)
     
  4. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    There were some problems with Lord Wizard Sargen's courier not saying the proper lines and just running off without giving you the cash (5000G or 10000G).

    So I looked at lines {2}-{5} hard and long. Looks pretty straightforward and I couldn't puzzle it out initially.

    {2}{I am @pcname@.}{}{8}{game.globals_flags[173] == 0}{10}{}
    {3}{Me is @pcname@}{}{-7}{game.globals_flags[173] == 0}{10}{}
    {4}{I am @pcname@.}{}{8}{game.globals_flags[173] == 1}{20}{}
    {5}{Me is @pcname@}{}{-7}{game.globals_flags[173] == 1}{20}{}

    Then it struck me that there is no such variable as: game.globals_flags[173]

    There's only game.global_flags[173]. ;)

    Don't know how that extra "s" snuck in but hopefully after correcting it to:

    {2}{I am @pcname@.}{}{8}{game.global_flags[173] == 0}{10}{}
    {3}{Me is @pcname@}{}{-7}{game.global_flags[173] == 0}{10}{}
    {4}{I am @pcname@.}{}{8}{game.global_flags[173] == 1}{20}{}
    {5}{Me is @pcname@}{}{-7}{game.global_flags[173] == 1}{20}{}

    the dialogue should now work fine.
     
  5. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Hrm. I was looking at Hedrack's dlg file this morning, and, if I understand correctly how dlg files work, it should have started at {1}, but instead jumps to {20} when it produces the bug. Wierd.
     
  6. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Conversations can start at other line numbers if it is designated so in the .py file. Hedrack .py file is in the scr directory along with the rest of the .py files:

    py00174hedrack.py

    It's a pretty long .py file though. Have a look at criteria in the .py file which makes it skip to line {20} as well as criteria which allows it to go to line {1}.
    Hope that helps.
     
  7. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Okay, I seem to have found the problem. In the py file, for each condition to see which priest sent you down, it doesn't check to see whether or not the individual priests are dead.

    game.global_flags[105] is for Belsornig
    game.global_flags[107] is for Alrrem
    game.global_flags[104] seems to be for Romag by checking the san_dying in his .py
    And lastly, 106 seems to be the correct flag for Kelno

    What I don't get is why they have a condition check in Hendrak's py file for global_flags[144], which seems to be the escort flag. The dialog choices attached to this lead to hostile dialog commands with Hedrack. Odd.
     
  8. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Uhm... why should it check whether the priests are dead.
    From what I see some of the relevant lines in Hedrack's py file are:

    elif ( game.quests[54].state == qs_completed ) and ( not attachee.has_met(obj) ):
    obj.begin_dialog( attachee, 40 )

    elif ( game.quests[51].state == qs_completed ) and ( not attachee.has_met(obj) ):
    obj.begin_dialog( attachee, 30 )

    elif ( game.quests[45].state == qs_completed ) and ( not attachee.has_met(obj) ):
    obj.begin_dialog( attachee, 20 )


    Romag starts at 20
    Kelno starts at 30
    Alrrem starts at 40
    Belsornig does not accompany you. The lines that mention him are interspersed with the other options.

    Am I missing something here? If you could puzzle it out and suggest a correction that would be best. Otherwise I'll try to sort things out when I'm freer.
     
  9. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Well, the py file checks for the completion of each high priest's last quest only. So, if you finish their last quests, refuse to go down, and then kill the priest, it would produce wierd dialogs.

    Maybe I should've said that it doesn't check to see whether the priest is alive. ???
     
  10. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    Ah, I get your point now. Agree that a criteria to check whether the priest in question is alive or not would reduce incoherent dialogue.
    However, I'm thinking that maybe a player could complete all 3 quests for a faction, refuse to go down to see Hedrack, leave the priest alive and then go down by himself to see Hedrack. That could also complicate matters.

    Maybe we need a separate escort flag for each priest along with the flag for completion of each high priest's last quest as full criteria. I wonder if we can set such a variable?
     
  11. Vercingetorix

    Vercingetorix Member

    Joined:
    Dec 18, 2003
    Messages:
    1
    Likes Received:
    0
    Bug : Guisarme not flagged properly in Blacksmith dialogue ?

    Official Patch 1
    Co8 Patch (Blacksmith sells Mastercrafted goods)


    I think the Blacksmith's dialogue does not point to the correct object when creating a MW Guisarme. Or it's my install. :)



    The Blacksmith in Hommlet, when asked to produce a Guisarme (Martial Weapon),
    produces what looks more like a Greater Hand Axe or so...
    (haven't been able to find same item or icon).

    The problem is, I have another Guisarme :
    it's a long-poled weapon, with intricate barbed endings.



    Great work guys.
     
    Last edited: Dec 20, 2003
  12. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    @Vercingetorix:
    Yes, it is an uncorrected bug since the Troika's first release of the game. Raaagh and I have already discussed it and the corrections for the relevant fields are posted here:

    http://www.co8.org/forum/showthread.php?s=&threadid=803

    EDIT: Download some tools and you too can be part of the modding and debugging process. We really need more active people and the forums are much too quiet these days.
    <rubs his hands and waits expectantly> :)
     
    Last edited: Dec 20, 2003
  13. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Stupid Temple

    Argh, turns out it's more broken than first thought. Did the quest over again last night and this is what happened:

    Romag gives me Belsornig assassin quest and I tell him I already killed him. Romag brings me down to Hedrack and Hedrack gives me the hostile response. However, if I accept the assassin quest, exit the dialog, and re-enter, Hedrack gives me a peaceful dialog.???

    edit: Another bug with Hedrack's dlg. Line 13 should have @pcname@, not %pcname%

    edit 2: I should clarify more. Romag is not even spawned next to me when I'm lead down to Hedrack. And I finished/killed all the other head priests and their quests.
     
    Last edited: Dec 23, 2003
  14. zhuge

    zhuge Established Member Veteran

    Joined:
    Sep 27, 2003
    Messages:
    484
    Likes Received:
    0
    All dialogue corrections have been passed to Tom Decker of Troika:

    http://www.ataricommunity.com/forums/showthread.php?s=&threadid=338843

    Many thanks to Raaagh for your staunch support!

    I didn't get Romag to spawn either. Will look at that segment more closely. I wonder if it has anything to do with the 3rd quest not being properly recorded (killing Belsornig). I've already fixed that:

    2)Romag's 3rd quest allows acknowledgement of killing Belsornig even if you had not done so.
    -there is no criteria in some of the lines that state Belsornig is already dead. The acknowledgement of quest completion is also missing from some lines.

    In 00119romag.dlg:
    Changed the following lines from:
    {409}{He is already dead!}{}{1}{game.global_flags[105] == 1}{510}{}
    {354}{Who this Big Sore Neck guy?}{}{-7}{}{420}{}
    {423}{I've already killed Besornig.}{}{8}{}{510}{}
    {424}{Me kill Big Sore Neck already.}{}{-7}{}{510}{}

    to:
    {409}{He is already dead!}{}{1}{game.global_flags[105] == 1}{510}{game.quests[45].state = qs_completed}
    {354}{Who this Big Sore Neck guy?}{}{-7}{game.quests[46].state == qs_unknown}{420}{}
    {423}{I've already killed Besornig.}{}{8}{game.global_flags[105] == 1}{510}{game.quests[45].state = qs_completed}
    {424}{Me kill Big Sore Neck already.}{}{-7}{game.global_flags[105] == 1}{510}{game.quests[45].state = qs_completed}


    but have not correlated it with Romag being missing when meeting Hedrack.
     
  15. Raaagh

    Raaagh Member

    Joined:
    Dec 4, 2003
    Messages:
    46
    Likes Received:
    0
    Hum. Has anyone gotten any of the high priests, except Belsornig, to spawn after the teleport? Because if none of the priests actually spawn, then there might be a problem with game.fade_out_and_teleport (or was it in?).

    Maybe I should load up an earlier save tonight and do only Romag's quests to see what happens.

    EDIT: Okay, I managed to finish only Romag's quests by killing the two underpriests and Belsornig (actually, killed just him and ran because I can't kill the Juggernaught with only three PCs at level 8). Romag took me to the greater temple, and as expected, he didn't spawn. Going to test later with Alreem and Kelno.
     
    Last edited: Dec 24, 2003
Our Host!