Page 1 of 2

750 Changelog

Posted: Mon Feb 11, 2013 7:35 am
by rock5
  • - Changed 'bank' so that findItem and itemTotalCount still work even though the bank is closed.

    - Added an ignorelist for unattackable mobs. Mobs are cleared from the list if more than 10s have passed and 50 distance from last ignore.

    - Fixed casting bug. No longer tries to undercut clicktocast skills.

    - Fixed the incomplete code that uses system messages to react more quickly to "object between you and target" and "must face target" messages.

    - Added new feature. You can now retrieve the last of any system alert or warning message without having to set up an event monitor.
    Syntax:
    • lastmessagetime, message = getLastWarning(fullOrPatialMessage, age)
      lastmessagetime, message = getLastAlert(fullOrPatialMessage, age)
    eg.

    Code: Select all

    if getLastWarning("crush you",2) then
        -- do something
    This will only 'do something' if there was a warning message with the words "crush you" in it in the last 2 seconds. You don't need to use the full message (although use the full message to avoid special character problems) and you don't have to worry about case. It remembers the last of every message but only the last and does not clear them. So if there is a danger in your code of acting on the same message twice then remember the "lastmessagetime" to avoid it.

    - Fixed bug that could cause a spammable buff to be cast multiple times in a row until it detects the buff has been applied.

    - Fixed support for casting clicktocast buffs on yourself.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 8:54 am
by metralla123
Good work guys!! :D
I have a problem with a mob in Grafu Castle. Manipulated Bear. The bot does not detect and ignore, but the mob it strike my char, in the rev 748 it was detecting it. Some solution?!

Re: 750 Changelog

Posted: Mon Feb 11, 2013 9:00 am
by lisa
So it is only for warning messages?

In the example the "crush you" which is done by madman mallen is actually done in /say so it wouldn't be in the warning message.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 9:05 am
by rock5
What do you mean "detect and ignore"? What do you mean by "but the mob it strike my char"? Are you saying it's aggroing the mob? Isn't it supposed to?
lisa wrote:So it is only for warning messages?
Warning and alert messages. Yes I know "crush you" is a chat message but I couldn't think of a familiar warning or alert. It was just an example. I never considered adding chat because every message is different so if you need to monitor chat you would definitely have to set a your own monitor.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 10:01 am
by metralla123
the mob attack my character, and the bot not detect any attack or any mob.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 10:09 am
by metralla123
I cannot put the images in this post. Do I send them you for PM?

Re: 750 Changelog

Posted: Mon Feb 11, 2013 10:20 am
by rock5
So why was your character ignoring the mob? Was your waypoint file in "RUN" mode? Was the mob in your friend list? Was the mob outside of the level above and below limits?

You can cut and paste. Follow the link in my signature to learn how to copy and paste from Micromacro. But if you need to send me an image, because you can't attach it here, then sure pm it to me. But why can't you attach an image? I think it just needs to be a jpg.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 10:36 am
by metralla123
I use this in my profile:
<!-- Attack monsters 3 levels above or 10 below your level -->
<option name="TARGET_LEVELDIF_ABOVE" value="3" />
<option name="TARGET_LEVELDIF_BELOW" value="76" />
<friends>
<!-- names of friends we help fighting or enemys we don't want to attack -->
<!-- for umlauts use \129 (ue),\132 (ae),\148 (oe) e.g. K\132fer -->
<friend name="" />
<friend name="" />
<friend name="" />
<friend name="" />
in the waypoint:
__WPL:setForcedWaypointType("NORMAL");
in the instance, and when the character enter kill 4 mobs, ignore de Manipulated Bear and kill Cayus=boss, te bear follow my char and fight but the bot ignore completely.
I do not see any option that leaves me to place the image, in other posts yes, in this one not. Sorry for my English, I use translator

Re: 750 Changelog

Posted: Mon Feb 11, 2013 11:24 am
by rock5
Try starting with debug on. eg.

Code: Select all

