[TOOL] eWPDA | Empyrion Web PDA

Discussion in 'The Hangar Bay' started by RexXxuS, Oct 1, 2019.

  1. RexXxuS

    RexXxuS Rear Admiral

    Joined:
    Jan 31, 2016
    Messages:
    870
    Likes Received:
    1,457
    Thanks, glad to hear you like my tool.
    First you have to realize that there is no "or". eWPDA IS the PDA.yaml file. I work very hard and tirelessly to make sure eWPDA is always up to date.

    About your question: No, the Dialogue has no option to deactivate a Chapter. However since deactivating a Chapter can also be achieved with just "completing" it or switching to a different Chapter, it might work. Depends on the usecase.
     
    #161
    Kassonnade, ravien_ff and Germanicus like this.
  2. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    I didn't know that. Sorry if it sounded that way. It's a must-have tool.

    I tried that, but next time the player will activate the same chapter or task by dialogue it's already completed.
    There's no option to uncheck a task, right?
    So I made the chapter complete but now I'm trying to figure out how to reset the chapter so the player can go though it again.

    Thanks a lot!
     
    #162
    Kassonnade and RexXxuS like this.
  3. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    Sure.
    I'm designing a Mission Board for Empyrion that is activatable from the GIN.
    There are 5 slots for missions and they are randomized every 30 minutes.
    So I have right now 6 missions that could to slot 1 and there is a dialogue option to list all available missions.
    I made a function to randomize the missions and it's working fine.

    Once the player accepts a mission in a given slot, that slot will be locked and the mission will be there until the player either completes it or cancels it. So when he visits that slot again, he'll now have the "complete mission" or "cancel mission" options.
    If he chooses to complete it, there will be a check there to see if he has what it takes. If that's the case, then player will be payed and the slot will be empty until the next 30 minutes.

    If he chooses to cancel the mission then he'll lose some reputation with the faction that hired him but the slot will be unlocked now and will get a random mission after 30 minutes.

    The thing is: with no PDA integration the player could have all slot missions accepted at once and the "engine" is already working to the point that the only thing I need to do now is write more missions. The disadvantage of not using the PDA is that the player must take notes on the missions on his own.

    If I use the PDA, it's great that we now have visual orientation but the limitation is only one activated mission at a time and no option to control the PDA from dialogue.

    So I'm think whether I should use the PDA at all.
    It's gonna be a mess without it but a lot more functional, I guess. :)
     
    #163
    Last edited: May 15, 2021
    Kassonnade likes this.
  4. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,413
    Likes Received:
    12,015
    Yeah doing random missions with the PDA is a bit iffy at the moment. If it was just having 1 mission active at a time you could do it, but there's no way to have multiple pda missions active at once.

    What you could do is create a dummy pda mission players could activate to check what missions they are currently on by having the dummy mission open a dialog window.
    Would be a bit tedious to set up, but could be done, and that would let players check their current missions by just activating that dummy mission.

    Maybe someone else can think of a better work around
     
    #164
    RexXxuS and Kassonnade like this.
  5. RexXxuS

    RexXxuS Rear Admiral

    Joined:
    Jan 31, 2016
    Messages:
    870
    Likes Received:
    1,457
    No problem mate. Not that you think there is something missing. Be it eWPDA or eWCCT.

    Nope.

    Making it repeatable?

    Which kinda makes sense, cause a player can't do 2 missions at the same time.
    But for tracking purpose your suggested workaround sounds legit. Or work with the Empyriopedia and rewarding Chapters.
    And for the rest ChapterActivation helps too.
    In the end workarounds left and right ;)
     
    #165
    byo13 and Kassonnade like this.
  6. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    I understand. In fact they are all "optional missions" if they can be "cancelled" which is equivalent to "failure" because they have been originally "accepted" and the player does not fulfill "success" conditions. Like Rexxus wrote there are possible workarounds, and of course Eleon could implement some kind of "meta-master-mission" to manage all sub-branches in one big module, which would solve the problem and allow to have chapters, tasks and actions to be also "optional".

    Right now only thing I can think of would be to design all missions (main and side missions) inside one chapter, to be able to reward completed tasks and have their visibility set to "OnlyWhenRewarded" and still keep all other missions active. Inside the "master Chapter" that holds everything, the starter task would simply be "visit the missions board" and when completed the 5 tasks appear as rewards.

    Edit : the first problem that comes to mind regarding the possibility to "cancel" a mission is obvious : it does not require to only reset the PDA displayed messages, it implies that actions in the game have to be "undone" in some cases, which would surely be very complex to achieve for Eleon : respawn items (keycards) in their original location, resurrect dead "targets" already killed, etc.
     
    #166
    Last edited: May 15, 2021
    byo13 and RexXxuS like this.
  7. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    Indeed. I'm thinking about the least complex workaround since every mission will need to work inside that kind of engine.
    Seems doable like you said but it's like cheating the system.
    Thank you for the input.

    Very interesting. I'm trying that as well but wasn't touching the "OnlyWhenRewarded" option because I want the task to be available in the UI as long as it's activated. But only one at a time is killing me. Haha.
    If a PDA task could accept a variable for a string I could try changing it to something like:

    Code:
    Chapter: "Mission Board"
    Task: "Activated Missions: [001][006][008]. Please consult the Empyriopedia for more information."
    It would be a placeholder chapter and task just to inform the player after he left the GIN. Then I could have a static Empyriopedia entry with all the mission numbers and descriptions. It's gonna be a lot of work but maybe this could work?

    Thanks a lot for the suggestions. I'll probably try every workaround possible. :D

    [EDIT 1] Unfortunately I can't have variables to work with the PDA.csv like I can with Dialogue.csv. So I guess this won't work.
     
    #167
    Last edited: May 15, 2021
  8. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    Not sure I follow you here. "OnlyWhenRewarded" is a flag for the rewarded task, and it can be set for as many tasks as you want, but you only refer to tasks by their names, and you can have the "master task" to trigger another "visit the Missions Board" as rewarded task for as long as you have "actions" ( side missions) available. Do you want this to loop an infinite number of times ? (please don't answer "Yesss!" :eek: )... You could grab signals from the results of actions or tasks to decide what to do next in the dialogs.
     
    #168
    byo13 likes this.
  9. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    I see. Think I got the "OnlyWhenRewarded" functionality all wrong.
    I don't intend the missions to loop but I'd like them to be re-playable because that's the purpose of the Mission Board.
    Your method seems exciting.
    I'll try that and post results in a new forum post to not make this one too off-topic. :D
    Thanks a lot for the tips. I'll post my discoveries with your method soon.
     
    #169
    Kassonnade likes this.
  10. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    I think that by using signals and task visibility on reward completes the loop you need, and sends more control back to dialogs, where you can have variables and switch statements.

    Can't wait to see what you're going to cook for us... :)
     
    #170
    byo13 likes this.
  11. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    Much appreciated, @Kassonnade.
    I have no idea how to work with signals. I tried once but couldn't make it work.
    I thought a blueprint would need to have those assigned prior to programming them but I'm using an existing entity which is the GIN. I have no idea how to create a signal for it.

    Right now, I have missions working but not fully integrated to the PDA.
    Let's see what happens. :D
     
    #171
    Kassonnade likes this.
  12. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,413
    Likes Received:
    12,015
    Signals need to exist in the POI such as assigned to a hidden dummy switch. Unless there's a way to do it using the dialog coding (I haven't gotten into that myself) then your POIs will need a physical lever or other signal generating device (not sure if control panel signals work for this).
     
    #172
    byo13 likes this.
  13. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    That's exactly why I stopped using them, @ravien_ff
    In my situation they wouldn't apply. Thanks for confirming my suspicion.
    I didn't dig a lot into the documentation yet. :)
     
    #173
    ravien_ff likes this.
  14. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    @RexXxuS Hello!
    I'm trying to use the action "IsOrdered" option but I'm getting the error below.
    Do you know what could be the cause of it? Thanks a lot!

    Code:
    16-18:42:31.008 15_42 -ERR- YamlDotNet: Exception when trying to deserialize from 'C:\Program Files (x86)\Steam\steamapps\common\Empyrion - Galactic Survival\Client/../Saves/Games/byoEden_v14/PDA/PDA.yaml'
    16-18:42:31.010 15_42 -EXC- YamlDotNet.Core.YamlException: (Line: 15113, Col: 13, Idx: 438636) - (Line: 15113, Col: 13, Idx: 438636): Exception during deserialization ---> System.Runtime.Serialization.SerializationException: Property 'IsOrdered' not found on type 'Eleon.Pda.ActionData'.
      at YamlDotNet.Serialization.TypeInspectors.TypeInspectorSkeleton.GetProperty (System.Type type, System.Object container, System.String name, System.Boolean ignoreUnmatched) [0x0005c] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.ObjectNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x0003e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00039] in <fa51ecd1ba384d0198cba0ef839ea408>:0
       --- End of inner exception stack trace ---
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0009e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.DeserializeHelper (System.Type tItem, YamlDotNet.Core.IParser parser, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Collections.IList result, System.Boolean canUpdate) [0x00027] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x000a6] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.ObjectNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x0006b] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.DeserializeHelper (System.Type tItem, YamlDotNet.Core.IParser parser, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Collections.IList result, System.Boolean canUpdate) [0x00027] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x000a6] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.ObjectNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x0006b] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.DeserializeHelper (System.Type tItem, YamlDotNet.Core.IParser parser, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Collections.IList result, System.Boolean canUpdate) [0x00027] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.CollectionNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x000a6] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer+<>c__DisplayClass3_0.<DeserializeValue>b__0 (YamlDotNet.Core.IParser r, System.Type t) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.NodeDeserializers.ObjectNodeDeserializer.YamlDotNet.Serialization.INodeDeserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type expectedType, System.Func`3[T1,T2,TResult] nestedObjectDeserializer, System.Object& value) [0x0006b] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.NodeValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x00082] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.ValueDeserializers.AliasValueDeserializer.DeserializeValue (YamlDotNet.Core.IParser parser, System.Type expectedType, YamlDotNet.Serialization.Utilities.SerializerState state, YamlDotNet.Serialization.IValueDeserializer nestedObjectDeserializer) [0x0006e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.Deserializer.Deserialize (YamlDotNet.Core.IParser parser, System.Type type) [0x0004e] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.Deserializer.Deserialize (System.IO.TextReader input, System.Type type) [0x00007] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at YamlDotNet.Serialization.Deserializer.Deserialize[T] (System.IO.TextReader input) [0x00000] in <fa51ecd1ba384d0198cba0ef839ea408>:0
      at Assembly-CSharp.PcitureDesignerImageResolver.DeleteNode[A] (System.String , System.Boolean& , System.Boolean ) [0x00019] in <0f4a5d378ed44f0a81065d1afad7f056>:0
    16-18:42:31.012 15_42 -ERR- No or incomplete PDA data
    More especifically here:

    If remove the "IsOrdered" clause then everything is fine. :)
     
    #174
    Kassonnade likes this.
  15. RexXxuS

    RexXxuS Rear Admiral

    Joined:
    Jan 31, 2016
    Messages:
    870
    Likes Received:
    1,457
    Hello @byo13
    yes! Sorry, I'm preparing a new version and totally forgot about that.
    Similar like this:
    https://empyriononline.com/threads/tool-ewpda-empyrion-web-pda.82979/page-5#post-390218

    I added upcoming EXP properties ( so Hummel can use it already) and forgot to announce it here.
    For now, please don't use IsOrdered, IsOptional, OnlyVisibleWhenRewarded.
    I try to release those fully and much more soon:
    https://empyriononline.com/threads/version-1-5-experimental-and-public-release.97647/

    Edit: the tools were also down recently since I updated my webserver
     
    #175
    Kassonnade, byo13 and ravien_ff like this.
  16. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    Damn... now I feel like I sent someone hunting tigers with a broom...
     
    #176
    byo13 likes this.
  17. RexXxuS

    RexXxuS Rear Admiral

    Joined:
    Jan 31, 2016
    Messages:
    870
    Likes Received:
    1,457
    My bad. Since days I'm working on a new big version for eWPDA and eWCCT and missed the version conflict here.
    To be honest I didn't know if beside ravien and Hummel, someone else is using my tool in the first place, so I got careless and demotivated.
    I reverted the changes now and will come up with a better plan next time.
     
    #177
    Kassonnade and ravien_ff like this.
  18. byo13

    byo13 Captain

    Joined:
    Jul 13, 2020
    Messages:
    415
    Likes Received:
    638
    @RexXxuS Your tool is excellent. Let's motivate you in the right direction now. :D
    Actually I'm creating the PDA by hand but using your tool to study or generate options I didn't know existed.
    Seeing the changes @Hummel-o-War is doing, great things await. Many users will benefit from its existence.

    I just hope we have more control of the PDA using dialogues in the future and vice versa.
    It's a must have feature to mission creation, better NPC interactions, to make the Universe more vivid and life like.
    Right now we only have a read only "IsPdaChapterActive" function accessible from dialogues but I see it as not enough.

    Everything should be controllable from dialogue. We see this in every RPG Maker, for instance or official content creation tools like Bioware's Aurora Toolset. Everything revolves around dialogue. Yes, PDA is important, of course, but I see it more as a way to show progress than all else. It should not be the center of interactivity in my opinion.

    Anyways, I just rambled on too much here. Keep up the great work, guys.
    And let's hope and dream for a better future.
     
    #178
    RexXxuS, ravien_ff and Kassonnade like this.
  19. Kassonnade

    Kassonnade Rear Admiral

    Joined:
    May 13, 2017
    Messages:
    2,816
    Likes Received:
    4,111
    Oh I understand that perfectly well. ;)

    Just so you know, I use your tool as my main reference because it's like a mini-tutorial in itself just looking at the tooltips and help pop ups. Lots of stuff in there. I even made a small scenario with it and it was a breeze. As for dialogs, the text file provided with the game gives me nausea just looking at it, and without your eWCCT I would not even start caring about dialogs at all until information is presented in a less messy fashion. And that's too bad, really, because I'm not one to give up easily, and I know that probably lots of players have a much lower limit than me and are simply rebuked by the difficulty to read dense, unformatted text just to try to get basic understanding of a feature.

    We're not in a rush, don't feel bad for taking a break because you have done enough already.
     
    #179
    RexXxuS likes this.
  20. RexXxuS

    RexXxuS Rear Admiral

    Joined:
    Jan 31, 2016
    Messages:
    870
    Likes Received:
    1,457
    Hi Creators,

    after a lot of work a big patch is live, together with the EXP 1.5. Make sure to read the changelog below.


    Highlights:

    • Latest EXP additions
    • Blocks & EClassConfig.ecf import updated
    • Fixing major, breaking, frustrating bugs like the drag & drop state move rearrangement.
    • Design Facelift
    • Convenient additions
    Design Facelift
    upload_2021-5-19_18-37-45.png


    19.05.2021 | v2.0.0
    • Added first visit (localsession) popup for big releases or important announcements.
    • Added new Property to reward Chapters and Tasks within Tasks. Combined with new property OnlyVisibleWhenRewarded.
    • Added new Property to mark Actions as Optional. That way Tasks can be completed even without them.
    • Added new Property to mark Actions as ordered. That way Actions must be completed from top to bottom (like Tasks).
    • Added new Property to power a structure On or Off via PlayfieldOps. See documentation.
    • Added docu to new stuff.
    • Added hint in eWPDA setting that you can hover over your left sidebar chapters to see the chapter ID. Useful for ingame clearing chapters.
    • Added finally complete Blocks and ItemsConfig.ecf import - inclusive the new Blocks that only have names and no IDs.
    • Added also possibility to import EClassConfig.ecf for entities. BUT you have to clear your EClassConfig.ecf from BAD tabs instead of spaces!! And Block comments!!.
    • Added force refresh background feature that refreshes the page after 24hours usage automatically. For hardcore lazy people.
    • Added color fetch support from locazitation.csv for item (suggestion) fields.
    • Added a lot better select state detection. Your duplicated state is now automatically selected.
    • Changed Font Family to a more crisp and readable one.
    • Changed Property orders to more logical order.
    • Changed style to some buttons and logic and other goodies.
    • Changed sidebar width to 700px.
    • Fixed FINALLY order of moved states in the sidebar. If you moved Tasks/Actions before somewhere down, it was always position +1.
    • Fixed Design flaws here and there.
    • Fixed TypesMeta > Meta was a string input field instead of number.
    • Fixed style issues with Microsoft Edge Browser.
    • Fixed Drag Copy error for tasks.
    • Fixed style issues for upcoming new Chrome render engine.
    • Fixed NamesRequired export logic if only 1 Names is used.
    • Fixed first TypesMeta Values entry becomes invisible on dropdown selection.
    • Fixed that the custom Localization.csv did not get imported with Scenario import.
    • Fixed sidebar de/collapse on doubleclick on Add Chapter / Add Task / Add Action.

    You have to open the web tool in a new tab every time a patch comes out to apply the changes.
     
    #180

Share This Page