Blinzer

Members
  • Content count

    94
  • Joined

  • Last visited

About Blinzer

  • Rank
    Advanced Member

Recent Profile Visitors

991 profile views
  1. I've recently changed gunslinger to have a combo of its own, single action -> chain action -> triple action, copying the same code that is used for monk combo skills more or less. i then separated the component which forces you not to move during a combo, as such: so far everything works fine, i can move during the combo as seen in this video. i have a couple of problems i want to understand how to fix: 1. the actual time allowed in between combo moves is low(especially at higher attack speeds), and "ud->attackabletime" doesn't seem to be the time granted in between combo moves(i set it to 50000 to test and nothing changed). where is the amount of time allowed between combo moves determined so i can change it? 2. i want to allow triple action to allow to chain into more triple actions at the end of the combo(no limit as long as you continue the combo in time, so basically i want a triple action loop). how would i change that to happen? this is the stuff i'm currently running, but my attempt did not work: update: apparently it does work, but only at certain ASPDs due to problem #1, so in theory the code i show below does in fact work. 3. chain action and triple action are auto-acquiring the same target i hit single action with when i continue the combo, despite me having set it in the skill_db that i choose the target myself(no problems client side, i can click on any target i want there). i'm sure this is part of the combo code somewhere but i couldn't find it, so where is this found in the source? thanks in advance.
  2. Have you used the most recent updated version of the Emulator to reproduce this? well, no. using the latest one is not an option for me. it probably works on it, though.
  3. this is a long lasting problem i've had since i'm using an older version of hercules where poison damage doubles the experience you receive from the damage of the poison, and likewise venom dust gives you NO experience for the damage from that poison. can anyone point me to the commit that fixes these two problems?
  4. unfortunately what you gave me didn't work, likely due to the tick rate on my server already being 0.5 seconds instead of the standard. but i was able to eventually come up with a "solution" because of it, by moving the sitting bonus thing you pointed out to me into the "do" loop that was right below, to get it to change the val instead of modifying bonus. however, i don't know what a do loop is so i don't know if what i've done is going to cause a big stress on the server(if it runs through that 100 times a second or whatever) or if it's just inefficient code, so i'd like to see if you have a more intelligent solution and yes, i can see that i need to clean up some stuff relating to bonus in the tick rate formula and in what i pasted, i was hasty to take this screenshot and post it
  5. i know it's in here somewhere, but i just can't find it i've tried changing at least 7 different things(including in other places in status.c) and not a single one affected the double sitting regen
  6. you could code a custom item bonus effect that will halve the chance of your armor breaking, but that's a pretty lame custom effect
  7. yes yes i can help you if(sc && sc->data[sC_ANKLESNARE]) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; } if that doesn't work, substitute skill_id for MO_BODYRELOCATION, and if that doesn't work we'll talk keep in mind spiral pierce's root also uses ankle snare's SC effect, meaning they will also be unable to relocate out of spiral pierce's root(which in this case is a good thing for you)
  8. Upper: 63 make sure your ninja is actually level 85
  9. your question isn't specific enough, i don't know what stackable means. like more than 1 item? i don't know if what you're saying is true then the item type 18 is defined in the item_db
  10. this is how i would do it, dunno about newest version of hercules
  11. you could just replicate what was written for falcon assault, except for blitz beat(put it right above the falcon assault if statement: if (skill_id == HT_BLITZBEAT) { //Blitz Beat Modifier md.damage=md.damage*130/100; }
  12. Well, looks like I failed to figure this out myself after all. When I try to call ATK from the refinement place, it's just always 0. I tried a lot of other options to, all to no avail. I'm guessing I have to do something like recalculate the total baseATK it within the refinement formula if I plan to use it or, alternatively, make the refinement bonus be calculated and applied in another place by calling the refinement stuff there instead. Can anyone help me do that?
  13. i see, so return 0 means fail the skill. just do if( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) { } then
  14. alright so simply put as you can see, sling item equips the food as ammunition and then you can sling it to another player to give them the buff effects of the food i need help doing the same thing with slim potion pitcher. i already know how to make items into ammo, so the only thing i need help with is the source code aspect and make it search for whatever ammo you have equipped instead of whatever it's doing. i have highlighted the suspected culprits please note that i will not be using any values specified in the skill_require_db, i will be opting for a hard code of each individual item id that is valid for ammo. other info from previous attempts: when getting help before, they suggested me to use this code(which is basically sling item's) but the problem is that not only does the ammunition provide its buffs to the wielder like this when it gets equipped, but it doesn't even use the ammunition at all and opts to search for the item requirement defined in skill_require_db anyways.
  15. oh right. that one made it so the case we needed to pass was gatekeepered if( skill_id != LK_PARRYING && require.weapon && !pc_check_weapontype(sd,require.weapon)) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } if( skill_id == LK_PARRYING && !sd->sc.data[SC_SOULLINK] && require.weapon && !pc_check_weapontype(sd,require.weapon)) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; } if( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK]) { return 0; }