• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Quest Dialogs; "Press OK" Button ?

Status
Not open for further replies.
Level 5
Joined
Dec 3, 2012
Messages
117
Not sure if the title is really clear on what I want, but I wasn't sure on what to call it...

Anyway, in my map some NPC's, especially during a quest, have a lot to tell you and I don't want it all appearing on the screen instantly, but rather a few sentences at a time.

Right now, I'm using waits. How long a wait the player can set for themselves, by using a Real Integer.

Example of what I'm using now:
  • Archer Q Dia Choices
    • Events
      • Dialog - A dialog button is clicked for DIAQArcherQ[1]
      • Dialog - A dialog button is clicked for DIAQArcherQ[2]
      • Dialog - A dialog button is clicked for DIAQArcherQ[3]
      • Dialog - A dialog button is clicked for DIAQArcherQ[4]
      • Dialog - A dialog button is clicked for DIAQArcherQ[5]
      • Dialog - A dialog button is clicked for DIAQArcherQ[6]
    • Conditions
    • Actions
      • Custom script: local integer tempint = 0
      • Custom script: local force tempforce = null
      • Set TEMPInteger = (Player number of (Owner of (Casting unit)))
      • Set TEMPPlayerGroup = (Player group((Owner of (Casting unit))))
      • Custom script: set tempint = udg_TEMPInteger
      • Custom script: set tempforce = udg_TEMPPlayerGroup
      • -------- Accept Quest Yes/No --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to DIAButtons[TEMPInteger]
        • Then - Actions
          • Wait 0.01 seconds
          • Set QUESTJobChangeQuests[TEMPInteger] = 1
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
          • Game - Display to TEMPPlayerGroup the text: |cffffcc00Master Ar...
          • Wait SETTINGSQuestMsgDelay[TEMPInteger] seconds
          • -------- Assign the globals to the local values after the wait --------
          • Custom script: set udg_TEMPInteger = tempint
          • Custom script: set udg_TEMPPlayerGroup = tempforce
          • -------- Do actions --------
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
          • Game - Display to TEMPPlayerGroup the text: |cffffcc00Master Ar...
          • Wait SETTINGSQuestMsgDelay[TEMPInteger] seconds
          • -------- Assign the globals to the local values after the wait --------
          • Custom script: set udg_TEMPInteger = tempint
          • Custom script: set udg_TEMPPlayerGroup = tempforce
          • -------- Do actions --------
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
          • Game - Display to TEMPPlayerGroup the text: |cffffcc00Master Ar...
          • Wait SETTINGSQuestMsgDelay[TEMPInteger] seconds
          • -------- Assign the globals to the local values after the wait --------
          • Custom script: set udg_TEMPInteger = tempint
          • Custom script: set udg_TEMPPlayerGroup = tempforce
          • -------- Do actions --------
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
          • Game - Display to TEMPPlayerGroup the text: |cffffcc00Master Ar...
          • Wait SETTINGSQuestMsgDelay[TEMPInteger] seconds
          • -------- Assign the globals to the local values after the wait --------
          • Custom script: set udg_TEMPInteger = tempint
          • Custom script: set udg_TEMPPlayerGroup = tempforce
          • -------- Do actions --------
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to DIAButtons[(TEMPInteger + 6)]
        • Then - Actions
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
          • Game - Display to (Player group((Triggering player))) the text: |cffffcc00Master Ar...
          • Wait SETTINGSQuestMsgDelay[TEMPInteger] seconds
          • -------- Assign the globals to the local values after the wait --------
          • Custom script: set udg_TEMPInteger = tempint
          • Custom script: set udg_TEMPPlayerGroup = tempforce
          • -------- Do actions --------
          • Cinematic - Clear the screen of text messages for TEMPPlayerGroup
        • Else - Actions
      • Custom script: call DestroyForce(udg_TEMPPlayerGroup)
      • Custom script: set tempforce = null
I've been told however that using waits (especially long waits) can really mess stuff up, which i've noticed (For some reason after every one of these waits my TEMPInteger(Which is the player number of the triggering player) is set to 7(There is no player 7, at all.) for some reason.

Anyway, to get to the point.
What I'd really love is some kind of method/system, or whatever to give the player an option to click continue to the next message, like in most RPGs you have to click "OK" or "Next" before you get the next message.

The only realistic way I can think of is by using "Wait for Conndition" and then somehow giving it the condition of the player maybe pressing a certain key on the keyboard or something...
 
Last edited:
Level 5
Joined
Dec 3, 2012
Messages
117
Edited the trigger to make it work MUI (thanks to PurgeandFire).
So basically it works now with the predetermined waiting time, but still I'd like to know if it's possible to somehow give the player an "OK Button" to click instead of these waits.
 
Status
Not open for further replies.
Top