Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6
F.A.P. - Page 2
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 29

Thread: F.A.P.

  1. #11

    RE: F.A.P.

    I wish you a lot of luck with this project. Keep in mind that A.I is very hard to implement, and that it will take loads of time. Also, make a lot of good structured concepts of this, before actually starting something. The complete 'memory' model will store loads of information, and that needs to be recalled correctly, when needed. I've done a minor on artificial intelligence, and man, it's really hard to create a good structured 'memory'. Not even speaking of all the formulas, math, and all possible events in Tibia (text-based hints for example, try to make a character walk through the starters tutorial, only by using it's own A.I..). Again, good luck on this project, I hope it works out.

  2. #12

    RE: F.A.P.

    Thanks

    And yeah, we've decided we will spend the first month or so studying up and "blueprinting" to make sure this program comes out perfect.

    While I'm just a 17 year old who's been studying programming and teaching myself for a few years, including reading of many college level books, my partner is currently in college for his bachelors in computer science and is taking an AI elective class soon, or so he says.

    He's still a noob

  3. #13

    RE: F.A.P.

    I'd encourage you to create a wiki or some other persistent place to keep a design document, including everything you have on the first page and then all the design decisions you make as you go.

    Good luck, and I'll see if there are places I can help. Putting this on Google Code?

  4. #14

    RE: F.A.P.

    Yes, we will google code it (A)

  5. #15
    Junior Member
    Join Date
    Jul 2007
    Posts
    24

    RE: F.A.P.

    There is a similar project (that is only on a blueprint) where the developer is trying to make some heuristics based on well-known A.I algorithms and neural networks. Perhaps you should continue that instead of making heuristics based only a single type of player, if you know what i mean.

  6. #16

    RE: F.A.P.

    Well we wanted to start a project on our own for fun so that is why we are taking it from scratch.

    As for the AI, neither one of us are experienced enough to make AI complex enough to train itself to play the game. That is why we've decided to make what is effectively our first large AI project one in Tibia. Tibia already has a controlled environment and the percepts will be very concrete and easy to observe and react to, compared to other situations including making a program which learns the game on its own, as structured packets, map in memory, battlelist and such would mean little to it without knowing much about them..

  7. #17
    Senior Member
    Join Date
    Jan 2010
    Location
    Venezuela
    Posts
    366

    RE: F.A.P.

    Great!

    So badly i'm smoked.

  8. #18
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725

    RE: F.A.P.

    This is gonna take a lot of work. I'm not too familiar with artificial intelligence, but theres a few more scenarios that will need to be calculated, to work out what to do. Just from personal botting experience.

    In the decision to attack a monster, consider it carefully. Are you still in the cave? If not, is it being used for training purposes? If so, what level is the player who is training, if he's higher than you, is he capable of killing or hunting you?

    This leads to more possible factors...

    Is he in the leading guild? (Work this out from the website, check all guilds on the server, get the top 15 with highest levels or most powerful (powerful = 250+ knight, but 150+ mage) etc~... If so, what rank is he? Is it an important one? Or is he just a trial member?

    I know it sounds rediculous, but it seems this is the absolute boundary to "perfecting" AI. After that it becomes more about his actions, is he botting himself, if so, record actions to a cam file and kill him(?)

    But let's not forget you'll need to put each decision into it's own if else 4 times.

    If p.Vocation = Druid
    Think about it this way
    ElseIf p.Vocation = Knight
    Think about it this way

    And so on...

    I'd presume it's a bit simpler than I first thought, however, in that you'd declare a bunch of variables based on the vocation, for each decision, then you'd use the variables in a function to calculate a responce... For instance
    If player = Knight Then
    Dim SurvivalPower As Integer = 500
    Dim AttackPower as Integer = 200
    Dim RunAwayPower As Integer = 350
    ElseIf Player = Mage Then
    Dim SurvivalPower As Integer = 200
    Dim AttackPower As Integer = 600
    Dim RunAwayPower As Integer = 600

    Something like that, then you do the calculations based on each of the declarations, of course this would be bad programming practise as the declarations should be made sooner, but you get the jist of things.

    The way that I'd look at it is more of a Semi Artificial Intelligence operation... So when the user boots up the program he has a set of "conditions" to choose the result of.

    Should I attack monsters outside of spawns? (YES) (NO) (ONLY IF TRAPPED) (ONLY WHEN CLOSER THAN X SECONDS TO NEAREST PZ)
    At what risk level should I take a quicker path? (<200) (<600) (<1000) (ANY)

    That sorta thing. I really don't think any program is capable of making some decisions that Tibia requires it to. Though I wish you the best of luck in trying it. If you do make it, I, for one, will use it and potentially pay for it (Provided it's not too steep a price).

    Edit:
    Another thing to consider... Backpack layout. Of course, we're all gonna end up having it the same, since it's gonna be effectively a generic character leveling system. It'll always act the same, for each set of conditions. There will always be things which happen identically. There will be some variations, for instance some characters may be hit harder by creatures, because of CipSoft's randomization of creature damage, but in all truth, all this will do is mean it takes a few minutes longer, and a bit more cash to get to the same place. Though I'm sure that if money were to become an issue, the bot would consider it's bank balance before heading to a spawn... If it's low it'll go somewhere very profitable... Back to the point, if the bot makes a decision to go to venore at stage 20 (maybe level 30, going to rotworms or something) and buys a backpack there, it will be a grey backpack. This will mean setting a conditional to contain this information. This is because if it has a lot of money it may, instead, choose to go to Thais, and hunt in Mintwallin for faster experience, but more waste and less profit. In this case, it will buy an Orange backpack. This creates a variable on the path to the goal. This is just one example, but there are more. For instance, if the bot loots a dragon shield on one character, which he uses as equipment because a calculation told him it was better than his current equipment, it's another one. If the bot has to work out his defense power for choosing where to hunt, he may even then loot another better shield, which he will use, and eventually he will end up with a different one.

    I guess the answer to my above edit is that we must have a common goal. There must be some sort of end, or conclusion. It could be that the bot stops at level 300 after completing a variety of quests (including solo demon helmet, solo vampire shield (for mages to get eq) and that sorta thing. This way the bot would have the most powerful equipment available. Unless we planned to explore ourselves using the bot, then calculate, on our server, what the best place for experience is, the best place for loot is, and the person using the program decides their own goals within the limits of the bot...? Of course the player would be required to have some input, surely? Else it would literally be impossible... You'd just be asking the bot to explore completely on it's own, which would lead to absolute chaos.

    Another thing, how would the bot buy items from players? Or would this become impossible. I'm quite sure it's required, and I'm almost positive that it will improve the possibilities of what it can do... Think about it, buying golden legs, magic plate armor, mastermind shield at level 80 would dramatically increase the defence of a knight. If he werent to do this he would be stuck with (based on quest rewards / lootables) DSM (From killing Dragon Lords, if one is ever looted), Medusa Shield (From clearing Necromancer quest), Crown Legs (If looted from a Hero). The difference in these eq sets is the difference between profiting at Dragons, and wasting there. It may sound silly, but it's more that has to be considered. You could potentially use every single language to talk to every player on the server and say "Are you selling Mastermind Shield? If so, come to venore depot and I will buy it off you for 50,000 gold coins. Trade with me when you arrive and I will trade the money and accept)". This seems to be the only way to "definatly" go about trading with players...

  9. #19

    RE: F.A.P.

    Quote Originally Posted by ManInTheCave
    This is gonna take a lot of work. I'm not too familiar with artificial intelligence, but theres a few more scenarios that will need to be calculated, to work out what to do. Just from personal botting experience.

    In the decision to attack a monster, consider it carefully. Are you still in the cave? If not, is it being used for training purposes? If so, what level is the player who is training, if he's higher than you, is he capable of killing or hunting you?

    This leads to more possible factors...

    Is he in the leading guild? (Work this out from the website, check all guilds on the server, get the top 15 with highest levels or most powerful (powerful = 250+ knight, but 150+ mage) etc~... If so, what rank is he? Is it an important one? Or is he just a trial member?

    I know it sounds rediculous, but it seems this is the absolute boundary to "perfecting" AI. After that it becomes more about his actions, is he botting himself, if so, record actions to a cam file and kill him(?)

    But let's not forget you'll need to put each decision into it's own if else 4 times.

    If p.Vocation = Druid
    Think about it this way
    ElseIf p.Vocation = Knight
    Think about it this way

    And so on...

    I'd presume it's a bit simpler than I first thought, however, in that you'd declare a bunch of variables based on the vocation, for each decision, then you'd use the variables in a function to calculate a responce... For instance
    If player = Knight Then
    Dim SurvivalPower As Integer = 500
    Dim AttackPower as Integer = 200
    Dim RunAwayPower As Integer = 350
    ElseIf Player = Mage Then
    Dim SurvivalPower As Integer = 200
    Dim AttackPower As Integer = 600
    Dim RunAwayPower As Integer = 600

    Something like that, then you do the calculations based on each of the declarations, of course this would be bad programming practise as the declarations should be made sooner, but you get the jist of things.

    The way that I'd look at it is more of a Semi Artificial Intelligence operation... So when the user boots up the program he has a set of "conditions" to choose the result of.

    Should I attack monsters outside of spawns? (YES) (NO) (ONLY IF TRAPPED) (ONLY WHEN CLOSER THAN X SECONDS TO NEAREST PZ)
    At what risk level should I take a quicker path? (<200) (<600) (<1000) (ANY)

    That sorta thing. I really don't think any program is capable of making some decisions that Tibia requires it to. Though I wish you the best of luck in trying it. If you do make it, I, for one, will use it and potentially pay for it (Provided it's not too steep a price).
    It will be nothing like this. Each "condition" will actually be a weighted neuron in a neural network. You should study up on that before trying to suggest methods of operation/coding

    Quote Originally Posted by ManInTheCave
    Edit:
    Another thing to consider... Backpack layout. Of course, we're all gonna end up having it the same, since it's gonna be effectively a generic character leveling system. It'll always act the same, for each set of conditions. There will always be things which happen identically. There will be some variations, for instance some characters may be hit harder by creatures, because of CipSoft's randomization of creature damage, but in all truth, all this will do is mean it takes a few minutes longer, and a bit more cash to get to the same place. Though I'm sure that if money were to become an issue, the bot would consider it's bank balance before heading to a spawn...
    This is 100% untrue.
    The bot will learn from its surroundings and they will effect everything it does. If it realizes it needs a rope before a shovel, it will buy one first, and vice versa. If it finds a needed BP on the ground, it will pick it up, etc. These conditions will never be the same and it will always change.


    Quote Originally Posted by ManInTheCave
    If it's low it'll go somewhere very profitable... Back to the point, if the bot makes a decision to go to venore at stage 20 (maybe level 30, going to rotworms or something) and buys a backpack there, it will be a grey backpack. This will mean setting a conditional to contain this information. This is because if it has a lot of money it may, instead, choose to go to Thais, and hunt in Mintwallin for faster experience, but more waste and less profit. In this case, it will buy an Orange backpack. This creates a variable on the path to the goal. This is just one example, but there are more. For instance, if the bot loots a dragon shield on one character, which he uses as equipment because a calculation told him it was better than his current equipment, it's another one. If the bot has to work out his defense power for choosing where to hunt, he may even then loot another better shield, which he will use, and eventually he will end up with a different one.

    I guess the answer to my above edit is that we must have a common goal. There must be some sort of end, or conclusion. It could be that the bot stops at level 300 after completing a variety of quests (including solo demon helmet, solo vampire shield (for mages to get eq) and that sorta thing. This way the bot would have the most powerful equipment available. Unless we planned to explore ourselves using the bot, then calculate, on our server, what the best place for experience is, the best place for loot is, and the person using the program decides their own goals within the limits of the bot...? Of course the player would be required to have some input, surely? Else it would literally be impossible... You'd just be asking the bot to explore completely on it's own, which would lead to absolute chaos.

    Another thing, how would the bot buy items from players? Or would this become impossible. I'm quite sure it's required, and I'm almost positive that it will improve the possibilities of what it can do... Think about it, buying golden legs, magic plate armor, mastermind shield at level 80 would dramatically increase the defence of a knight. If he werent to do this he would be stuck with (based on quest rewards / lootables) DSM (From killing Dragon Lords, if one is ever looted), Medusa Shield (From clearing Necromancer quest), Crown Legs (If looted from a Hero). The difference in these eq sets is the difference between profiting at Dragons, and wasting there. It may sound silly, but it's more that has to be considered. You could potentially use every single language to talk to every player on the server and say "Are you selling Mastermind Shield? If so, come to venore depot and I will buy it off you for 50,000 gold coins. Trade with me when you arrive and I will trade the money and accept)". This seems to be the only way to "definatly" go about trading with players...
    You are way over complicating it. You're suggesting an infinite amount of needed conditional statements and such. The bot in most cases will learn from its mistake and formulate them on its own, in this little nifty thing it has called a neural network.

    If artificial intelligence was done the way you are suggesting it would be way behind its current capabilities. The point is to replicate human brain behavior, and we arent programmed with an if/else for every possible event that can happen and property thereof.


  10. #20
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725

    RE: F.A.P.

    I think I've got some researching to do.

    It just seemed to me that it would actually be this complicated... Of course every decision has to be based on fact. And the "common minded folks" view about this, would be to if else it all...

    Back in a few hours with some more brainpower.

Posting Permissions

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