• Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

  • Days Won


Seravy last won the day on May 7

Seravy had the most liked content!

Community Reputation

30 Excellent

About Seravy

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. This is for allowing that when soul linked. Remove the line that has SC_SPIRIT if you want it to always work. // Gank if(dstmd && sd->status.weapon != W_BOW && (skill=pc_checkskill(sd,RG_SNATCHER)) > 0 && (skill*15 + 55) + pc_checkskill(sd,TF_STEAL)*10 > rnd()%1000) { if(pc_steal_item(sd,bl,pc_checkskill(sd,TF_STEAL))) clif_skill_nodamage(src,bl,TF_STEAL,skill,1); else clif_skill_fail(sd,RG_SNATCHER,USESKILL_FAIL_LEVEL,0); } // Rogue Spirit enables Gank to steal coin if (sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_ROGUE) if (dstmd && sd->status.weapon != W_BOW && (skill = pc_checkskill(sd, RG_SNATCHER)) > 0 && (skill * 15 + 55) + pc_checkskill(sd, RG_STEALCOIN) * 10 > rnd() % 1000) { if (pc_steal_coin(sd, bl)) clif_skill_nodamage(src, bl, RG_STEALCOIN, skill, 1); else clif_skill_fail(sd, RG_SNATCHER, USESKILL_FAIL_LEVEL, 0); }
  2. After some digging in the code I found that monster's renewal soft MDEF is calculated as (INT + LEVEL)/4. Is that correct? It seems weird to me when players have (INT) + (LEVEL/4)+ more stuff instead so basically INT has only 1/4 of the effect on mobs (or anything that's not a PC, actually isn't that really bad for homunculus too?). I tried searching the net but found no information on this whatsoever. This huge difference seems to be only for mdef - def is calculated as VIT/2 for both players and monsters, the only difference there is the players getting an additional AGI/5 and monsters do not. Without access to official information I can't help but suspect this might be a misplaced parenthesis issue, so I'd like someone to confirm the official formula does use INT/4 and not INT. Basically, the player's formula has (status->int_ + ((float)level / 4) while everything else has ((float)(status->int_ + level) / 4) and I find that odd. Edit : found more problems, so posted here :
  3. Not entirely sure what you mean by that, can you explain?
  4. Added the Taekwon class skills. Sprint will only be used to activate the Spurt status. There is almost never a need to move a large distance in a straight line for the AI. Leap will not be used. Going to the other side of an obstacle will only break the party up. Stances will always be kept active. The corresponding moves will be used when triggered. Tumbling will be kept active as well. I don't see any downsides for having these active. Flying Kick will be used only in tanking mode if the target is still at a distance. Taekwon characters won't complain for having no weapon or shield equipped. Mild Wind is used in the same way Endows are. For the time being, the AI will not attempt to overwrite a "bad" endow using it until the existing one expires. It might be worth considering the possibility of allowing that in the future. Star Gladiator is ready as well. The class actually doesn't have that many active skills. Heat will be used when attacking a Boss monster only. Protections will be used always when it's the correct map. Union will be used only if a priest (or anyone with level 4 ressurrection) is available in a party because the hp cost makes it a potential suicide move otherwise. And that's pretty much all the active skills the class had. The AI obviously won't designate monsters or maps, that's left for the player to do.
  5. While my overall goals are different, it seems as far as fixing Renewal mistakes go, it's the same as yours. Not sure if it's any help but this is my server side repository : My plan is to make a single player server people can download and play on their own computer easily, one that offers balanced and enjoyable PvM gameplay, and server side AI allowing players to still play in parties despite having no actual human players to party with. I expect it'll take a year to dig through all the items, scripts, classes, skills, etc and fix them all but I am making good progress.
  6. Yeah I'm okay with some higher level monsters if there aren't many but there are exceptions. The map where Myst appears is one example, it's pretty time consuming and annoying to get there and the level difference is just ridiculous (80 something vs 40 something). In general if it's hard to reach, far, and it's the only place to hunt that specific monster it's better without high levels in my opinion. Cramps are also very fast and similar to Taoru, if you aren't expecting one you can die before even using the Fly Wings. (Ironically Mimics seem to be lower level than the other monsters on the maps in most cases nowadays - that's kinda sad.) I think if a strong monster is desired, the "champion mobs" should be used for that purpose, if necessary, give them better stats. I rather die on the Myst map to a Furious Myst than a Cramp. Personally for me it felt that monsters have much less hit points and are generally easier to kill in Renewal, while they also don't do too much damage, at least on the lower (1-70) levels. I don't think I have seen the level affect my damage output, although it obviously affects hit rate because HIT and FLEE increases by 1 for each level - not entirely sure but I think that was the same in pre-renewal? Overall it's a bit hard to judge the damage because I played pre-renewal over 8 years ago, but it felt reasonable. You can still use an upgraded weapon with cards to do more damage, that's unchanged, but I was doing fine even with some very basic weapons. Like always, if missing is an issue, you can fix that by raising your DEX or using Mummy cards. Hitting targets works mostly the same in Renewal, that new nonlinear formula doesn't seem to exist anymore. Overall I think the monsters are fairly balanced on the lower levels, haven't made enough progress yet to fight the stronger level ones to have an opinion on those. Characters strong at soloing have no issue hunting high level monsters, for example a Hunter or Wizard can easily kill something 20-30 levels higher as long as the monster isn't ranged.
  7. My homunculus has 154 ASPD and my Alchemist has 160 yet the Homunculus seems to attack noticeably more often than the Alchemist. Is this a bug or normal? If bug, is the bug in homunculus ASPD itself or the display of it? Maybe a client bug? Or is it just me and it works properly for everyone else? Should I post it in "Issues" or is it already known?
  8. I don't want to close the client. Sometimes you do need to take manual action, like switch equipment (especially if monsters break it), talk to an NPC to enter a map, trade items between characters when overweight, etc. Yes, it's just a matter of rules, no real AI. I'm trying my best to make the rules as smart as possible. No idea how to do that patch/diff thing. Yes, it would probably be more convenient to the users although they'd still need to fix merge conflicts if any shows up.
  9. One more thing to add, recently realized, Renewal disabled a lot more maps than I thought. Restoring those and filling them with monsters is definitely a good idea, in fact I recommend adjusting monster spawns in general. A few problems I identified with renewal monster spawns : Monsters tend to be overly mixed. While there is a primary monster there are many of, often there are several other monsters present at relatively high counts (like 70+30+30+20). While mixed maps is nice to have occasionally, on maps intended to hunt a specific monster, it's better to have a only 1-2 other monsters with lower counts. Some maps actually have monsters of inappropriate levels (too high) present or low level monsters are only available on maps that also have very high level monsters. (Minorous+Anubis for example. It's better to move Anubis to the last floor and Minorous earlier as it's the lowest level monster in the dungeon. Makes no sense it appears on floor 4. I've also got murdered by a Cramp (83) on the map for Myst : level 49 monster) Some monsters don't have a good map to hunt them as they only ever appear at medium counts or less and always mixed with other monsters at higher quantities. Obviously here I mean monsters meant to be possible to hunt, not "rare" monsters. Example : Orc Archer, best place has like 20 of these and 50 High Orcs. Demon Pungus is another example, there used to be a map where we had a lot of these, not anymore. Some of the spawn locations simply make no sense. Why lots of Harpies at the entrance of Yuno? A non-aggressive monster like Goat would be better there, it's the only way to leave/enter the town.
  10. I'm currently using struct npc_data *nd; nd = (TBL_NPC*)bl; if (nd->vd->class_!=45) // looks like a warp then it's a warp even if it's not type warp. Some warps are NPCTYPE_SCRIPT instead! if (nd->subtype != NPCTYPE_WARP) return 0; //Not a warp for a while it worked fine but now I found a warp that causes a crash : the "vd" on it is NULL. Edit : nevermind, it seems preventing the null pointer crash by adding "if ((nd->vd)" worked. I guess vd does get filled with data eventually, just not immediately, so the warp does get detected properly. Maybe not. It seems entirely random whether vd has data or not. Sometimes the code detects the warp, other times it doesn't until sometime happens, like another character passes through it. Maybe I need to call some function here to ensure vd has data in it?
  11. Latest update : @autopilothom command, homunculus can now use normal attacks and move. (this overrides client side AI if enabled) Homunculus skills not yet implemented. AI will not use Rest or Call Homunculus, but will use Resurrect Homunculus if the homunculus dies.
  12. This seems to be a more appropriate place so continuing here from @autopilot is a server side AI implementation that can control player characters. The primary goal is to replace human players for any reason : perhaps you installed a server on your own computer and have no other players, or your server has too low population or a critical class for the party isn't available. Either way, this allows you to add characters to your party without having a human player available. Note that this isn't a bot : it might get stuck in a corner if left alone with no human to lead the party. Also note this is server side : you have to be the server owner and capable of modifying your source to add it. Obviously an AI isn't a human player, which means better reaction time, and no "I have to go 5 minutes afk sorry" during boss fights but at the price of not being able to judge more advanced situations correctly. Overall I'd say the AI will play better than a typical player but will fail at anything more complex than "use this skill when <condition>". All the current progress is available here : To install, make a branch for the feature in your local repository, pull from the linked branch, then use or merge it as you prefer. I strongly recommend reading through the comments in the code : every skill has hardcoded AI and there are a few cases where my server uses nonstandard parameters for skills. These are mentioned in the comments, usually explaining how it is different from normal and what's recommended to change in the code if you are using default skills. Finally, enable all the added commands in your groups.conf file. Currently implemented : All 1st classes, 2nd/rebirth classes except those listed below. Regular Homunculus. Archbishop. Awaiting implementation : -Adjusting AI to the kro 1st/2nd/rebirth skill rebalance as necessary - this is on hold until that feature actually is merged to rathena. -Homunculus S -3rd jobs -Hunter/Sniper -Rogue/Stalker -Summoner How to use : @autopilot Tank enables tanking mode, the AI will try to engage enemies in melee and use melee skills. @autopilot Skill enables the AI to use ranged attacks or ranged skills, in general this is the DPS mode @autopilot Support restricts the AI to using support skills only. @autopilothom with same parameters : same modes for the Homunculus. There are a few other commands for enabling "extras" such as telling the AI to use a song or dance or other special skill or use sp potions. You should see them in the atcommands file(s). It's old but here is a recording that shows the AI in action :
  13. Looked at all the options in Nemo but didn't see one for fixing this, maybe I missed it? Monsters with more than 4 digits of hit points display incorrectly, for example 32751/327 HP, missing the last few digits on original hit points. It seems the length of the string is limited by the client so more than 9999 HP doesn't work. Or is this an unfixable problem? I guess the max hp of the monster isn't really that important to see but it's confusing when it is displayed wrong and appears less than the remaining hp.
  14. Think that might be a work in progress?
  15. o_O I never realized there is so much map space that could be used but wasn't. Amazing! Now, time to raise monster spawn amounts to properly fill up the new space. It's a bit hard to guess the correct ratio though, it might be useful to provide suggestions in the first post, like "map X increased reachable area to 1.57 times the original" or provide updated monster spawns like the warps. Also this made me realize how many maps renewal removed, it's a lot worse than I thought. I'll be busy for a while restoring them and the monsters on them all.