Jump to content

Humble_Bee

Members
  • Posts

    112
  • Joined

  • Last visited

Everything posted by Humble_Bee

  1. In order to use that response, I think I would have to put the first person's suggestion together with yours, looking for the view number of the item, and if the item view was taking up more than one equip spot, then look to see if there was a card, and if there was a card, then multiply it by how many slots the equip is taking up. I imagine there might be an easier way to code it, but perhaps not.
  2. While I can see how getiteminfo perhaps could be used to pull up what view an item was in, it's not quite what I'm looking for, because I don't know how I would include it in code to do what I want.
  3. Hi Gang. I'm looking for a source mod that would check how many equip spots a weapon or armor takes up and then would use that number to multiply how many cards an equipment has. Example: A sword has a card in it that gives a 5% atk boost. A two-handed sword has that same card in it, but the game reads it as two cards, giving the player a 10% atk boost. I'm doing this to balance two-handed weapons and multi-equip-spot armor in my game. If this seems difficult to code, but multiplying the bonus of the cards would be easier, I'm open to that for now, but I want to have my game think there are two cards present in two-handed weapons for the purpose of card combo bonuses. Example 2: An upper headgear has a card in it that boosts Def by 30. A upper/mid/lower headgear has that same card in it, but the game reads it as if it were 3 cards, so the Def boost is 90. Also, obviously this wouldn't only apply to cards themselves, but also any bonus that goes into a card slot, like enchants. Thanks for any leads! If you can do this through scripting but aren't confident in your ability to do this through source mod, I'd be happy to try that out, as at least it would give me a working model for the time being. (Mods: Woops. Should have posted this in Source Request instead of Source Support. My bad. Feel free to move it, since I can't delete it on my own.)
  4. I've been working on messing with that area, but I still don't see where the 50/(200-amotion) is listed. I see some places where it amotion gets multiplied by 50 and then divided by 100, but not 50/yadayada. Which is weird, because I changed the max cap for aspd to 1000, and it still divides everything by 50, meaning if I have 950 aspd, it becomes 50/ (1000-950), which becomes 1 attack per second. Not quite what I'm going for. (And until I get an answer, or even if I don't, I'm starting the long tedious journey of putting all of the formulas for aspd into an excel, so that I can see exactly what they do and how they affect aspd, so that I will learn where that 50 is eventually.)
  5. The current aspd formula works on a sharp curve. I'm working on making mine an even incline. Can someone tell me where the: "The amount of hits your character makes is calculated as such: 50 / (200-FinalASPD) hits per second" (as noted here: Attack Speed - NovaRO: Wiki (novaragnarok.com)) is located in status.cpp? That 50/yada is what is holding me back. Thanks if anyone has the info handy.
  6. Edit: Misread your post. Could you do it? Yes, but you would need to replace skills that already exist in order for the client to accept them, I assume. This is because I imagine that enemies don't have icons for powers, which would make it difficult to have powers to click on. It would probably require a lot of work. It would take a lot less work to have the weapons or armor have a CHANCE to have the power happen, either when attacking or when attacked. Creating a whole new move (new icons, descriptions, etc) is going to take time, even if it isn't an enemy power. Edit2: Most enemy skills, outside of like the ones that summon specific henchmen, are safe to use as item-cast skills. You could make a class that uses specific items instead of powers, and you could just make those items so that they don't disappear when used (though I can't remember how to make them not disappear, as I haven't done that task yet). Edit3: You just gave me an idea for an armor-based class- one that is plain jane until they put on the right armor, and then their attacks unlock hidden attacks.
  7. Howdy all. When I go to the apparently official site to try to download BrowEdit r620, my computer is showing the site has a virus (didn't try to download anything- looks like the site is hacked / fake "our antivirus program that you don't have found viruses on your computer" messages pop up). Does anyone have a safe and stable link to r620? (The excalibur site is where I tried to go.) Thanks for an update!
  8. Is there a certain format it has to be saved in? I keep hearing 8-bit indexed getting tossed around a lot? Would the indexing only apply to sprites, or to all images in the game?
  9. So I currently use Act Editor to edit sprites and act files, but is there a program to edit just basic item bmp files? I tried using GIMP to change the color of the Pantie item's description pic (the pic located when you pop up the item description, just like a card pic), but when I saved the pic, the game did not like it. Any ideas on how to work it? Thanks!
  10. That should be the right area, try increasing the number and seeing if that helps. Some of the settings you raise the number to slow things down.
  11. So I am working on getting my Gunslinger to dual-wield revolvers. He can successfully hold two guns, but it is still only registering as if he is holding one gun for damage. The funny thing is- if I switch to being a Rebel, the second gun magically works and everything is fine. I have tested this with other classes as well- merchants, novices, etc- if it is a base class, it doesn't register the dual-wield when it comes to damage, but third classes pick it up. Does anyone know where the code is that triggers this? I'm looking all around for job class triggers, but I haven't found it yet. Perhaps I need to do some research to see if it is a display bug with how stuff is getting sent to the client, or perhaps it is a client code problem.
  12. In the item_bonus.txt that my rAthena has in the documents (doc) section, it shows these for your first request: bonus2 bHPVanishRate,x,n; Add a x/10% chance of decreasing enemy's HP amount by n% with a normal attack bonus3 bHPVanishRate,x,n,bf; Add a x/10% chance of decreasing enemy's HP amount by n% when attacking with trigger criteria bf If you want to make an opposite one to this, you could just make a second copy of these in the source code every place you find it, and then change the target to yourself for the copies. Once you do that, you just change the -= for the hp to the += (from drain to gain). I didn't find an item bonus for fixed damage, but you could make a copy of the ones above and change the % damage to a fixed damage. For the second one, you can use these, and change X with the % you want to increase or reduce damage by. If you only want a chance of these happening, you will want to toss these into an autobonus on an item script. See script_commands.txt and look for autobonus in it to find out more. A sample is undernearth the first section here. bonus2 bAddClass,Class_All,x; +x% physical damage against all monsters bonus2 bMagicAddClass,Class_All,x; +x% magical damage against all monsters bonus2 bSubClass,Class_All,x; +x% damage reduction against all monsters autobonus2 "{ bonus2 bSubClass,Class_All,60; }",50,10000,0,"{ }"; The above autobonus will trigger 5% of the time when attacked, and it will give 60% resistance to all damage for 10 seconds. If you want it to work when attacking, you just make it the first word autobonus instead of autobonus2.
  13. TF_DOUBLE doesn't look like it has a status attached, but status changes are how some of the easier aspd boosts work (like "Madness Canceller / Last Stand" for Gunslinger). Since I don't feel like coding in an entirely new status, you could look for this in status.cpp: if ((skill_lv = pc_checkskill(sd,SA_ADVANCEDBOOK)) > 0 && sd->status.weapon == W_BOOK) val += (skill_lv - 1) / 2 + 1; And add this below it: if ((skill_lv = pc_checkskill(sd,TF_DOUBLE)) > 0) val += skill_lv; And then look for this in status.cpp as well: if((skill=pc_checkskill(sd,SA_ADVANCEDBOOK))>0 && sd->status.weapon == W_BOOK) base_status->aspd_rate -= 5*skill; And add this below: if((skill=pc_checkskill(sd,TF_DOUBLE))>0 ) base_status->aspd_rate -= 10*skill; This should add aspd like Sage's "Advanced Book / Study" does, but give a 1% boost instead of the 0.5% boost. - - - - - For TF_MISS, in battle.cpp look for: if(attacker_count >= battle_config.agi_penalty_count) { if (battle_config.agi_penalty_type == 1) flee = (flee * (100 - (attacker_count - (battle_config.agi_penalty_count - 1)) * battle_config.agi_penalty_num)) / 100; else //assume type 2: absolute reduction flee -= (attacker_count - (battle_config.agi_penalty_count - 1)) * battle_config.agi_penalty_num; if(flee < 1) flee = 1; } } And change it to this: if(attacker_count >= (battle_config.agi_penalty_count + pc_checkskill(sd,TF_MISS))) { if (battle_config.agi_penalty_type == 1) flee = (flee * (100 - (attacker_count - ((battle_config.agi_penalty_count + pc_checkskill(sd,TF_MISS)) - 1)) * battle_config.agi_penalty_num)) / 100; else //assume type 2: absolute reduction flee -= (attacker_count - ((battle_config.agi_penalty_count + pc_checkskill(sd,TF_MISS)) - 1)) * battle_config.agi_penalty_num; if(flee < 1) flee = 1; } } That should cause TF_MISS to affect both how many monsters attack you before you take a penalty, and how big the penalty is (if you didn't write it like this, then let's say you have 11 extra monsters attacking and you just passed the TF_MISS bonus protection, instead of suffering a 5% percent flee penalty for 1 extra monster, you would suffer a 55% flee penalty for 11 extra monsters). Of course, I haven't tested these, and I'm a bit newer at coding. Feel free to try them out though. (This is also based off of the version of code that I have, so it might be a bit different on the newer updates.)
  14. The easiest way would be to go into the skill_db (either .yml or .txt, depending on how old your file is) and adding it as not being affected by land protector. Look for the inf3 section. If you want to do it the more difficult way, you could: In skill.cpp, look for this: switch (skill_id) { case SA_LANDPROTECTOR: if( unit->group->skill_id == SA_LANDPROTECTOR ) {//Check for offensive Land Protector to delete both. [Skotlex] (*alive) = 0; skill_delunit(unit); return 1; } //It deletes everything except traps and barriers if ((!(skill_get_inf2(unit->group->skill_id)&(INF2_TRAP)) && !(skill_get_inf3(unit->group->skill_id)&(INF3_NOLP))) || unit->group->skill_id == WZ_FIREPILLAR || unit->group->skill_id == GN_HELLS_PLANT) { if (skill_get_unit_flag(unit->group->skill_id)&UF_RANGEDSINGLEUNIT) { if (unit->val2&UF_RANGEDSINGLEUNIT) skill_delunitgroup(unit->group); } else skill_delunit(unit); return 1; } break; And change it to this: switch (skill_id) { case SA_LANDPROTECTOR: if( unit->group->skill_id == SA_LANDPROTECTOR ) {//Check for offensive Land Protector to delete both. [Skotlex] (*alive) = 0; skill_delunit(unit); return 1; } //It deletes everything except traps and barriers if ((!(skill_get_inf2(unit->group->skill_id)&(INF2_TRAP)) && !(skill_get_inf3(unit->group->skill_id)&(INF3_NOLP))) || unit->group->skill_id == WZ_FIREPILLAR || unit->group->skill_id == NC_STEALTHFIELD || unit->group->skill_id == GN_HELLS_PLANT) { if (skill_get_unit_flag(unit->group->skill_id)&UF_RANGEDSINGLEUNIT) { if (unit->val2&UF_RANGEDSINGLEUNIT) skill_delunitgroup(unit->group); } else skill_delunit(unit); return 1; } break; And also look for this: if( !(skill_get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP)) && !(skill_get_inf3(group->skill_id)&(INF3_NOLP)) && group->skill_id != NC_NEUTRALBARRIER && map_getcell(unit->bl.m, unit->bl.x, unit->bl.y, CELL_CHKLANDPROTECTOR) ) return 0; //AoE skills are ineffective. [Skotlex] And change it to this: if( !(skill_get_inf2(group->skill_id)&(INF2_SONG_DANCE|INF2_TRAP)) && !(skill_get_inf3(group->skill_id)&(INF3_NOLP)) && group->skill_id != NC_NEUTRALBARRIER && group->skill_id != NC_STEALTHFIELD && map_getcell(unit->bl.m, unit->bl.x, unit->bl.y, CELL_CHKLANDPROTECTOR) ) return 0; //AoE skills are ineffective. [Skotlex] I haven't tested the skill.cpp changes to know that they work though. Just a guess.
  15. There are a couple things you could try. My first suggestion would be changing it in the skill_db (used to be a txt file, but I think its a yml for newer users now) so that it goes by enchant/endow element. If you want the base element to stay earth though, then perhaps leave skill_db alone and try going to this section in battle.cpp: if (s_ele == -1) { // pl=-1 : the skill takes the weapon's element s_ele = sstatus->rhw.ele; if(sd && sd->spiritcharm_type != CHARM_TYPE_NONE && sd->spiritcharm >= MAX_SPIRITCHARM) s_ele = sd->spiritcharm_type; // Summoning 10 spiritcharm will endow your weapon } else if (s_ele == -2) //Use status element s_ele = status_get_attack_sc_element(src,status_get_sc(src)); else if (s_ele == -3) //Use random element s_ele = rnd()%ELE_ALL; switch(skill_id) { case LG_SHIELDSPELL: if (skill_lv == 2) s_ele = ELE_HOLY; break; And adding this under the case LG_SHIELDSPELL section (after the break;): case: GN_CRAZYWEED_ATK: if (status_get_attack_sc_element(src,status_get_sc(src)) != NULL || status_get_attack_sc_element(src,status_get_sc(src)) != 0) s_ele = status_get_attack_sc_element(src,status_get_sc(src)); break; Note: I normally just research what has been used in other places of code and guess at what might work. This might work, or it might not, or it might just need some tweaking. Also, this coding won't allow for endowment to neutral element, because it looks like the status_get_attack_sc_element is set to return neutral as the element if no endow is found. You might be able to get around this, but it would take more coding.
  16. So I've been having some fun playing around with clif_specialeffect by adding it to skills, but I'm having trouble adding it to things like blastmine and other unit-based attacks. I can get it to cause an animation at my location when a unit goes off, and I can get it to trigger on an enemy's location when a unit goes off, but I can't get the effect to trigger at blastmine's location when the effect goes off. I'm adding another explosion effect that I want enemies to blast away from. The code I will show you below does not actually show a script that triggers anything, but it does show you that it accepts the unit's bl (which means it can find the unit's location). I can't &unit->bl to do this magical feature in clif_specialeffect in any other place on the code where it would matter to me (because I don't know how to add the proper code elsewhere). To show that a unit's bl works in clif_specialeffect: case UNT_BLASTMINE: { int bl_flag = sg->bl_flag; if (tsc && tsc->data[SC__MANHOLE]) break; map_foreachinrange(skill_trap_splash, &unit->bl, skill_get_splash(sg->skill_id, sg->skill_lv), bl_flag, &unit->bl, tick); clif_specialeffect(&unit->bl, 730, AREA); The place where I know that the clif_specialeffect has been triggering (I see the animation) is located in skill.cpp in the skill_castend_pos2 section: case HT_BLASTMINE: { skill_unitsetting(src,skill_id,skill_lv,x,y,0); clif_specialeffect(src, 730, AREA); //This one triggers when I lay the trap, but in this case triggers on me. break; } So I guess my question would be how do I add the unit bl so that it works in the skill_castend_pos2 section like it does in the skill_unit_onplace_timer section of the same file (skill.cpp)? And if that doesn't work, how can I get a special effect to happen at the unit's location or a targeted location?
  17. I figured it out. I moved the skill being triggered in skill.cpp over to battle.cpp and it got rid of the delay. This thread can be closed.
  18. I have a skill that automatically triggers when I use a normal attack, but the skill is always delayed like a second after the attack hits. Is there a way to make the skill happen the same time as the weapon attack hitting? (this is a ranged weapon and the skill is coded into the source code, not scripted). Thanks!
  19. Just wondering if anyone else has switched their soft defense to a % reduction instead of a flat one? I have, and I like it a lot. I got tired of Sera's Pain Killer making the game easy from 1-100. I also got tired of flat damage reductions not currently scaling well with level, and not knowing what soft defense might do for me in any given fight. Now I see 23% and know how much my butt is getting saved quickly.
  20. A while back I finally found the spot in the code where it gives the timer for when a mob attacks a person who is trying to cast a magic attack. I increased the time, but since I was working on another project, didn't think to thoroughly test it. Now the mobs are responding so slowly that they normally get one-shot before they respond. Anyone know where this is in the code? I'm having trouble finding it again. Thanks! EDIT: This post can be deleted. After running my original copy of rAthena download files, it looks like the behavior is exactly the same. I probably just thought I changed something and didn't. Thanks all!
  21. So they get buffs and then go to a different map? Does this happen when they stay on the same map as the clown and gypsy?
  22. Is your mapserver showing any errors when you use it?
  23. I'm on my phone so might edit later but at least this might be wrong: "BaseClass==Job_Job_Alchemist" What error code is your map server popping up?
  24. I'm using an older version of rAthena. Since mine is buggy as well and I don't see any posts on fixes, this is how I got HPRegenRate to work like RegenPercent is supposed to work: bonus2 bHPRegenRate, readparam(bMaxHP)/100,10000; This regenerates one percent health every 10 seconds.
  25. This is my entry: 4294,Quve_Card,Quve Card,6,20,,10,,,,,,,,128,,,,,{ autobonus "{ bonus2 bRegenPercentHP,-1,5000; bonus2 bAddEff,Eff_Blind,900; }",50,30000,BF_WEAPON,"{ misceffect 255; soundeffect "bathory_die.wav",0;}";},{},{} The error in mapserver keeps saying it is expecting a ; after the " right before the file name for the soundeffect. Obviously the game is reading this as the end of the autobonus section, because a " is needed there too. Has anyone gotten sound effects to work with autobonus that can share what they did?
×
×
  • Create New...