• Content Count

  • Avg. Content Per Day

  • Joined

  • Last visited

Community Reputation

3 Neutral

About Seravy

  • Rank

Recent Profile Visitors

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

  1. seems Visual Studio 2013 has Git support in it. I can start using it without installing anything. It's local though, not cloned or forked anything in fact I don't even see such options anywhere, it works on the downloaded files I had - but that should still be good enough to keep various changes I'm making separate I guess.
  2. Either way, whether you have a way of using Git on VS 2013 for me or not, it'll take a while so here is my current entire src folder. As far as I remember I only changed like, 3 numbers related to 3 useless first job skills the rest should be this feature. Currently it has walking, attacking and the skills Envenom, Steal, Detoxify, Cure, Pick Stone, Heal, Inc Agi, Bless, and it seems Angelus is also working. Throw Stone and Cure are still untested.
  3. Well, I know what git is (although only used it once and it was a nightmare - I had to change a particular file because the project refused to compile otherwise, but wanted to keep that change local and there literally was no way to do that at all.) , but that particular one the site told me to install doesn't seem to install on my computer. So I guess I'll try the one in your guide next, maybe I have better luck with it. ...uh no I'm not installing Visual Studio 2017. Installing 2013 took like 3 full hours. I'm not THAT patient. (I mean, this would probably be like 8+ hours, judging on the installation size) ....system requirements, well, barely passed (minus the SSD) but I really don't think this is a good idea to install on a 10 years old computer. " if using Windows 7/8, there is a windows update that will crash all the programs in your operating system " oh that sounds like a great thing to happen, yeah definitely not risking it. What's Hercules? I googled it and it seems to be a different server emulator? Why would I need two of them? Btw, for skills that don't target anything, like Angelus, which do I call, unit_skilluse_id or unit_skilluse_pos and what do I use for id/position?
  4. By the way, I'm writing all the code with the assumption that there are no other human players on the server. So it'll need modifications to be suitable for more generic use - at the very least needs checks on all player targeting to only consider own party members and on all monster targeting to avoid KS. Do you still want it anyway?
  5. Okay, if I seriously want to make this public, especially if before completion, I probably need to start using Git immediately. Wait it was the git site that said I need a new browser to register wasn't it. I guess I need to find one that works then, too. Okay so following the tutorial on this forum, I downloaded but the installer closes without an error message or starting to install. So I guess no git for me then. I don't mind sharing my files, even right now if you want, but you have to separate this feature from my other changes. (Don't think there is much of them yet but probably more and more will happen over time.) Back to making skills work, if I understand you correctly you are telling me I have to check all the requirements myself, there is no premade "checkallanduseifable" function yet. I guess I can try do that. Edit : doing that seems to have worked, I just copied all the checks from the procedure used when the player is trying to use their skill manually. Behold, the power of copy-paste! Anyway, Steal and Envenom now works as intended... added Detoxify and pick stone to that. Soon I can start on the Acolyte skills.
  6. I ran into a problem when using skills. unit_skilluse_id(&sd->bl, closesttarget, TF_POISON, pc_checkskill(sd, TF_POISON)); This works fine, except doesn't seem to check for various requirements. It checks some, but not everything. For example it still tries to use the skill without SP, although fortunately it fails with a no SP message. It also seems to ignore animation time/delay, it spammed Envenom much faster than I normally can. Not sure if it ignores other requirements as there aren't anything else for this particular skill I think. So what else do I call if I want to execute a skill only if able? I found void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) but that seems to require a packet and there isn't one.
  7. I'll consider that once all skills are complete...which will probably take like a year, there are so many classes. Making the AI actually smart enough to be reliable takes some effort. I might even open a server, I'm changing drops and improving items as well anyway. I know absolutely nothing about making a server for the public though - but if I'm still playing it next year despite being all alone, it probably shows the result was good enough to do that :) Meanwhile my thief has learned to use her potions, and finally she is not drinking them at max health anymore :D
  8. Thank you very much, this has worked! I made it move to the nearest enemy (outside range) when one in range to attack doesn't exist. I used path_search_long(NULL, sd2->bl.m, sd2->bl.x, sd2->bl.y, md->bl.x, md->bl.y, CELL_CHKWALL)) to check what can be reached and it seems to work although it seems to have problems going around obstacles. That's not a problem, I'm going to be playing manually afterall, so I can always just move the stuck character if it happens, although if there is a fix for this that would be of course even better. So next up is implementing skills slowly one at a time but first, characters not in "tanking" mode should follow the tank to ensure they are in range to use their skills. I'm going to simplify this and make it a rule for myself that it's always the party leader who is doing the tanking, whether I'm playing that character or it's automatic -that makes most sense anyway as the tank determines which way the party will be heading. So now I need a way to get the party leader of a specific player, so I can send them to follow it, then I'll need a way to check if they have a specific skill or not and if yes, use it on the leader's target for attack skills. I might be able to get that done on my own, but I got stuck on an unexpected thing. Even though I added autopilot: true to my groups.conf file for players, it still only works on the GM account, any idea what could cause that? I have no problems with the other commands so I guess custom ones are different somehow? I can't test the feature with multiple characters as is although I guess I can make all my accounts admins but I rather not. Oh, this is case sensitive I bet. I had "ACMD_DEF(Autopilot)," in the def file, that has to be the problem. Indeed, it was. I missed it because it wasn't case sensitive ingame. More progress : following the leader now works. Only skills are left to tackle now. Thanks for all the help one more time! Edit : changing the max walk path from 32 to 128 fixed the issue of getting stuck. So moving and normal attacking is fully functional now.
  9. Thank you! I was able to make the timer work, and used map_foreachinmap to output the names of the mobs. So next is to figure out how to find the closest one valid for a normal attack. Is there a function I can call to check the distance between the two units? I assume unit_can_attack will work for checking target validity.
  10. I'm trying to implement a @ command that makes the character have limited autopilot capabilities like, buff or attack the nearest thing. I'm playing the game alone on my server and would like to use multiple characters...but there is a limit to how many I can play actively at a time, and it's not very fun to do it that way. I tried using a bot but it didn't work but then I realized "hey I can just make the server do it for me, even better and I get to code all the AI". Yes, I'm crazy enough to play RO as a single player game, but even then, I'm going to need a party to fight the stronger enemies :) So I was able to add the command (and tested it actually works by outputting a message), made it get stored in a variable : sd->autopilotmode = 1;, added a new timer to unit.cpp, got as far as // @autopilot timer int unit_autopilot_timer(int tid, unsigned int tick, int id, intptr_t data) { struct block_list *bl; struct unit_data *ud; int target_id; bl = map_id2bl(id); if (!bl || bl->prev == NULL) return 0; ud = unit_bl2ud(bl); if (!ud) return 0; if (bl->type != BL_PC) // Players are handled by map_quit { ShowError("Nonplayer set to autopilot!"); return 0; } struct map_session_data *sd = (struct map_session_data*)bl; if (sd->status.autopilotmode==0) { return 0; } // Tanking mode is set if (sd->status.autopilotmode == 1) { } although this is mostly guessing so far, but here I'm stuck. How do I find the nearest enemy (or party member, for buffs) to target? Tried searching for other code parts that target monster attacks and similar but it looks way too complicated. It's hard without even knowing what each structure is for. Didn't see any Findnearest kind of functions anywhere either. In fact I don't even know how to access a list of units on the same map. I think I'm going to need to call "clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type, int target_id, unsigned int tick)" to execute the action but first I need to somehow find a target.
  11. Seravy

    Guild storage permissions

    I followed that "install your server in 5 minutes" video I found and it didn't mention doing anything like that. Either way, I don't see an sql folder nor an sql file in the conf folder so not sure which one you're talking about exactly. I edited all the conf files but don't remember one with table structures, only table names. Oh, well, ignore it if it's not a bug.
  12. Seravy

    Guild storage permissions

    Hi! Installed RAthena a few days ago and I found that setting guild storage permissions only works as intended until the server is shut down, after that it resets. I identified the problem as the "mode" field in the SQL table being tinyint, but the storage permission being 0x100 which is larger. Changing the table field to Shortint seems to have fixed the issue on my side.Honestly, I don't know when the database was even created (I assume first run of the server?) but this is likely a bug that needs fixing. I don't really have a question but didn't find a bug report section, I hope it's not a problem that I'm posting this here - The Git issues page says it doesn't support my browser :(.