Jump to content

prism

Members
  • Content Count

    69
  • Joined

  • Last visited

Posts posted by prism


  1. I made a breakthrough. I looked at the code for left and right hand mastery and found that they increase damage for nonskill attacks.

     

    if(sd->status.weapon == W_KATAR && !skill_id) { //Katars (offhand damage only applies to normal attacks, tested on Aegis 10.2)
                temp = pc->checkskill(sd,TF_DOUBLE);
                wd.damage2 = wd.damage * (1 + (temp * 2))/100;

    This part in bold makes it so that damage is increased when using a Katar or when not a skill. 

    In Battle.C there is this area of code around critical hit damage bonuses. I dropped the bold text inside of it and it gave a global double damage bonus to players who are using basic attacks. Interestingly, it does affect Double Attack but not Sacrifice. Theoretically it should be possible to make this into an item bonus or have it be part of a skill as a passive giving x% damage bonus per level.

    if(sd) {

    if (!skill_id)
    ATK_ADDRATE(100);


    #ifndef RENEWAL
                        if (sd->bonus.atk_rate)
                            ATK_ADDRATE(sd->bonus.atk_rate);
    #endif
                        if(flag.cri && sd->bonus.crit_atk_rate)
                            ATK_ADDRATE(sd->bonus.crit_atk_rate);
                        if(flag.cri && sc && sc->data[SC_MTF_CRIDAMAGE])
                            ATK_ADDRATE(25);// temporary it should be 'bonus.crit_atk_rate'
    #ifndef RENEWAL

                        if(sd->status.party_id && (temp=pc->checkskill(sd,TK_POWER)) > 0){
                            if( (i = party->foreachsamemap(party->sub_count, sd, 0)) > 1 ) // exclude the player himself [Inkfish]
                                ATK_ADDRATE(2*temp*i);
                        }
    #endif
                    }
                    break;
                } //End default case
            } //End switch(skill_id)


  2. Wowwee. That's a pretty serious side effect. Imagine at higher ASPD. How would a copy of Sacrifice that scales off ATK instead of HP with a buff timer instead of number of hits do? I could probably attach it to the player with sc_start in itemdb.


  3. Could the bonus to damage scale with the skill level of the buff?

     

    However your gonna lose your weapon sounds and itll just sound like a skill cast and your character swinging its weapon...not sure if i can delete the text bubble either

    Can you explain this a little more? Do you mean what when the skill for the buff it cast weapon sounds won't work properly for the duration of it and the text will be floating there?


  4. I'm using Happy's script here: 

     The script is great but the only problem is that it doesn't record deaths. I'd like it to display Kills and deaths but I have no idea how to do it. Can someone help me please?


  5. Does anyone know if this is possible? I want to make it so that FAW Silver Snipers and Magic Decoys will target the same thing as their master. Preferably in the form of the master using a skill say, Provoke or another skill, on the target and the summons will make that their new target. The closest things I can think of are Homuns and those elemental summons Sorcers get where the master can give them a target but that isn't done through a skill.


  6. Level 11 Kyrie and higher is possible with a certain build on my server. However, I wait to make it so that if a player casts Assumptio on a player that has Kyrie that is less than level 11, it will dispel it. I have the opposite working where if Kyrie level is less than level 11 it will cancel Assumptio. Getting the status level and canceling it is is my problem however.

     

    I tried this in status.c

     

    case SC_ASSUMPTIO:
                if (sc->data[sC_KYRIE] && sc->data[sC_KYRIE]->val1 < 11)
                status_change_end(bl, SC_KYRIE, INVALID_TIMER);
                break;

     

    Also tried this in skill.c:

     

    case HP_ASSUMPTIO:
                if( sd && dstmd )
                    clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
                else
                    clif->skill_nodamage(src,bl,skill_id,skill_lv,
                        sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));
                if( tsc && tsc->data[sC_KYRIE] && tsc->data[sC_KYRIE]->val1 < 11 )
            {
                status_change_end(bl, SC_KYRIE, INVALID_TIMER);
                
            }
     
                break;
     
    I've tried changing the val1 from 1-4 and the 11 to various numbers as well as reversing the > and <. but no luck getting what I want.

     

    Code for canceling Assumptio for reference:

     

    case PR_KYRIE:
            //case SL_KAAHI:
            case MER_KYRIE:
                clif->skill_nodamage(bl, bl, skill_id, -1,
                    sc_start(src, bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv)));
                if( skill_lv < 11 )
            {
                status_change_end(bl, SC_ASSUMPTIO, INVALID_TIMER);
                
            }
                break;

  7. Hello. I am trying to modify Eske and Eska. Eske will increase atk/matk by 5% per skill level and Eska does the opposite. The problem I'm having though is that the changes don't take effect until the target is refreshed. What I mean by that is when I use Eska for example, nothing happens. However, If i unequip an item or use another status or do something that tells the server to update the target it will start working. I've even tried copying another similar status line for line but putting SC_SKA in it's place and it doesn't help. The statuses I'm trying to copy work just fine though. Is there any way to fix that?

     

    EDIT: NEVERMIND. I finally got it. I'm so happy. This has been stumping me for a long time.

     

    set_sc( SL_SKA               , SC_SKA             , SI_BLANK           , SCB_BATK|SCB_WATK|SCB_MATK );

     

    This part in bold is what was getting me. I guess I had to tell the status what to look for or something. Now that I added those SCB flags it works fine!


  8. I made some progress.

     

    In status.c change:

     

    wa->atk2 = status->dbs->refine_info[wlv].bonus[r-1] / 100;

     

    to

     

    wa->atk = status->dbs->refine_info[wlv].bonus[r-1] / 100;

     

    Only problem now is I would want to keep it displaying the + ATK instead of just adding to normal ATK.


  9. Hello. I am currently running a high rate server and I'm wondering how I can change the weapon attack formula so that refine atk is counted as weapon atk. I'm wondering because refines are useless due to the way their damage addition is calculated. Even if I make the refiner give ridiculous amounts of refine bonuses (600 + 500 ATK in screen) the damage addition of refines is still rather negligible when using skills.


  10. Does anyone know of any strong Ragnarok anti cheats that aren't dead? I'm using Hashield right now but it seems to have been completely abandoned. Harmony doesn't seem like it's being updated anymore and I've heard its dead. Adelays is ran by the same developer as Hashield so it is inherently dead( and isn't a general anti cheat anyways). UCP has been abandoned. I can't find any real information about Gepard either.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.