viewing paste topic/11193- complete_healer | Athena

Posted on the | Last edited on
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
//===== Description: =========================================
//= Basic healer script.
//===== Additional Comments: =================================
//= 1.0 Initial script.
//= 1.1 Aligned coordinates with @go.
//= 1.2 Fix variables and character stuck at healing
//============================================================
 
-   script  Healer  FAKE_NPC,{
    if ( HEALCD + 60 > gettimetick(2) ) {
        dispbottom "You need wait for " + ( HEALCD + 60 - gettimetick(2) ) + " seconds.";
        end;
    }
 
//  disable negative buffs ... I out from RO scene for about 3 years, so this is my only known negative buffs
    sc_end SC_STONE;
    sc_end SC_FREEZE;
    sc_end SC_STUN;
    sc_end SC_SLEEP;
    sc_end SC_POISON;
    sc_end SC_CURSE;
    sc_end SC_SILENCE;
    sc_end SC_CONFUSION;
    sc_end SC_BLIND;
    sc_end SC_BLOODING;
    sc_end SC_DPOISON;
    sc_end SC_FEAR;
    sc_end SC_COLD;
    sc_end SC_BURNING;
    sc_end SC_DEEP_SLEEP;
    sc_end SC_DEC_AGI;
    sc_end SC_BROKENARMOR;
    sc_end SC_BROKENWEAPON;
    sc_end SC_NOEQUIPWEAPON;
    sc_end SC_NOEQUIPSHIELD;
    sc_end SC_NOEQUIPARMOR;
    sc_end SC_NOEQUIPHELM;
    sc_end SC__STRIPACCESSARY;
    sc_end SC_PROPERTYUNDEAD;
    sc_end SC_ORCISH;
    sc_end SC_BERSERK;
    sc_end SC_SKE;
    sc_end SC_SWOO;
    sc_end SC_SKA;
 
//  give players buff ... don't give too much otherwise player wanna spam
    specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,240000,10;
    specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10;
 
//  give player's soul link
    if ( .@spirit = .spirit[BaseJob] );
    else if ( Upper & 1 && BaseLevel < 70 )
        .@spirit = 494;
    if ( .@spirit ) {
        sc_start4 SC_SOULLINK, 240000, 1, .@spirit,0,0;
        skilleffect .@spirit, 1;
    }
 
//  automatically turn all oridecon and elunium stone into pure stone to reduce player's weight
    .@ori = countitem(Oridecon_Stone);
    if ( .@ori >= 5 ) {
        delitem Oridecon_Stone, .@ori / 5 * 5;
        getitem Oridecon, .@ori / 5;
        message strcharinfo(0), "Refined "+ ( .@ori / 5 * 5 ) +" Oridecon Stones, got "+ ( .@ori / 5 ) +" Oridecons.";
    }
    .@elu = countitem(Elunium_Stone);
    if ( .@elu >= 5 ) {
        delitem Elunium_Stone, .@elu / 5 * 5;
        getitem Elunium, .@elu / 5;
        message strcharinfo(0), "Refined "+ ( .@elu / 5 * 5 ) +" Elunium Stones, got "+ ( .@elu / 5 ) +" Eluniums.";
    }
 
//  repair all player's broken eqiupments
    repairall;
 
//  the one you want ... identify all player's equipments
    getinventorylist;
    for( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
        if ( @inventorylist_identify[.@i] == 1 )
            continue;
        else if ( getskilllv(MC_IDENTIFY) == 1 && Sp >= 10 )
            heal 0,0; // lol... this is supposed to reduce their SP by 10, whatever
        else if ( countitem(Spectacles) )
            delitem Spectacles,1;
        else if ( getskilllv(RG_COMPULSION) && Zeny >= ( 100 - ( 5 + 4 * getskilllv(RG_COMPULSION) ) )* 2/5 )
            Zeny -= ( 100 - ( 5 + 4 * getskilllv(RG_COMPULSION) ) )* 2/5;
        else if ( getskilllv(MC_DISCOUNT) && Zeny >= ( 100 - ( 5 + 2 * getskilllv(MC_DISCOUNT) ) )* 2/5 )
            Zeny -= ( 100 - ( 5 + 2 * getskilllv(MC_DISCOUNT) ) )* 2/5;
        else if ( Zeny >= 40 )
            Zeny -= 40;
        else
            break;
        delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;
        getitem @inventorylist_id[.@i],1;
        .@icount++;
    }
    if ( .@icount )
        message strcharinfo(0), "Identified "+ .@icount +" Items.";
 
//  and last, give players heal
    percentheal 100,100;
    skilleffect AL_HEAL, MaxHp;
    skilleffect MG_SRECOVERY, MaxSp;
 
    emotion e_lv;
    HEALCD = gettimetick(2);
    end;
 
OnInit:
    .spirit[Job_Alchemist] = 445;
    .spirit[Job_Monk] = 447;
    .spirit[Job_Star_Gladiator] = 448;
    .spirit[Job_Sage] = 449;
    .spirit[Job_Crusader] = 450;
    .spirit[Job_SuperNovice] = 451;
    .spirit[Job_Knight] = 452;
    .spirit[Job_Wizard] = 453;
    .spirit[Job_Priest] = 454;
    .spirit[Job_Bard] = .spirit[Job_Dancer] = 455;
    .spirit[Job_Rogue] = 456;
    .spirit[Job_Assassin] = 457;
    .spirit[Job_Blacksmith] = 458;
    .spirit[Job_Hunter] = 460;
    .spirit[Job_Soul_Linker] = 461;
}
 
// Duplicates
//============================================================
alberta,25,240,6    duplicate(Healer)   Healer#alb  4_F_ACOLYTE,5,5
prontera,155,185,5  duplicate(Healer)   Healer#prt  1_F_MARIA,5,5
Viewed 1513 times, submitted by AnnieRuru.