rom/bot debug
Show me what it prints in the MM window.

Re: 750 Changelog

Posted: Mon Feb 11, 2013 1:35 pm
by metralla123
debug say:
debug 1018194176 target is not attackable

Re: 750 Changelog

Posted: Mon Feb 11, 2013 9:46 pm
by rock5
Me and Lisa were trying something different to fix issues with detecting if mobs were attackable but the fix caused it's own issues so we put it back the way it was. Unfortunately that means some mobs, especially in newer zones, do not get detected as attackable. We haven't come up with a solution for this yet. But you've shown us another problem. Because the attackable check it done befor the aggro check it wont fight back against these mobs.

Here is a file wheere I've moved the attackable check after the aggro check so it will at least fight back. I'm not sure this is a good long term solution but you can try it out until we can think of something else.

Re: 750 Changelog

Posted: Tue Feb 12, 2013 12:53 pm
by rock5
This should be fixed in revision 751. Try updating to that. After updating if your player.lua has a red icon next to it do an "TortoiseSVN/Revert".

Re: 750 Changelog

Posted: Tue Feb 12, 2013 4:28 pm
by Ego95
I didn't know where to post it so I thought it would be the best solution to post it in the newest revision topic.
I found out a small "bug" with one (maybe more) skills when using the combat_stop_distance. The bot doesn't use the value of the combat_stop_distance if using casts. That's normal because otherways it would not able to cast anything. The priest skill "Rising Tide" has a cast time of 2 seconds. But as mage/priest there is an elite skill which makes rising tide to an instant skill with 4 seconds cooldown. Especially with the lvl60 elite skill rising tide is a very strong skill which should be used.
The problem is that the bot thinks, my Rising Tide is a casting skill and waits in front of the mob while using the skill. I also noticed the bot ignores the cooldown the skill has as mage/priest.

AlterEgo95

Re: 750 Changelog

Posted: Tue Feb 12, 2013 6:53 pm
by lisa

Code: Select all

table.print(GetSkillBookData(3))
the argument is tab index, so 1,2,3,4
1 being skills like teleport, recall and such
2 main class "shared" skills
3 secondary class
4 main class "class specific" skills

It will print a table of all skills in that tab, looks like this.

Code: Select all

Command> table.print(GetSkillBookData(3))
table: 03B37CD8
Magic Barrier:  table: 03B382A0
        skillnum:       5
        TPToLevel:      44367
        skilltab:       3
        Mana:   720
        Id:     491166
        Level:  50
        Address:        86829872
        BaseItemAddress:        423024640
        aslevel:        12
Holy Aura:      table: 03B381D8
        skillnum:       4
        TPToLevel:      398
        skilltab:       3
        Id:     492653
        Level:  0
        Address:        86829796
        BaseItemAddress:        423025664
        aslevel:        8
Rising Tide:    table: 03B37E68
        skillnum:       1
        TPToLevel:      238130
        skilltab:       3
        Mana:   192
        Id:     491591
        Level:  52
        Address:        86829568
        BaseItemAddress:        422993920
        aslevel:        1
Blessed Spring Water:   table: 03B38368
        skillnum:       6
        TPToLevel:      150
        skilltab:       3
        Mana:   120
        Id:     490298
        Level:  0
        Address:        86829948
        BaseItemAddress:        423023616
        aslevel:        16
Regenerate:     table: 03B380E8
        skillnum:       3
        TPToLevel:      120955
        skilltab:       3
        Mana:   224
        Id:     490269
        Level:  52
        Address:        86829720
        BaseItemAddress:        422996992
        aslevel:        4
Urgent Heal:    table: 03B38020
        skillnum:       2
        TPToLevel:      120955
        skilltab:       3
        Mana:   160
        Id:     491147
        Level:  52
        Address:        86829644
        BaseItemAddress:        422999040
        aslevel:        1
So skill ID of rising tide when you have rising tide mastery is 491591

Re: 750 Changelog

