Jump to content

Synel

Members
  • Posts

    38
  • Joined

  • Last visited

  • Days Won

    1

Synel last won the day on October 21 2021

Synel had the most liked content!

Profile Information

Recent Profile Visitors

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

Synel's Achievements

Poring

Poring (1/15)

  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Reputation

  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.
×
×
  • Create New...