Jump to content

Synel

Members
  • Posts

    38
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Synel

  1. I've been seeing these three errors constantly in the mapserver during testing. I think it has something to due with bonus damage/reduction against players. It seems to be the only common thing between the equipment that causes the error to appear. I know there used to be a single subclass for players which was changed later, I think because Doram was introduced, but I don't know what is causing them not to be recognized. Just in case it's too small to read: PC_Bonus2: SP_SUBCLASS: Invalid Class 7 PC_Bonus2: SP_SUBCLASS: Invalid Class 10 PC_Bonus2: SP_SUBCLASS: Invalid Class 11 Repeats every time equipment changes and at an interval while playing.
  2. Edit: Problem solved. Setting teams does not work with OnPCLoadMapEvent and must (seemingly) be triggered via npc direct activation. I'm trying to make town maps function with mobs that can attack players under certain conditions. The map I've decided to use has been added to the map index, I've set up a new type of battlegrounds in the battlegrounds db with the variables there matching the variables that I use in the actual script. I can get the maps to spawn, confirm that players get added to the BG team (or at least a variable of the same name is set) and the monsters are spawned using the set X BG_Monster command so the teams should all be correct. They still act hostile towards players who should be on the same team. Attached is the script. Help would be appreciated. //= Base Start scripts - script TOWNBGTEAM -1,{ OnPCLoadMapEvent: if( readparam(manner) >= 7 ) { bg_join($@Pront_Crim); } else if (manner <= 6 ) { bg_join($@Pront_Cit); } OnPCDieEvent: // Warp to jail and/or custom prison to be added here later end; } prontera,160,70,0 script PronteraBG2 111,{ If( bg_get_data(Pront_Cit,0) >= 2 ); mes "MORE THAN ONE"; close; } //Prontera prontera,158,65,0 script Pront_BG 111,{ bg_create("prontera",0,0); set $@ProntG_1, bg_monster($@Pront_Cit,"prontera",145,60,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_2, bg_monster($@Pront_Cit,"prontera",145,50,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_3, bg_monster($@Pront_Cit,"prontera",145,75,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_4, bg_monster($@Pront_Cit,"prontera",146,108,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_5, bg_monster($@Pront_Cit,"prontera",165,108,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_6, bg_monster($@Pront_Cit,"prontera",164,174,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_7, bg_monster($@Pront_Cit,"prontera",147,74,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_8, bg_monster($@Pront_Cit,"prontera",185,197,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_9, bg_monster($@Pront_Cit,"prontera",184,210,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_10, bg_monster($@Pront_Cit,"prontera",166,237,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_11, bg_monster($@Pront_Cit,"prontera",145,237,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_12, bg_monster($@Pront_Cit,"prontera",127,210,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_13, bg_monster($@Pront_Cit,"prontera",127,196,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_14, bg_monster($@Pront_Cit,"prontera",145,257,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_15, bg_monster($@Pront_Cit,"prontera",166,257,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_16, bg_monster($@Pront_Cit,"prontera",163,267,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_17, bg_monster($@Pront_Cit,"prontera",148,267,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_18, bg_monster($@Pront_Cit,"prontera",149,305,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_19, bg_monster($@Pront_Cit,"prontera",162,305,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_20, bg_monster($@Pront_Cit,"prontera",143,330,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_21, bg_monster($@Pront_Cit,"prontera",168,330,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_22, bg_monster($@Pront_Cit,"prontera",200,324,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_23, bg_monster($@Pront_Cit,"prontera",186,297,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_24, bg_monster($@Pront_Cit,"prontera",232,274,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_25, bg_monster($@Pront_Cit,"prontera",200,324,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_26, bg_monster($@Pront_Cit,"prontera",185,297,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_27, bg_monster($@Pront_Cit,"prontera",232,274,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_28, bg_monster($@Pront_Cit,"prontera",245,255,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_29, bg_monster($@Pront_Cit,"prontera",245,234,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_30, bg_monster($@Pront_Cit,"prontera",247,214,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_31, bg_monster($@Pront_Cit,"prontera",247,193,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_32, bg_monster($@Pront_Cit,"prontera",267,193,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_33, bg_monster($@Pront_Cit,"prontera",267,214,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_34, bg_monster($@Pront_Cit,"prontera",245,170,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_35, bg_monster($@Pront_Cit,"prontera",230,131,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_36, bg_monster($@Pront_Cit,"prontera",230,64,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_37, bg_monster($@Pront_Cit,"prontera",245,64,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_38, bg_monster($@Pront_Cit,"prontera",79,133,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_39, bg_monster($@Pront_Cit,"prontera",64,194,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_40, bg_monster($@Pront_Cit,"prontera",64,213,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_41, bg_monster($@Pront_Cit,"prontera",46,213,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_42, bg_monster($@Pront_Cit,"prontera",46,194,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_43, bg_monster($@Pront_Cit,"prontera",66,239,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_44, bg_monster($@Pront_Cit,"prontera",66,260,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_45, bg_monster($@Pront_Cit,"prontera",81,267,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); set $@ProntG_46, bg_monster($@Pront_Cit,"prontera",125,300,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_47, bg_monster($@Pront_Cit,"prontera",113,325,"Prontera Guard",20542,"PronteraBG::OnMyMobDead"); set $@ProntG_48, bg_monster($@Pront_Cit,"prontera",112,300,"Prontera Guard",20541,"PronteraBG::OnMyMobDead"); OnPCDieEvent: // Warp to jail and/or custom prison to be added here later end; end; OnMyMobDead: //.@m$, = getattachedrid(); //setd ".@l", = ("" + .@m$ + L"); initnpctimer; end; OnTimer2000: stopnpctimer; // work in progress // set .@m$, bg_monster($@Pront_Cit,"prontera",.@l,"Prontera Guard",1973,"PronteraBG::OnMyMobDead"); return; } // work in progress //Startup variables //ProntG_1L = 146,60; //ProntG_2L = 145,50; //ProntG_3L = //ProntG_4L = //ProntG_5L = //ProntG_6L = //ProntG_7L = //ProntG_8L = //ProntG_9L = //ProntG_10L = //ProntG_11L = //ProntG_12L = //ProntG_13L = //ProntG_14L = //ProntG_15L = //ProntG_16L = //ProntG_17L = //ProntG_18L = //ProntG_19L = //ProntG_20L = //ProntG_21L = //ProntG_22L = //ProntG_23L = //ProntG_24L = //ProntG_25L = //ProntG_26L = //ProntG_27L = //ProntG_28L = //ProntG_29L = //ProntG_30L = //ProntG_31L = //ProntG_32L = //ProntG_33L = //ProntG_34L = //ProntG_35L = //ProntG_36L = //ProntG_37L = //ProntG_38L = //ProntG_39L = //ProntG_40L = //ProntG_41L = //ProntG_42L = //ProntG_43L = //ProntG_44L = //ProntG_45L = //ProntG_46L = //ProntG_47L = //ProntG_48L = } //0x6201E85 //0x4202085 Here's BG Database addition. There's no XY respawns because I had no plans on using the respawns. - Id: 6 Name: Prontera Locations: - Map: prontera StartEvent: Pront_BG::OnStart TeamA: DeathEvent: Pront_BG::OnPCDieEventPront QuitEvent: Pront_BG::OnPCQuitEventPront ActiveEvent: Pront_BG::OnPront_BG Variable: $@Pront_Cit TeamB: DeathEvent: Pront_BG::OnPCDieEventPront QuitEvent: Pront_BG::OnPCQuitEventPront ActiveEvent: Pront_BG::OnPront_BG Variable: $@Pront_Crim
  3. Edit: Missed a type. My fault. So, I tried to modify the BG_JOIN script to function without the map teleport. When I compile I get a undeclared identifier error for a variable that's still used in the original script which is literally right above the code I made. It's probably a noob question but yeah, please help. BUILDIN_FUNC(bg_join) { const char* map_name; struct map_session_data *sd; int x, y, mapindex, bg_id = script_getnum(st, 2); std::shared_ptr<s_battleground_data> bg = util::umap_find(bg_team_db, bg_id); if (!bg) { script_pushint(st, false); return SCRIPT_CMD_SUCCESS; } if (script_hasdata(st, 3)) { map_name = script_getstr(st, 3); if ((mapindex = mapindex_name2id(map_name)) == 0) { script_pushint(st, false); return SCRIPT_CMD_SUCCESS; // Invalid Map } x = script_getnum(st, 4); y = script_getnum(st, 5); } else { mapindex = bg->cemetery.map; x = bg->cemetery.x; y = bg->cemetery.y; } if (!script_charid2sd(6, sd)) { script_pushint(st, false); return SCRIPT_CMD_FAILURE; } if (bg_team_join(bg_id, sd, false) && pc_setpos(sd, mapindex, x, y, CLR_TELEPORT) == SETPOS_OK) { script_pushint(st, true); } else script_pushint(st, false); return SCRIPT_CMD_SUCCESS; } //Synel, custom BUILDIN_FUNC(bg_joinsimple) { struct map_session_data *sd; bg_id = script_getnum(st, 2); std::shared_ptr<s_battleground_data> bg = util::umap_find(bg_team_db, bg_id); if (!bg) { script_pushint(st, false); return SCRIPT_CMD_SUCCESS; } if (!script_charid2sd(3, sd)) { script_pushint(st, false); return SCRIPT_CMD_FAILURE; } if (bg_team_join(bg_id, sd, false)) { script_pushint(st, true); } else script_pushint(st, false); return SCRIPT_CMD_SUCCESS; }
  4. Use the github wiki for setting up rAthena and SQL database: https://github.com/rathena/rathena/wiki/Install-on-Windows Use this version of Nemo: https://gitlab.com/4144/Nemo Use this version of English translation for newer clients/Renewal. Otherwise use the one located in the [Tutorial] Video Edition linked below should work but don't take my word on that. https://github.com/llchrisll/ROenglishRE Find a client version that fits your wants and desires best here: Keep in mind ragEXEs are the client versions that work with Rathena. the regular rag and ZERO ones do not work. 20200409 seems to be the go to client version. Use this guide for client side setup and other details: You may have to edit your packet version to get the server to connect. There's a commented note in packets.hpp that you should read if you have to. Points you to edit a separate file.
  5. Hey, Where in the files is it decided which skill tab a skill falls under? I'd like to make sure certain skills go into the misc tab on the skills window.
  6. Cool cool. Thanks man. I think I got this part. I'm still working on how to do the battle.c if you or anyone else has any info. Edit: I'm going at this from another angle. Edit: Note sure I'm on the right track or not. Since I'd prefer this bonus be applied before all the others I made it into a new type of bonus. Trying to get weight from player characters equipment and pass it into a variable to throw into the main damage calculation. Nothing's organized here but gather code I might need. Alright. I got nothing. Tried multiple forms and attempts of this script and looked through script.cpp, script.hpp, script commands and a few other files. Can't figure out how to run a script with a stat calc event/equip/unequip item. There's both equip and unequip scripts that return "SCRIPT_CMD_SUCCESS" which is equal to 0 but I've not been able to incorporate that into this.
  7. That's in PC.CPP I think? Thank you. I'm assuming this is correct?: case SP_SUBEQUIPWEIGHT; PC_BONUS_CHK_CLASS(type2,SP_SUBEQUPWEIGHT); if(sd->state.lr_flag != 2) sd->equip_weight += val;
  8. I've read through the wiki here: https://github.com/rathena/rathena/wiki/Adding-New-Bonuses Was able to follow it through for the most part, though some of the format/coding used now is different from that put forth in the wiki. What I'm trying to do is incorporate a players total equipped weight into a damage reduction of a kind. Essentially, I'd like to take 10% of any given equipment's weight, convert that into a variable bonus to reduce damage by a percentage. I've defined the variables and created three new classifications for the bonus (I think) but I'm not actually sure how to implement the coding in battle.c. or if any other files would need to be edited. Any advice would be appreciated. The following files have been edited so far: map.hpp pc.hpp status.cpp pc.cpp const.txt Edit: I'm currently thinking of using the following code for grabbing equipment weight: short index = sd->equip_index[insert equipment piece here]; if (index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR) skillratio += sd->inventory_data[index]->weight / 10;
  9. So, at some point in my trying out different .exe's to find one I liked and making changes to rAthena's source files my clif.pcc developed an error. I've never touched this file in any way shape or form. ...rathena\src\map\clif.cpp(21525,24): error C2079: 'p' uses undefined struct 'clif_ping::PACKET_ZC_PING' ...rathena\src\map\clif.cpp(21527,17): error C2065: 'HEADER_ZC_PING': undeclared identifier Preventing the construction of the map server so I'm dead in the water. Edit: Nvm. The .exe I chose has a specific note in the clif.ccp. Explained it.
  10. Hey, Still working on it but I managed to get the custom skills to work by using a different ID, like you had to. 777 and up. Still can't seem to put points into other skills and ran into other problems atm but thank you Kreustoo. Edit: OK, So, I'm pretty sure this has to do with the game requiring all skill points to be used before advancing to the next class. I'm going to look for the code related to that but basically, if I use the amount of skill points that would use all possible skill points for the novice I can add skills into higher tier skills. It's still off somehow as I haven't been able to add more than one or two points to any basic skills but better I guess.
  11. So, I was completely unaware we no longer had to work with only a small selection of clients listed in a post here on the forums. Thank you for correcting that. I still have the same issue with Star emperor and Soul reaper though. Skills are all mashed into the 2nd skill tab and class still rads Poring.
  12. So, I added several new skills to the novice skill pool using ID 8500-8511. Used the wiki guide so I'v edited: skill.hpp battle.cpp skill_db.yml Skill_Tree.txt battle.c Skilltreereview skillid.lua And I changed Skillnametable.txt but left skilldesctable2.txt alone since it was entirely gibberish and description. In game labels and description come across fine. I cannot put any skill points into any skills except for the novice basic skill though. It doesn't matter what job I switch to with @job for testing or what level my character is. Is there a specific range of skill id's that are allowed? Edit: Solved by changing ID for custom skills. 777 is a working start point.
  13. Sorry, the client that I'm using is the 20200409. The patched EXE is 20151104. Possibly related, I have to have the packet version set to the 2015 date in order for my exe to log on.
  14. Did both. This solved a lot of the problems I had, fixed the UI and removed all the gibberish text (so far.) Thank you very much. I do still have an issue with star emperor skills being mashed into the second skill tab and their job is listed as poring under the characters name. Same thing with soul reaper I'm guessing. Still a huge improvement though.
  15. Hey, Got my server up and running, 20151104 .exe with the latest full release from Akkarin. Starts up, logs in, haven't tested long but I made a char and exited the starting ship. When I start the client though I get the same error message. ...a/luafiles514/lua files/skillinfoz/skilltreeview.lua:1270: attempt to index global 'JobSkillTab' (a nil value) Attached pic shows actual error message. If anyone has any idea on what caused it please let me know.
  16. Hey, I made a server some two three years ago and got a good job so I threw it on a usb drive and left it in my cars console for that time. Just got another server up and running and I am getting back into the swing of modifying a server. That being said I just wanted to confirm a vague general idea of how editing the server works. I remember having to edit files on both client and server side to modify server traits. Then having to recompile the server to implement/test stuff out. Is this still the case?
  17. Not sure if Stalao is still looking for feedback but I'm gonna leave this here in case he come's across it. Using it on a custom server I've been setting up. There's only one real issue that I'm having. I haven't been able to fix it myself and that has to do with the level up message. I believe the message is supposed to be: "X mastery has increased to level X!" The problem is that that whatever level you've reached has a 1 added to it. Not one number higher but a 1 added afterward. After looking at the script I think this has to do with the way the script is written but it both functions correctly in that it displays the right level and doesn't in that it always adds a 1 to the level. (E.G. at level 12 it would say "X mastery has increased to 121!" I enabled dual wielding for classes other than assassin and combined with this script it's had some pretty interesting effects. Essentially the way the script is set up by default you get a standard bonus for the main hand with a half bonus to the offhand. If you have dual wielding of various weapons enabled you effectively see the same thing happen for any combination with the exception of the use of a shield, but I believe that's because Stalao made the script such that any shield combo runs as safeguard. So for instance, if you used a sword and a dagger you'd get a standard onslaught bonus with a 50% swiftness bonus. Same thing for X weapon + Y weapon of any combo. Anyway, if you see this Stalao thank you for the script. It's been awesome so far.
  18. Thank you. Sorry for throwing this here than.
  19. I think the forums used to have a paid services section or something along those lines but I didn't see it so posting this here. If there's someone who does well at spriting and making acts I'd like to ask for help on a rather large project.
  20. I looked through three pages of a search and the "Adding New Skills" portion of the github, but I can't figure out what determines which tab of the skill window a skill appears in. For example, the difference between first job, second job and thrid job windows in hte skill window. Does anyone know where this is set? Edit edit: I take it back. 8 didn't figure it out -_-. So, I ended up using 2100-2113 for new skills and the first 9 worked fine and showed up on third class job window. However, the next 4 kept going into misc. After testing I found out that the skills were being put in second job class tab on top of other skills and being moved to misc. So I guess I'm still missing something as to why the skills are being classified as second class skills.
  21. Hey, sorry for the delay in posting. I didn't see this until Thursday and I had trouble posting. If I open up Browedt 586 it goes through the normal loading in the black box till "Done Initializing." On trying to open the map the black box opens up the .gnd file and does that fine, but the program crashes on loading the rsw, which is the last thing the black box shows. Attached is a png screenshot of what I see when it happens. It's still a bit small and hard to read, sorry about that. Edit: Also, I should mention awhile back, I think it was Radian but it was suggested I rename it to something longer. Mall_Custom was something I tried and it also crashed the same way for that.
  22. Well, can you write another condition into that somehow? I might just not know enough code yet to do it properly, but I don't think the conditions there would cover what I'm trying to do.
  23. If I wanted to increase skill damage by a percentage on some condition, how would I write that into battle.c? More specifically, on a conditional if statement, what would go after the { to increase skill damage by a percentage?
  24. You have to modify the code in pc.c to or add in new code to allow it. Just control+f and search "dual" until you see the section about kagero and thief dual wielding and change it so that it behaves according to your specifications.
  25. Hey Mike, Sorry but, I didn't see anything on the wiki about having to make a GRF. I think final build wise to encrypt and secure your files that's needed but do I have to build one now simply to have the server running correctly?
×
×
  • Create New...