Jump to content

crystalro

Members
  • Posts

    42
  • Joined

  • Last visited

Posts posted by crystalro

  1. Please help me this script ,  I wonder why other server works and load on my server become other thing....
    this script refiner is refine 1by1 style.... But i wear full eq ady.... It only appear Shoes , Upper and Garment.. :( 
    Here this picture and script 

    f5081145c314b7de4cc2951e6782ae9a.png
     

    // function    script    ValueConvert    {
        // set .@num, atoi(""+getarg(0));
        // if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
        // set .@l, getstrlen(""+.@num);
        // for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
            // set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
                // if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
        // }
        // return .@num$;
    // }
    
    
    quiz_02,334,78,5    script    Refiner    63,{
    
    for( set .@i,1; .@i <= 6; set .@i,.@i + 1 )
        if( getequipisequiped( .@i ) ){
            if( getequipisenableref( .@i ) && getequiprefinerycnt( .@i ) <= .max_refine ){
                set .@eq_count,.@eq_count + 1;
                set .@menu$,.@menu$ + " +"+getequiprefinerycnt( .@i )+" "+getequipname( .@i ) +":";
            }else{
                set .@menu$,.@menu$ +":";
            }
        }else{
            set .@menu$,.@menu$ +":";
        }
    if( !.@eq_count ){
        mes "You dont have any equipment available for refine.";
        close;
    }
    
    set .@equipment,select( .@menu$ );
    set .@temp_equip,getequipid( .@equipment );
    
    do{
        if( getequipid( .@equipment ) != .@temp_equip ){
            mes "Dont change to other equipments.";
            close;
        }
        
        set .@eq_level,getequipweaponlv( .@equipment );
        if( .@eq_level == 1 ) set .@free_refine,7;
        else if( .@eq_level == 2 ) set .@free_refine,6;
        else if( .@eq_level == 3 ) set .@free_refine,5;
        else set .@free_refine,4;
        
        set .@refine_count,getequiprefinerycnt( .@equipment );
        
        if( .zeny_cost ){
            mes "Every Refine : ^0055FF"+callfunc( "ValueConvert",.zeny_cost )+" Zeny^000000";
            mes "De-refine : ^FF0000Free^000000";
            mes " ";
            mes "If current refine below +^FF0000"+.@free_refine+" : ^FF0000Free^000000";
            next;
        }
    
        set .@refine,select(( .@refine_count >= .max_refine )?"":"Refine to ^0055FF+"+( .@refine_count + 1 )+" "+getequipname( .@equipment )+"^000000",
                            ( .@refine_count < 1 )?"":"De-refine -1" );  // temporary disabled de-refine
        
        if( Zeny < .zeny_cost && .@refine == 1 ){
            message strcharinfo(0),"Dont have enough zeny.";
            break;
        }
        
        if( .@refine_count < 1 && .@refine == 2 ){
            mes "You cant de-refine this anymore.";
            break;
        }else if( .@refine_count >= .max_refine && .@refine == 1 ){
            mes "You cant refine this anymore.";
        }else{
            if( .@refine == 1 && .@refine_count >= .@free_refine )
                set Zeny,Zeny - .zeny_cost;
            switch( .@refine ){
                Case 1: successrefitem .@equipment; break;
                Case 2: downrefitem .@equipment; break;
                default: break;
            }
        }
        
        if( getequiprefinerycnt( .@equipment ) >= .max_refine ){
            mes "Max Refine Reach...";
            break;
        }
    }while( 1 );
    close;
    
    OnInit:
    OnWhisperGlobal:
    set .zeny_cost,0;
    set .max_refine,10;
    
    waitingroom "  Refiner",0;
    end;
    }

     

     

    @Azura Skyy Not works :( Not alike the one i'm looking..... 

     

  2. Hi, Anyone can share me a refiner +10 script? or help me to script?
    I need a refiner for FREE OF CHARGES, multiple refine 1 by 1, do not refine accessory and MID & LOWER....... Auto read & follow itemdb which can refine which cannot refine... and 2nd option together with this NPC
    Can multiple derefine 1 by 1
    Thank you!
     

  3. @gugusjungs Please help me this script too bro. Thank you! I wonder why other server works and load on my server become other thing....
    this script refiner is refine 1by1 style.... But i wear full eq ady.... It only appear Shoes , Upper and Garment..  Disabled accessory & mid low 
    f5081145c314b7de4cc2951e6782ae9a.png

    // function    script    ValueConvert    {
        // set .@num, atoi(""+getarg(0));
        // if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
        // set .@l, getstrlen(""+.@num);
        // for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
            // set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
                // if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
        // }
        // return .@num$;
    // }
    
    
    quiz_02,334,78,5    script    Refiner    63,{
    
    for( set .@i,1; .@i <= 6; set .@i,.@i + 1 )
        if( getequipisequiped( .@i ) ){
            if( getequipisenableref( .@i ) && getequiprefinerycnt( .@i ) <= .max_refine ){
                set .@eq_count,.@eq_count + 1;
                set .@menu$,.@menu$ + " +"+getequiprefinerycnt( .@i )+" "+getequipname( .@i ) +":";
            }else{
                set .@menu$,.@menu$ +":";
            }
        }else{
            set .@menu$,.@menu$ +":";
        }
    if( !.@eq_count ){
        mes "You dont have any equipment available for refine.";
        close;
    }
    
    set .@equipment,select( .@menu$ );
    set .@temp_equip,getequipid( .@equipment );
    
    do{
        if( getequipid( .@equipment ) != .@temp_equip ){
            mes "Dont change to other equipments.";
            close;
        }
        
        set .@eq_level,getequipweaponlv( .@equipment );
        if( .@eq_level == 1 ) set .@free_refine,7;
        else if( .@eq_level == 2 ) set .@free_refine,6;
        else if( .@eq_level == 3 ) set .@free_refine,5;
        else set .@free_refine,4;
        
        set .@refine_count,getequiprefinerycnt( .@equipment );
        
        if( .zeny_cost ){
            mes "Every Refine : ^0055FF"+callfunc( "ValueConvert",.zeny_cost )+" Zeny^000000";
            mes "De-refine : ^FF0000Free^000000";
            mes " ";
            mes "If current refine below +^FF0000"+.@free_refine+" : ^FF0000Free^000000";
            next;
        }
    
        set .@refine,select(( .@refine_count >= .max_refine )?"":"Refine to ^0055FF+"+( .@refine_count + 1 )+" "+getequipname( .@equipment )+"^000000",
                            ( .@refine_count < 1 )?"":"De-refine -1" );  // temporary disabled de-refine
        
        if( Zeny < .zeny_cost && .@refine == 1 ){
            message strcharinfo(0),"Dont have enough zeny.";
            break;
        }
        
        if( .@refine_count < 1 && .@refine == 2 ){
            mes "You cant de-refine this anymore.";
            break;
        }else if( .@refine_count >= .max_refine && .@refine == 1 ){
            mes "You cant refine this anymore.";
        }else{
            if( .@refine == 1 && .@refine_count >= .@free_refine )
                set Zeny,Zeny - .zeny_cost;
            switch( .@refine ){
                Case 1: successrefitem .@equipment; break;
                Case 2: downrefitem .@equipment; break;
                default: break;
            }
        }
        
        if( getequiprefinerycnt( .@equipment ) >= .max_refine ){
            mes "Max Refine Reach...";
            break;
        }
    }while( 1 );
    close;
    
    OnInit:
    OnWhisperGlobal:
    set .zeny_cost,0;
    set .max_refine,10;
    
    waitingroom "  Refiner",0;
    end;
    }

     

  4. 8bc8ddef60ea34b78bea7e1c761810a3.png

    //===== eAthena Script =======================================
    //= All-in-One NPC
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.3
    //===== Description: =========================================
    //= A compilation of commonly-used NPC scripts.
    //== Includes job changer, stylist, refiner, card remover,
    //== coin exchanger, rentals, resetter, platinum skills,
    //== sex changer, identifier, healer, buffer, and repairman.
    //============================================================
    
    prontera,164,174,4    script    ALL IN ONE    531,{
    function Get_Platinum; function Equip_Menu;
    
        if (getarraysize(.OnClick)) {
            if (.OnClick[0]) { specialeffect2 313; percentheal 100,100; }
            if (.OnClick[1]) { specialeffect2 42; sc_start SC_BLESSING,600000,10; specialeffect2 37; sc_start SC_INCREASEAGI,600000,10; }
            if (.OnClick[2] && getbrokenid(1)) { specialeffect2 101; atcommand "@repairall"; } }
        set .@menu$,"";
        for (set .@i,0; .@i < getarraysize(.MainMenu$); set .@i,.@i+1) {
            if (.MenuOption & pow(2,.@i))
                set .@menu$, .@menu$+" ~ "+.MainMenu$[.@i];
            set .@menu$, .@menu$+":"; }
        switch(select(.@menu$)) {
            case 1:
                function Job_Menu; function A_An;
                if (checkfalcon() || checkcart() || checkriding()) {
                    message strcharinfo(0),"Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+" before proceeding.";
                    close; }
                if (.SkillPointCheck && SkillPoint) { message strcharinfo(0),"Please use all your skill points before proceeding."; close; }
                if (Class > 6 && Class < 22) {
                    if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
                        set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
                        message strcharinfo(0),"You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to rebirth.";
                        close; }
                    message strcharinfo(0),"Change into a High Novice?";
                    if(select(" ~ ^0055FFRebirth^000000: ~ ^777777Cancel^000000")==2) close;
                    jobchange 4001; resetlvl(1); specialeffect2 432;
                    close; }
                set .@eac, eaclass();
                set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);
                if (.@eac&EAJL_2)
                    if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) {
                        message strcharinfo(0),"No more jobs are available."; close; }
                if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
                    if( Class == 0 && JobLevel < .JobReq[0] ) Job_Menu(1,4023);
                    else if (JobLevel < .JobReq[0]) message strcharinfo(0),"A job level of "+.JobReq[0]+" is required to change into the 1st Class.";
                    else switch(Class) {
                        case 0: Job_Menu(11,1,2,3,4,5,6,23,4046,24,25,4023);
                        case 4001: Job_Menu(6,4002,4003,4004,4005,4006,4007);
                        case 4023: Job_Menu(7,4024,4025,4026,4027,4028,4029,4045);
                        default: message strcharinfo(0),"An error has occurred."; break; }
                    close; }
                if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
                    message strcharinfo(0),"No more jobs are available."; close; }
                if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) { message strcharinfo(0),"A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; close; }
                Job_Menu(2,.@j1,.@j2);
                end;
                function Job_Menu {
                    set .@menu$,"";
                    for(set .@i,1; .@i<=getarg(0); set .@i,.@i+1)
                        set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
                    set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
                    while(1) {
                        set .@i, getarg(select(.@menu$),0);
                        if (!.@i) close;
                        if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
                            message strcharinfo(0),"A base level of "+.SNovice+" is required to turn into a Super "+((.@i==23)?"Novice":"Baby")+"."; }
                        else if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777Go back^000000")==1) {
                            message strcharinfo(0),"Became "+A_An(jobname(.@i))+"!";
                            jobchange .@i; specialeffect2 338;
                            if (.Platinum) Get_Platinum;
                            close; }
                    } end; }
                function Get_Platinum {
                    skill 142,1,0;
                    switch(BaseClass) {
                        case 0: if (Class !=23) skill 143,1,0; break;
                        case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;
                        case 2: skill 157,1,0; break;
                        case 3: skill 147,1,0; skill 148,1,0; break;
                        case 4: skill 156,1,0; break;
                        case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;
                        case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;
                        default: break; }
                    switch(roclass(eaclass()&EAJ_UPPERMASK)) {
                        case 7: skill 1001,1,0; break;
                        case 8: skill 1014,1,0; break;
                        case 9: skill 1006,1,0; break;
                        case 10: skill 1012,1,0; skill 1013,1,0; break;
                        case 11: skill 1009,1,0; break;
                        case 12: skill 1003,1,0; skill 1004,1,0; break;
                        case 14: skill 1002,1,0; break;
                        case 15: skill 1015,1,0; skill 1016,1,0; break;
                        case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;
                        case 17: skill 1005,1,0; break;
                        case 18: skill 238,1,0; break;
                        case 19: skill 1010,1,0; break;
                        case 20: skill 1011,1,0; break;
                        default: break; }
                    return; }
                function A_An {
                    setarray .@A$[0],"a","e","i","o","u";
                    set .@B$, "_"+getarg(0);
                    for(set .@i,0; .@i<5; set .@i,.@i+1)
                        if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
                    return "a "+getarg(0); }
            case 2:
                setarray .@Look[1],7,1,6;
                set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");
                set .@Revert, getlook(.@Look[.@s]); set .@Style,1;
                while(1) {
                    setlook .@Look[.@s], .@Style;
                    message strcharinfo(0),"This is style #"+.@Style+".";
                    set .@menu$, " ~ Next (^0055FF"+((.@Style!=.Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";
                    switch(select(.@menu$)) {
                        case 1: set .@Style, ((.@Style!=.Styles[.@s])?.@Style+1:1); break;
                        case 2: set .@Style, ((.@Style!=1)?.@Style-1:.Styles[.@s]); break;
                        case 3: message strcharinfo(0),"Choose a style between 1 - "+.Styles[.@s]+".";
                            input .@Style,0,.Styles[.@s];
                            if (!.@Style) set .@Style, rand(1,.Styles[.@s]);
                            break;
                        case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; }
                } end;
            case 3:
                function Refine_Item;
                if (.EnrichedRefine)
                    if (select(" ~ Normal Refiner: ~ Enriched Refiner")==2) {
                        Equip_Menu(1);
                        setarray .@Materials[0],7619,7620,7620,7620,7620;
                        setarray .@Safe[0],4,7,6,5,4;
                        set .@WLv, getequipweaponlv(@i);
                        message strcharinfo(0),"Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);
                        if(select(" ~ Refine item (2 * ^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ ^777777Cancel^000000")==2) close;
                        Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv], 1);
                        close; }
                Equip_Menu(1);
                setarray .@Materials[0],985,1010,1011,984,984;
                setarray .@Safe[0],4,7,6,5,4;
                set .@WLv, getequipweaponlv(@i);
                set .@SafeCount, .@Safe[.@WLv]-getequiprefinerycnt(@i);
                message strcharinfo(0),"Item: +"+getequiprefinerycnt(@i)+" "+getequipname(@i);
                switch(select(" ~ Refine once (^0055FF"+getequippercentrefinery(@i)+"^000000% success): ~ Refine multiple times (up to "+(10-getequiprefinerycnt(@i))+"): ~ Refine to safe limit ("+((.@SafeCount>0)?.@SafeCount+" refines":"^777777disabled^000000")+"): ~ ^777777Cancel^000000")) {
                    case 1: Refine_Item(1, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]); close;
                    case 2:
                        input .@Refines;
                        if (.@Refines+getequiprefinerycnt(@i) > 10 || .@Refines < 1) message strcharinfo(0),"Invalid number ("+.@Refines+").";
                        else Refine_Item(.@Refines, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);
                        close;
                    case 3:
                        if (.@SafeCount < 1) message strcharinfo(0),"The item has already reached the safe limit.";
                        else Refine_Item(.@SafeCount, .@Materials[.@WLv], .RP[.@WLv], .@Safe[.@WLv]);
                        close;  
                    case 4: close; }
                function Equip_Menu {
                    setarray .@pos$[1],"Upper Headgear","Armor","Left hand","Right hand","Garment","Footgear","Left Accessory","Right Accessory","Mid Headgear","Lower Headgear";
                    set .@menu$,"";
                    for (set .@i,1; .@i <= 10; set .@i,.@i+1) {
                        if (getequipisequiped(.@i))
                            set .@menu$, .@menu$+.@pos$[.@i]+" [^0055FF"+getequipname(.@i)+"^000000]";
                        set .@menu$, .@menu$+":"; }
                    set @i, select(.@menu$);
                    if (!getequipisequiped(@i)) { message strcharinfo(0),"Nothing is equipped there!"; close; }
                    if (getarg(0)) {
                        if (!getequipisenableref(@i)) { message strcharinfo(0),getequipname(@i)+" cannot be refined."; close; }
                        if (getequiprefinerycnt(@i) >= 10 ) { message strcharinfo(0),"+"+getequiprefinerycnt(@i)+" "+getequipname(@i)+" cannot be refined any further."; close; } }
                    return; }
                function Refine_Item {
                    message strcharinfo(0),"I'll need "+getarg(0)+"x "+getitemname(getarg(1))+" and "+getarg(0)*getarg(2)+" Zeny.";
                    if (countitem(getarg(1)) < getarg(0) || Zeny < getarg(0)*getarg(2)) {
                        sleep2 500; message strcharinfo(0),"Come back when you have the required materials."; close; }
                    if (getequiprefinerycnt(@i)+getarg(0) > getarg(3)) {
                        sleep2 500; message strcharinfo(0),"The item will be refined above the safe limit. It may break."; }
                    sleep2 500;
                    if(select(" ~ ^0055FFContinue^000000: ~ ^777777Cancel^000000")==2) close;
                    set .@j, getarg(0);
                    while(.@j) {
                        delitem getarg(1), 1;
                        set Zeny, Zeny-getarg(2);
                        if (getarg(4,0)) {
                            if (getequippercentrefinery(@i) <= rand(100) && getequippercentrefinery(@i) <= rand(100)) {
                                message strcharinfo(0),getequipname(@i)+" broke while refining."; failedrefitem @i; close; } }
                        else {
                            if (getequippercentrefinery(@i) <= rand(100)) {
                                message strcharinfo(0),getequipname(@i)+" broke while refining."; failedrefitem @i; close; } }
                        successrefitem @i;
                        set .@j, .@j-1; }
                    message strcharinfo(0),"All done!";
                    close; }
            case 4:
                if (.Prices[0]) message strcharinfo(0),"It costs "+.Prices[0]+" Zeny to remove cards.";
                Equip_Menu(0);
                if (Zeny < .Prices[0]) { message strcharinfo(0),"You don't have enough Zeny."; close; }
                set .@j,getequipcardcnt(@i);
                if (!.@j) { message strcharinfo(0),"There are no cards compounded to "+getequipname(@i)+"."; close; }
                if (!checkweight(4001,(.@j+1))) { message strcharinfo(0),"You're carrying too many items!"; close; }
                message strcharinfo(0),"Item: "+getequipname(@i);
                if (select(" ~ Remove "+.@j+" card(s): ~ ^777777Cancel^000000")==2) close;
                set Zeny, Zeny-.Prices[0];
                successremovecards @i;
                message strcharinfo(0),"Cards successfully removed!";
                close;
            case 5:
                message strcharinfo(0),"Coins are worth "+.Coin[1]+" Zeny each.";
                switch(select(" ~ Zeny to coins: ~ Coins to Zeny: ~ Close")) {
                    case 1:
                        message strcharinfo(0),"How many coins do you want?";
                        input .@coins,0,(1000000000/.Coin[1]);
                        if (.@coins*.Coin[1] > Zeny) { message strcharinfo(0),"You don't have enough Zeny."; close; }
                        if (!checkweight(.Coin[0],.@coins)) { message strcharinfo(0),"You don't have enough inventory space."; close; }
                        set Zeny, Zeny-(.Coin[1]*.@coins);
                        getitem .Coin[0], .@coins;
                        message strcharinfo(0),"Purchased "+.@coins+" coins.";
                        close;
                    case 2:
                        message strcharinfo(0),"How many coins do you want to trade in?";
                        input .@coins,0,(1000000000/.Coin[1]);
                        if (countitem(.Coin[0]) < .@coins) { message strcharinfo(0),"You don't have that many coins!"; close; }
                        if ((Zeny+(.Coin[1]*.@coins)) > 1000000000) { message strcharinfo(0),"You have too much Zeny!"; close; }
                        delitem .Coin[0], .@coins;
                        set Zeny, Zeny+(.Coin[1]*.@coins);
                        message strcharinfo(0),"Exchanged "+.@coins+" coins.";
                        close;
                    case 3:
                        close; }
            case 6:
                if (.Prices[2]) message strcharinfo(0),"It costs "+.Prices[2]+" Zeny to rent.";
                set .@i, select(" ~ Cart: ~ Falcon: ~ Peco");
                if (Zeny < .Prices[2]) { message strcharinfo(0),"You don't have enough Zeny."; close; }
                if (.@i==1 && !checkcart() && getskilllv(39)) setcart;
                else if (.@i==2 && !checkfalcon() && getskilllv(127)) setfalcon;
                else if (.@i==3 && !checkriding() && getskilllv(63)) setriding;
                else { message strcharinfo(0),"You do not meet skill the requirements to rent."; close; }
                set Zeny, Zeny-.Prices[2];
                close;
            case 7:
                if (.Prices[1]) message strcharinfo(0),"It costs "+.Prices[1]+" Zeny to reset stats or skills.";
                set .@i, select(" ~ Stat reset: ~ Skill reset: ~ Cancel");
                if (.@i==3) close;
                if (Zeny < .Prices[1]) { message strcharinfo(0),"You don't have enough Zeny."; close; }
                set Zeny, Zeny-.Prices[1];
                if (.@i==1) ResetStatus;
                else ResetSkill;
                message strcharinfo(0),((.@i==1)?"Stats":"Skills")+" reset!";
                close;
            case 8:
                Get_Platinum;
                specialeffect2 441;
                message strcharinfo(0),"Platinum skills received!";
                close;
            case 9:
                set .@Var$, ".SexChange"+((Sex)?"F":"M");
                if (getarraysize(getd(.@Var$))) {
                    message strcharinfo(0),"To turn into a "+((Sex)?"female":"male")+" you need the following items:";
                    sleep2 1000;
                    for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2) {
                        message strcharinfo(0),getd(.@Var$+"["+(.@i+1)+"]")+"x "+getitemname(getd(.@Var$+"["+.@i+"]"));
                        if (countitem(getd(.@Var$+"["+.@i+"]")) < getd(.@Var$+"["+(.@i+1)+"]")) set .@nreq,1;
                        sleep2 500; }
                    if (.@nreq) close; }
                if(select(" ~ Change into a "+((Sex)?"female":"male")+": ~ Cancel")==2) close;
                if (getarraysize(getd(.@Var$)))
                    for(set .@i,0; .@i<getarraysize(getd(.@Var$)); set .@i,.@i+2)
                        delitem getd(.@Var$+"["+.@i+"]"), getd(.@Var$+"["+(.@i+1)+"]");
                changesex;
                end;
            case 10:
                setarray .@Total[0],0,0;
                getinventorylist;
                for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) {
                    if (@inventorylist_identify[.@i]) continue;
                    if (Zeny < .Prices[3]) {
                        dispbottom "It costs "+.Prices[3]+" to identify an item."; break; }
                    set Zeny, Zeny-.Prices[3];
                    delitem2 @inventorylist_id[.@i],1,0,0,0,0,0,0,0;
                    getitem @inventorylist_id[.@i],1;
                    setarray .@Total[0], .@Total[0]+1, .@Total[1]+.Prices[3]; }
                if (!.@Total[0]) { message strcharinfo(0),"No items identified."; close; }
                specialeffect2 154;
                message strcharinfo(0),"Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+.@Total[1]+" Zeny":"")+".";
                close;
        }
    OnInit:
           waitingroom "All in 1 NPC",0;
    // --------------------- Config ---------------------
        setarray .MainMenu$[0],    // Set menu options!
            "Change Jobs",        // [1]
            "Stylist",        // [2]
            "Refiner",        // [4]
            "Remove Cards",        // [8]
            "Exchange Coins",    // [16]
            "Rentals",        // [32]
            "Reset Stats/Skills",    // [64]
            "Platinum Skills",    // [128]
            "Change Sex",        // [256]
            "Identify All";        // [512]
    
        set .MenuOption,1|8|32|64|128|512;
    
        setarray .OnClick[0],0;        // When clicked: heal [0], buff [1], repair [2] (1: yes / 0: no)
        setarray .Styles[1],553,37,250;        // Maximum dye, hair style, and hair color
        setarray .Coin[0],674,100000000;        // Coin item ID, coin price
        setarray .Prices[0],50000,10000,0,100;    // Zeny to remove cards [0], reset [1], rent [2], identify [3]
    
        setarray .Rebirth[0],99,50;    // Minimum base level, job level to rebirth
        setarray .JobReq[0],10,40;    // Minimum job level to turn into 1st class, 2nd class
        set .SNovice,45;        // Minimum base level to turn into Super Novice
        set .SkillPointCheck,0;        // Force player to use up all skill points? (1: yes / 0: no)
        set .Platinum,1;        // Get platinum skills automatically? (1: yes / 0: no)
    
        set .EnrichedRefine,1;            // Allow enriched refiner option? (1: yes / 0: no)
        setarray .RP[0],2000,50,200,5000,20000;    // Zeny for armor, lv1, lv2, lv3, lv4 refines
    
        setarray .SexChangeF[0],7539,100;    // Items to turn into Female (ID,Count)
        setarray .SexChangeM[0],7539,100;    // Items to turn into Male (ID,Count)
    
    // --------------------------------------------------
        end;
    }

     

  5. Hello, I want to add Costume Garment, I already edited, spriterobeid & spriterobename in luafiles, I also edited in iteminfo.lub because i'm using 2015 client. But i wonder why i wear my costume items in garment it's not appear, even i had fill correct the view ID same with spriterobeid and the ClassNum in iteminfo.           Or i left robe folder? Where to i get the korea words with robe folder
    6042d3840a751ef3801f97cf9d6366fb.png696dcd269b4bbea0eac1a45778da21f7.png070efc330dc4cafaeeb307845e841aa4.png

  6. As i know here the list can create own job plus what plus
    But, Anyone can you help me? I tried to plus but still not works :( I want Taekwon (2^21): 0x00200000  Soul Linker (2^23): 0x00800000 Gunslinger (2^24): 0x01000000 Ninja (2^25): 0x02000000

    I plus together the answer is   0x03800000....... But still not works :( I wonder why.....

    (S.) Novice         (2^00): 0x00000001
    Swordman            (2^01): 0x00000002
    Mage                (2^02): 0x00000004
    Archer              (2^03): 0x00000008
    Acolyte             (2^04): 0x00000010
    Merchant            (2^05): 0x00000020
    Thief               (2^06): 0x00000040
    Knight              (2^07): 0x00000080
    Priest              (2^08): 0x00000100
    Wizard              (2^09): 0x00000200
    Blacksmith          (2^10): 0x00000400
    Hunter              (2^11): 0x00000800
    Assassin            (2^12): 0x00001000
    Unused              (2^13): 0x00002000
    Crusader            (2^14): 0x00004000
    Monk                (2^15): 0x00008000
    Sage                (2^16): 0x00010000
    Rogue               (2^17): 0x00020000
    Alchemist           (2^18): 0x00040000
    Bard/Dancer         (2^19): 0x00080000
    Unused              (2^20): 0x00100000
    Taekwon             (2^21): 0x00200000
    StarGladiator       (2^22): 0x00400000
    Soul Linker         (2^23): 0x00800000
    Gunslinger          (2^24): 0x01000000
    Ninja               (2^25): 0x02000000
    Gangsi              (2^26): 0x04000000
    Death Knight        (2^27): 0x08000000
    Dark Collector      (2^28): 0x10000000
    Kagerou/Oboro       (2^29): 0x20000000
    Rebellion           (2^30): 0x40000000
    Some other commonly used values:
    All Classes               : 0xFFFFFFFF
    Every Job Except Novice   : 0xFFFFFFFE
  7. Anyone can help me?  except 7606 and 7420 reward fixed, i want add on  Random item, but i don't know should how to add?  getitem callfunc( "F_Rand",  ???
    i want add itemcode is 30700,30701,30702,30703,30704,30705,30706,30707,30708,30709,30710,30711,30712,30713 
    Thanks........ 


     

    guild_vs5,50,50,5    script    Stage Game    614,{
        // Monster ID / Amount Initiating ( Check db/Mob_db.txt || db/Mob_db2.txt )
        setarray .Stage[0],
                    1315,40,            // Stage 1 + Amount
                    1830,30,            // Stage 2 + Amount
                    1831,35,            // Stage 3 + Amount
                    1710,30,            // Stage 4 + Amount
                    1711,30,            // etc......
                    1833,30,            // 
                    1832,1;            // Final Stage ( Max. ~64 Rounds )
    
        // Reward ID / Amount Initiating ( Check db/Item_db.txt || db/Item_db2.txt )                        
        setarray .Reward[0],
                    7606,100,                // Reward 1 + Amount
                    7420,500;                // Last Reward 1 ( Max. ~64 Items )
                
        // MapFlags Initiating ( Check db/Cont.txt )        
        setarray .MapFlags[0],0,1,2,3,4,5,11,13,14,15,22,29,30,31,32,33,34,35,38,41,43,44,47,49;
    
        for( set .@mf,0; .@mf < getarraysize( .MapFlags ); set .@mf,.@mf + 1 )
        {
            setmapflag strcharinfo(3),.MapFlags[.@mf];
        }    
        if( mobcount( strcharinfo(3),"all" ) > 0 || .Level > 0)
        {
            dispbottom "Just Kill All the Monster to Win the Game...";
            end;
        }
        set .Level,0;
        announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;
        monster strcharinfo(3),0,0,"[Slave] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnMobKill";
        delwaitingroom;
        waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" )+"] Monster",0;
        end;
    
    OnMobKill:
        delwaitingroom;
        if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" ) == 0 && .Level < ( getarraysize( .Stage ) - 5 ) )
        {
            set .Level,.Level + 2;
            waitingroom "["+((( getarraysize( .Stage )/2 ) - .Level/2) - 1)+"] Rounds to Go.",0;
            for( set .@t,5; .@t > 0; set .@t,.@t - 1 )
            {
                announce "[Level "+( (.Level/2)+1 )+"] in "+.@t+" Seconds",bc_map,0x4EEE94,0,35;
                sleep2 1000;
            }
            announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;
            monster strcharinfo(3),0,0,"[Slave] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnMobKill";
        }
        if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnMobKill" ) == 0 && .Level >= ( getarraysize( .Stage ) - 5 ) )
        {
            set .Level,.Level + 2;
            announce "BOSS Stage",bc_map,0xFF0000,0,90;
            specialeffect 563;
            sleep2 2000;
            for( set .@t,5; .@t > 0; set .@t,.@t - 1 )
            {
                specialeffect 563;
                announce "BOSS STAGE in "+.@t+" Seconds",bc_map,0xFF0000,0,60;
                sleep2 1000;
            }
            announce "[Level "+( (.Level/2)+1 )+"] : [ "+.Stage[.Level+1]+" x "+getmonsterinfo( .Stage[.Level],0)+" ]",bc_all,0x37FDFC;
            monster strcharinfo(3),0,0,"[BOSS] "+getmonsterinfo( .Stage[.Level],0)+"",.Stage[.Level],.Stage[.Level+1],strnpcinfo(0)+"::OnBossKill";
        }
        delwaitingroom;
        waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::On"+( ( .Level-2 ) > ( getarraysize( .Stage ) - 5 ) ? "BossKill":"MobKill") )+"] Monster",0;
        end;
    
    OnBossKill:
        delwaitingroom;
        if( mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill" ) > 0 )
        {
            waitingroom "Left ["+mobcount( strcharinfo(3),strnpcinfo(0)+"::OnBossKill")+"] Monster",0;
            end;
        }else{
            delwaitingroom;
            waitingroom "REWARD TIME",0;
            specialeffect 709;
            announce "Congratulation to Team [ "+getpartyname( getcharid(1) )+" ] who had just finished the Stage Game. ",0;
            getpartymember getcharid(1),1;
            getpartymember getcharid(1),2;
            set .@Location$,strcharinfo(3);
            for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 )
            {
                if ( isloggedin($@partymemberaid[.@i]) )
                {
                    attachrid $@partymemberaid[.@i];
                    if( strcharinfo(3) == .@Location$ )
                    {
                        unittalk getcharid(3),"Yeehaaa !! We Beat ALL the Monster  !!!";
                        unitemote getcharid(3),e_heh;
                        specialeffect2 709;
                        for( set .@a,0; .@a < getarraysize( .Reward ); set .@a,.@a + 2 )
                            getitem .Reward[.@a],.Reward[.@a+1], $@partymemberaid[.@i];
                        dispbottom "Gained those items as Reward for Finishing Stage Game";
                    }
                }
            }
            sleep2 5000;
            mapwarp strcharinfo(3),"prontera",155,180;
            set .Level,0;
            delwaitingroom;
        }
    OnInit:
        waitingroom "Click Me",0;
        end;
    }
    
    
    prontera,162,161,4    script    Stage Game#Register    615,{
        if (agitcheck()){ mes @header$; mes "War of Emperium is ongoing!"; close;}
    
    while(1){
    mes "Hello, i am ^FF0000Stage Game Manager^000000. How can i help you ?";
    mes "Hello, ^FF0000do not AFK in map.or u will be kicked^000000.";
    mes "^0000FFRegistration Status^000000 : "+( getmapusers(.Map$) > 0 ?"^FF0000OFF":"^00FF00ON")+"^000000";
    mes "(^FF0000Only Leader can Register^000000)";
    mes "";
    mes "It is In ^FF0000BETA Test^000000.";
    next;
    switch(select("^00FF00Stage Game Information^000000",
                ( getmapusers(.Map$) > 0 || getcharid(0) != getpartyleader( getcharid(1),2 ) )?"":"^0000FFRegister for Stage Game^000000",
                ( getmapusers(.Map$) < 1 || getgmlevel() < 60 )?"":"^FF0000Reset Stage Game^000000")) {
                
        Case 1:
            mes "^FF0000Stage Game^000000 is a small game that have alot of monster to be kill from round to round.";
            mes "With every increase or round you manage to reach, the monster could be stronger than before.";
            next;
            mes "You could win up some ^0000FFUnique^000000 prize upon you finished the whole ^FF0000Stage Game^000000";
            next;
            mes "In order to ^0000FFRegister^000000 for ^FF0000Stage Game^000000, all your party member must meet the ^0000FFRequirements^000000";
            next;
            mes "[  ^00FF00Requirements^000000  ]";
            mes "^0000FFBase Level^000000 : "+.Level+" Level";
            mes "^0000FFZeny^000000 : "+.Zeny+" Zeny ";
            mes "^0000FFParty Members^000000 : "+.PartyMember+" Members";
            mes "(^FF0000Level / Zeny only Applied on Leader ^000000 )";
            next;
            break;
        Case 2:
        //    if( getgmlevel() < 80 ){
        //    mes "Stage Game is under Debugging Development. Simple Game but Hard ";
        //    close;
        //    }
            getpartymember getcharid(1),1;
            getpartymember getcharid(1),2;
            set @Count,0;
            for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ){
                if ( isloggedin($@partymemberaid[.@i]) ){
                    set @Count,@Count+1;
                    }
                }
            if( @Count < .PartyMember || BaseLevel < .Level || Zeny < .Zeny ){
            mes "[  ^00FF00Requirements^000000  ]";
            mes "^0000FFBase Level^000000 : "+.Level+" Level";
            mes "^0000FFZeny^000000 : "+.Zeny+" Zeny ";
            mes "^0000FFParty Members^000000 : "+.PartyMember+" Members";
            mes "(^FF0000Level / Zeny only Applied on Leader ^000000 )";
            close;
            }else{
            set Zeny, Zeny - .Zeny;
            mes "Your party will now be warped into the Destination to start the Game.";
            dispbottom "Click on the NPC inside to start the game.";
            delwaitingroom "Stage Game";
            close2;
            announce "Team [ "+getpartyname( getcharid(1) )+"] has joined STAGE GAME.",0;
            warpparty .Map$,0,0,getcharid(1);
            killmonster .Map$,"All";
            set getvariableofnpc(.Level,"Stage Game"),0;
            end;
            }
        Case 3:
            mes "The Game has been Reset.";
            killmonster .Map$,"All";
            mapwarp .Map$,"prontera",155,180;
            announce "A GM has RESET the Stage Game, Sorry for the Incovenience.",0;
            set getvariableofnpc(.Level,"Stage Game"),0;
            delwaitingroom "Stage Game";
            next;
            break;
        }
    }
    close;
    
    OnInit:
        waitingroom "Stage Game",0;
    OnWhisperGlobal:
        set .Level,1;
        set .Zeny,0;
        set .PartyMember,1;
        set .Map$,"guild_vs5";
        while(sleep2(1000))
        {
            delwaitingroom;
            waitingroom ( getmapusers(.Map$) > 0 ? "  NOT":"   " )+" Available",0;
        }
        end;
    }
    
    
    //Script by: BrianL
    -    script    IdleKick    -1,{
    OnPCLoginEvent:
    set .interval, 1; // How often to check? (seconds)
    set .max_idle, 180; // Idle time before kicking? (seconds)
    
    getmapxy( @map$, @x, @y, 0 );
    addtimer .interval *1000, strnpcinfo(3)+"::OnCheck";
    end;
    OnCheck:
    getmapxy( .@map$, .@x, .@y, 0 );
    
    if( .@map$ == "guild_vs5" ) {
      if (.@map$==@map$ && .@x==@x && .@y==@y) { // same map,x,y (idle)
       set @idle_seconds, @idle_seconds + .interval;
      } else { // they moved, so reset idle timer
       set @idle_seconds, 0;
      }
      set @map$,.@map$; set @x,.@x; set @y,.@y;
     
      if (@idle_seconds >= .max_idle) {
       dispbottom "Idle characters are not allowed in Stage Game.   Warping to save point...";
       warp "SavePoint",0,0; // warp out
       // atcommand "@kick "+strcharinfo(0); // or kick
      }
    }
    addtimer .interval *1000, strnpcinfo(3)+"::OnCheck";
    end;
    }

     

  8. Hi guys, About this getitem callfunc( "F_Rand" )  random to get items... I has put itemcode above over 100+ should it take effect above 100? Or only between 100.... Because when i try on NPC Sell there's only available for 100 reached.... And this is a script about random get... Please help me, Because there's no appear any errors at putty what limit reached... Thanks, I want to confirm....


    getitem callfunc( "F_Rand", 29997,29998,29999,30000,30001,30002,30003,30004,30005,30006,30007,30008,30009,30010,30011,30012,30013,30014,30015,30016,30017,30018,30019,30020,30021,30022,30023,30024,30025,30026,30027,30028,30029,30030,30031,30032,30033,30034,30035,30036,30037,30038,30039,30040,30041,30042,30043,30044,30045,30046,30047,30048,30049,30050,30051,30052,30053,30054,30055,30056,30057,30058,30059,30060,30061,30062,30063,30064,30065,30066,30067,30068,30069,30070,30071,30072,30073,30074,30075,30076,30077,30078,30079,30080,30081,30082,30083,30084,30085,30086,30087,30088,30089,30090,30091,30092,30093,30094,30095,30096,30097,30098,30099,30100,30101,30102,30103,30104,30105,30106,30107,30108,30109,30110,30111,30112,30113,30114,30115,30116,30117,30118,30119,30120,30121,30122,30123,30124,30125,30126,30127,30128,30129,30130,30131,30132,30133,30134,30135,30136,30137,30138,30139,30140,30141,30142,30143,30144,30145,30146,30147,30148,30149,30150,30151,30152,30153,30154,30155,30156,30157,30158,30159,30160,30161,30162,30163,30164,30165,30166,30167,30168,30169,30170,30171,30172,30173,30174,30175,30176,30177,30178,30179,30180,30181,30182,30183,30184,30185,30186,30187,30188,30189,30190,30191,30192,30193,30194,30195,30196,30197,30198,30199,30200,30201,30202,30203,30204,30205,30206,30207,30208,30209,30210,30211,30212,30213,30214,30215,30216,30217,30218,30219,30220,30221,30222,30223,30224,30225,30226,30227,30228,30229,30230,30231,30232,30233,30234,30235,30237,30238,30239,30240,30241,30242,30243,30244,30245,30246,30247,30248,30249,30250,30251,30252,30253,30254,30255,30256,30257,30258,30259,30260,30261,30262,30263,30264,30265,30266,30267,30268,30269,30270,30271,30272,30273,30274,30275,30276,30277,30278,30279,30280,30281,30282,30283,30284,30285,30286,30287,30288,30289,30290,30291,30292,30293,30294,30295,30296,30297 ), 1;

×
×
  • Create New...