• edited January 2022
    @gamingislove
    hi,
    i am currently working on the loot settings and loot tables and have a question.
    I see that there is the posibility to add the "get random" command and add multiple items with a drop chance.
    But is there also the possibility to define different drop chances?
    For example by adding lets say - 4 items and give them different drop chances f.e.
    1 Item 10%
    2 Item 20%
    3 Item 30%
    4 Item 40%
    So in total its a 100% droprate (and in this example i mean that only one of the 4 items is dropped and not possibly every single one) - but the dropped item depends on their individual drop chance?
    Actually i have the same question for the enemy random encounter - where you can just exchange the item drop chance with the encounter of random monsters in a field (usually you want certain monsters to be encountered more frequently than others etc.).
    If its not possible yet - maybe its gonna be an interesting feature to add in the future for you.
    Thanks and happy 2022!

    Post edited by Monkey_A_C on
  • edited January 2022
    ORK 3 BETA 21 is here!

    Small update feature-wise, and no setup redos needed!
    Schematic outworn action for equipment durability, you can spawn the player at stored scene positions and new context menu/scene wizard option to create a None battle (e.g. for placed battles used by spawners or random battle areas).
    There are some important bugfixes in it, though, e.g. combatant portraits working again - and I finally was able to solve an UI issue which forced me to delay starting the game immediately (quick game testing), which is now back to normal.

    See all details on the new features on the beta page.


    6 new 3D RPG Playground tutorials!

    We'll make our way to the dungeon through a field of random battles and set up the dungeon, including unlock-via-key mechanic, traps and boss battle!


    @Monkey_A_C
    Currently not possible, I'll look into it :)
    Post edited by gamingislove on
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited January 2022
    Acissathar said: @gamingislove Is there a way to remove this warning by chance? It doesn't seem to effect anything, but it ends up quickly filling the console to >999 entries nearly every second

    image
    Hi @gamingislove, I started running into hard errors with this same issue and ended up doing a lot more digging.

    image

    This appears to be an issue solely related to Mesh Colliders (which might explain why it doesn't always happen) and with trying to access to the texture coordinate UV of said mesh when it does not have them. The built in primitives (plane, etc) with mesh colliders will cause the warning above, but regular meshes may cause the actual error as I am now hitting. Here is a link with a mesh that causes the error if you'd like to try it as well: https://drive.google.com/file/d/1248Kf2Jj4bVnb77cjg-0O6O3jJuJEGUB/view?usp=sharing


    Someone encountered a similar issue with the XR toolkit (https://github.com/microsoft/MixedRealityToolkit-Unity/issues/10339) as well due to their implementation of the raycast helper.

    Granted I don't have access to the Makinom source at the moment so I can't be 100% on it, but I believe that the RaycastHelper / RaycastOutput is trying to access these texture coordinates always leading to the error dump.

    Going with that, here is how the issue was fixed for the toolkit, so that might be something that can be applied to the Makinom framework as well to prevent the issue?

    https://github.com/microsoft/MixedRealityToolkit-Unity/pull/10370/commits/e316e74bea512b6216b7f6250afeedf6b8e00c47
    Post edited by Acissathar on
  • @Acissathar
    Sure, I'll add it in the next beta.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • @gamingislove I appreciate it, thank you!
  • @gamingislove
    Great update. Everything is working again and the schematic for the durability allowed me to accomplish my goal.
    Are you waiting until after official release before you add any bigger features on?
  • edited January 2022
    @gamingislove
    I've been having strange things happen with "Save Settings". I thought it was something I was doing wrong but now I'm kind of at a loss. I'm following the 3DRPG tutorial, started beta17 with 2020.3.22f1. Have been hitting import package for each beta update. I waited until recently so have not had to re-do anything.

    This has been happening on multiple versions of the beta, but tonight is really obvious.

    First time, I can't recall if it was items or abilities or which tutorial I was working on, that everything I added has vanished when I reloaded. Figured I must not have hit save somehow.

    Then it happened again on a short session where I only did 1 thing on the tutorial.

    So I started hitting save settings a 2nd time and noticed it would come up with random things to save that I had not changed (not sure what white text means since green is add and red is delete). 1st time I hit save was Green+ for what I changed in tutorial, 2nd time hitting save was random stuff I had not touched.

    When I hit save the 3rd time, it gave the message that there are no changes to save and was fine. This happened several times where I would need to hit save settings twice before I would get the "no changes" message.

    Brings me to tonight with beta 21. I was adding equipment. Clicked over to Status->Abilities to show my GF, changed nothing. When I clicked save settings it had the Green for the equipment adds, but also had a bunch of Abilities in white that I never changed. (all I did was click abilities and scroll down some and click around, no changes)

    No matter how many times I hit save, it always shows them now.

    Then I noticed that the Dark spell had Light listed as Element so I changed them to dark (not knowing if it was my mistake or a save issue) and tried to save again.. All white still. I've tried several times to change element to dark, hit save settings, save project, reload, they are back to light again.

    Now when I load project and try to save it always has list of abilities in the save changes (that I have not touched) and I can't get that element to change from light to dark.

    To be clear the element lets me change it to dark, that is the Only thing I touch, but then in white text on save settings are

    Fire
    Water
    Quake
    Wind
    Light
    Dark
    Electro

    Even tho I have Not touched those at all. And when I reload, Dark still has Light as the element





    Post edited by GeneralK on
  • @Dre788
    Yes, currently it's mainly bugfixes and tutorials, since the release is pretty close.

    @GeneralK
    Hm - that sounds very strange.
    Can you send me the Unity project to contact@orkframework.com? Deleting the Library folder from the project's folder will greatly reduce it's size - e.g. upload it somewhere (dropbox, google drive, etc.) and send me the link.

    Generally, a white text means something changed.
    Just visiting a setting can cause this, as the editor has some auto initializations for things that might be loaded (or not) due to the saved data, but not needed due to the actual setup.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • I've had a similar issue with things not saving and it seems that the name field I'm things like abilities do not like certain characters.

    And instead of giving an error it just won't save. This especially happens when adding to the name field.
    Currently making: Real-Time Diablo-like ARPG
  • gamingislove said: As for your UI/menu issue - I think I know what you mean.
    When you click back on the button list (top right box), you cancel the combatant selection, so you can no longer click-select any of the combatants to open the menu. You have to first click on Equipment again to start the selection again.
    This is a bug and I hope it can be fixed.
    Or is there a way to fix it in the ORK Setting?

    I don't think users are going to press Equipment every time, and pressing Equipment every time is a strange way for the menu to work.
  • edited January 2022
    @gamingislove i'm trying to import your camera wrapper script to make Ork3 work with the Otii camera controller.
    However the script gives me errors:

    Assets\ORK Framework\Scripts\ORKCameraControlWrapper.cs(8,41): error CS0246: The type or namespace name 'BaseCameraControl' could not be found (are you missing a using directive or an assembly reference?)
    Assets\ORK Framework\Scripts\ORKCameraControlWrapper.cs(70,24): error CS0115: 'ORKCameraControlWrapper.CameraTargetChanged(GameObject, GameObject)': no suitable method found to override


    Edit:
    I think i fixed it by changing the namespace from ORKFramework.Behaviours to GamingIsLove.ORKFramework.Components

    Full script:
    using UnityEngine;
    using com.ootii.Cameras;
    using System.Collections.Generic;

    namespace GamingIsLove.ORKFramework.Components //fixed ork3 namespace
    public class ORKCameraControlWrapper : BaseCameraControl
    {
    public enum CameraReset { None, LocalSpace, WorldSpace };

    [Tooltip("Reset the camera's position after restoring camera control.\n" +
    "Use 'Local Space' if the camera is a child object of the camera controller.")]
    public CameraReset resetCameraPosition = CameraReset.LocalSpace;

    [Tooltip("Reset the camera's rotation after restoring camera control.\n" +
    "Use 'Local Space' if the camera is a child object of the camera controller.")]
    public CameraReset resetCameraRotation = CameraReset.LocalSpace;

    [Tooltip("Hide the mouse cursor while the camera control is enabled.")]
    public bool hideCursor = false;

    /// <summary>
    /// The wrapped camera control component.
    /// Replace 'CameraController' with your custom camera control component's name if you're not using ootii (also remove 'using com.ootii.Cameras;').
    /// </summary>
    protected CameraController cameraControl;

    protected Camera cameraComponent;

    protected Vector3 cameraPosition = Vector3.zero;

    protected Quaternion cameraRotation = Quaternion.identity;

    /// <summary>
    /// Marks if the initial camera target is set.
    /// </summary>
    protected bool initialChange = false;

    /// <summary>
    /// Searches for the wrapped camera control component in child and parent objects.
    /// Disables the component if no camera control is found.
    /// </summary>
    protected void Start()
    {
    this.cameraControl = this.GetComponentInChildren<CameraController>();
    if(this.cameraControl == null)
    {
    this.cameraControl = this.GetComponentInParent<CameraController>();
    }
    if(this.cameraControl == null)
    {
    this.enabled = false;
    }
    else
    {
    this.cameraComponent = this.GetComponentInChildren<Camera>();
    if(this.cameraComponent == null)
    {
    this.cameraComponent = this.GetComponentInParent<Camera>();
    }
    }
    }

    /// <summary>
    /// Changes the target of the wrapped camera control component, called when ORK changes the target.
    /// </summary>
    /// <param name="oldTarget">The game object of the old target.</param>
    /// <param name="newTarget">The game object of the new target.</param>
    public override void CameraTargetChanged(GameObject oldTarget, GameObject newTarget)
    {
    if(this.cameraControl != null)
    {
    // sets the target of the wrapped component, change this with what's needed for your custom control when not using ootii.
    if(newTarget != null)
    {
    this.cameraControl.Anchor = newTarget.transform;
    }
    else
    {
    this.cameraControl.Anchor = null;
    }
    }
    }

    /// <summary>
    /// Sets the initial camera control target and handles camera target transitions.
    /// </summary>
    protected void LateUpdate()
    {
    if(!this.initialChange)
    {
    GameObject target = this.CameraTarget;
    if(target != null)
    {
    this.initialChange = true;
    this.CameraTargetChanged(null, target);
    }
    }

    if(this.IsCameraTargetTransition)
    {
    this.TransitionUpdate(this.transform.position, this.transform.rotation);
    }
    }

    /// <summary>
    /// Enables the wrapped camera control component.
    /// </summary>
    protected void OnEnable()
    {
    if(this.cameraComponent != null)
    {
    if(CameraReset.LocalSpace == this.resetCameraPosition)
    {
    this.cameraComponent.transform.localPosition = this.cameraPosition;
    }
    else if(CameraReset.WorldSpace == this.resetCameraPosition)
    {
    this.cameraComponent.transform.position = this.cameraPosition;
    }
    if(CameraReset.LocalSpace == this.resetCameraRotation)
    {
    this.cameraComponent.transform.localRotation = this.cameraRotation;
    }
    else if(CameraReset.WorldSpace == this.resetCameraRotation)
    {
    this.cameraComponent.transform.rotation = this.cameraRotation;
    }
    }
    if(this.cameraControl != null)
    {
    this.cameraControl.enabled = true;
    }
    if(this.hideCursor)
    {
    Cursor.lockState = CursorLockMode.Locked;
    }
    }

    /// <summary>
    /// Disables the wrapped camera control component.
    /// </summary>
    protected void OnDisable()
    {
    if(this.cameraComponent != null)
    {
    if(CameraReset.LocalSpace == this.resetCameraPosition)
    {
    this.cameraPosition = this.cameraComponent.transform.localPosition;
    }
    else if(CameraReset.WorldSpace == this.resetCameraPosition)
    {
    this.cameraPosition = this.cameraComponent.transform.position;
    }
    if(CameraReset.LocalSpace == this.resetCameraRotation)
    {
    this.cameraRotation = this.cameraComponent.transform.localRotation;
    }
    else if(CameraReset.WorldSpace == this.resetCameraRotation)
    {
    this.cameraRotation = this.cameraComponent.transform.rotation;
    }
    }
    if(this.cameraControl != null)
    {
    this.cameraControl.enabled = false;
    }
    if(this.hideCursor)
    {
    Cursor.lockState = CursorLockMode.None;
    }
    }
    }
    }
    Post edited by Vlastan on
  • @Solkyoshiro
    What kind of character, can you post them here?

    @joeee19
    It's not really a bug, just how it works.
    I'll look into adding an option to keep the last selection active when it was closed.

    @Vlastan
    There's already an updated version available in the ORK 3 documentation :)
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • @gamingislove
    Thank you for your reply.

    I am using the following project as it is.
    http://resources.orkframework.com/downloads/ork3/tutorials/complete_setups/3DRPGPlayground.zip

    I am running in the following environment.
    ORK Version;ORK Framework 3BETA 21
    Unity Version:2020.3.0f1

    I changed the Sample Distance to 10 but it didn't work.
    Combatants > Combatants > General Settings > Default Movement Component
    Componet Type:Nav Mesh Agent
    Add Component:Checked
    Sample Distance:10
    Area Mask:-1
    *Warrior Combatant does not overwrite the settings.

    If you disable Warrior's Button Controller Script in the Inspector during play and change the Transform's Position value, the Nav Mesh Agent will appear to follow Warrior.
  • @gamingislove

    The ones I've had issues with are
    : / \ < >
    Currently making: Real-Time Diablo-like ARPG
  • edited January 2022
    @gamingislove I've used the updated script you linked from Ork3 docs, however there seems to be a problem with target transitioning, here the errors that pop up when i trigger a target change (during a dialogue):

    StackOverflowException: The requested operation caused a stack overflow.
    GamingIsLove.Makinom.AxisBool.get_IgnoreHeight () (at <234ee0b1a8154712b0ded31eb361e365>:0)
    GamingIsLove.Makinom.AxisBool.get_I<message truncated>

    NullReferenceException: Object reference not set to an instance of an object
    GamingIsLove.ORKFramework.CameraControlTargetTransition.Transition (UnityEngine.Transform transform, UnityEngine.Vector3 position, UnityEngine.Quaternion rotation, System.Single deltaTime, System.Single elapsedTime) (at <439f220fba85499c8d870c7d38b9034f>:0)
    GamingIsLove.ORKFramework.Components.BaseCameraControl.TransitionUpdate (UnityEngine.Vector3 position, UnityEngine.Quaternion rotation) (at <439f220fba85499c8d870c7d38b9034f>:0)
    GamingIsLove.ORKFramework.Components.ORK_OOTII_CameraControlWrapper.LateUpdate () (at Assets/Gaming Is Love/Makinom 2/Plugins/Scripts/ORK_OOTII_CameraControlWrapper.cs:103)


    Script order is 1200 for the wrapper.
    Post edited by Vlastan on
Sign In or Register to comment.