Search Unity

uMMORPG Official Thread

Discussion in 'Assets and Asset Store' started by vis2k, Dec 29, 2015.

  1. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Yes, fireballs are possible with the new skill system. Take a look at the existing SkillTemplates that inherit from SkillTemplate to get a feeling for how this works.

    And that is not a bug, SkillTemplate is indeed meant to be abstract.
     
  2. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    I just removed my script in the scene, and no error is displayed.

    I have a script based on the "ItemTemplates" of uMMORPG.

    Code (csharp):
    1. using UnityEngine;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4.  
    5. [CreateAssetMenu(fileName = "New Data Metier", menuName = "uMMORPG Addons/Nouvelle liste métier", order = 999)]
    6. public partial class DataMetierTemplate : ScriptableObject
    7. {
    8.     public enum Type { Mineraux, Bois };
    9.  
    10.     [Header("Configuration")]
    11.     public DataMetierTemplate referance;
    12.     public Type type = 0;
    13.     [Range(1,99)]
    14.     public int FromLevel = 1;
    15.  
    16.     [Header("Déclaration des objets à récolter")]
    17.     public List<DataMetierTemplateData> objDrop;
    18.  
    19.     // caching /////////////////////////////////////////////////////////////////
    20.     // we can only use Resources.Load in the main thread. we can't use it when
    21.     // declaring static variables. so we have to use it as soon as 'dict' is
    22.     // accessed for the first time from the main thread.
    23.     static Dictionary<string, DataMetierTemplate> cache = null;
    24.     public static Dictionary<string, DataMetierTemplate> dict
    25.     {
    26.         get
    27.         {
    28.             // load if not loaded yet
    29.             return cache ?? (cache = Resources.LoadAll<DataMetierTemplate>("").ToDictionary(
    30.                 dataMetier => dataMetier.name, dataMetier => dataMetier)
    31.             );
    32.         }
    33.     }
    34. }
    Code (csharp):
    1. using UnityEngine;
    2.  
    3. [System.Serializable]
    4. public class DataMetierTemplateData
    5. {
    6.     public enum Quality { Ordinaire, Normal, Supérieur, Parfait };
    7.     [Header("Chance d'avoir cet objet")]
    8.     public int chanceDropRef = 0;
    9.  
    10.     [Header("Objet à obtenir")]
    11.     public ItemTemplate item;
    12.  
    13.     public int qualityObj { get { return item.MetierPrice; } }
    14. }
    Then I go to the list like this:

    Code (csharp):
    1.  
    2.         var items = (from kvp in DataMetierTemplate.dict
    3.                      where kvp.Value.objDrop.Count > 0
    4.                      select kvp.Value).ToList();
    5.  
    6.         Debug.Log(items);
    7.  
    8.         for(var i = 0; i < items.Count; i++) {
    9.             var item = items[i];
    10.             Debug.Log(" ---> " + items[i].name);
    11.             //m_chanceDrop = new int[] { };
    12.             //m_chanceDrop = new int[item.objDrop.ToList().Count];
    13.             Debug.Log(" ---> ID: " + item.objDrop.Count);
    14.             m_chanceDrop = new int[item.objDrop.Count];
    15.  
    16.             for (var j = 0; j < item.objDrop.Count; j++) {
    17.                 var itemDrop = item.objDrop[j];
    18.                 m_chanceDrop[i] = itemDrop.chanceDropRef;
    19.                 Debug.Log("Enregistrement des entrées... " + itemDrop.item.name);
    20.                 if(!idObjects.ContainsKey(item.name)) {
    21.                     Debug.Log("Ne contient pas la clé donc on l'a créée...");
    22.                     idObjects.Add(item.name, new Dictionary<int, int>() {
    23.                         { itemDrop.chanceDropRef, i }
    24.                     });
    25.                 } else {
    26.                     Debug.Log("Contient la clé donc on ajoute simplement...");
    27.                     idObjects[item.name][itemDrop.chanceDropRef] = i;
    28.                 }
    29.             }
    30.  
    31.             DropChanceAllRecolte.Add(item.name, m_chanceDrop);
    32.             m_chanceDrop = null;
    33.         }
    34.  
    All the logs are displayed in the unity editor.
    But at the top of the list, it shows me what I wrote you in the previous post.
    And when I disable <FeeriaUI_Recolte>, the errors are no longer displayed.
    And before the update v0.99 to v1.102 everything was displayed correctly.
    Did the partial methods in the addons move?
     
  3. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Might be best if you show us the exact error message.
     
  4. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Yes.

    FeeriaUI_Recolte, the code is the last in the previous reply.

    After that displays the logs of my script (which shows me all the corresponding data, without error).

    Pictures :
    https://photos.app.goo.gl/QCgpQsv7aIu7xT7f2
    https://photos.app.goo.gl/JvcCKNzrP48BCKY72
    https://photos.app.goo.gl/eVek33JupLqSp3Mp2
     
  5. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    It's abstract in the latest version now yes. Maybe it's easier if you download the latest version in a fresh project and then apply your changes again step by step.
     
  6. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Okay, that's what I'm going to do ...
    I'll keep you informed.
     
  7. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.103 [released 2018-02-08]
    • Updated documentation
    • Database.CharacterLoad health/mana are only assigned after maximum health and mana were fully loaded
    • Pet.CanAttack comment fixed
    • Player/Monster/Npc CanAttack uses 'entity is Type' instead of 'GetType' to work with inheriting classes too
    • Skill and Buff levels are saved and loaded in database again
    • Entity.OnDeath added and called by inheriting classes (Monster/Player/Pet) to save code
    • Skillbar cooldown circles
    • Skills list cooldown circles
    • Player.SelectionHandling: Raycast ignore self part moved to Utils
    • NetworkMessages: CharactersAvailableMsg now uses partial CharacterPreview structs and addon system can load additional values like player's health if needed in character selection UI
     
  8. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: the next version was submitted for review. A lot performance improvements and one bug fix this time!

    V1.104 [in development]
    • UI: removed all unnecessary content size fitters and layout groups from UI elements and prefabs (to improve performance)
    • Database: Load/Save Inventory/Equipment/Quests/Skills/... code moved into separate functions for simplicity
    • Database: items, skills, etc. tables use primary key combinations now to greatly improve performance from O(n) to O(log n)
    • Database: only valid items/equip/skills are saved and loaded now. Greatly improves performance and reduces storage space
    • Database: items/equipment/skills loading is now done with one query instead of one query per item/equipment/skill to greatly improve performance.
      • Benchmark: loading 1000 player inventories with 30 items each. Before: 2500ms; now: 70ms
    • UI Skillbar: fixed cooldown circle on items bug; SlotSkillbar prefab now has amount overlay too for items
    • UI Skills: scrollbar is now stretched completely to the bottom
    • Chat: UIChat component is now cached to avoid FindObjectOfType call for each new message
     
  9. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Problem solved.

    I created a new project, then gradually import all the plugins (except 2).
    Then my scripts and addons.

    No errors now. Then I reinstall the prefabs in the scene.

    --------

    Feedback:

    - Improve the quest system (so that it accepts events on the functions (OnClick)), then also for example speak to a pnj, destroy a target, search for an object etc.
    - Event at the launch of the scene. (For example, a UI that describes the monster, or the story of the game that is written before the scene appears).
    - To be able to simply change the movement system of the characters. (For example that he is free in his movements FPS style).
    - Incrementation in addition to the base for the experience.
    For example : Base value: 10. By level: 12. Incrementation: 15% Used incrementation: On / Off
    Level 1 = 10 + 0
    Level 2 = 22 + (Lvl1 * 1.15) = 22 + 11.5 = 33.5 (rounded to 33)
    Level 3 = 45 + (Lvl2 * 1.15) = 45 + 38.525 = 83.525 (rounded to: 83)

    it allows to have random experience, and not that follows a predefined base with +10 at each step.

    Sorry if google translation still badly translated (I'm learning English, and I'm trying to correct some word that would be poorly translated).

    uMMORPG is really good. And considering the next updates it promises!

    -------

    It would be possible to know the files modifiers with each update?
     
    Last edited: Feb 9, 2018
  10. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    I can not trigger my skill during the animation just before it ends.
    Because at this moment the animation is finished (the arms return to the body) and the projectile is launched. it should do:
    Start the animation.
    Launch the projectile.
    End of the animation.

    Then I tried to add my projectile asset projectile but I have its mistakes there when the projectile hits a monster, I have 61 times this error:

    Code (csharp):
    1. ArgumentException: failed to convert parameters
    2. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:192)
    3. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    4. Utils.InvokeMany (System.Type type, System.Object onObject, System.String methodPrefix, System.Object[] args) (at Assets/uMMORPG/Scripts/Utils.cs:232)
    5. Entity.DealDamageAt (.Entity entity, Int32 amount) (at Assets/uMMORPG/Scripts/Entity.cs:398)
    6. Player.DealDamageAt (.Entity entity, Int32 amount) (at Assets/uMMORPG/Scripts/Player.cs:990)
    7. ProjectileSkillEffect.FixedUpdate () (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)
     
  11. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Thanks, will consider.

    What do you mean exactly? The skills work in the fresh project or not?
     
  12. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update: maintenance release with huge database performance improvements and one UI bugfix. Sorry for the rapid update pace, wanted to release the bugfix asap though. Next update will be a bit slower again!

    V1.104 [released 2018-02-09]
    • UI: removed all unnecessary content size fitters and layout groups from UI elements and prefabs (to improve performance)
    • Database: Load/Save Inventory/Equipment/Quests/Skills/... code moved into separate functions for simplicity
    • Database: items, skills, etc. tables use primary key combinations now to greatly improve performance from O(n) to O(log n)
    • Database: only valid items/equip/skills are saved and loaded now. Greatly improves performance and reduces storage space
    • Database: items/equipment/skills loading is now done with one query instead of one query per item/equipment/skill to greatly improve performance.
      • Benchmark: loading 1000 player inventories with 30 items each. Before: 2500ms; now: 70ms
    • UI Skillbar: fixed cooldown circle on items bug; SlotSkillbar prefab now has amount overlay too for items
    • UI Skills: scrollbar is now stretched completely to the bottom
    • Chat: UIChat component is now cached to avoid FindObjectOfType call for each new message
     
  13. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    I just worked on my skills for my character, finally I think I create my own script based on your according to my needs. Your code is comment enough to be able to do what I want to do (being careful this time if to duplicate everything and create my own scripts based on your own and not directly modify the core of uMMORPG).

    Sorry for bad translation ...
     
  14. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Hello!

    After working on improving my skill, the bug is still present ...

    The Utils.InvokeMany function in the DealDamageAt method in the Entity class.
    Give this:

    Code (csharp):
    1. ArgumentException: failed to convert parameters
    2. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:192)
    3. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    4. Utils.InvokeMany (System.Type type, System.Object onObject, System.String methodPrefix, System.Object[] args) (at Assets/uMMORPG/Scripts/Utils.cs:232)
    5. Entity.DealDamageAt (.Entity entity, Int32 amount) (at Assets/uMMORPG/Scripts/Entity.cs:406)
    6. ProjectileSkillEffect.FixedUpdate () (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)

    So I added all the parameters in debug :
    Code (csharp):
    1. Debug.Log(typeof(Entity));
    2. Debug.Log(this);
    3. Debug.Log(entity);
    4. Debug.Log(amount);
    5. Debug.Log(name + " a pris " + amount + " dégats par " + entity.name);
    6. Utils.InvokeMany(typeof(Entity), this, "DealDamageAt_", entity, amount);
    Console:
    typeof: working.
    this: working.
    entity: working.
    amount: working.

    Debug Console:
    Code (csharp):
    1.  
    2. // typeof
    3. Entity
    4. UnityEngine.Debug:Log(Object)
    5. Entity:DealDamageAt(Entity, Int32) (at Assets/uMMORPG/Scripts/Entity.cs:399)
    6. ProjectileSkillEffect:FixedUpdate() (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)
    7.  
    8. // this
    9. m_rocker (Monster)
    10. UnityEngine.Debug:Log(Object)
    11. Entity:DealDamageAt(Entity, Int32) (at Assets/uMMORPG/Scripts/Entity.cs:400)
    12. ProjectileSkillEffect:FixedUpdate() (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)
    13.  
    14. // entity
    15. Ixios (Player)
    16. UnityEngine.Debug:Log(Object)
    17. Entity:DealDamageAt(Entity, Int32) (at Assets/uMMORPG/Scripts/Entity.cs:401)
    18. ProjectileSkillEffect:FixedUpdate() (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)
    19.  
    20. // amount
    21. 6
    22. UnityEngine.Debug:Log(Object)
    23. Entity:DealDamageAt(Entity, Int32) (at Assets/uMMORPG/Scripts/Entity.cs:402)
    24. ProjectileSkillEffect:FixedUpdate() (at Assets/uMMORPG/Scripts/SkillEffects/ProjectileSkillEffect.cs:33)
    if the line " Utils.InvokeMany(typeof(Entity), this, "DealDamageAt_", entity, amount); " is commented but working and without error.
     
  15. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    The DealDamageAt hook changed a while ago. Make sure that your addons use this function now:
    Code (CSharp):
    1. [Server] void DealDamageAt_Example(Entity entity, int amount) {}
     
  16. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Thank you. Problem solved.
     
    vis2k likes this.
  17. iSleepzZz

    iSleepzZz

    Joined:
    Dec 23, 2012
    Posts:
    137
    Hello vis2k, I am looking for things to optimize and make uMMORPG more efficient. (performance wise; and specifically multiplayer networking)
    What areas would you recommend would be the BEST to optimize and enhance networking performance?
     
  18. Riviet

    Riviet

    Joined:
    Feb 17, 2018
    Posts:
    1
    Just a quick question...maybe somebody is here who intent to do the same like i want to do.

    So somebody interested in finding into game development and trying to build a (small) indie mmorpg?
     
  19. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.105 [released 2018-02-21]
    • Item Mall items are now listed in Player.itemMallTemplates array instead of filtering the whole item list each time
      • Player.CmdUnlockItem sends just the index instead of the whole item name now to save a lot of bandwidth
      • CmdUnlockItem also doesn't access ItemTemplate.dict directly anymore, which makes for cleaner code
      • Different classes can see different item mall items now if needed
      • Make sure to drag all your item mall items into the player prefab when updating
    • UICharacterSelection quit button uses NetworkManagerMMO.Quit now too
    • Item: proxy syntax improved
    • Quest: proxy syntax improved
    • Database.LoadQuests doesn't add empty quest if template doesn't exist anymore
    • Chat: .chat FindObject call moved to Awake to avoid a new UNET bug where Rpcs are called on the host for other players
    • Item.DecreaseBy/IncreaseBy helper functions added to simplify amount decreasing + slot clearing in the rest of the code
    • SkillTemplate tooltip comment improved
    • SkillEffects now require NetworkProximityCheckers so they aren't seen by everyone on the server anymore
    • UICharacterSelection: select button can't be clicked twice anymore if the game is really slow and the user clicks really fast - as this would cause a 'playerController 0 already in use' error

    Sorry for the late reply, didn't get notified for some reason.

    Biggest impact would be the option for UNET SyncVars/SyncLists to only sync to the owner instead of to all observers.
    That's difficult though - I'll probably take care of it at some point with HLAPI Pro.

    Feel free to also ask in our discord (see ummorpg.net)
     
  20. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    What changes have been modified? (because I'm making changes to the bottom of uMMORPG)

    And I wanted to know why we can not create a folder in the resources "Quests" for example?

    Thank you.
     
  21. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    I created a git repository recently for people that need detailed changes. Message me in our discord if you are interested.

    It's important that items/quests/etc. don't contain duplicate names. If they are all in one folder then the file system takes care of that by default. You can move them into subfolders but then you have to make sure not to use duplicate names.
     
  22. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.106 [released 2018-02-21]
    • Item/Skill/Quest/Buff structs use an int hash instead of a string name to reference the templates to greatly reduce bandwidth
    • Player.itemMallCategories array so that no more filtering/sorting is needed and to prepare for scriptable items
    • Pet unsummon via Pet UI instead of clicking the item again. Better usability and prepares for scriptable items.
     
  23. setauz

    setauz

    Joined:
    Jan 19, 2017
    Posts:
    6
    how can i let players using special characters like ö,ü,ş on their names when creating new account?
     
  24. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Modify the regex in NetworkManagerMMO
     
  25. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.107 [released 2018-02-27]
    • Scriptable Items
      • Make sure to recreate your items when upgrading and compare your Player.equipmentInfo with the latest one (categories like 'Weapon' instead of 'EquipmentWeapon' etc.)
    • Monster Scroll example added (via Scriptable Items)
     
  26. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    What kind of hardware configuration do I need at least when I buy a cloud server?
     
  27. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    For testing you could use a very cheap one (e.g. cheapest VPS from namecheap.com). For production it depends on how many players you want to support etc.
     
  28. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    4 core 8G, 50G system disk (cloud hard disk), 1Mbps bandwidth,can hundreds of people run
     
  29. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Possibly. Depends on world density and amount of modifications too. Check out ummorpg.net/faq please.
     
  30. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    When the network delays a little higher, the figure moves and the body will shake. Can it be optimized?
     
  31. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Which figure? Which body? What do you mean with shake?
     
  32. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    Player game object,May be the problem of navigation?
     
  33. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Can you make a video?
     
  34. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.108 [released 2018-03-02]
    • All ClientRpcs and TargetRpcs are now sent to the correct object on the correct connection
    • Entity RpcDamagePopup doesn't need damageReceiver parameter anymore
    • Reassigned offender and murderer buffs in player prefabs
    • Database SaveInventory/SaveEquipment: removed redundant item.valid checks
    • ItemSlot struct added so that Item struct's .amount can be moved to ItemSlot. This is very important for a cleaner, more logical architecture and to utilize Item.Equals.
    • Item.itemMallPrice wrapper added again
    • Entity InventoryCount/Remove/CanAdd -Amount renamed (removed 'Amount' suffix). They all use 'Item' instead of 'ItemTemplate' now to make use of Item.Equals to avoid cases where two pet items with different pet levels would be considered equal before.
    • BabySkeleton: max level increased to 10.
    • Player.CmdMerge and UILoot use Item.Equals now
    • Reassigned gather & reward items to the existing quests
    • Quest.killName/gatherName replaced with .killTarget / .gatherItem to make more data available when needed
    • Entity.GetSkillIndexByName doesn't check .learned anymore
     
  35. mica2727

    mica2727

    Joined:
    Nov 26, 2014
    Posts:
    18
    Hello,

    I have a small problem, when my character moves away from the monsters, they are automatically hidden, but when I come back it no longer appear, I managed to reactivate the monsters' respawn, but I do not find the function that hide the monsters if you move away from them.

    Thank you in advance.

    EDIT: Problem solved.
     
    Last edited: Mar 3, 2018
    vis2k likes this.
  36. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    One thing is very important, if at the beginning, I set up two server, I want to add more servers, also need to pack out APK and headless.zip, and then uploaded to the server, the server then saved data two before all is not, how to do this. I tried to repack the APK and the server would have to be reinstalled so that the previous data would not be all?
     
  37. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    I'm going to buy the server soon. It's a very important and urgent matter. Please help. How do you solve this problem?
     
  38. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    I mean, if I modify the UI or add a server address in the server list, the packaged APK will not be able to communicate with the previous server, and all the synchronization will fail. The headless.zip can only be repackaged and installed to communicate properly,
     
  39. wangkai

    wangkai

    Joined:
    Oct 10, 2016
    Posts:
    27
    It's this mistake:
    IndexOutOfRangeException: NetworkReader:ReadByte out of range:NetBuf sz:5 pos:5
    UnityEngine.Networking.NetBuffer.ReadByte () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkBuffer.cs:35)
    UnityEngine.Networking.NetworkReader.ReadByte () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkReader.cs:165)
    UnityEngine.Networking.NetworkReader.ReadPackedUInt32 () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkReader.cs:67)
    Entity.OnDeserialize (UnityEngine.Networking.NetworkReader reader, Boolean initialState)
    Monster.OnDeserialize (UnityEngine.Networking.NetworkReader reader, Boolean initialState)
    UnityEngine.Networking.NetworkIdentity.OnUpdateVars (UnityEngine.Networking.NetworkReader reader, Boolean initialState) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkIdentity.cs:750)
    UnityEngine.Networking.ClientScene.ApplySpawnPayload (UnityEngine.Networking.NetworkIdentity uv, Vector3 position, System.Byte[] payload, NetworkInstanceId netId, UnityEngine.GameObject newGameObject) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/ClientScene.cs:491)
    UnityEngine.Networking.ClientScene.OnObjectSpawnScene (UnityEngine.Networking.NetworkMessage netMsg) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/ClientScene.cs:608)
    UnityEngine.Networking.NetworkConnection.HandleReader (UnityEngine.Networking.NetworkReader reader, Int32 receivedSize, Int32 channelId) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:469)
    UnityEngine.Networking.NetworkConnection.HandleBytes (System.Byte[] buffer, Int32 receivedSize, Int32 channelId) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:425)
    UnityEngine.Networking.NetworkConnection.TransportReceive (System.Byte[] bytes, Int32 numBytes, Int32 channelId) (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkConnection.cs:576)
    UnityEngine.Networking.NetworkClient.Update () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkClient.cs:753)
    UnityEngine.Networking.NetworkClient.UpdateClients () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkClient.cs:965)
    UnityEngine.Networking.NetworkIdentity.UNetStaticUpdate () (at C:/buildslave/unity/build/Extensions/Networking/Runtime/NetworkIdentity.cs:1091)
     
  40. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    It's a bit difficult to understand your explanation. What do you mean exactly?

    Can you just try connecting to one server first and see if that works?

    Make sure to use HLAPI Pro to avoid this UNET bug. See: https://forum.unity3d.com/threads/unet-hlapi-pro-taking-unet-to-the-next-level.425437/
     
  41. wobes

    wobes

    Joined:
    Mar 9, 2013
    Posts:
    731
    Vis2k, hey, how many clients does uMMORPG can handle?
    I mean the question is about bandwidth. Thanks.
     
  42. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    That will be different for every project. This is asked a lot, please see: https://ummorpg.net/faq/
     
    chiapet1021 likes this.
  43. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Progress: next version was submitted for review!

    V1.109 [pending review]
    • Skill.learned removed, uses .level > 0 checks instead now
    • AreaBuffSkillTemplate, AreaHealSkillTemplate CheckTarget both set temporary target now to fix lookat
    • Player.CmdPartyInvite users 'other' instead of 'player.target' now
    • NetworkManager MaxSentMessageQueueSize set to new default of 512 instead of 128
    • Fixed Vigor Potion reciple template missing items after scriptable items update
    • Player default equipmentInfo strings adjusted to short versions now too
    • Improved tooltips of existing quests
    • NetworkManager doesn't use UILogin/CharacterSelection/Creation anymore. Those UIs work fully on their own now. Also gets rid of several FindObjectOfType calls.
    • UILogin uses public UIPopup component now instead of FindObjectOfType
    • UICharacterSelection uses public UICharacterCreation component now instead of FindObjectOfType
    • UICharacterCreation uses public UICharacterSelection component now instead of FindObjectOfType
    • NetworkManager IsAllowedAccountName/IsAllowedCharacterName checks moved into their own functions. UI uses them too.
    Edit: V1.109 released!
     
    Last edited: Mar 16, 2018
    langtusaupt, runningbird and jarpg360 like this.
  44. yevoc42

    yevoc42

    Joined:
    Mar 17, 2018
    Posts:
    1
    UPDATE: I finally found the server list field under the Network Manager component. I had erroneously figured the server list had to be in the "Network Info" subfield. Thanks to truveh in discord chat for pointing this out!

    I've just bought and opened the project, and I'm stumped on how you're supposed to get other clients to see the server on LAN.

    The documentation states "If you want to connect to the game server from another computer in your local network, then all you have to do is select the NetworkManager in the Hierarchy and modify the Network Info -> Network Address property to the IP address of the server."

    When I do that, the Network Address changes to "Use the Server list below!". There is nothing like a server list in the inspector attributes below.

    When I dug through NetworkManagerMMO.cs, I found the piece of code that is making this irritating change, which has the comment: "// ip has to be changed in the server list. make it obvious to users."

    There is no server list that I can see anywhere in the inspector. The only possibly relevant thing I can see in the Network Manager script is "new ServerInfo{name="local", ip="localhost"}". When I change that ip to the ip of my server, none of the computers are able to see the server, and the Network address changes to "127.0.0.1" at runtime for the server anyway, which makes me suspect that all of the other clients are also using 127.0.0.1.
     
    Last edited: Mar 17, 2018
  45. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Sorry, forgot to update the documentation about that part - that was rather recent.

    Just enter your server IP here:
    upload_2018-3-17_14-58-12.png

    And name it something like 'Server1' or any fancy name you like.
     
  46. CaptainStardog

    CaptainStardog

    Joined:
    Mar 8, 2017
    Posts:
    46
    I'm considering buying your kit, but I'm not sure it can easily do what I'm after. I get that this is for an MMO, but I'm looking to build something more like Titan Quest, where one player can host locally, and other players may join over LAN or internet. Maybe the answer is obvious, but I'm sort of just starting out. Can uMMORPG do that? How flexible is it? Is it still limited to just one scene? How flexible is the class system? Is any sort of magic system incorporated? How hard would it be to come close to something like Exanima, but for, say, 4-8 players? Please go easy on me as I'm just getting started. Please forgive if I've asked too many questions. Also, if I wanted to go first person, how difficult would that be to implement?

    I did read the faq, but it didn't seem to address what I'm asking. Is it possible to go with more of a classless, skill-based system that increases in whatever weapons/magic skills the player uses without forcing them into a class? I know that if I code things, anything technically is possible, but I'm asking how far away from your kit would I have to go to implement some of these ideas?
     
    Last edited: Mar 19, 2018
  47. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.110 [released 2018-03-20]
    • UICharacterSelection/Creation race condition fixed

    I think someone asked the same thing in discord yesterday?
    If uMMORPG can handle hundreds of players then it can also handle 4 players over LAN of course.
    As for scenes, I created a Network Zones addon where you can host one scene per server and use portals to move between them.
    Class system is very flexible thanks to scriptable skills - you should be able to add any class. Also the archer is essentially the same as a mage, logic wise - since they are both ranged.

    First person just a different camera, has nothing to do with complicated multiplayer stuff. But we use navmesh movement, that's usually not that smooth for first person.

    Let me know if you have any more questions.
     
  48. CaptainStardog

    CaptainStardog

    Joined:
    Mar 8, 2017
    Posts:
    46
    Okay, thanks for answering my questions. I assumed it could handle it, yes, but how easy is it to actually do? In other words, can I still achieve my goals in your kit with no coding required? Since I'm not exactly part of your core customer demographic, I was concerned that perhaps it wouldn't be very easy for a novice like me.

    As a huge MMORPG fan, you should go out of your way to ensure that you're promoting the full range of capabilities of your kit. I think you're missing a sales opportunity that others like myself would be interested in purchasing your product if it were immediately clear that it's just as comfortable making a co-op game like Titan Quest as it would be making a large scale MMO. I looked for this specific information in your product pages and couldn't find it anywhere, and so I almost kept going rather than reaching out to you at all because I assumed that there might be some hang up or surely you would've mentioned that aspect of your product.

    With the classes, then, I am assuming I could assign as many classes to a character as I desired? Class-less play is not an option then, where you simply have a level and advance in whatever skills you actually use? Without coding I mean.

    As for first person, thank you for explaining about the navmesh movement. That's not a deal breaker, just wondered.

    I see there are scripts and add-ons that the community made. Is there a way to request specific things to be made, for free or purchase? I mean, do people do that? If so, where and how?
     
    Last edited: Mar 22, 2018
  49. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    It's just about 6000 lines of simple C# code. If you know Unity and UNET then it's really not too difficult to change parts.

    There's really no difference if you play co-op with 2 players or MMO with hundreds of players. The code and all the assets are still the same, doesn't matter at all.

    You can add more classes yes. Or you could just use one class. Skill levels are already implemented too.

    You can request addons in our discord (see ummorpg.net), no guarantee though.
     
  50. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,344
    Update:
    V1.111 [released 2018-03-23]
    • Upgraded to Unity 2017.4 LTS
    • Item Mall: scrollbar position is reset when switching categories
    • Default ToolTip message cleared so people with low fps don't see 'This is a Tooltip!' message for one frame anymore
     
unityunity