Achievement System

Achievement System [Paid] 1.2.1.2

No permission to buy ($14.99)

TheArt

Rookie
Question Dexter, if I paid a little extra, is there a way to have this done up for a slightly older version of the client?
 

Allestaria

Citizen
How do I find my download? Sorry new.. first post and comment all in one!! (purchased)
I just downloaded the new ServUO client. So looking for working addons and this one sounds like it would be a lot of fun!
 

danielsheep

Gold Supporter
How do I find my download? Sorry new.. first post and comment all in one!! (purchased)
I just downloaded the new ServUO client. So looking for working addons and this one sounds like it would be a lot of fun!
Purchase it again. This script has been updated.
 

Kirito

Citizen
Hello, the server crashes when i use the search function, anyone have this problem like me?
I use the last ServUO repo.

System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
in Server.Achievements.AchievementGump.BuildListFromSearch()
in Server.Achievements.AchievementGump.OnResponse(RelayInfo info)
in Server.Gumps.BaseGump.OnResponse(NetState state, RelayInfo info)
in Knives.TownHouses.GumpResponse.DisplayGumpResponse(NetState state, PacketReader pvSrc)
in Server.Network.MessagePump.HandleReceive(NetState ns)
in Server.Network.MessagePump.Slice()
in Server.Core.Main(String[] args)
 

danielsheep