Posted: Tue Feb 12, 2013 6:58 pm
by metralla123
Hi guyss!! I testing rev 751 and runs perfect in Grafu Castle, detect aggroing and killing the mob!! Congratulations, and thanks you very much!! :D

Re: 750 Changelog

Posted: Tue Feb 12, 2013 7:00 pm
by lisa
that was meant for another post but it is still relevant, the Id of the skill changes but the name remains the same which is why it will be harder to make the bot use it.

Rock would be best to work out how to do this but we would need to check if the skill book has rising tide mastery

Code: Select all

Rising Tide Mastery:    table: 03D3C970
        skillnum:       20
        TPToLevel:      150
        skilltab:       4
        Id:     491590
        Level:  0
        Address:        584890788
        BaseItemAddress:        423085056
        aslevel:        30
and if so then change the Id of the skill rising tide so that the correct information it retrieved from memory.

Re: 750 Changelog

Posted: Tue Feb 12, 2013 7:19 pm
by lisa
do this in profile onload

Code: Select all

	<onLoad><![CDATA[
	for i, skill in pairs(settings.profile.skills) do
		if skill.Name == "PRIEST_RISING_TIDE" then
			settings.profile.skills[i].Id = 491591
			settings.profile.skills[i].Cooldown = 4
			settings.profile.skills[i].CastTime = 0
		end
	end
	]]></onLoad>
bandaid solution but it will work for now.

Re: 750 Changelog

Posted: Tue Feb 12, 2013 9:57 pm
by lisa
trying to work out best way to populate the skills table using info from memory.

We can get BaseItemAddress and from that we can get cast time and cooldown, this is from the actual skill book so the Id in the skills database isn't used, so it will be accurate.

we could then use the name from skill book and compare it to the value gotten from GetIdName(id from database) and then use the values we got from skill book.

Issue I have in the process is I have been realising some people are using "fake" skills in their profile to be able to spam a maco in game, like DIYC. Getting the info from memory would probably make it hard to let people do that in the same way. First thought is add in a function that can be for spamming buttons and have it as a profile option as to whether it gets used or not. So people wouldn't need to use "fake" skills in their profile in order to spamm a macro.

any thoughts?

cooldown = BaseItemAddress + C4 (int)
cast time = BaseItemAddress + F4 (float)

Second thought for adding spamming for a macro is to just create a "skill" in the database which literally just spams the key specified in the profile. It would still be a "fake" skill but if it has a set name in database we can then allow for it while getting info from memory.

Re: 750 Changelog

Posted: Tue Feb 12, 2013 11:12 pm
by rock5
The reason I didn't get everything from memory when I did the big skills update is because there were too many exceptions. Example, in my excel spreadsheet there are 12 skills that have casttime time but F4 is 0. I don't know if things have changed but I have cooldown as E8 and there are 5 that don't match memory. I always intended to eventually do it but I thought I'd level the full getting of everything from memory for another day because it's a job unto itself just sorting out and handling all the exceptions. Just letting you know if you want to tackle this it's not as simple as you thought.

I believe user macros are supported by not giving the skill an id. So if a user adds a skill to the skills database but doesn't give it an id then it is treated as a macro. I don't know if it's currently working, though. It's a good idea to maybe include some fake user macro skills but I think what the macro does would affect how it needs to be set up, eg. if it's an attack macro or buff/heal macro. I'm not sure. Some thought needs to be put into it.

Re: 750 Changelog

Posted: Tue Feb 12, 2013 11:34 pm
by lisa
testing with this atm

Code: Select all

		tmp.BaseItemAddress = GetItemAddress(tmp.Id)
		tmp.Cooldown = memoryReadRepeat("int", proc, tmp.BaseItemAddress + 0xE8)
		tmp.CastTime = memoryReadRepeat("float", proc, tmp.BaseItemAddress + 0xF4)
It seems fine to me so far, which ones were the exceptions and are you sure they weren't just different to skills database because of elites that changed the cooldowns/cast time?