reetus / classicassist Goto Github PK
View Code? Open in Web Editor NEWAssistant for ClassicUO with UOSteam-like interface and macro syntax.
License: GNU General Public License v3.0
Assistant for ClassicUO with UOSteam-like interface and macro syntax.
License: GNU General Public License v3.0
Hi
I've been playing around with ClassicAssist and loving it so far.
There seems to be quite an issue with getting targets using Macros like:
GetEnemy(['Gray'], 'Any', 'Closest'):
Often, a mob standing even right next to you will never be set as "enemy", the macro will get a mob somewhere almost offscreen if at all.
Keep up the excellent work guys!
It tries to loot the item(s) while corpse is not opened completely. It always messages "You must wait..."
how do i get shard added to list of shards you have on there wont let me connect to one thats not on there
Hi Reetus
I've fallen in love with CUO but it was Classic Assist that made it actually usable for me. You're doing an amazing job! I've been using Classic Assist for about a month as my daily driver and i thought i'd share some findings and ideas you may or may not want to look at, but it's all i can provide to try to make classicassist better.
Scavenger
For whatever reason, i didnt it to work at all. No matter what i do or try, it just ignores items on the ground.
Provocation
tried to use Classic Assist to macro provocation. Couldn't get it to work. Basically, when the skill prompts you for the 2nd mob, it just does nothing.
Counters / Counter warnings
The display of the counter below set treshold is displayed in the same color als all other messages. It's easy to not see it. It would be nice if a color could be set or at least it was a different color, like you did to autoloot recently. Also, it would be helpful, if it would report that you're under the warning treshold you set and not once when u actually go below.
Autoloot
Autoloot is a great click-saving feature. And while it works fine on a single mob, it seems to struggle as soon as you walk over multiple mobs. Feels like its getting confused if it should be looting or opening new corpses. And if it fails to grab the item for whatever reason, it doesnt try again unless you manually re-open the corpse, while uosteam would be looking trying to loot it. Like, if for whatever reason a corpse opened behind a wall (out of sight), on steam you could walk around the corner and it would grab it, classic assist wont react.
Thats all i can think for now. Dont take the feedback as criticism, i love your work!
morph
The auto-completeion within one line is not working if there is already something in front of it.
Sorry for these many tickets but I am just writing down what I noticed. :)
ClassicUO.exe ate up to 10GB RAM and crashes the game.
I don't see errors on the console. It happens when there are a number of corpses nearby, say 8+, but I have had crashes with only 3 nearby.
I will test different versions, which may give a clue.
0.2.18.113 Good
0.2.18.114 To be tested
0.2.19.115 To be tested
0.2.19.120 To be tested
0.2.20.121 To be tested
0.2.23.122 Memory leak & Crash
0.2.27.123 Memory leak & Crash
Is Autoloot considered in this project? Just as it was in original UOSteam?
I dont know how to reproduce, but sometimes when i log in, profile loads to proper character, and sometimes not. Ty in advance
is there a way to convert uosteam scripts to classicAssist? i'm trying to make an auto bandage script
I have to click set container on autoloot tab every time after I switch character, which is not really a big deal. But it would be nice if we can add a line in a marco once and for all. Something like SetLootContainer("backpack")
.
I have about 46 macros here and every time I change one or make a new and hit the save button (both on macros and on profile), it does not save anything... It only saves when I create a new profile (as a dupe) with the macros I just modified.
It's not working as intended...
If u set hotkey for dress/undress, classic always is undressing onehanded, because it is understanding as TwoHanded
I can't figure out how to target water tile.
TargetTileRelative("self", 3, False)
don't seems to work.
Hi, I'm playing on a shard where the lockpicking skill is executable. Lockpicking ist used to remove Traps. The problem is, i cant use the skill in my macro with UseSkill("Lockpicking"). If i do it, nothing happend, no Error, nothing. Probably because normaly the skill isnt useable?! Is it possible to make the skill executable in scripts? Thank you for help and great work, love your classicassist.
I am unable to close the following menu and icons in game:
Restarting CUO removes the empty menu, but the 2 icons remain. Right click does not work, nor does alt+right click.
Loading with CUO with ClassicAssist removed from settings.json does not show them. Loading CUO with ClassicAssist added back to settings.json shows them again.
Freezing Issues
I've just tested with Hotkey and Macro Tab...
I will show u one example for testing and reproducing:
#Set DO NOT AUTO INTERRUPT
#Show all names
if not TimerExists("shownames"):
SetTimer("shownames", 0)
elif Timer("shownames") > 5000:
ShowNames("mobiles")
SetTimer("shownames", 0)
ClearTargetQueue()
#Last Target
if not Paralyzed("self"):
Target("last",1,1)
Pause(50)
If u run this macro without change Macro Tab to Options Tab, u will get some freezes and fps dropping. I've already tested with 25ms Limit Wheel Trigger set and unset and I still freezing when I'm Macro Tab or Hotkey Tab...
So, u will be able to avoid it, changing to Options Tab, but it's just working when ClassicUO + ClassicAssist Memory is < 800-900 MB at Task Manager.
When ClassicUO + ClassicAssist Memory is >= 800-900 MB as image. This trick wont work anymore...
My notebook is Acer Predator (i7700hq, 16gb, Samsung Evo, GF 1060).
Lets make an example:
You'll walk 4 steps in south and afterwards 4 steps in north. You'll have to add a "Pause(whatever)" after every walk or it sends all packets nearly after 100ms around => 1 second 10 steps => character rotates in place.
Like this image
If i change it, it doesn't change.
Hi, I am trying to set up a marco to move gold from backpack to bank. Can't figure what's wrong with my line.
MoveType(0xeed, "backpack", "bank")
The program is expecting int and not liking strings. Is this intentional or is there a workaround?
Hi, please add UO Evolution shard:
Name: UO Evolution
Address: play.uoevolution.com
Port: 2593
A valuable link in different scenarios.
Once again, if it is already possible to achieve that somehow, please show a snippet.
Is it possible to implement ClickScreen Function from UOSteam? It will be interesting and it could be upgraded with GetCursorX() and GetCursorY() extra function too
clickscreen (x) (y) ['single'/'double'] ['left'/'right']
// alias "mousex" X current mouse position -> GetCursorX()
// alias "mousey" Y current mouse position -> GetCursorY()
Spells isnt working with Target Queued
When looking for a specific command/definition it is helpful to use search across the whole commands. Therefore it will be great to have all of them in one spot.
#bug#When the "IgnoreList applies to GetEnemy/friends" option is active, the target system acts weird. Try to spam this in a mob area. It starts to ignore random mobs.
GetEnemy(["Gray"],"Any","Next")
Attack ('enemy')
HeadMsg("โผ","enemy")
Is it possible to adjust the code to show the character name (or, alternatively, the profile name) in the ClassicAssist UI headbar? I usually play with three accounts simultaneously and it's been a pain to find the proper ClassicAssist window when switching characters. Thanks and congrats for the project!
When autocompletion is used, it resets the indentation to the beginning of the line
I can't set any hotkeys to anything but a 1-modifier combination.. meaning I can only do Ctrl+F or Alt+F but not Ctrl+Alt+F
if FindType (0x2264,-1,"backpack") : #a random scroll
UseType (0x2264)
while WaitingForTarget():
Pause (10)
if TargetExists() :
Target ('enemy')
The WaitingForTarget comand doesn't work for scroll casts. It might be amazing have it working for all the items either
What do I need to compile the code? I'm downloading visualstudio but not sure which to select during installation.
I want to do a few tests on TargetManager class. Reverse
boolean should use _ignoreList
instead of mobiles and if _ignoreList
is empty we should populate with the reverse of the returned mobiles from the query you do above(except for the contains on ignoreList) and instead of adding to ignoreList you gonna remove from it so that it becomes available in case player does next.
I've tried every dll I can find to use as a plugin (zlib64/32 & cuoapi) but none of them load. Am I doing something wrong?
#Feature# ON/OFF Agents commands for Vendors/Scavenger/Autoloot
#Feature# Possibility to save, activate and deactivate, different Scavangers. Similar to organizers.
#Feature# A section where to insert 1 or more passive loop scripts in BG (like YokoInjection). Add to any single script the bandage script isn't so user friendly...
#Feature# May the new writing support system be active after other commands? Just an idea. Dunno if it's intended.
Is it possible to put bone cutter into ClassicAssist? Just like how it was in original Steam?
I was confused if targeting works as intended in CA so i run some tests:
First screenshot shows how targeting works currently in CA
Second screenshot shows how targeting works (and should work in CA) on Steam and Razor (since Steam doesnt have Previous)
As you can see every targeting option in CA works the same which i believe is not how its supposed to be
#fix#to Insert the "WaitForJournal" directly from the comandlist, it writes "WaitForJounal" in the script. it's mistyped.
#bug#when I push special buttons on the keyboard, sometimes the assistant starts to spams ALL MACROS togheter (keys like VolumeUP, Pause/Play)
Was making some hotkeys and notice that Pierce Mastery isnt on the spells list! Ty in advance!
EquipLastWeapon() is buggy. The function is not functioned.
Please add a new function to get raw gump data.
It helps more powerful scripting
Thank you in advanced.
Hey
Found another possible issue. I was trying to re-write a chest loot macro from UOsteam to classicAssist. It would loop through items in chest, use item id, and only keep vanq/invul items. In steam i used to check the journal for the keywords. I tried the same with classicassist and it wasn't working.
I have some basic c# skills from a former life and attached a debugger. Seems that the Journal entries dont contain the result of item identification, even though they're visible in the journal.
As a fall back, i looked at the Property() command. Figured out i could detect vanquishing by using "damage increase 9%" for vanq. However, there's nothing pointing to invul.
Just thought i'd report it, in case you'd want to have a loot at it.
Cheers
1-Paint commands (for serial/aliases)
Paint(lasttarget, '2974')
ClearPaint(lasttarget)
2-Autoloot Agent: An option "Loot Humanoids ON/OFF" in the autoloot agent (basically, something that ignore bones and Humanoids)
3-Autoloot Agent: An option "Loot Innocent corpse ON/OFF" in the autoloot agent. Some shards send corpses notoriety packets (or it should work on journal check? or both?)
4-A command for pop the statusbar at X, Y cordinates on the screen (for serial/aliases)
StatusBar(lasttarget, 1185, 50)
5-Dress Agent: An option for "Doubleclick for Equip"
1- after i change a weapon, the icons don't refresh. I need to activate a
2- if i'm wrestler, if i active disarm or parablow, the icons disappear. If I activate something like Death Strike, its appear again.
3- Everytime i launch again the client, i have to fix the icons position. It doesn't remember the last location.
is there a way i can import the classicassist package to use in my stealth client python assistant? (i use it at night when sleeping to consume less cpu)
This will be relatively straightforward, but extremely valuable since it will allow connecting Assist with UO macro system and third-party tools.
If it is somehow already possible: please, show a short snippet of usage.
Thanks in advance!
I am trying to write a bandage macro for my pets.
The pet I use has 196 Hits. Hits() returns 25
I use this test code to check the Hits:
def TestLoop():
_pet1 = Engine.Mobiles.Where(lambda m: m!= None
and m.Name == Pet1Name).FirstOrDefault()
Msg(str(Hits(_pet1)))
When in combat, my pet has 179/196. DiffHits should be 17, but returns 0
I use this test code to check the DiffHits:
def TestLoop():
_pet1 = Engine.Mobiles.Where(lambda m: m!= None
and m.Name == Pet1Name).FirstOrDefault()
Msg(str(DiffHits(_pet1)))
Hi,
FindLayer is not working. Example:
FindLayer("OneHanded", 0x40152502)
If the Weapon is equiped he returns: Cannot find item....
On the otherhand EquipItem(0x40152502, "OneHanded") is working....
So if i use this Macro:
EquipItem(0x40152502, "OneHanded")
Pause(1000)
FindLayer("OneHanded", 0x40152502)
It returns Cannot find item....
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.