Gold Supporter
This script seems not support latest servuo. I just got crash report.
ServUO Version 0.0, Build 0.0
Operating System: Microsoft Windows NT 6.2.9200.0
.NET Framework: 4.0.30319.42000
Time: 2021-03-23 AM 11:21:40
Mobiles: 51805
Items: 451019
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Achievements.AchievementProfile.<>c.<get_Points>b__25_1(AchievementDetails details) in C:\ServUO-svn\Scripts\Customs\AchievementSystem-master\AchievementProfile.cs:line 40
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.Sum(IEnumerable`1 source)
at Server.Achievements.AchievementProfile.get_Points() in C:\ServUO-svn\Scripts\Customs\AchievementSystem-master\AchievementProfile.cs:line 40
at Server.Achievements.AchievementGump.AddGumpLayout() in C:\ServUO-svn\Scripts\Customs\AchievementSystem-master\Gumps.cs:line 65
at Server.Gumps.BaseGump.SendGump() in C:\ServUO-svn\Scripts\Gumps\BaseGump.cs:line 82
at Server.Gumps.BaseGump.SendGump(BaseGump gump) in C:\ServUO-svn\Scripts\Gumps\BaseGump.cs:line 75
at Server.Achievements.AchievementSystem.<>c.<Initialize>b__15_0(CommandEventArgs e) in C:\ServUO-svn\Scripts\Customs\AchievementSystem-master\AchievementSystem.cs:line 110
at Server.Commands.CommandSystem.Handle(Mobile from, String text, MessageType type) in C:\ServUO-svn\Server\Commands.cs:line 258
at Server.Mobile.DoSpeech(String text, Int32[] keywords, MessageType type, Int32 hue) in C:\ServUO-svn\Server\Mobile.cs:line 4719
at Server.Network.PacketHandlers.UnicodeSpeech(NetState state, PacketReader pvSrc) in C:\ServUO-svn\Server\Network\PacketHandlers.cs:line 1537
at Server.Network.MessagePump.HandleReceive(NetState ns) in C:\ServUO-svn\Server\Network\MessagePump.cs:line 209
at Server.Network.MessagePump.Slice() in C:\ServUO-svn\Server\Network\MessagePump.cs:line 136
at Server.Core.Run() in C:\ServUO-svn\Server\Main.cs:line 690
 

Dexter_Lexia

Administrator
ServUO Developer
Hi Humzie, to get it to work with RunUO, you will need to merge the ServUO EventSink.cs to the RunUO version. You will have to then edit where the event invocations are in various files in the scripts folder. The system uses the following events which may or may not be present in RunUO:

Code:
            EventSink.CharacterCreated += OnCharacterCreate;
            EventSink.PlayerDeath += PlayerDeath;
            EventSink.OnKilledBy += OnKilledBy;
            EventSink.OnItemUse += ItemUse;
            EventSink.OnEnterRegion += EnterRegion;
            EventSink.SkillGain += OnSkillGain;
            EventSink.SkillCapChange += OnSkillCapChange;
            EventSink.StatCapChange += OnStatCapChange;
            EventSink.QuestComplete += CompleteQuest;
            EventSink.Login += OnLogin;
            EventSink.JoinGuild += OnJoinGuild;
            EventSink.AggressiveAction += OnAggressiveAction;
            EventSink.ResourceHarvestSuccess += ResourceHarvestSuccess;
            EventSink.FameChange += FameChange;
            EventSink.KarmaChange += KarmaChange;
            EventSink.VirtueLevelChange += VirtueLevelChange;
            EventSink.PlayerMurdered += PlayerMurdered;
            EventSink.CraftSuccess += CraftSuccess;
            EventSink.CorpseLoot += CorpseLoot;
            EventSink.AccountGoldChange += AccountGoldChange;
            EventSink.SkillCheck += CheckSkill;
            EventSink.RepairItem += RepairItem;
            EventSink.TameCreature += TameCreature;
            EventSink.TeleportMovement += TeleportMovement;
 

jayates

Citizen
Hello everyone! Just got this awesome looking sys a couple days ago (haven't been able to use it yet though):( I'm trying to run it on a ServUO repo called Land Of Archon with

.NET 5.0 SDK (v5.0.201)​

installed.
Got theses errors:
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/Achievement.cs:
CS1519: Line 421: Invalid token '=' in class, struct, or interface member declaration
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/AchievementProfile.cs:
CS1519: Line 23: Invalid token '=' in class, struct, or interface member declaration
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/TimedAchievementTracker.cs:
CS1519: Line 12: Invalid token '=' in class, struct, or interface member declaration
CS1519: Line 12: Invalid token '(' in class, struct, or interface member declaration
Scripts: One or more scripts failed to compile or no script files were found.

Any help is greatly appreciated!!!​

 

zerodowned

Moderator
ServUO Developer
Hello everyone! Just got this awesome looking sys a couple days ago (haven't been able to use it yet though):( I'm trying to run it on a ServUO repo called Land Of Archon with

.NET 5.0 SDK (v5.0.201)​

installed.
Got theses errors:
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/Achievement.cs:
CS1519: Line 421: Invalid token '=' in class, struct, or interface member declaration
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/AchievementProfile.cs:
CS1519: Line 23: Invalid token '=' in class, struct, or interface member declaration
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/TimedAchievementTracker.cs:
CS1519: Line 12: Invalid token '=' in class, struct, or interface member declaration
CS1519: Line 12: Invalid token '(' in class, struct, or interface member declaration
Scripts: One or more scripts failed to compile or no script files were found.

Any help is greatly appreciated!!!​


change like so

from

public bool WildOnly => m_WildOnly

to

C#:
#region edited for Runuo2.7
        private bool m_WildOnly = true;
        [CommandProperty(AccessLevel.GameMaster)]
        public bool WildOnly
        {
            get{ return m_WildOnly; }
            set{ m_WildOnly = value; }
        }
        #endregion

the reason is LoA repo was made before servuo was using the newer .net that can read public bool WildOnly => m_WildOnly as a get/set
 

jayates

Citizen
Awesomely Awesome! That fixed the first error and I added the fix to the second error by changing
this:
[CommandProperty(AccessLevel.GameMaster)]
public bool ShowProgress { get; set; } = true;
to this:
#region edited for Runuo2.7
private bool m_ShowProgress = true;
[CommandProperty(AccessLevel.GameMaster)]
public bool ShowProgress
{
get{ return m_ShowProgress; }
set{ m_ShowProgress = value; }
}
#endregion

Wondering if changing this:
public static List<TimedAchievementTracker> Tracker { get; set; } = new List<TimedAchievementTracker>();
to this will fix the last error:
public static List<TimedAchievementTracker> Tracker { get; set; } //= new List<TimedAchievementTracker>();
 

Vorspire

Vita-Nex: Core
Administrator
ServUO Developer
That's good inference.
That should fix the error, but you'll have to make sure "Tracker" is still assigned a new List somewhere so it doesn't crash when it tries to use it :)
Code:
private static List<TimedAchievementTracker> m_Tracker = new List<TimedAchievementTracker>();
public static List<TimedAchievementTracker> Tracker { get { return m_Tracker; } set { m_tracker = value; } }
 

jayates

Citizen
I didn't think about the crash that would happen when it tries to use it... lol
Thank you!!!
Now got a whole new set of errors... should have figured... sheesh!
C#:
Errors:
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/AchievementSystem.cs:
    CS0234: Line 16: The type or namespace name 'VendorSearching' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)
    CS0234: Line 23: The type or namespace name 'Khaldun' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)
    CS0246: Line 1089: The type or namespace name 'QuestCompleteEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1320: The type or namespace name 'SkillGainEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1339: The type or namespace name 'SkillCapChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1355: The type or namespace name 'StatCapChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1435: The type or namespace name 'JoinGuildEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1494: The type or namespace name 'FameChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1499: The type or namespace name 'KarmaChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1574: The type or namespace name 'VirtueLevelChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1584: The type or namespace name 'PlayerMurderedEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1607: The type or namespace name 'CorpseLootEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1617: The type or namespace name 'AccountGoldChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1662: The type or namespace name 'SkillCheckEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1673: The type or namespace name 'RepairItemEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1681: The type or namespace name 'TameCreatureEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1700: The type or namespace name 'TeleportMovementEventArgs' could not be found (are you missing a using directive or an assembly reference?)
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/Gumps.cs:
    CS0234: Line 10: The type or namespace name 'VendorSearching' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)
 
Last edited:

zerodowned

Moderator
ServUO Developer
Awesomely Awesome! That fixed the first error and I added the fix to the second error by changing
this:
[CommandProperty(AccessLevel.GameMaster)]
public bool ShowProgress { get; set; } = true;
to this:
#region edited for Runuo2.7
private bool m_ShowProgress = true;
[CommandProperty(AccessLevel.GameMaster)]
public bool ShowProgress
{
get{ return m_ShowProgress; }
set{ m_ShowProgress = value; }
}
#endregion

Wondering if changing this:
public static List<TimedAchievementTracker> Tracker { get; set; } = new List<TimedAchievementTracker>();
to this will fix the last error:
public static List<TimedAchievementTracker> Tracker { get; set; } //= new List<TimedAchievementTracker>();
yeah, sorry, been busy with work. but that and @Vorspire 's response on TimedAchievementTracker

I didn't think about the crash that would happen when it tries to use it... lol
Thank you!!!
Now got a whole new set of errors... should have figured... sheesh!
C#:
Errors:
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/AchievementSystem.cs:
    CS0234: Line 16: The type or namespace name 'VendorSearching' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)
    CS0234: Line 23: The type or namespace name 'Khaldun' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)
    CS0246: Line 1089: The type or namespace name 'QuestCompleteEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1320: The type or namespace name 'SkillGainEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1339: The type or namespace name 'SkillCapChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1355: The type or namespace name 'StatCapChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1435: The type or namespace name 'JoinGuildEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1494: The type or namespace name 'FameChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1499: The type or namespace name 'KarmaChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1574: The type or namespace name 'VirtueLevelChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1584: The type or namespace name 'PlayerMurderedEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1607: The type or namespace name 'CorpseLootEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1617: The type or namespace name 'AccountGoldChangeEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1662: The type or namespace name 'SkillCheckEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1673: The type or namespace name 'RepairItemEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1681: The type or namespace name 'TameCreatureEventArgs' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 1700: The type or namespace name 'TeleportMovementEventArgs' could not be found (are you missing a using directive or an assembly reference?)
+ CUSTOM/New Systems/Achievement System 1.2.1.2/AchievementSystem-master/Gumps.cs:
    CS0234: Line 10: The type or namespace name 'VendorSearching' does not exist in the namespace 'Server.Engines' (are you missing an assembly reference?)

have you added in the new events?
if yes, recompile the core
if no, you have more work to do
 

Dexter_Lexia

Administrator
ServUO Developer
Correct, you'll need to basically copy the ServUO EventSink.cs, and the events that didn't exist prior to the merge, you'll need to add in the hooks in various scripts.