diff options
Diffstat (limited to 'Dev/TODO_MOB_AI.txt')
-rw-r--r-- | Dev/TODO_MOB_AI.txt | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/Dev/TODO_MOB_AI.txt b/Dev/TODO_MOB_AI.txt deleted file mode 100644 index 82d6560f5..000000000 --- a/Dev/TODO_MOB_AI.txt +++ /dev/null @@ -1,136 +0,0 @@ -// 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. - -davidsiaw: About that last line, now the player finds a 4 slot pike and a poring takes it and uses it against him... hmm won't that be a lil... frustrating?
\ No newline at end of file |