XenoBot Forums - Powered by vBulletin

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 10 of 15

Thread: Xenobot - my feelings after using it and how to make bot better.

  1. #1
    dedi's Avatar
    Join Date
    Dec 2011
    Location
    Poznań, Poland
    Posts
    253
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Xenobot - my feelings after using it and how to make bot better.

    Hi there. First of all I want to say that I do not want to flame or offend anyone. I want to share my view on botting.

    I started on BlackD Proxy times, later was using Elfbot, Neobot, IBot. Now I started to use Xenobot, because I believe it CAN be best bot on market.
    Yes, I say "CAN", because it is not. I was always using bot to work better than a humman. In all ways, not only faster reaction. Making advanced scripts was my passion since blackd.

    DarkstR is doing great job, but his bot has lack of some usefull functions. Another problem is, that DarkstaR do not know how his user-friendly features affect the most advanced scripts.

    Quote Originally Posted by DarkstaR View Post
    The issue is that if we skip waypoints when the Walker is stuck, it can cause the script to mess up. This is when you see somebody standing in spawn getting killed by Wyrms as they spam "Hi deposit all yes." Not only is it dangerous but it's easy to detect.
    Quote Originally Posted by DarkstaR View Post
    This adds a layer of complexity. People will neglect to do it, like they have with every other advanced option they have been given, and then blame the bot when it doesn't work or gets them banned.
    1) Here is an example:
    I made script for Sea Serpents with lure mode (to make more exp/h). It works like this - when you levitate down to a cave it turn off targeting, then walk to the middle of cave (node, because can't use stand - walker was stucking when sea serpent blocked spot) and turn targeting on.

    Where is the problem? Here:



    It was't big problem in this script because simple lua could solve the problem:

    lua code:

    --Target on if stucked
    Module.New("AntiStuck", function(module)
    if ( standTime(30) ) then
    Targeting.Start()
    end
    end)

    function standTime(timesec)
    local curtime = os.time()
    local curpos = Self.Position()
    while (Self.Position().x == curpos.x and Self.Position().y == curpos.y and Self.Position().z == curpos.z) do
    if (os.time() - curtime >= timesec) then
    return true
    end
    wait(1000)
    end
    return false
    end

    Now imagine what happen if your bot get stuck in this way while you bot deep banuta on EK, where you lure 3 medusa, 3 serpent spawns and 2 hydras.

    How DarkstaR can help us making scripts like this without making bot much more complicated for people that are not good in scripting?
    It is really simple, just add third option to walker (next to Node and Stand): Walk, which works in same way as Stand, with the exception that it will skip to next waypoint/label/script if path is blocked (ofc if there is a monster which has option "If Stuck" it will attack the monster, then try to walk again and if can't find path again it will just skip)


    2) Another problem: there is no ShootAble function.
    In what way it could be usefull? Just check this screenshot.


    Screen take from forum, but it still shows where is the problem.

    I need this function in my Area Rune shooter also. Now I use "Map.isTileWalkable", but it is not the same and it cannot replace it.
    I know it is not that easy as it looks like, so it is not a priority. (I have read a thread on TPForum, where you posted)


    3) What more? There is no access to current states of bot (example: you can not check if Targeting is currently enabled or not).
    You can say it is useless, but I will give you how it can be usefull.

    Let's go back to my sea serpent script (with lure mode).
    I am luring sea serpents. Two of them are already close to me and bot start to use "utito tempo", but bot keeps to luring (you can find 4 in cave)

    Code:
    Targeting.State() --returns true if targeting is enabled, false otherwise
    How the script could looks like:
    lua code:
    Module.New("Utito", function(module)
    local Creatures = {"Sea Serpent"}
    if (Targeting.State() andSelf.MonstersAround(2, unpack(Creatures)) >= 2 and Utito and Self.Mana() >= 600) then
    Self.Cast("utito tempo", 290)
    module:Delay(10000)
    end
    end)


    4) While we are at bot states, let's see current character states.
    I know they already exist (Support > Condition Manager).

    Why we do not have functions like this:
    Code:
    Self.PZone() --returns true when character stays in protection zone, false otherwise
    Self.Hasted() --returns true when character is hasted, false otherwise
    For what we can use it ?
    • Advanced anty-paralize (which use haste and healing spells if haste is on cooldown)
    • Auto-manashield - which use energy rings and mana shield if you do not have any rings
    • Auto haste (which you can turn on/off any time in scripter)


    5) Another lack of functionality. Targeting is really simpe. You can call it "primitive"...

    It support only one spell, when we got in tibia all those strong strikes:
    • exori max flam/vis/tera/frigo
    • exori gran flam/vis/tera/frigo
    • exori amp
    • flam/vis/tera/frigo


    No categories function. It is really waste of time to add 10 monsters, every with same settings of chasing at low health and stand if they are 90<
    Or it is immposible to attack only when there is 3 monsters on some kind (like medusa, serpent spawn and hydra)
    It will count separately (lmedusa, serpent spawn and hydra), but will not attack if you have on screen 2 medusae and 1 serpent spawn.

    6) Laziness? Why do we have:
    Code:
    LootMessageProxy.New(key)
    while there is no function to read: 12:46 Using one of 780 mana potions...

    7) And the last thing - I miss a really usefull function:
    SetSettings - change ANY feature of bot, useable in scripter. I know function LoadSettings already exist, but it is too complicated and impossible to use.

    Let's say I have yalahar grim reaper script for paladin. I always was using pathfinding like this:
    lua code:
    Module.New("Pathfinder", function(module)
    if ( Self.Position().y <= 32154 ) then --this position is only example
    SetSettings("Special Areas//Blok1//Enabled", "Targeting")
    else
    SetSettings("SpecialAreas//Blok1//Enabled", "None")
    end
    end)


    It was luring grim reaper and then running around in desired area.


    I have no idea why some functions are realsed, but we do not have access to them - like states of character and bot. In my opinion this is due to lack of imagination of DarkstaR. He does not seems those functions usefull for normal botuser (which mostly can only load settings, start bot and eventually change setup).

    The question is about scripters which know how to write a script? I noticed lack of this functions after 5 days of using XenoBot. The possibilities are limited by our imagination.


    Sorry if my english isn't perfect, but it should be good enough to show my point of view.

    Regards,
    Dedi
    Last edited by dedi; 09-03-2013 at 01:47 PM.
    • Sold 245 EK for Loloz (vent)
    • Sold 250 EK for Kajtek (vent)
    • Sold 250 EK for Poncek (vent)
    • Sold 245 ED (vent)
    • Sold 310 RP (vent)
    • Sold 265 EK for Loloz (vent)
    • Sold 232 EK to ppooll
    • Sold 165 ED to tonystrea
    • Sold 350 ED to Serek (allegro)
    • Sold 392 EK to Czoger

  2. #2
    Moderator Nakuu's Avatar
    Join Date
    Feb 2013
    Location
    EU
    Posts
    5,194
    Mentioned
    642 Post(s)
    Tagged
    2 Thread(s)
    Pretty much agree with (almost) all you said. About 'isShootable' it can be done already in .lua - I don't think Tibia provides such information to make it any easier to implement than simple write an algorithm to detect walls etc.

    Personally I am also missing the function such as (Walker.isStuck()) that would return true/false. Would make it a lot easier to do few things without having to create another .xbst with different Targeting/Walker settings. Also having additional 'flag' in panels that would allows us to create few panels of same module in one .xbst file would be perfect:

    [Example]
    lua code:
    <panel name="Targeting" id="1"></panel>
    <panel name="Targeting" id="2"></panel>
    <panel name="Targeting" id="3"></panel>

    so we could loadSettings like this:
    lua code:
    loadSettings(name, id)


    Having to create different .xbst files just to load different settings is damn annoying for both script makers and users (having to keep those files makes Settings folder messy and makes it harder to find anything in Load Settings window)

    Anyway... SIGNED

  3. #3
    dedi's Avatar
    Join Date
    Dec 2011
    Location
    Poznań, Poland
    Posts
    253
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Nakuu View Post
    Pretty much agree with (almost) all you said. About 'isShootable' it can be done already in .lua - I don't think Tibia provides such information to make it any easier to implement than simple write an algorithm to detect walls etc.
    As I've read on this TP Forum tibia provides only flags about tiles and show if you are able to should though exact sqm (not form your position, but in general).

    Quote Originally Posted by Nakuu View Post
    Would make it a lot easier to do few things without having to create another .xbst with different Targeting/Walker settings. Also having additional 'flag' in panels that would allows us to create few panels of same module in one .xbst file would be perfect:

    [Example]
    lua code:
    <panel name="Targeting" id="1"></panel>
    <panel name="Targeting" id="2"></panel>
    <panel name="Targeting" id="3"></panel>

    so we could loadSettings like this:
    lua code:
    loadSettings(name, id)


    Having to create different .xbst files just to load different settings is damn annoying for both script makers and users (having to keep those files makes Settings folder messy and makes it harder to find anything in Load Settings window)
    SetSettings would solve problem.


    Anyway thanks for your feedback
    Last edited by dedi; 09-02-2013 at 12:26 PM.
    • Sold 245 EK for Loloz (vent)
    • Sold 250 EK for Kajtek (vent)
    • Sold 250 EK for Poncek (vent)
    • Sold 245 ED (vent)
    • Sold 310 RP (vent)
    • Sold 265 EK for Loloz (vent)
    • Sold 232 EK to ppooll
    • Sold 165 ED to tonystrea
    • Sold 350 ED to Serek (allegro)
    • Sold 392 EK to Czoger

  4. #4
    Senior Member Tripkip's Avatar
    Join Date
    Aug 2012
    Location
    Netherlands
    Posts
    1,310
    Mentioned
    105 Post(s)
    Tagged
    0 Thread(s)
    Agreed, We could use some extra functions, such as Area/TileShootAble. , self.Haste and ifWalkerStuck Etc!!

  5. #5
    XenoBot Developer DarkstaR's Avatar
    Join Date
    Dec 2010
    Posts
    6,104
    Mentioned
    1326 Post(s)
    Tagged
    16 Thread(s)
    Your post is very well written and does outline some things I need to work on. These are mostly know things with know fixes and little time to get them done. One suggestion I do like that has not been said before, though, is abstracting waypoint skipping to only special waypoint types. I'll try to get some of these hammered out soon.

  6. #6
    dedi's Avatar
    Join Date
    Dec 2011
    Location
    Poznań, Poland
    Posts
    253
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice to hear
    • Sold 245 EK for Loloz (vent)
    • Sold 250 EK for Kajtek (vent)
    • Sold 250 EK for Poncek (vent)
    • Sold 245 ED (vent)
    • Sold 310 RP (vent)
    • Sold 265 EK for Loloz (vent)
    • Sold 232 EK to ppooll
    • Sold 165 ED to tonystrea
    • Sold 350 ED to Serek (allegro)
    • Sold 392 EK to Czoger

  7. #7
    Banned
    Join Date
    Aug 2012
    Location
    Netherlands
    Posts
    1,460
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)
    Great post

    Agreed

  8. #8
    Senior Member RoxZin xD's Avatar
    Join Date
    Feb 2012
    Location
    Rio de Janeiro
    Posts
    709
    Mentioned
    16 Post(s)
    Tagged
    1 Thread(s)
    You've shown some great points there. I had the same feeling when I first tried XB, it has a great potential to be the best bot, but lacks these you've mentioned and a few more, such as simple cavebot actions that doesn't need a .lua script running, or some more. I didn't try on hardcore places, for ~200 it works great, but when it comes to higher than that you need to know a lot about how the bot works and how to make it work the way you desire, and that's a point I haven't reached yet.

    Anyways, all your points are completely necessary, I can't believe the scripters here survive without those functions, I surely wouldn't last long.

  9. #9
    Senior Member Xeromex's Avatar
    Join Date
    Aug 2012
    Location
    Netherlands
    Posts
    2,201
    Mentioned
    117 Post(s)
    Tagged
    0 Thread(s)
    Great functions, I also think these would bring in some more costumers.
    Functions that are also missing are the Self.<skill>, like Self.Sword() etc.

    100% Signed

  10. #10
    Senior Member Biesje Team's Avatar
    Join Date
    Feb 2013
    Location
    Belgium
    Posts
    603
    Mentioned
    116 Post(s)
    Tagged
    0 Thread(s)
    Nice work, I completely agree, thumbs up!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •