Jump to content

Sir

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Sir

  1. Index: src/map/battle.c
    ===================================================================
    --- src/map/battle.c    (revision 15817)
    +++ src/map/battle.c    (working copy)
    
    @@ -233,10 +233,8 @@
        nullpo_ret(target);
        sc = status_get_sc(target);
    -
    -    if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
    + //devotion patch by Cyrix (rathena) ([email protected])
    +//https://www.facebook.com/ragdb.ragnarok
    +if( sc && sc->data[SC_DEVOTION] && damage > 0 && skill_id != PA_PRESSURE && skill_id != CR_REFLECTSHIELD )
            damage = 0;
    -
        if ( !battle_config.delay_battle_damage || amotion <= 1 ) {
            map_freeblock_lock();
            status_fix_damage(src, target, damage, ddelay); // We have to seperate here between reflect damage and others [icescope]
    @@ -4186,7 +4184,7 @@
            }
            else
                status_change_end(target, SC_DEVOTION, INVALID_TIMER);
    -    }
    +    }    
    
        if (sc && sc->data[SC_AUTOSPELL] && rnd()%100 < sc->data[SC_AUTOSPELL]->val4) {
            int sp = 0;
    Index: src/map/pc.c
    ===================================================================
    --- src/map/pc.c    (revision 15817)
    +++ src/map/pc.c    (working copy)
    @@ -6078,8 +6078,7 @@
        for(k = 0; k < 5; k++)
            if (sd->devotion[k]){
                struct map_session_data *devsd = map_id2sd(sd->devotion[k]);
    -            if (devsd)
    -                status_change_end(&devsd->bl, SC_DEVOTION, INVALID_TIMER);
    + //devotion patch by Cyrix (rathena) ([email protected])
    +//https://www.facebook.com/ragdb.ragnarok
    +            if (devsd) status_change_end(&devsd->bl,SC_DEVOTION,-1);
                sd->devotion[k] = 0;
            }
    
    Index: src/map/status.c
    ===================================================================
    --- src/map/status.c    (revision 15817)
    +++ src/map/status.c    (working copy)
    @@ -1015,31 +1015,43 @@
    //    if (!target->prev && !(flag&2))
    //        return 0; //Cannot damage a bl not on a map, except when "charging" hp/sp
    
    -    sc = status_get_sc(target);
    -    if( hp && battle_config.invincible_nodamage && src && sc && sc->data[SC_INVINCIBLE] && !sc->data[SC_INVINCIBLEOFF] )
    -        hp = 1;
    + //devotion patch by Cyrix (rathena) ([email protected])
    +//https://www.facebook.com/ragdb.ragnarok
    +        sc = status_get_sc(target);
    +    
    
    -    if( hp && !(flag&1) ) {
    +    if( hp && !(flag&(1|8)) ) {
            if( sc ) {
                struct status_change_entry *sce;
    +            if( (sce = sc->data[SC_DEVOTION]) && src && battle_getcurrentskill(src) != PA_PRESSURE )
    +            { // Devotion prevents any of the other ailments from ending.
    +                struct block_list *d_bl = map_id2bl(sce->val1);
    +
    +                if( d_bl && (
    +                    (d_bl->type == BL_MER && ((TBL_MER*)d_bl)->master && ((TBL_MER*)d_bl)->master->bl.id == target->id) ||
    +                    (d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce->val2] == target->id)
    +                    ) && check_distance_bl(target, d_bl, sce->val3) )
    +                {
    +                    clif_damage(d_bl, d_bl, gettick(), 0, 0, hp, 0, 0, 0);
    +                    status_fix_damage(NULL, d_bl, hp, 0);
    +                    return 0;
    +                }
    +
    +                status_change_end(target, SC_DEVOTION, -1);
    +            }
                if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
    -                status_change_end(target, SC_STONE, INVALID_TIMER);
    -            status_change_end(target, SC_FREEZE, INVALID_TIMER);
    -            status_change_end(target, SC_SLEEP, INVALID_TIMER);
    -            status_change_end(target, SC_WINKCHARM, INVALID_TIMER);
    -            status_change_end(target, SC_CONFUSION, INVALID_TIMER);
    -            status_change_end(target, SC_TRICKDEAD, INVALID_TIMER);
    -            status_change_end(target, SC_HIDING, INVALID_TIMER);
    -            status_change_end(target, SC_CLOAKING, INVALID_TIMER);
    -            status_change_end(target, SC_CHASEWALK, INVALID_TIMER);
    -            status_change_end(target, SC_CAMOUFLAGE, INVALID_TIMER);
    -            status_change_end(target, SC__INVISIBILITY, INVALID_TIMER);
    -            status_change_end(target, SC_DEEPSLEEP, INVALID_TIMER);
    +            status_change_end(target,SC_STONE,-1);
    +            status_change_end(target,SC_FREEZE,-1);
    +            status_change_end(target,SC_SLEEP,-1);
    +            status_change_end(target,SC_WINKCHARM,-1);
    +            status_change_end(target,SC_CONFUSION,-1);
    +            status_change_end(target,SC_TRICKDEAD,-1);
    +            status_change_end(target,SC_HIDING,-1);
    +            status_change_end(target,SC_CLOAKING,-1);
    +            status_change_end(target,SC_CHASEWALK,-1);
                if ((sce=sc->data[SC_ENDURE]) && !sce->val4) {
                    //Endure count is only reduced by non-players on non-gvg maps.
                    //val4 signals infinite endure. [Skotlex]
                    if (src && src->type != BL_PC && !map_flag_gvg(target->m) && !map[target->m].flag.battleground && --(sce->val2) < 0)
    -                    status_change_end(target, SC_ENDURE, INVALID_TIMER);
    +                    status_change_end(target, SC_ENDURE, -1);
                }
                if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF) {
                    struct skill_unit_group* sg = skill_id2group(sce->val4);
    @@ -8235,14 +8247,14 @@
                        for( i = 0; i < 5; i++ )
                        {
                            if( sd->devotion[i] && (tsd = map_id2sd(sd->devotion[i])) && tsd->sc.data[type] )
    -                            status_change_end(&tsd->bl, type, INVALID_TIMER);
    +                            status_change_end(&tsd->bl, type, -1);
                        }
                    }
                    else if( bl->type == BL_MER && ((TBL_MER*)bl)->devotion_flag )
                    { // Clear Status from Master
                        tsd = ((TBL_MER*)bl)->master;
                        if( tsd && tsd->sc.data[type] )
    -                        status_change_end(&tsd->bl, type, INVALID_TIMER);
    +                        status_change_end(&tsd->bl, type, -1);
                    }
                }
                break;
    @@ -8258,10 +8270,10 @@
                        clif_devotion(d_bl, NULL);
                    }
    
    -                status_change_end(bl, SC_AUTOGUARD, INVALID_TIMER);
    -                status_change_end(bl, SC_DEFENDER, INVALID_TIMER);
    -                status_change_end(bl, SC_REFLECTSHIELD, INVALID_TIMER);
    -                status_change_end(bl, SC_ENDURE, INVALID_TIMER);
    +                status_change_end(bl,SC_AUTOGUARD,-1);
    +                status_change_end(bl,SC_DEFENDER,-1);
    +                status_change_end(bl,SC_REFLECTSHIELD,-1);
    +                status_change_end(bl,SC_ENDURE,-1);
                }
                break;
    

     

     

    Could you please elaborate on what is happening in this script? I don't know how to read /src/ files. I'm trying to make it so that Instead of immunity to reflect damage, the Paladin will take the damage from reflect.

  2. Meh, i dont think everything related to RO should be open source/available to everyone.

    Why? Simple, lets say your the admin of a server and you personaly made a lot of content for your own server, unique maintown, unique quest maps, unique headgears and what so ever, wouldnt it get you pissed if that stuff end up beeing on other servers out there, while it was only intended for your own?

     

    In the end it all comes down to whether content creators are okay with their themed material being used the same way on another server. Yeah, it would make anyone mad, if their motto isn't to share easily accessible contents and they're a full fledged tripfag beyond reason. Of course they'll be angry, they want to have a one-of-a-kind server with a specified theme created by none other than their own developers. That's what makes variety, in it that no server will ever be 100% the same, despite how much stolen content had been extracted from one server to another. But aren't all private server owners guilty of this crime? Haven't we all stolen what was previously a payment model mmo? Call it the 'grey area' if you will, but lets not forget that forging a private server of your own isn't exactly legal. It's within the realms of what RO emulators were in the past.

    Saying that you would take virtual actions against RO creations taken from you by practically anyone who can get it, while running a server of your own, is like the MPAA vs Open Source, or like a lawsuit between a rapper and reality show redneck over which one of them owns the phrase, "Yuuup". It's borderline hypocrisy.

  3. Since all sources of content creation are made available for extract, authors would call it 'stealing'. But there are tons of ways to make it so that extractors won't have access to grf material. But I'm pretty sure we've all found a way around that by now.

     

    Anyway, if you're going to complain about how they're stealing your sprites on the internet, why not make your own game? I think everything related to RO should be open source. I know we all have to make our buck within a day, but people would still go to sites and pay for these things so they won't have to go the extra mile. So again... why bother complaining about it? You know the drill.

×
×
  • Create New...