diff options
author | amber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-14 16:18:26 +0000 |
---|---|---|
committer | amber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-14 16:18:26 +0000 |
commit | 581475bc6416790765c498aa3d611f6868ffb64a (patch) | |
tree | 347ebf88eaa76e50488f23989d67cad834f3c9b1 /Dev/TODO_MOB_AI.txt | |
parent | 600362764ce348c5c9de96eababff2e08bb90d4a (diff) | |
download | hercules-581475bc6416790765c498aa3d611f6868ffb64a.tar.gz hercules-581475bc6416790765c498aa3d611f6868ffb64a.tar.bz2 hercules-581475bc6416790765c498aa3d611f6868ffb64a.tar.xz hercules-581475bc6416790765c498aa3d611f6868ffb64a.zip |
Fixed some file types
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@172 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'Dev/TODO_MOB_AI.txt')
-rw-r--r-- | Dev/TODO_MOB_AI.txt | 266 |
1 files changed, 133 insertions, 133 deletions
diff --git a/Dev/TODO_MOB_AI.txt b/Dev/TODO_MOB_AI.txt index 3ea2bc0e2..9f73656f9 100644 --- a/Dev/TODO_MOB_AI.txt +++ b/Dev/TODO_MOB_AI.txt @@ -1,134 +1,134 @@ -// eAthena TODO for Monster AI
-// -----------------------------------------
-// The idea of this file is to write a system to use for mob AI because
-// to put it bluntly, our mobs are stupid. If we can pull off some sweet
-// AI, we will own the other emulators.
-//
-// What we have here are 2 columns. I describe them below...
-// - 'mode' : Mode is when the monster can attack, like, can it move? can it
-// attack first? can it assist other monsters?
-//
-// - 'AI' : AI is the smart part of the monster. This is how the monster
-// will actully go about attacking something. For example we
-// could make archer skeletons fire an arrow or 2, then flee
-// and fire a few more arrows. Or we could have them avoid other
-// classes with range (archers, mages). We could also have mobs
-// run when being sniped off cliffs by archers/mages (wont they
-// hate that, but in reality, thats what they would do).
-//
-// The mode flags will be given an ID to the power of 2, (binary style, like
-// job id's in the item_db) and added together to make the mode. But before
-// the system can be written we need a nice file to explain it. That would be
-// this file. So add away, when it looks done, begin the implementation.
-//
-// Also, if possible, new config file in /conf/. 'mob_ai_athena.conf'. This is
-// where mob AI is enabled/disable. And options can be set to allow and dis-
-// allow certin modes. Ex: People like the AI, but dont like one options, can
-// simply disable THAT AI feature rather then rewriting mob_db to remove it.
-//
-// I wrote the first modes, C devs, move them around as you see fit for programming.
-//
-// -Ancyker
-//
-// (check bottom for more AI ideas)
-//
-
-
-'mode'
-Immobile - Monster can not move, can not be moved (like by archers knockback skills)
-Agressive - Monster can attack first (doesn't mean it will, decided in 'AI')
-Detect cast - Monster will detect if someone is casting on it, and attack back
-Assist - Monster will help other monsters (what monsters it will assist is decided in 'AI')
-Looter - Monster will loot items (if 'Agressive' flag is set, it will attack before looting)
-No Target Change - Monster will not start attacking another target until the first target is dead or out of range
-Passive - Monster will not attack back (ever, unless 'Agressive' flag is also set?)
-Detects Hidden - Monster can see hidden players
-
-'ai'
-NoAI - Doesn't do anything (plants)
-NoSnipe - Monster will run away if being 'sniped' from a clif by archer, mage, etc.
-AttackFlee - Monster will attack, then flee, attack, then flee, etc (Archer Skels, run away, shoot arrow, etc)
-AttackRange1 - Will only attack if player is in a set range [0-3] (It's like the player is close, its a threat now)
-AttackRange2 - Will only attack if player is in a set range [4-6]
-ClassFlee1 - Will run from any player with range (archers, mages, thiefs with bows)
-NoviceNoFlee - Will not run if a player is a novice
-LevelFlee - Wlll run if player is of a higher level (porings would run from level 99s, AHH DONT KILL ME!)
-AvoidPlayer - Will run if it sees any player (So it cancels 'Agressive' flag)
-AttackMostDamage - Will attack the player doing the overall most damage
-AttackLessDamage - Will attack the player doing the overall least damage
-AttackLowestLevel - Will attack the lowest level first
-AttackHighestLevel - Will attack the highest level first
-WarpLowHP - Will warp if HP is low (how low is low?)
-NeverStop - Monster will always be on the move, never stop walking. (Is over-ridden by 'Immobile' flag)
-
-
-//
-// Again, more stuff...
-//
-// The monster spawns sripts need some more params. some examples...
-//
-// We have: map,x,y,offsetx,offsety, ...
-// What if we added more? To only let the monster move so far off from
-// where it was spawned. It could 'guard' an arena, an exit/enterance
-// an npc, whatever =).
-//
-// .... ID,time,time,blah...,mode,WAP
-// Have monsters walk a certin path. Waypoint files are your friend.
-// If a monster has a WAP (optional) it will walk this path.
-// Guardians on patrol? Could be interesting.
-//
-// Add more if you think of any =)
-//
-// If you don't like an idea, comment why, dont remove it.
-// example: (using this one cuz not sure about it)
-//
-// // NeverStop - Will/Could cause lag, don't think its a good idea -name
-// NeverStop - ...
-//
-
-Lupus: (guys, rearrange my ideas or move them as u want)
-Some memory - speed optimizations:
-
-There'a big "for cycle" when u look up for a place to mob spawn.
-It could be made quite fast:
-On server .GAT loading you should make an array with OFFSETS (not even X,Y) of right
-places for future mob spawns.
-If the waypoints aren't found for the loadied map then you should make at least 1-2 waypoints automatically.
-
-About AI:
-EACH map has defined mobs. Your mob should have a flag "healer", "supporter" etc. "weak", "ranged attacker"
-and each map should contain an attached list of mobs with their types
-when one MVP is hurt it'd look for "helpers", "healers".
-And if a mob is almost 0 HP it should look for helpers or look for other mobs ranged attackers
-defence. Etc.
-
-Mobs AI should be WRITTEN IN SPECIAL SCRIPTS.
-Some default mobs will use the same script.
-And some advanced ones will use their own.
-
-MOB-scripts are quite interesting. (remember Robot-Wars game?)
-
-Gulid Wars:
-I think guardians should be able to warp from room to room using WARPS like common Players.
-
-
-Aria's Ideas: (do whatever u want)
-
-We can make aggressive monsters make ambushes, where one attacks and runs away to a huge group of the same monster
-
-instead of dropping 2 x1 items, just drop 1 x2 item
-
-make AI vary inside of a group of monsters (IE 1/2 porings do 1 thing, and the other half do another)
-
-aggressive monsters sould surround enemies, not just blindly attack them
-
-we should also make monsters look as player-like as possible. There should be groups traveling together, or 2 monsters
-next to eachother, chatting.
-
-we shouldn't let mobs spawn right infront of people, like in anime or manga. they always walk towards you, or you walk
-towards them.
-
-let mob stats vary a little bit - every mob shouldn't be the exact same. if it's stronger it gives more exp, and vice
-versa.
-
+// eAthena TODO for Monster AI +// ----------------------------------------- +// The idea of this file is to write a system to use for mob AI because +// to put it bluntly, our mobs are stupid. If we can pull off some sweet +// AI, we will own the other emulators. +// +// What we have here are 2 columns. I describe them below... +// - 'mode' : Mode is when the monster can attack, like, can it move? can it +// attack first? can it assist other monsters? +// +// - 'AI' : AI is the smart part of the monster. This is how the monster +// will actully go about attacking something. For example we +// could make archer skeletons fire an arrow or 2, then flee +// and fire a few more arrows. Or we could have them avoid other +// classes with range (archers, mages). We could also have mobs +// run when being sniped off cliffs by archers/mages (wont they +// hate that, but in reality, thats what they would do). +// +// The mode flags will be given an ID to the power of 2, (binary style, like +// job id's in the item_db) and added together to make the mode. But before +// the system can be written we need a nice file to explain it. That would be +// this file. So add away, when it looks done, begin the implementation. +// +// Also, if possible, new config file in /conf/. 'mob_ai_athena.conf'. This is +// where mob AI is enabled/disable. And options can be set to allow and dis- +// allow certin modes. Ex: People like the AI, but dont like one options, can +// simply disable THAT AI feature rather then rewriting mob_db to remove it. +// +// I wrote the first modes, C devs, move them around as you see fit for programming. +// +// -Ancyker +// +// (check bottom for more AI ideas) +// + + +'mode' +Immobile - Monster can not move, can not be moved (like by archers knockback skills) +Agressive - Monster can attack first (doesn't mean it will, decided in 'AI') +Detect cast - Monster will detect if someone is casting on it, and attack back +Assist - Monster will help other monsters (what monsters it will assist is decided in 'AI') +Looter - Monster will loot items (if 'Agressive' flag is set, it will attack before looting) +No Target Change - Monster will not start attacking another target until the first target is dead or out of range +Passive - Monster will not attack back (ever, unless 'Agressive' flag is also set?) +Detects Hidden - Monster can see hidden players + +'ai' +NoAI - Doesn't do anything (plants) +NoSnipe - Monster will run away if being 'sniped' from a clif by archer, mage, etc. +AttackFlee - Monster will attack, then flee, attack, then flee, etc (Archer Skels, run away, shoot arrow, etc) +AttackRange1 - Will only attack if player is in a set range [0-3] (It's like the player is close, its a threat now) +AttackRange2 - Will only attack if player is in a set range [4-6] +ClassFlee1 - Will run from any player with range (archers, mages, thiefs with bows) +NoviceNoFlee - Will not run if a player is a novice +LevelFlee - Wlll run if player is of a higher level (porings would run from level 99s, AHH DONT KILL ME!) +AvoidPlayer - Will run if it sees any player (So it cancels 'Agressive' flag) +AttackMostDamage - Will attack the player doing the overall most damage +AttackLessDamage - Will attack the player doing the overall least damage +AttackLowestLevel - Will attack the lowest level first +AttackHighestLevel - Will attack the highest level first +WarpLowHP - Will warp if HP is low (how low is low?) +NeverStop - Monster will always be on the move, never stop walking. (Is over-ridden by 'Immobile' flag) + + +// +// Again, more stuff... +// +// The monster spawns sripts need some more params. some examples... +// +// We have: map,x,y,offsetx,offsety, ... +// What if we added more? To only let the monster move so far off from +// where it was spawned. It could 'guard' an arena, an exit/enterance +// an npc, whatever =). +// +// .... ID,time,time,blah...,mode,WAP +// Have monsters walk a certin path. Waypoint files are your friend. +// If a monster has a WAP (optional) it will walk this path. +// Guardians on patrol? Could be interesting. +// +// Add more if you think of any =) +// +// If you don't like an idea, comment why, dont remove it. +// example: (using this one cuz not sure about it) +// +// // NeverStop - Will/Could cause lag, don't think its a good idea -name +// NeverStop - ... +// + +Lupus: (guys, rearrange my ideas or move them as u want) +Some memory - speed optimizations: + +There'a big "for cycle" when u look up for a place to mob spawn. +It could be made quite fast: +On server .GAT loading you should make an array with OFFSETS (not even X,Y) of right +places for future mob spawns. +If the waypoints aren't found for the loadied map then you should make at least 1-2 waypoints automatically. + +About AI: +EACH map has defined mobs. Your mob should have a flag "healer", "supporter" etc. "weak", "ranged attacker" +and each map should contain an attached list of mobs with their types +when one MVP is hurt it'd look for "helpers", "healers". +And if a mob is almost 0 HP it should look for helpers or look for other mobs ranged attackers +defence. Etc. + +Mobs AI should be WRITTEN IN SPECIAL SCRIPTS. +Some default mobs will use the same script. +And some advanced ones will use their own. + +MOB-scripts are quite interesting. (remember Robot-Wars game?) + +Gulid Wars: +I think guardians should be able to warp from room to room using WARPS like common Players. + + +Aria's Ideas: (do whatever u want) + +We can make aggressive monsters make ambushes, where one attacks and runs away to a huge group of the same monster + +instead of dropping 2 x1 items, just drop 1 x2 item + +make AI vary inside of a group of monsters (IE 1/2 porings do 1 thing, and the other half do another) + +aggressive monsters sould surround enemies, not just blindly attack them + +we should also make monsters look as player-like as possible. There should be groups traveling together, or 2 monsters +next to eachother, chatting. + +we shouldn't let mobs spawn right infront of people, like in anime or manga. they always walk towards you, or you walk +towards them. + +let mob stats vary a little bit - every mob shouldn't be the exact same. if it's stronger it gives more exp, and vice +versa. + have a monster be able to use its drops, and not drop it. like a poring using an apple.
\ No newline at end of file |