Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/01/20 in Posts

  1. 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 : https://github.com/SeravySensei/rathena/commits/Autopilot https://github.com/rathena/rathena/compare/master...SeravySensei:Autopilot.patch https://github.com/rathena/rathena/compare/master...SeravySensei:Autopilot.diff Currently implemented : All 1st classes, 2nd/rebirth classes. Homunculus, 3rd classes. Awaiting implementation : -Rebel -Oboro/Kagerou -Soul Reaper/Star Emperor Many of the 3rd class AI skills are still untested. I plan to test everything after the last few classes are done. 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 :
    1 point
  2. FluxCP with Master Account Integration Hi everyone! I want to share my Simple FluxCP with master account. I've been coding this for the last 2 days using my free time. I have seen a lot of people asking for FluxCP with Master account so I decided to share this. Originally I was planning to do this via addons but there are too many things needed to change. Please take note that this is version 1.0 so if you found any bugs please open an issue on github. I will also release next time the master account integrated with phpBB. Repository: https://github.com/acelabini/FluxCP-MasterAccount Clone: https://github.com/acelabini/FluxCP-MasterAccount.git Download: https://github.com/acelabini/FluxCP-MasterAccount/archive/master.zip How to install? Just clone or download the repository and follow this installation guide written by @Zack- Configuration Edit `config/application.php` 'MasterAccount' => true, // Enable master account feature, setting this to false will revert back to normal fluxCP 'MasterAccountPasswordHash' => 'bcrypt', // Master account password hashing algorithm, atm only bcrypt is available 'MasterAccountMaxAccounts' => 0, // Maximum game account per master account; 0 to disable If you have any question, feel free to post it here. Helpful? Buy me a coffee
    1 point
  3. Hello dear members, it has been a long time since my last login here, and I came back with my recent customization, it's damm good, that once finished in my test server confirmed that was 100% functional, with and with no issues , I decided to share.... This Skill provides the same function than the equipment swap tab, but instead of opening the inventory and aim with the cursor to the "change" button!, you can do the same even faster, with a custom skill icon and just one tip of your finger. ***------- Trunk Side -------*** 1- Go to your skill_db.txt and make sure to find the skill #5067. If you are using pre-renewal config, you may export the bellow skill line to the pre-re/skill_db.txt file instead. 5067,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0, ALL_EQSWITCH,Equip Switch 2- Now that the skill is implemented, you need to add the timers in the db file skill_cast_db.txt, this can´t be ignored, you may add the skill line. I gave the skill 10 seconds cooldown, but you can do it at your like. //-- ALL_EQSWITCH 5067,0,0,0,0,0,10000 3- Most important part, can´t be ignored, add the skill line for every job in the skill_tree.txt file. just like this: //Novice 0,5067,1,0,0,0,0,0,0,0,0,0,0 //-- ALL_EQSWITCH#Equip Switch# //Swordman 1,5067,1,0,0,0,0,0,0,0,0,0,0 //-- ALL_EQSWITCH#Equip Switch# //Magician 2,5067,1,0,0,0,0,0,0,0,0,0,0 //-- ALL_EQSWITCH#Equip Switch# //Archer 3,5067,1,0,0,0,0,0,0,0,0,0,0 //-- ALL_EQSWITCH#Equip Switch# And keep going until you add the skill to every job available in your server. (watch out the job# id, for the copy paste, don´t forget to add the correct number). ***------- Client Side --------*** - You need the icon sprites for the skill and the item bmp, you can make a prettier one, in my case I recycled Taekwon skill icon Counter Kick Stance and recolored. You will find it attached, well, This .spr and .act files must be added inside the drop sprite folder the route is: data/sprite/¾ÆÀÌÅÛ ALL_EQSWITCH.act ALL_EQSWITCH.spr - Now for dragging the skill icon from the skill tab, you need the item bmp, also attached, and It has to be added inside the item folder. The route is: \data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item ALL_EQSWITCH.bmp ---EDITING THE LUAS--- - The very first thing we are going to edit is the skilltreeview.lub this file is found inside the skillinfoz folder at this route: \data\luafiles514\lua files\skilltreeview.lub Please only add the skill for the novice tree, watch out the key and please note that there is not comma at the last line added skill, if you wonder about the #41 is the bottom right corner penultimate slot in the alt+s skill tab. SKILL_TREEVIEW_FOR_JOB = { [JOBID.JT_NOVICE] = { [0] = SKID.NV_BASIC, [7] = SKID.NV_FIRSTAID, [14] = SKID.NV_TRICKDEAD, [41] = SKID.ALL_EQSWITCH }, - Second Step editing the luas belongs to the file skillid.lub this file is found inside the skillinfoz folder at this route: \data\luafiles514\lua files\skillinfoz And you have to add the skill ALL_EQSWITCH = 5067 Example: WE_CALLALLFAMILY = 5063, WE_ONEFOREVER = 5064, WE_CHEERUP = 5065, ALL_EQSWITCH = 5067, - Third step for the luas, the skilldescript.lub This file is located in \data\luafiles514\lua files\skilldescript.lub In this file you have to create a description for the new skill implemented in this case the ALL_EQSWITCH This is an example of mine, watch out the keys and the commas, you can make a good description with your own taste.: [SKID.ALL_PRONTERA_RECALL] = { "Return to Prontera", "Max Level: 2", "Skill Form: ^339900Supportive^000000", "Description: ^777777Teleport to Prontera, 15 minutes after use delay.^000000" }, [SKID.ALL_EQSWITCH] = { "Switch Equipment", "Max Level: 1", "^CC3399Requirement: Finish Quest^000000", "Skill Form: ^339900Active^000000", "Target: ^777777Self^000000", "Description: ^777777Swap you actual equipment with the one placed in the alternative equip tab.^000000" }, [SKID.ALL_THANATOS_RECALL] = { "Return to Thanatos", "Max Level: 1", "Skill Form: ^339900Supportive^000000", "Description : ^777777Teleport to Thanatos, 5 minutes after use delay.^000000" }, - Finally the Last Step and most most most important, the skillinfolist.lub This file is located in \data\luafiles514\lua files\skillinfolist.lub We have to add the new skill to this file, EXAMPLE: [SKID.ALL_GLASTHEIM_RECALL] = { "ALL_GLASTHEIM_RECALL", SkillName = "Return to Glastheim", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 1 } }, [SKID.ALL_EQSWITCH] = { "ALL_EQSWITCH", SkillName = "Equip Switch", MaxLv = 1, Type = "Quest", SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 1 } } } - In this case I added the skill at the last in the bottom, so you watch out the keys and the commas placed properly to avoid client side error, VERY VERY VERY IMPORTANT, you see the Type = "Quest" bold in green? Please, do not ignore that line, ... That line is very very important, and the client use that line, to avoid investing job skill points in that quest skill. Now, for getting the skill active, you can edit the npc global funcion and add it to the platinium skills: in your trunk/npc/other/Global_Functions.txt Example: ////////////////////////////////////////////////////////////////////////////////// // Gives attached player their Platinum Skill based on their class. ////////////////////////////////////////////////////////////////////////////////// function script F_GetPlatinumSkills { skill "NV_FIRSTAID",1,SKILL_PERM; skill "ALL_EQSWITCH",1,SKILL_PERM; or make your own script to get the skill permantent. Now The Testing In Game: Party Ragnarok 2020-03-14 19-25-47.mp4 OPTION 2: For Experienced Users, if you want to save hours on this.... just go to the shortcut settings and add a shortcut to replace equip.
    1 point
  4. https://gist.github.com/AnnieRuru/ecbbc25159e9dc6ab2b275aa9475df0f hahaha our conversation on discord is 100x more exiting on the forum XD
    1 point
  5. can only be done with source edits src/map/mob.cpp | 9 +++++++++ src/map/mob.hpp | 1 + src/map/unit.cpp | 11 +++++++++++ 3 files changed, 21 insertions(+) diff --git a/src/map/mob.cpp b/src/map/mob.cpp index 3e0b54f37..686c30ac1 100644 --- a/src/map/mob.cpp +++ b/src/map/mob.cpp @@ -708,6 +708,15 @@ int mob_once_spawn(struct map_session_data* sd, int16 m, int16 x, int16 y, const //"I understand the "Aggressive" part, but the "Can Move" and "Can Attack" is just stupid" - Poki#3 sc_start4(NULL,&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE|MD_CANATTACK|MD_CANMOVE|MD_ANGRY, 0, 60000); } + + if (md != NULL) { + if (mob_id < 0) { + md->special_state.deadbranch = 1; + md->deletetimer = add_timer(gettick()+5000,mob_timer_delete,md->bl.id,0); + } + else + md->special_state.deadbranch = 0; + } return (md) ? md->bl.id : 0; // id of last spawned mob } diff --git a/src/map/mob.hpp b/src/map/mob.hpp index 5b47b8c6f..37921599c 100644 --- a/src/map/mob.hpp +++ b/src/map/mob.hpp @@ -189,6 +189,7 @@ struct mob_data { unsigned int size : 2; //Small/Big monsters. enum mob_ai ai; //Special ai for summoned monsters. unsigned int clone : 1;/* is clone? 1:0 */ + unsigned int deadbranch : 1; /* summon from branch */ } special_state; //Special mob information that does not needs to be zero'ed on mob respawn. struct s_MobState { unsigned int aggressive : 1; //Signals whether the mob AI is in aggressive mode or reactive mode. [Skotlex] diff --git a/src/map/unit.cpp b/src/map/unit.cpp index 15632f201..b42668a1d 100644 --- a/src/map/unit.cpp +++ b/src/map/unit.cpp @@ -2420,6 +2420,17 @@ int unit_attack(struct block_list *src,int target_id,int continuous) if(ud->attacktimer != INVALID_TIMER) return 0; + if (target_id != 0) { + struct block_list *target_bl = map_id2bl(target_id); + if (target_bl->type == BL_MOB) { + struct mob_data *md = map_id2md(target_id); + if (md->special_state.deadbranch == 1 && md->deletetimer != INVALID_TIMER) { + delete_timer(md->deletetimer, mob_timer_delete); + md->deletetimer = add_timer(gettick() + 5000, mob_timer_delete, md->bl.id, 0); + } + } + } + // New action request received, delete previous action request if not executed yet if(ud->stepaction || ud->steptimer != INVALID_TIMER) unit_stop_stepaction(src); I tested with 5000 = 5 seconds, change them into 60000
    1 point
  6. Well I don't have any issue with that file at all: Try to check your NEMO patch regarding MapInfo, and be sure to follow the guide on my wiki, especially the part with NEMO profiles. If you really use my translation project that name of that file is mapInfo_True_EN.lub.
    1 point
  7. I don't remember how I did it or when exactly but you might be able to find it somewhere in here among the older commits : https://github.com/SeravySensei/rathena/commits/master edit : Bard and Dancer skill changes seem to be around 2019-09-03
    1 point
×
×
  • Create New...