Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

uMMORPG Official Thread

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

  1. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    There is a startpos GameObject with a NetworkStartPosition component in the Hierarchy. The NetworkManager automatically uses that.
     
  2. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    After creating a new character I will spawn somewhere else then the startpos. If i die i will spawn at startpos.
     
  3. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Did you modify the project in any way? The player's respawn position is set in the Player:CmdRespawn, it uses the NetworkManager's GetStartPosition(). And the character creation happens in NetworkManagerMMO:CreateCharacter which also uses GetStartPosition(). If you modified any of those functions then you might have a different start position.

    Perhaps you also have multiple start positions in your scene. I just tried it in the original project and it works fine there.

    Greetings
     
  4. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    thanks for you reply. No didnt changed any scripts. Will check the project again. Maybe i am missing something.
    Thanks
     
  5. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    If you have a Chest with loot in it we can use the monster script and set the random movement at 0.0 / move dist 0 / Damage 0.
    Not the best solution because a chest is not a monster. But this will work right? For the animation we can make an open chest animation. I can't test this because my project is baking a navigation mesh and dont want to interupt the baking :(
    So if this works you dont have to write the script for this and you can work on other scripts :)
     
  6. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Progress Info: working on V1.10 with some minor improvements.

    This would be a funny solution, but I guess it could work yea.
     
  7. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    I have put the default plane (terrain) back in the project and baked it.
    Spawn is working perfect also after creating a new one it will spawn at startpos.

    Replaced the plane into my terrain and baked it, then i have the issue that it will spawn all the time at (-36, 63, 10)
    Just the first spawn after creating the character. When you die it will spawn at the startpos.
    When you exit the game and logged back in you will see your last pos for 1 sec and it will move to (-36, 63, 10).
    Something is wrong with my terrain, back to project and do some tests
     
  8. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Think i have found it, also in the main project move your startpos outside X -6 or + 7.8 and the Z outside-34 or +25
    like (125, ,06). Your startpos must be closer to the 0,0 :) Hope this helps
     
  9. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    I added more How-To's based on the recent questions to the Documentation today: http://noobtuts.com/unity/uMMORPG

    Okay, good to know that it works now.
     
  10. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Found the problem but that isnt the solution :)

    If you place the startpos further away from pos (0,0) you will have an issue. Don't know if this is a uNet bug.
     
  11. enyllief

    enyllief

    Joined:
    Oct 17, 2010
    Posts:
    36
    Bought the pack just the other day, any plans for:
    • guilds/clans
    • instances/dungeons
    • chat block / friend system
    ?
     
    Cyance likes this.
  12. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Oh I understand. I will look into it and see if I can reproduce it.

    Guilds are not planned yet. I will think about this though.

    Instances might be possible in UNET Phase 3, the information about that is very sparse though.

    Chat block/friend system: I probably won't add that because I feel like it makes the code overly complicated while adding not 'that much' functionality. You could try to implement a friend system yourself though. You could add a SyncListString to the Player class for the list of friends and then add a 'Add Friend' button under the target panel next to the 'Trade' button. You can use almost the same code as the trade request code to request a friendship, let them accept it and then add the friend to the synclist. Afterwards you just save and load them in the Database class too.
     
    enyllief and Cyance like this.
  13. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    If i have 2 weapons and add this to the skillbar below (drag and drop) one goes in slot 1 and the other in slot 2.
    Now click on 1 and you will get the weapon that is in 2. Icons working all perfect also in your equipment panel.
    But in the 3D world you see the wrong weapon. Have test this again on the uMMORPG project.

    Let me know if you have the same issue.
     
  14. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    I can confirm the weird start position bug. V1.10 will have a fix for that, but you can fix it yourself easily. Open the Database.cs class and find the CharacterLoad function and replace
    Code (CSharp):
    1. player.transform.position = reader.ReadElementObject<Vector3>();
    with
    Code (CSharp):
    1. player.GetComponent<NavMeshAgent>().Warp(reader.ReadElementObject<Vector3>());
    The Unity documentation also recommends using agent.Warp over transform.position.

    Thanks a lot @Cyance, I am sure this bug would have confused a lot of people! Also this is why I really love this MMORPG development approach. It just takes one person to find a bug and then everyone else's MMORPG can benefit from the solution. Ultimately this leads to some really high quality code and makes sure that those bugs aren't only discovered by our players some day.

    Will look into it right now.
    Edit: can confirm it. I have an idea why this might happen, will see what I can do.
     
    Last edited: Feb 27, 2016
    Cyance likes this.
  15. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Okay so there is a bug where equipping/unequipping always seems to be one step behind. For example if we equip a new sword, the change is only shown in the 3D world after the next equip/unequip operation.

    This happens because of an old UNET bug that was fixed a few versions ago but reintroduced in 5.3.3. I reported it here: http://forum.unity3d.com/threads/bug-old-synclist-callback-bug-was-reintroduced-to-5-3-3f1.388637/
    Everyone please confirm the bug in this forum post to get it fixed as soon as possible.

    Until then I will re-implement my old workaround to this bug in uMMORPG V1.10. If you can't wait then add this to the Player's LateUpdate function:
    Code (CSharp):
    1. for (int i = 0; i < equipment.Count; ++i)
    2.     RefreshLocations(equipmentTypes[i], equipment[i]);
     
    Last edited: Feb 27, 2016
    Cyance likes this.
  16. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Thank you Vis2k for your quick response :)
    Will replace the code
     
  17. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    All codes are working now. Thanks again.
     
    vis2k likes this.
  18. enyllief

    enyllief

    Joined:
    Oct 17, 2010
    Posts:
    36
    Basic workable guilds would be appreciated. The same about some basic party system (forgot that one in the above post).

    No worries about the friend system, preferring to have it all simple. Planned to ditch/rework most of the code anyway. ;-)

    Hmmm what about an illusion of instances? Was thinking about something like this:

    1. There is a separate, invisible walled off instance area/region somewhere in the world (totally inaccessible from any place in the world, at least normally).
    2. When players get teleported to the instance, (during loading/transition screen) the world outside disappears for all the involved clients, the instance region is made visible, and actors/mobs/items inside spawn.
    3. To make the illusion perfect, players/mobs/region has a specific, unique instance ID ascribed to them; this ID prevents players of specific instance from talking to or seeing or hitting other parties/players/mobs in the same area so this very same region is naturally reused for multiple parties ("instances").
     
  19. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Progress Info: waiting for V1.9 to be accepted so that I can submit V1.10. Working on the patcher in the meantime.
    You can easily put all your dungeons onto the same Scene. You just need an Npc that has some kind of teleport option (it's on the roadmap already) and then you can have a far away area on the same scene that is your dungeon. Unitys NetworkProximityChecker will make other entities that are further away disappear anyway.

    I actually implemented a party system for someone else a while ago. Basically each Player needs a list of party members and then invite/accept logic again. It's kinda messy though with disconnects and whatnot. Not sure if I add it to uMMORPG because of the same simplicity reason.

    Greetings
     
    enyllief likes this.
  20. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    great asset, and its also great to see that all these improvements have been made/planned for future versions.
     
    Cyance and vis2k like this.
  21. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    yes really agree with that Disastorm :)
     
    vis2k likes this.
  22. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Just throwing some ideas out there of potential additional features, not sure how many people would want these same features:

    -Ability to have no classes ( probably can just fake it with a class called "None" or something like that in the worst case )(note: I say this because i see in the updates the next version introduces classes )
    -Addition of usage-based passive or active skills. i.e. these would be things like Blacksmithy or Tailoring. Skills that would increase the more you use them, with a certain percentage of increasing based on how difficult it is to do whatever it is you are trying to do. Some games might even use this for combat skills as well like swordsmanship, etc.
    -Addition of resource gathering skills. i.e. harvesting lumber would require an axe, and then be usable on some sort of special gameobject that allows harvesting.
    -Perhaps make all methods virtual and change things to protected so that someone can easily extend the code via inheritance and override whatever methods they need to. This will make it easier for them to stay up to date with releases, as they would not have to constantly re-apply all of their changes to every version of the asset. The best candidate for this I think is Player.cs, not sure about the other classes. I'm not sure how integrated together the scripts are, or if they rely on class names,etc, so its possible this suggestion might not help much though.

    Also, does anyone know how to do clothing? The example only has weapons. I'm guessing you need to do a skinned mesh of a piece of clothing, and then have the player animations also apply to the clothing or something like that?
     
    Last edited: Feb 28, 2016
    enyllief, Azthetik and Cyance like this.
  23. Wansyth

    Wansyth

    Joined:
    Aug 14, 2013
    Posts:
    12
    Wouldn't the next group/player that joins the dungeon be in the same dungeon as all the other players? Would it be possible to make a dungeon a unique instance but still be same location in the scene?
     
  24. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    You can have no classes by just dragging one player prefab into the NetworkManager's spawnableObjects list and then disable the character creation class selection box. Instead always send the index 0 (for first player prefab) and you are fine.

    Usage based / resource farming skills: sounds interesting, might make the code too complicated though. See, if I implement complex mechanics like that then someone else will ask for the ability to 'not' have those things in the game for simplicity, just like you asked for 'no classes'. It's always a trade off between many features and simple code.

    Virtual methods: I actually added a "How to update your own modified MMORPG to the latest uMMORPG" section to the documentation (http://noobtuts.com/unity/uMMORPG) where I explain how to deal with that problem. I thought about that inheritance thing too, but you will run into a whole set of different problems there as well.

    I added new features in a fast pace during the last few weeks, but that won't continue forever obviously. At some point the core features that I consider important will be done, which will slow things down a bit and make upgrading easier. As a matter of fact, V1.9 still has one of those important features (class selection), but V1.10 will be more of a maintenance release. Code quality is highly important in MMORPGs, so I am just as excited about focusing on maintenance/testing/improvements/performance as I am about adding all those previous features.


    Yes, some games have dungeons that work like that. Instances might be possible with some really weird workaround, but we should just wait for UNET Phase 3 as the easy solution.
     
    Last edited: Feb 29, 2016
  25. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Thanks for the response, thats fine if you don't want to add those features, especially if they aren't really highly demanded. I also understand that there can be potential problems with overriding methods, such as if you changed code that resulted in modifying that method, the overrider will need to ensure that your changes are also propogated into his overriden version of the method. Is there any downside to making methods protected virtual though? Does it have some kind of performance impact or something like that ? It looks like your proposed solution was to just never update the asset.

    If anyone is interested, I made a video of some changes I made to the controls and interface to make it more similar to an old mmo called Ultima Online. ( weird colors due to f.lux )

    Hold right click to move in a direction + drag out enemy health bars.
     
    Cyance likes this.
  26. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Hey,
    nice video, I am happy to see that people build on top of uMMORPG.

    Overriding does make sense, people could just do something like:
    Code (CSharp):
    1. override void Test() {
    2.     // do custom things
    3.  
    4.     // call base function to make sure that everything works as intended
    5.     base.Test();
    6. }
    I am not worried about the performance downside.

    Note that you can use C#'s new construct already without me having to make those functions virtual:
    Code (CSharp):
    1. new void Test() {
    2.     // do things
    3. }
    Sooner or later I want to make my own MMO based on uMMORPG too, so one point of my ToDo list is still "figure out how to modify uMMORPG while being able to upgrade to the latest version".

    Besides using virtual or new or not upgrading often, I just had another idea that might be easier. You could move every Script that you want to modify out of the uMMORPG folder and into your own folder. This makes sure that everything in the uMMORPG folder is basically untouched and can be upgraded all the time.

    For example, let's say you want to modify the Monster script. You would move it out of the uMMORPG folder into your own myMMO folder and then modify it. When upgrading the uMMORPG package you would get the latest Monster script downloaded into the uMMORPG folder again and Unity will show a "Monster class already exists" error. Then you could just delete the original script again (or look through it and compare it with your modified script first and delete it afterwards).
     
    Last edited: Feb 29, 2016
  27. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Yea I was planning on just using overrides and then when importing new scripts each time I would just fix the errors by changing certain methods in the original scripts back to "virtual". Apparently, using "new" is a bit different than using virtual + override. I found this example online that shows how using "new" is different:


    Code (CSharp):
    1. public class Base
    2. {
    3.     public virtual void DoIt()
    4.     {
    5.      
    6.     }
    7. }
    8.  
    9. public class Derived : Base
    10. {
    11.     public new void DoIt()
    12.     {
    13.     }
    14. }
    15.  
    16.  
    17. Base b = new Derived();
    18. Derived d = new Derived();
    19. b.DoIt();
    20. d.DoIt();
    When using "new" this example will execute Base.DoIt followed by Derived.DoIt.
    However, when using override this example would execute Derived.DoIt both times.




    *edit
    A few new things I discovered.
    -Cast Time and cooldown is linked specifically to skills, which would be ok in the case of actual "skills" but in the case of "regular" attack, in most games attack speed and cooldown is specific to the actual equipped weapon and sometimes also taking the players stats into account. Additionally weapons usually have different animations as well, so it may be very useful to have special animation + cast time + cooldown unique to certain weapons ( probably best to do it at a per-weapon level than weapon-type, as even within weapon types, attack speeds could vary. )

    -If there is a cooldown, it looks like auto-repeat doesn't work. This results in needing all attack animations to essentially "hit" the opponent at the very end of the animation, since in the scripts, the damage is done only after the Cast Time is complete. Supporting auto-repeat with cooldown would probably work around this issue. Alternatively, a separate, way to do this would be to keep the system as is, but allow for an animation event during the animation clip that specifies when the damage itself should be done.

    *edit looks like easy fix to make auto-repeat work on cooldowns, at the end of TryCastSkill in Player.cs change it to


    Code (CSharp):
    1.         // if we get here, then something was wrong => cancel the cast
    2.         if(!skills[skillCur].autorepeat)
    3.             skillCur = -1;
    4.         state = "IDLE";
     
    Last edited: Mar 1, 2016
  28. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Do skills support running a custom script/callback ? I see there is something called "effect" but I don't see it used in the code anywhere. If not, are there plans to add support for a callback for skill execution? I imagine people would want to have more advanced skills than simply heal hp, or deal direct damage.
    I see you plan to add buffs and aoe in the future. Instead of integrating it directly into the .asset, you could have a script callback and then implement some premade scripts for people to use for some generic type of AOE or buff implementation.
     
    Nateply likes this.
  29. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,329
    please please please implement a mount system to ride! What would be sooooo awesome.
     
  30. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Update: V1.9 is now on the Asset Store with the new Archer class! V1.10 will be submitted soon.
    On a side note, the patcher is making huge progress. I looked into a LOT of different architectures for it and it seems like I found the perfect solution now. The goal is to have a patcher that 'just works', without worrying about anything. It will be simple, it literally just patches the game (any game, not just Unity). And it can patch itself.

    Hey,
    this new thing is not the perfect solution then. I think in my own customized game I would do what I suggested above, where I move modified Script files out of the uMMORPG folder. I think this would be the easiest solution because you can directly modify whatever you want, without any unnecessary abstractions.

    The weapon specific animation is a good point. Or at least weapon category specific. I will put this on my ToDo list. I will need this for my own game some day too, can't say when I implement it though. Same goes for regular attack speed based on weapon.

    Can you give me a more detailed example of the auto-repeat cooldown problem? I am not 100% sure what you mean by that description yet.
    The unused 'effect' property was removed in V1.9. Skills don't have a callback right now. You could however add a simple 'string callback' property to your skills and then do 'SendMessage(this, skill.callback)' after executing one.

    Thanks for your aoe/buff suggestion. Will keep it mind, as usual there are several ways to do it. Gotta find the easiest one.
    Mounts are not easy. I will need this in my game sooner or later too, but I really can't give you a date on that yet.
     
    Last edited: Mar 1, 2016
    Cyance likes this.
  31. equimor

    equimor

    Joined:
    Feb 19, 2014
    Posts:
    7
    Oh my gosh! This asset seems amazing! I'm seriously considering to purchase it :)

    If you don't mind i want to ask you some things ;)
    1. Are you planning to add sound effects soon? I know it is relatively easy to add myself but i prefer to avoid touch the code is necessary.
    2. The game is using the New ugui right now? I'm right?
    3. Do you have any plans for mobile support?

    Maybe you already answer some of those question, but i didn't find the answers, sorry if you did it.

    PS; would be hard to add pet system? I mean monsters npc that follow the player and attack themselves.

    Looking forward to your answers and thanks in advance!!!
     
  32. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Hi Vis2K,

    could you have a look at the NameOverlayPosition. Looks like it will not get the name of the NPC or player.
    Just shows [NAME].
    Have checked in the main project aswel

    Thanks

    Keep up the good work, I am happy with the update.
    Updated my project from 1.8 to 1.9 without any problems.
    Changed the player and database scripts with the codes and all working again
    (codes that will be fixed in v1.10).
     
    Last edited: Mar 2, 2016
  33. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Update: V1.10 was submitted to the Asset Store (pending review). Changes can be seen in the first post.

    Hey,
    1. I don't have any good sounds right now, but I just added that to the Roadmap.
    2. Yes, it uses the new Unity UI that was introduced not too long ago. You could make it work with OnGUI too if you wanted to; all UI logic is stored in one Script.
    3. Yup, it's on the Roadmap. You can see the roadmap in my first post. Making it work on mobile should be very easy, all we have to do is modify the player's SelectionHandling function to also detect touches. The UI should work fine on mobile by default. I will do it and test it soon.

    About the pet system: I remember enjoying those in other MMORPGs too. It's not planned yet, but if more people keep requesting it and if I find a simple way to implement it, then maybe yes.

    Hey,
    does this happen in client/dedicated server/server & play mode? Can you verify that those NameOverlays have a 'TextMeshCopyname' component? And do the player prefabs have a 'NetworkName' component? And both of them enabled? Does it work for the monster?

    Good to hear that the rest works.

    Cheers
     
    Last edited: Mar 2, 2016
  34. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,329
    Pet SYSTEM!!!!!!!! ++++++++++++++++
     
    Cyance likes this.
  35. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    NPC and player got still the NameOverlay.cs script
    Error: The associated script can not be loaded Please fix any compile errors and ssign a valid script.
    renamed the scripts with TextMeshCopyName
    and put the NPC in the source.

    So NameOverlay.cs --> must be --> TextMeshCopyName.cs

    TextMeshCopyName was named in the script so i changed that instead of changing TextMeshCopyName in to NameOverlay. But it worked :)
     
  36. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Drop and pickup items from ground :)
     
  37. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    Have deleted the project and reimport it. It looks better. Fot the main project i have just reimport it and that is why i got those issues. Will compare with the main and make the changes :) Thanks
     
  38. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Nice thanks for the reply. About the autorepeat thing I mentioned ( not sure if its applicable to 1.9 as I havn't downloaded it yet ) I was saying that when a skill has a cooldown, autorepeat fails, it will only do the skill once. Thats becausewhen it retries, the skill is not "Ready" and then it goes to the code snippet that I pasted which will then set the current skill to -1 and it will no longer try to do the skill.

    The fix I posted was the 1 line if statement in the below code ( the original code does not have this if statement ) in TryCastSkill of Player.cs
    Code (CSharp):
    1.  
    2. // if we get here, then something was wrong => cancel the cast
    3.         if(!skills[skillCur].autorepeat)
    4.             skillCur = -1;
    5.         state = "IDLE";
    6.  
    I don't know if it was a bug or not, or if you originally did not intend skills with cooldowns to be autorepeatable, but the reason why I was saying being able to have an autorepeatable skill with cooldown was useful was because the way damage is done. Its applied immediately after skill cast time. In order to sync it with an animation, you can shorten the cast time but add a cooldown, resulting in the damage being delt in the middle of your attack animation instead of at the end.

    Attack Animation ---------------------------------->
    Skill Cast Time ---> Damage ------>Cooldown


    The way you were doing it was as follows
    Attack Animation --------------------------->
    Skill Cast Time ------------------------------>Damage

    But this has a limitation that your Attack Animation needs to essentially do the physical attack ( the part of the animation where the weapon actually touches the enemy ) at the very end so as to sync with the damage timing.

    *edit just upgraded to your new version.

    Also another thing I just realized is that for weapon types, not only will they need special animations but they will also need special range. Unless you plan on your "Archer" never being able to use a melee weapon and vice versa, you need to be able to link the "Normal Attack" for ranged weapons and separately link the "Normal Attack" for melee to melee weapons.

    Also note that attacking as an Archer while unarmed results in a null reference exception.

    Btw great work on the ranged stuff, I think thats a great new feature in this version.
     
    Last edited: Mar 3, 2016
  39. Devision4

    Devision4

    Joined:
    Jan 12, 2013
    Posts:
    1,329
    Could you include a scene with a visual character selection?
     
  40. Tahlan

    Tahlan

    Joined:
    Feb 2, 2016
    Posts:
    10
    vis2k,
    Classes look pretty good. I think I have a grasp on how everything works. Here is my question, with the current class mechanics, how would you go about creating a class who could equip a "2 handed" weapon like a bow as well as a Sword and a Shield. Without allowing them to equip the Shield with the Bow?
     
  41. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Progress info: been working on the Patcher today and did more binary diff testing, which works perfectly fine already. What this means is that if we change a few bytes in one of the game files, then the patcher will only download those few bytes (and a bit more), instead of downloading the whole file. Otherwise big files would be downloaded over and over again after the smallest changes, which is a bandwidth nightmare. Most MMORPGs implement this by using game specific patches that modify the game's packet files etc., but the patcher will work for any game!

    Okay, good to hear.
    It's been a while now, but I know that I did some work on the 'autorepeat doesn't work with cooldowns' problem before. Will look into it again.

    The weapon specific attack range makes sense. Will put this on my ToDo list.

    Thanks for letting me know about the null reference exception, this has high priority. I'll try to reproduce this issue tomorrow and then fix it. It's really cool that we have so many testers here now!

    I don't feel like doing that just yet, because the character selection logic would be the same. It's just some fancy UI changes. Don't get me wrong, I see why this would be an interesting feature. It's just the whole simplicity vs. complexity thing as usual.
    Thanks. That's a good question, right now I designed it so that archers can only use Bows. The two weapon issues that were discussed above are somewhat in that category, so I will have to think about the whole weapon system again soon. It's on my ToDo list.
     
    Last edited: Mar 3, 2016
  42. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Cool, like I said the fix I posted should fix the autorepeat issue, so you may not need to look too much into it.

    Also let me know if you can't reproduce the NullReference issue. Similar to what someone else posted, I had some other issues that were fixed by deleting and reimporting the full uMMORPG package, restarting unity, etc, so I'm not sure if that issue was due to that or not.
     
  43. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Hey how does collision work? Do you need to generate the navmesh? It looks like there is only a trigger collider on the player so no regular colliders?

    *edit nm got it to work with navmesh. However, now my start position doesn't seem to be working properly. Have you ever encountered this before ? I must be doing something wrong, but it seemed to be working before I generated the new navmesh. I think I originally had just generated it on the terrain, but then switched to generating it on everything. I'm gonna try to clear and regenerate it, I've never really worked with navmeshes before.
     
    Last edited: Mar 4, 2016
  44. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Hey,
    right now we just have to bake the NavMesh and that's it, the server won't have to do any more collision calculations - that's a really good thing for the performance.
    Your start position (the 'startpos' GameObject in the Hierarchy) should be somewhere on the NavMesh. Also note that there was this weird bug where using transform.position with a NavMeshAgent wouldn't put the player to the start position if the start position is far away like (200, 0, 200). The workaround is in V1.10 and if you don't want to wait, you can take a look at my post here: http://forum.unity3d.com/threads/ummorpg-official-thread.376636/page-4#post-2530132
     
  45. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    Thanks that workaround fixed the issue.
     
    vis2k likes this.
  46. Avrack

    Avrack

    Joined:
    Nov 26, 2012
    Posts:
    2
    Hello,
    I considering to buying this asset, but I don't have much experience with unity, so I have one question. Can I "lock" camera, so that players could'not rotate camera and zoom it in and out?
     
  47. vis2k

    vis2k

    Joined:
    Sep 4, 2015
    Posts:
    3,300
    Yes, very easily. All you have to do is open the CameraMMO.cs Script and comment out everything inside the "if !PointerOverGameObject" part.
     
  48. Disastorm

    Disastorm

    Joined:
    Jun 16, 2013
    Posts:
    69
    I made a graphical character creation setup if anyone is interested.
    Note this is only for char creation. Char selection is completely different, which I don't plan on doing, so it would be up to vis2k if he wants to do that.
     
    nonom and Cyance like this.
  49. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50
    I really like that Disastorm, nice work
     
  50. Cyance

    Cyance

    Joined:
    Jan 4, 2015
    Posts:
    50