Jump to content

GM Winter

Members
  • Posts

    382
  • Joined

  • Last visited

Posts posted by GM Winter

  1. regarding this jobchanger npc why does its not looking for blvl novice level 1 can change job to 1-1 job then to 2-2 jobs can someone check this out

     

    Quote

    //===== rAthena Script =======================================
    //= Job Master
    //===== Description: =========================================
    //= A fully functional job changer.
    //===== Additional Comments: =================================
    //= 1.0 Initial script. [Euphy]
    //= 1.1 Fixed reset on Baby job change.
    //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support.
    //= 1.3 Kagerou/Oboro added.
    //= 1.4 Rebellion added.
    //= 1.5 Added option to disable RebirthClass. [mazvi]
    //= 1.6 Added option to get job related equipment on change. [Braniff]
    //= 1.7 Readability changes. Also added BabyExpanded and BabySummoner classes. [Jey]
    //= 1.8 Added option to disable Baby Novice Only but Baby Class can be Enabled [mazvi]
    //= 1.9 Migrate/Integrate to Global Functions Platinum Skills. [mazvi]
    //= 2.0 Added 4th class [Lemongrass]
    //============================================================

    prontera,163,198,4    script    Job Master    123,{
    function Get_Job_Equip;
    // Checks if the Player has the required level.
    // closes if not, returns if yes
    function    Require_Level    {
        if (BaseLevel < getarg(0) || JobLevel < getarg(1)) {
            [email protected] = getarg(0) - BaseLevel;
            [email protected] = getarg(1) - JobLevel;
            mes "Level requirement:";
            mes ((getarg(0)>1)? 
                "^bb0000"+getarg(0)+"^000000 (^bb0000Base^000000) / ":"")+"^00bb00"+
                getarg(1)+"^000000 (^00bb00Job^000000)";
            mes "You need " +
                (([email protected] > 0) ? "^bb0000"[email protected]+"^000000 more base levels " + 
                    (([email protected] > 0) ? "and " : "") : "") +
                (([email protected] > 0) ? "^00bb00"[email protected]+"^000000 more job levels " : "") +
                "to continue.";
            close;
        }
        return;
    }

    // Checks if the given eac is a baby class
    function Is_Baby    {
        return ((getarg(0, eaclass())&EAJL_BABY)>0);
    }

    // Checks if the player can change to fourth class.
    // Note: This does not include the level checks.
    function    Can_Change_Fourth    {
        // To change to fourth class you need to be:
        // * Transcendent Third Class
        if( !.FourthClass )
            return false; // Fourth job change disabled
        if( (eaclass()&(EAJL_THIRD|EAJL_UPPER)) != (EAJL_THIRD|EAJL_UPPER) )
            return false; // Not Transcendent Third Class
        if( eaclass()&EAJL_FOURTH )
            return false; // Already Fourth Class
        if( roclass(eaclass()|EAJL_FOURTH) < 0 )
            return false; // Job has no Fourth Class
        return true;
    }

    // Checks if the player can change to third class.
    // Note: This does not include the level checks.
    function    Can_Change_Third    {
        // To change to third class you either need to be:
        // * Second Class
        // * Transcendent Second Class
        // * Baby Second Class
        if( !.ThirdClass )
            return false; // Third job change disabled
        if( !(eaclass()&EAJL_2) )
            return false; // Not second Class
        if( eaclass()&EAJL_THIRD )
            return false; // Already Third Class
        if( roclass(eaclass()|EAJL_THIRD) < 0 )
            return false; // Job has no third Class
        if( (eaclass()&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE )
            return false; // Exp. Super Novice equals 3rd Cls, but has it's own case
        if( Is_Baby() && (!.BabyClass || !.BabyThird) )
            return false; // No Baby (Third) change allowed
        return true;
    }

    function    Can_Rebirth    {
        // To rebirth, you need to be:
        // * Second Class
        if( !.RebirthClass )
            return false; // Rebirth disabled
        if( !(eaclass()&EAJL_2) )
            return false; // Not second Class
        if( eaclass()&(EAJL_UPPER|EAJL_THIRD) )
            return false; // Already Rebirthed/ Third Class
        if( roclass(eaclass()|EAJL_UPPER) < 0 )
            return false; // Job has no transcended class
        if( Is_Baby() && !.BabyClass )
            return false; // No Baby changes allowed
        return true;
    }

    // Checks if the given eac is a first class
    function    Is_First_Cls    {
        return (getarg(0) <= EAJ_TAEKWON);
    }

    function    Check_Riding    {
        // Note: Why we should always check for Riding:
        // Mounts are considered as another class, which
        // would make this NPC bigger just to handle with
        // those special cases.
        if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
            mes "Please remove your " +
                ((checkfalcon()) ? "falcon" : "") +
                ((checkcart()) ? "cart" : "") +
                ((checkriding()) ? "Peco" : "") +
                ((ismounting()) ? "mount" : "") +
                " before proceeding.";
            close;
        }
        return;
    }
    function    Check_SkillPoints    {
        if (.SkillPointCheck && SkillPoint) {
            mes "Please use all your skill points before proceeding.";
            close;
        }
        return;
    }

    // addJobOptions is essentially the same like
    // setarray [email protected][getarraysize([email protected])],opt1,opt2,...;
    // It's just easier to read, since we're using it very often
    function    Job_Options    {
        [email protected] = getargcount();
        [email protected]_size = getarraysize(getarg(0));
        for( [email protected] = 1; [email protected] < [email protected]; [email protected]++) {
            setarray getelementofarray(getarg(0), [email protected]_size++),getarg([email protected]);
        }
    }

    // Begin of the NPC
        mes .NPCName$;
        Check_Riding();
        Check_SkillPoints();

        // initialisation
        [email protected] = eaclass();
        [email protected]_possible = Can_Change_Fourth();
        [email protected]_possible = Can_Change_Third();
        [email protected]_possible = Can_Rebirth();
        [email protected]_eac = [email protected]&EAJ_BASEMASK;
        [email protected]_eac = [email protected]&EAJ_UPPERMASK;
        // Note: These are already set in pc.cpp
        // BaseClass = roclass([email protected]&EAJ_BASEMASK) which is the players First Class
        // BaseJob = roclass([email protected]&EAJ_UPPERMASK) which is the players Second Class
        //dispbottom "Debug: eac ("[email protected]+"), third ("[email protected]_possible+"), rebirth("[email protected]_possible+"), BaseClass ("+BaseClass+"), BaseJob ("+BaseJob+")";
            
        // From here on the jobmaster checks the current class
        // and fills the the array `[email protected]_opt` with possible
        // job options for the player.
        
        if( [email protected]_possible ) {
            // Rebirth option (displayed on the top of the menu)
            Require_Level(.Req_Rebirth[0], .Req_Rebirth[1]);
            Job_Options([email protected]_opt, Job_Novice_High);
        }
        if( [email protected]_possible ) {
            // Third Job change (displayed below rebirth)
            Require_Level(.Req_Third[0], .Req_Third[1]);
            Job_Options([email protected]_opt, roclass([email protected]|EAJL_THIRD));
        }
        if( [email protected]_possible ) {
            // Fourth Job change (displayed below rebirth)
            Require_Level(.Req_Fourth[0], .Req_Fourth[1]);
            Job_Options([email protected]_opt, roclass([email protected]|EAJL_FOURTH));
        }
         
        if (.SecondExpanded && 
           ([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE && // is Super Novice
           !(eaclass()&EAJL_THIRD) ) {                     // not already Expanded SN
            // (Baby) Super Novice to Expanded (Baby) Super Novice
               if( !Is_Baby([email protected]) || (.BabyClass && .BabyExpanded) ) {
                // .BabyClass & .BabyExpanded must be enabled if the is a baby
                Require_Level(.Req_Exp_SNOVI[0], .Req_Exp_SNOVI[1]);
                Job_Options([email protected]_opt,roclass([email protected]|EAJL_THIRD)); // Expanded SN is "third" cls
            }
        }
        
        if (.SecondExpanded && 
            (([email protected]&(~EAJL_BABY)) == EAJ_NINJA ||         // is (Baby) Ninja
            ([email protected]&(~EAJL_BABY)) == EAJ_GUNSLINGER)) {    // is (Baby) Gunslinger
            // (Baby) Ninja to (Baby) Kagerou / Oboro
            // (Baby) Gunslinger to (Baby) Rebellion
            if( !Is_Baby([email protected]) || (.BabyClass && .BabyExpanded) ) {
                // .BabyClass & .BabyExpanded must be enabled if the is a baby
                Require_Level(.Req_Exp_NJ_GS[0], .Req_Exp_NJ_GS[1]);
                // Kagerou, Oboro, Rebellion are considered as a 2-1 class
                Job_Options([email protected]_opt, roclass([email protected]|EAJL_2_1));
            }
        }
        
        // Player is Job_Novice, Job_Novice_High or Job_Baby
        if ([email protected]_eac == EAJ_NOVICE && [email protected]_eac != EAJ_SUPER_NOVICE) {
            // MAPID_NOVICE, MAPID_SUPER_NOVICE, MAPID_NOVICE_HIGH, MAPID_BABY
            Require_Level(.Req_First[0], .Req_First[1]);
            switch(Class) {
                case Job_Novice:
                    // First job change
                    Job_Options([email protected]_opt,Job_Swordman,
                        Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief);
                    if( .BabyNovice )
                        Job_Options([email protected]_opt, Job_Baby);
                    break;
                case Job_Novice_High:
                    // Job change after rebirth
                    if( .LastJob && lastJob )
                        Job_Options([email protected]_opt,
                            roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
                    else
                        Job_Options([email protected]_opt, 
                            Job_Swordman_High, Job_Mage_High, Job_Archer_High,
                            Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
                    break;
                case Job_Baby:
                    if( !.BabyClass )
                        break;
                    // First job change as a baby
                    Job_Options([email protected]_opt, Job_Baby_Swordman, Job_Baby_Mage,
                        Job_Baby_Archer,Job_Baby_Acolyte, Job_Baby_Merchant,
                        Job_Baby_Thief);
                    if( .BabyExpanded )
                        Job_Options([email protected]_opt, Job_Super_Baby, Job_Baby_Taekwon,
                            Job_Baby_Gunslinger, Job_Baby_Ninja);
                    if( .BabySummoner )
                        Job_Options([email protected]_opt, Job_Baby_Summoner);
                    break;
                default:
                    mes "An error has occurred.";
                    close;
            }
        } else if( Is_First_Cls([email protected]) ||                 // First Class
                   Is_First_Cls([email protected]&(~EAJL_UPPER)) ||    // Trans. First Cls
                   (.BabyClass && Is_First_Cls([email protected]&(~EAJL_BABY))) ) {    // Baby First Cls
            // Player is First Class (not Novice)
            // most jobs should have two options here  (2-1 and 2-2)
            [email protected] = roclass([email protected]|EAJL_2_1); // 2-1
            [email protected] = roclass([email protected]|EAJL_2_2); // 2-2
            // dispbottom "Debug: Classes: class1 ("[email protected]+"), class2 ("[email protected]+")";
            if(.LastJob && lastJob && ([email protected]&EAJL_UPPER)) {
                // Player is rebirth Cls and linear class changes are enforced
                Require_Level(.Req_Second[0], .Req_Second[1]);
                Job_Options([email protected]_opt, lastJob + Job_Novice_High);
            } else {
                // Class is not enforced, player can decide.
                if( [email protected] > 0 ) { // 2-1
                    Require_Level(.Req_Second[0], .Req_Second[1]);
                    Job_Options([email protected]_opt, [email protected]);
                }
                if( [email protected] > 0 ) { // 2-2
                    Require_Level(.Req_Second[0], .Req_Second[1]);
                    Job_Options([email protected]_opt, [email protected]);
                }
            }
        }
        
        // Displaying the Job Menu defined by [email protected]_opt.
        // [email protected]_opt should not be changed below this line.
        function Job_Menu;
        Job_Menu([email protected]_opt);
        close;

    // Displays the job menu
    function    Job_Menu    {
        // getarg(0) is the [email protected]_opt array holding all available job changes.
        function Confirm_Change;
        while(true) {
            [email protected]_cnt =  getarraysize(getarg(0));
            if( [email protected]_cnt <= 0 ) {
                mes "No more jobs are available.";
                close;
            }

            [email protected] = 0; // Just a single job class given, no select needed
            if ([email protected]_cnt > 1) {
                // Multiple job classes given. Select one and save it to [email protected]
                // After that confirm [email protected]
                mes "Select a job.";
                [email protected]$ = "";
                for ([email protected] = 0; [email protected] < [email protected]_cnt; [email protected]++) {
                    if( getelementofarray(getarg(0), [email protected]) == Job_Novice_High)
                        [email protected]$ = "^0055FFRebirth^000000";
                    else
                        [email protected]$ = jobname(getelementofarray(getarg(0), [email protected]));
                    [email protected]$ = [email protected]$ + " ~ " + [email protected]$ + ":";
                }
                [email protected]$ = [email protected]$+" ~ ^777777Cancel^000000";
                [email protected] = select([email protected]$) - 1;
                if( [email protected] < 0 || [email protected] >= [email protected]_cnt )
                    close;
                next;
                mes .NPCName$;
            }
            [email protected] = getelementofarray(getarg(0), [email protected]);
            if (([email protected] == Job_Super_Novice || [email protected] == Job_Super_Baby) &&
                    BaseLevel < .SNovice) {
                // Special Level Requirement because Super Novice and
                // Super Baby can both be selected in one of the first class
                // changes. That's why the Level Requirement is after and not before
                // the selection.
                mes "A base level of " + .SNovice +
                    " is required to turn into a " + jobname([email protected]) + ".";
                return;
            }
            // Confirm the Class
            Confirm_Change([email protected], [email protected]_cnt > 1);
            next;
            mes .NPCName$;
        }
        return;
    }


    // Executes the actual jobchange and closes.
    function    Job_Change    {
        [email protected]_class = Class;
        [email protected]_cls = getarg(0);
        next;
        mes .NPCName$;
        mes "You are now " + callfunc("F_InsertArticle", jobname([email protected]_cls)) + "!";
        if ([email protected]_cls == Job_Novice_High && .LastJob)
            lastJob = Class; // Saves the lastJob for rebirth
        jobchange [email protected]_cls;
        if ([email protected]_cls == Job_Novice_High)
            resetlvl(1);
        else if ([email protected]_cls == Job_Baby) {
            resetstatus;
            resetskill;
            set SkillPoint,0;
        }
        specialeffect2 EF_ANGEL2;
        specialeffect2 EF_ELECTRIC;
        if ([email protected]_class != Class) {
            if (.Platinum)
                callfunc "F_GetPlatinumSkills";
            if (.GetJobEquip)
                Get_Job_Equip();
        }
        close; // Always closes after the change
    }

    function    Confirm_Change    {
        // Player confirms he want to change into [email protected]
        [email protected] = getarg(0, -1);
        [email protected] = getarg(1, false);
        if( [email protected] < 0 || eaclass([email protected]) == -1 ) {
            mes "Unknown Class Error.";
            close;
        }
        mes "Do you want to change into ^0055FF"+jobname([email protected])+"^000000 class?";
        [email protected]_option$ = " ~ Change into ^0055FF"+jobname([email protected])+"^000000 class";
        if( [email protected] == Job_Novice_High)
            [email protected]_option$ = " ~ ^0055FFRebirth^000000";
        
        if (select([email protected]_option$+": ~ ^777777" + 
                (([email protected]) ?"Go back" : "Cancel") + "^000000") == 1) {
            Job_Change([email protected]);
        }
        if ([email protected])
            close; // "Cancel" pressed
        return;
    }

    // Function which gives a job related item to the player
    // the items are the rewards from the original job change quests
    function    Get_Job_Equip    {
        // Note: The item is dropping, when the player can't hold it.
        // But that's better than not giving the item at all.
        [email protected] = eaclass();
        if( [email protected]&EAJL_FOURTH ) {
            // Fourth Class Items
            getitem 490087,1; // Hourglass Necklace
        } else if( [email protected]&EAJL_THIRD ) {
            // Third Class Items
            getitem 2795,1;    //    Green Apple Ring for every 3rd Class
            switch(BaseJob) {
                // BaseJob of Third Cls
                // For Normal Third, Baby Third and Transcended Third Cls
                case Job_Knight:
                    getitem 5746,1;    break;    //    Rune Circlet [1]
                case Job_Wizard:
                    getitem 5753,1;    break;    //    Magic Stone Hat [1]
                case Job_Hunter:
                    getitem 5748,1;    break;    //    Sniper Goggle [1]
                case Job_Priest:
                    getitem 5747,1;    break;    //    Mitra [1]
                case Job_Blacksmith:
                    getitem 5749,1;    break;    //    Driver Band [1]
                case Job_Assassin:
                    getitem 5755,1;    break;    //    Silent Executor [1]
                case Job_Crusader:
                    getitem 5757,1;    break;    //    Dip Schmidt Helm [1]
                case Job_Sage:
                    getitem 5756,1;    break;    //    Wind Whisper [1]
                case Job_Bard:
                    getitem 5751,1;    break;    //    Maestro Song's Hat [1]
                case Job_Dancer:
                    getitem 5758,1;    break;    //    Dying Swan [1]
                case Job_Monk:
                    getitem 5754,1;    break;    //    Blazing Soul [1]
                case Job_Alchemist:
                    getitem 5752,1;    break;    //    Midas Whisper[1]
                case Job_Rogue:
                    getitem 5750,1;         //    Shadow Handicraft [1]
                    getitem 6121,1;            //    Makeover Brush
                    getitem 6122,1;    break;    //    Paint Brush
            }
        } else if ([email protected]&EAJL_2) {
            // Second Class (And not Third Class)
            switch(BaseJob) {
                // Second Class
                case Job_Knight:
                    getitem 1163,1;    break;    //    Claymore [0]
                case Job_Priest:
                    getitem 1522,1;    break;    //    Stunner [0]
                case Job_Wizard:
                    getitem 1617,1;    break;    //    Survivor's Rod [0]
                case Job_Blacksmith:
                    getitem 1360,1;    break;    //    Two-Handed-Axe [1]
                case Job_Hunter:
                    getitem 1718,1;    break;    //    Hunter Bow [0]
                case Job_Assassin:
                    getitem 1254,1;    break;    //    Jamadhar [0]
                case Job_Crusader:
                    getitem 1410,1;    break;    //    Lance [0]
                case Job_Monk:
                    getitem 1807,1;    break;    //    Fist [0]
                case Job_Sage:
                    getitem 1550,1;    break;    //    Book [3]
                case Job_Rogue:
                    getitem 1222,1;    break;    //    Damascus [1]
                case Job_Alchemist:
                    getitem 1126,1;    break;    //    Saber [2]
                case Job_Bard:
                    getitem 1907,1;    break;    //    Guitar [0]
                case Job_Dancer:
                    getitem 1960,1;    break;    //    Whip [1]
                case Job_Super_Novice:
                    getitem 1208,1;    break;    //    Main Gauche [4]
                case Job_Star_Gladiator:
                    getitem 1550,1;    break;    //    Book [3]
                case Job_Soul_Linker:
                    getitem 1617,1;    break;    //    Survivor's Rod [0]
            }
        } else {
            // Neither Second or Third Cls
            // => First Cls or not covered by the switch
            switch(BaseClass) {
                // First Class
                case Job_Swordman:
                    getitem 1108,1;    break;    //    Blade [4]
                case Job_Mage:
                    getitem 1602,1;    break;    //    Rod [4]
                case Job_Archer:
                    getitem 1705,1;    break;    //    Composite Bow [4]
                case Job_Acolyte:
                    getitem 1505,1;    break;    //    Mace [4]
                case Job_Merchant:
                    getitem 1302,1;    break;    //    Axe [4]
                case Job_Thief:
                    getitem 1208,1;    break;    //    Main Gauche [4]
                case Job_Gunslinger:
                    getitem 13101,1; break;    //    Six Shooter [2]
                case Job_Ninja:
                    getitem 13010,1; break;    //    Asura [2]
            }
        }
        return;
    }

    OnInit:
            initnpctimer;
            end;
    OnTimer0050:
            showscript "Job Changer", getnpcid(0);
            initnpctimer;
            end;

        // Initialisation, do not edit these
        .NPCName$ = "[Job Master]";
        
        // Settings
        .FourthClass = false;                // Enable fourth classes?
        .ThirdClass = false;                    // Enable third classes?
        .RebirthClass = false;                // Enable rebirth classes?
        .SecondExpanded = false;                // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion?
        .BabyNovice = false;                    // Enable Baby novice classes? Disable it if you like player must have parent to get job baby.
        .BabyClass = false;                    // Enable Baby classes?
        .BabyThird = false;                    // Enable Baby third classes?
        .BabyExpanded = false;                // Enable Baby Expanded classes: Ex. Baby Ninja, Baby Taekwon, etc.
        .BabySummoner = false;                // Enable Baby Summoner?
        .LastJob = true;                    // Enforce linear class changes?
        .SkillPointCheck = true;            // Force player to use up all skill points?
        .Platinum = false;                    // Get platinum skills automatically?
        .GetJobEquip = false;                // Get job equipment (mostly weapons) on job change?

        // Level Requirements
        setarray .Req_First[0],1,10;         // Minimum base level, job level to turn into 1st class
        setarray .Req_Second[0],1,40;         // Minimum base level, job level to turn into 2nd class
        setarray .Req_Rebirth[0],99,50;        // Minimum base level, job level to rebirth
        setarray .Req_Third[0],99,50;        // Minimum base level, job level to change to third class
        setarray .Req_Fourth[0],200,70;        // Minimum base level, job level to change to fourth class
        setarray .Req_Exp_NJ_GS[0],99,70;     // Minimum base level, job level to turn into Expanded Ninja and Gunslinger
        setarray .Req_Exp_SNOVI[0],99,99;     // Minimum base level, job level to turn into Expanded Super Novice
        .SNovice = 45;                        // Minimum base level to turn into Super Novice
        
        // Setting adjustments by PACKETVER
        if( PACKETVER < 20161207 ) {
            if( .BabyExpanded )
                debugmes "jobmaster: BabyExpanded is disabled due to outdated PACKETVER.";
            if( .BabySummoner )
                debugmes "jobmaster: BabySummoner is disabled due to outdated PACKETVER.";
            .BabyExpanded = false;
            .BabySummoner = false;
        }
        end;
    }
     

     

  2. hello every one i was wondering how can i see the server status in the putty without server restart

    some dev using ./athena-start restart to see it 
    for me i dont want the players to be disconnected  so if possible is there any command just to display it

    picture for example

    Capture.PNG

  3. hello guys how can i set a fix point in this gold room script example sure 1 point every kill not randam points 

    Quote

    prontera,155,181,5 script Gold Room#goldroom 4_F_KAFRA1,{
        doevent "gold_room_main::OnTalk";
    }
    // warp portal back prontera
    ordeal_3-2,123,123,0    warp    gold_room_back_prt    1,1,prontera,155,181

    // peco peco summon
    ordeal_3-2,0,0,0,0    monster    Peco Peco    1019,200,60000,0,"gold_room_main::OnKill"

    -    script    gold_room_main    -1,{
        
        OnInit:
            // gold room map
            .map$ = "ordeal_3-2";
            // entrance fee
            .zeny_cost = 200000;
            // rate to get gold
            .rate = 100;
            // gold random amount
            setarray .gold_amount,1,5;
            
            setmapflag .map$,mf_noteleport;
            setmapflag .map$,mf_pvp;
            setmapflag .map$,mf_pvp_noguild;
            setmapflag .map$,mf_pvp_noparty;
            setmapflag .map$,mf_nobranch;
            setmapflag .map$,mf_nosave;
            setmapflag .map$,mf_nomemo;
            setmapflag .map$,mf_noreturn;
            setmapflag .map$,mf_nowarp;
            setmapflag .map$,mf_nowarpto;
            end;
        
        OnTalk:
            mes "Enter Gold Room ?";
            if ( .zeny_cost ) 
                mes F_InsertComma( .zeny_cost ) + " Zeny";
            switch ( select( 
                "Enter Gold Room",
                "Exchange Gold Point",
                "Cancel"
            )) {
                case 1:
                    if ( Zeny < .zeny_cost ) {
                        mes "Not enough Zeny.";
                    }
                    else {
                        Zeny -= .zeny_cost;
                        warp .map$,0,0;
                    }
                    break;
                case 2:    
                    mes "You got "+F_InsertComma( #GOLDPOINTS )+" Points";
                    input [email protected],0,#GOLDPOINTS;
                    if ([email protected] == 0) {
                        mes "Exchange canceled.";
                    close;
                    }
                    if ( checkweight( 969, [email protected] ) ) {
                        #GOLDPOINTS -= [email protected];
                        getitem 969,[email protected];
                        mes "Gained "[email protected]+" Gold.";
                    }
                    else {
                        mes "You are overweight.";
                    }
                default:
                    break;
            }
            close;
            
        OnKill:    
            if ( .rate > rand( .50 ) ) {
                [email protected] = rand( .gold_amount[0],.gold_amount[1] );
                #GOLDPOINTS += [email protected];
                dispbottom "Gained "[email protected]+" Point. You got "+F_InsertComma( #GOLDPOINTS )+" Points now.";
            }
            end;

        OnPCDieEvent:
            [email protected] = killerrid;
            if ( strcharinfo(3) == .map$ && [email protected] != getcharid(3) && getmonsterinfo( [email protected],MOB_NAME ) != "null" ) {
                #GOLDPOINTS = 0;
                dispbottom "You died, you lost all the point.";
            }
            end;
    }

     

  4. 18 minutes ago, Dolphin86 said:

    how can i make sure the client are extracted to /data/user/0/com.localclient.apk/files/ragnarok??

    im kinda lost there,

    put your ro folder in android folder then after opening localapk choose android folder then your ro folder

  5. 20 hours ago, Emistry said:

    shutdown the server and run the SQL script.

    UPDATE `char` SET `zeny` = 0;
    UPDATE `mail` SET `zeny` = 0;
    UPDATE `acc_reg_num` SET `value` = 0 WHERE `key` LIKE '#BANKVAULT';

     

    hello emistry do you have any tutorials for running sql script? i only know how to delete it in table manually and my main problem is the bank because theres no bank tables in sql and i dont have any idea how to run a sql script im using sqlyog ultimate

  6. 20 minutes ago, mrfizi said:

    It should work. I write and tested the script on my server. Please check if got any error on putty terminal.

    i found a bug the first 3 warps deducted then the next warps are not theres no error in the terminal try to warp in different area such as dungeon town and fields

  7. On 11/14/2011 at 6:18 AM, Toshiro said:

    If you're using a SQL server, you just have to run the following query.

     

    UPDATE `char` SET `zeny`=0;
     

     

    If you have a bank npc or any other method to store Zeny, you should consider to check those stuff as well, as there might be more Zeny than actually are on the characters.

    hello sir how to run this command in sql?

  8. hello i just want to ask how to add payment for this warper script thanks

     

    Quote

    //===== rAthena Script ======================================= 
    //= Warper
    //===== Description: ========================================= 
    //= A complete - but very condensed - warper script.
    //===== Additional Comments: =================================
    //= 1.0 Initial script By [Euphy].
    //= 1.1 Added missing duplicates and fixed coordinates.
    //=     Some coordinates written by [Tekno-Kanix] and [ToastOfDoom].
    //= 1.2 Added new episodes and simplified functions.
    //= 1.3 Added Renewal checks and Instances menu.
    //=     Aligned coordinates with @go.
    //= 1.4 Added new Guild Dungeons.
    //= 1.4a Slight edits.
    //= 1.4b Added Wolfchev's Laboratory warp.
    //= 1.5 Added Lasagna ,Para Market ,WOE TE ,Instances and settings [sader1992].
    //= 1.5a Fix Bifrost Tower
    //============================================================

    -    script    Warper    -1,{
    function Go; function Disp; function Pick; function Restrict;

    // --------------------------------------------------
    //    Main Menu:
    // --------------------------------------------------

    menu    "Last Warp ^777777["+lastwarp$+"]^000000",-,
            " ~ Towns",Towns,
            " ~ Fields",Fields,
            " ~ Dungeons",Dungeons,
    //        " ~ UFC Arena",UFC,
    //       " ~ Guild Dungeons",Guild_Dungeons,
    //        " ~ Instances",Instances,
            " ~ Special Areas",Special;

        if (lastwarp$ == "")
            message strcharinfo(0),"You haven't warped anywhere yet.";
        else
            warp lastwarp$,lastwarpx,lastwarpy;
        end;

    // ------------------- Functions -------------------
    // * Go("<map>",<x>,<y>);
    //    ~ Warps directly to a map.
    //
    // * Disp("<Menu Option>",<first option>,<last option>);
    // * Pick("<map_prefix>"{,<index offset>});
    //    ~ Dynamic menu and map selection (auto-numbered).
    //    ~ Fields and Dungeons must use Disp and Pick Functions.
    //
    // * Disp("<Option 1>:<Option 2>:<etc.>");
    // * Pick("","<map1>","<map2>","<etc.>");
    //    ~ Manual menu and map selection (listed).
    //
    // * Restrict("<RE | Pre-RE>"{,<menu option numbers>});
    //    ~ Only allows map for Renewal or Pre-Renewal modes.
    //     If menu option numbers are given, only those maps
    //     will be restricted (i.e. not for "Go").
    //
    // Other notes:
    //   ~ Array @c[] holds all (x,y) coordinates.
    //   ~ Use @c[2] EXCEPT when maps begin dynamically
    //      at 0: use @c[0] and Pick() offset 1.
    // --------------------------------------------------

    function Go {
        set lastwarp$, getarg(0);
        set lastwarpx, getarg(1,0);
        set lastwarpy, getarg(2,0);
        warp getarg(0),getarg(1,0),getarg(2,0);
        end;
    }
    function Disp {
        if (getargcount() < 3)
            set @menu$, getarg(0);
        else {
            set @menu$,"";
            for (set [email protected],getarg(1); [email protected]<=getarg(2); set .[email protected],[email protected]+1)
                set @menu$, @menu$+getarg(0)+" "[email protected]+":";
        }
        return;
    }
    function Pick {
        set [email protected]_block,@warp_block;
        set @warp_block,0;
        if((@f && .OnlyFirstFld) || (@d && .OnlyFirstDun)){
            set [email protected],1;
            if([email protected]_block){
                while([email protected]_block & (1<<[email protected])){
                    [email protected] += 1;
                }
            }
        }else{
            set [email protected], select(@menu$);
        }
        if (getarg(0) == "") {
            set [email protected], [email protected];
            set [email protected]$, getarg([email protected]);
        } else {
            set [email protected], [email protected](1,0);
            set [email protected]$, getarg(0)+(([email protected]<10)?"0":"")[email protected];
        }
        if ([email protected]_block & (1<<[email protected])) {
            message strcharinfo(0),"This map is not enabled in "+((checkre(0))?"":"Pre-")+"Renewal.";
            end;
        }
        set [email protected], @c[[email protected]*2];
        set [email protected], @c[[email protected]*2+1];
        deletearray @c[0],getarraysize(@c);
        @f = false; @d = false;
        Go([email protected]$,[email protected],[email protected]);
    }
    function Restrict {
        if ((getarg(0) == "RE" && !checkre(0)) || (getarg(0) == "Pre-RE" && checkre(0))) {
            if (getarg(1,0)) {
                set @warp_block,0;
                for (set [email protected],1; [email protected]<getargcount(); set [email protected],[email protected]+1)
                    set @warp_block, @warp_block | (1<<getarg([email protected]));
            } else {
                message strcharinfo(0),"This map is not enabled in "+((checkre(0))?"":"Pre-")+"Renewal.";
                end;
            }
        }
        return;
    }

    // --------------------------------------------------
        Towns:
    // --------------------------------------------------
    menu    "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
            "Comodo",T6, "Einbech",T7, 
            "Einbroch",T8, "Geffen",T9, "Gonryun",T10, "Hugel",T11,
            "Izlude",T12, "Lighthalzen",T13, "Luoyang",T14,
            "Lutie",T15,
            "Morocc",T16, 
            "Niflheim",T17, "Payon",T18, 
            "Umbala",T19, "Juno",T20;

    T1: Go("prontera",155,183);
    T2: Go("alberta",28,234);
    T3: Go("aldebaran",140,131);
    T4: Go("amatsu",198,84);
    T5: Go("ayothaya",208,166);
    T6: Go("comodo",209,143);
    T7: Go("einbech",63,35);
    T8: Go("einbroch",64,200);
    T9: Go("geffen",119,59);
    T10: Go("gonryun",160,120);
    T11: Go("hugel",96,145);
    T12: Go("izlude",128,(checkre(3)?146:114));
    T13: Go("lighthalzen",158,92);
    T14: Go("louyang",217,100);
    T15: Go("xmas",147,134);
    T16: Go("morocc",156,93);
    T17: Go("niflheim",202,174);
    T18: Go("payon",179,100);
    T19: Go("umbala",97,153);
    T20: Go("yuno",157,51);

    // --------------------------------------------------
        Fields:
    // --------------------------------------------------
    @f = true;
    menu    "Amatsu Fields",F1, "Ayothaya Fields",F2, "Comodo Fields",F3, "Einbroch Fields",F4,
            "Geffen Fields",F5, "Kunlun Fields",F6, "Hugel Fields",F7,
            "Lighthalzen Fields",F8, "Luoyang Field",F9, 
            "Niflheim Fields",F10, 
            "Payon Forests",F11, "Prontera Fields",F12, 
            "Sograt Deserts",F13, "Umbala Fields",F14, "Juno Fields",F15;

    F1: setarray @c[2],190,197;
        Disp("Amatsu Field",1,1); Pick("ama_fild");
    F2: setarray @c[2],173,134,212,150;
        Disp("Ayothaya Field",1,2); Pick("ayo_fild");
    F3: Restrict("Pre-RE",5);
        setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172;
        Disp("Comodo Field",1,9); Pick("cmd_fild");
    F4: Restrict("Pre-RE",2,10);
        setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200;
        Disp("Einbroch Field",1,10); Pick("ein_fild");
    F5: setarray @c[2],46,199,195,212,257,192,188,171,166,263,248,158,195,191,186,183,178,218,136,328,240,181,235,235;
         Disp("Geffen 0:Geffen 1:Geffen 3:Geffen 4:Geffen 5:Geffen 6:Geffen 7:Geffen 8:Geffen 9:Geffen 11:Geffen 12:Geffen 13");
         Pick("","gef_fild00","gef_fild01","gef_fild03","gef_fild04","gef_fild05","gef_fild06","gef_fild07","gef_fild08","gef_fild09","gef_fild11","gef_fild12","gef_fild13");      
    F6: setarray @c[2],220,227;
         Disp("Kunlun Field",1,1); Pick("gon_fild");
    F7: Restrict("Pre-RE",3,7);
         setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197;
         Disp("Hugel Field",1,7); Pick("hu_fild");
    F8: setarray @c[2],240,179,185,235,240,226;
         Disp("Lighthalzen Field",1,3); Pick("lhz_fild");
    F9: setarray @c[2],229,187;
         Disp("Luoyang Field",1,1); Pick("lou_fild");
    F10: setarray @c[2],215,229,167,234;
         Disp("Niflheim Field",1,2); Pick("nif_fild");
    F11: Restrict("Pre-RE",5,11);
         setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205;
         Disp("Payon Forest",1,10); Pick("pay_fild");
    F12: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164;
         Disp("Prontera Field",0,11); Pick("prt_fild",1);
    F13: if(.Satan_Morocc){
         setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,209,223,85,97,207,202,31,195,38,195;
         Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21");
         Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild18","moc_fild19","moc_fild20","moc_fild21");
         }else{
         setarray @c[2],219,205,177,206,194,182,146,297,204,197,275,302,224,170,139,123,101,110,341,39,198,216,156,187,185,263,223,222,170,257,206,228,208,238,209,223,85,97;
         Disp("Sograt Desert",1,19); Pick("moc_fild");
         }
    F14: setarray @c[2],217,206,223,221,237,215,202,197;
         Disp("Umbala Field",1,4); Pick("um_fild");
    F15: Restrict("Pre-RE",5,10);
         setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304;
         Disp("Juno Field",1,12); Pick("yuno_fild");

    // --------------------------------------------------
        Dungeons:
    // --------------------------------------------------
    @d = true;
    menu       "Beach Dungeon",D1,
            "Byalan Dungeon",D2, "Clock Tower",D3,
            "Coal Mines",D4, "Culvert",D5, 
            "Einbroch Dungeon",D6, "Geffen Dungeon",D7,
            "Glast Heim",D8, "Kunlun Dungeon",D9, "Hidden Dungeon",D10,
            "Magma Dungeon",D11,
            "Orc Dungeon",D12, "Payon Dungeon",D13, "Pyramids",D14, "Sphinx",D15, "Sunken Ship",D16, "Toy Factory",D17, "Turtle Dungeon",D18, "Umbala Dungeon",D19;


    D1: setarray @c[2],255,244,23,260;
        Disp("Beach Dungeon",2,3); Pick("","beach_dun2","beach_dun3");
    D2: Restrict("RE",6);
        setarray @c[0],168,168,253,252,236,204,32,63,26,27,141,187;
        Disp("Byalan Dungeon",1,6); Pick("iz_dun",1);
    D3: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74;
        Disp("Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4");
        Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04");
    D4: setarray @c[2],52,17,381,343,302,262;
         Disp("Coal Mines",1,3); Pick("mjo_dun");
    D5: setarray @c[2],131,247,19,19,180,169;
         Disp("Culvert",1,3); Pick("","prt_sewb1","prt_sewb2","prt_sewb3");
    D6: setarray @c[2],22,14,292,290;
         Disp("Einbroch Dungeon",1,2); Pick("ein_dun");
    D7: setarray @c[0],104,99;
         Disp("Geffen Dungeon",1); Pick("gef_dun",1);
    D8: setarray @c[2],370,304,199,29,104,25,150,15,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14;
         Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry :Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2");
         Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1");
    D9: setarray @c[2],153,53,28,113;
         Disp("Kunlun Dungeon",1,2); Pick("gon_dun");
    D10: setarray @c[2],176,7,93,20;
         Disp("Hidden Dungeon",1,2); Pick("prt_maze");
    D11: setarray @c[2],126,68,47,30;
         Disp("Magma Dungeon",1,2); Pick("mag_dun");
    D12: setarray @c[2],32,170,21,185;
         Disp("Orc Dungeon",1,2); Pick("orcsdun");
    D13: setarray @c[0],21,183,19,33,19,63,155,159;
         Disp("Payon Dungeon",1,4); Pick("pay_dun",1);
    D14: Restrict("RE",7,8);
         setarray @c[2],192,9,10,192,100,94,96,192,8,94,96,192,8;
         Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 1:Basement - 1 - Nightmare Mode:Basement 2 - Nightmare Mode");
         Pick("","moc_pryd01","moc_pryd02","moc_pryd03","moc_pryd05","moc_prydn1","moc_prydn2");
    D15: setarray @c[2],288,9,149,81,210,54,10,222;
         Disp("Sphinx",1,4); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4");
    D16: setarray @c[2],69,24;
         Disp("Sunken Ship",1); Pick("treasure");
    D17: setarray @c[2],205,15;
         Disp("Toy Factory",1); Pick("xmas_dun");
    D18: setarray @c[2],154,49,148,261,132,189;
         Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2"); Pick("tur_dun");
    D19: Restrict("Pre-RE",1,2);
         setarray @c[2],42,31,48,30,204,78;
         Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain");
         Pick("","um_dun01","um_dun02","yggdrasil01");


    // --------------------------------------------------
        Castles:
    // --------------------------------------------------
    menu    "[FE] Aldebaran Castles",C1, "[FE] Geffen Castles",C2, "[FE] Payon Castles",C3,
            "[FE] Prontera Castles",C4, "[SE] Arunafeltz Castles",C5, "[SE] Schwarzwald Castles",C6,
            "[TE] Aldebaran Castles",C7, "[TE] Prontera Castles",C8;

    C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90;
        Disp("Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg");
        Pick("","alde_gld","alde_gld","alde_gld","alde_gld","alde_gld");
    C2: setarray @c[2],214,75,308,240,143,240,193,278,305,87;
        Disp("Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz");
        Pick("","gef_fild13","gef_fild13","gef_fild13","gef_fild13","gef_fild13");
    C3: setarray @c[2],121,233,295,116,317,293,140,160,204,266;
        Disp("Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill");
        Pick("","pay_gld","pay_gld","pay_gld","pay_gld","pay_gld");
    C4: setarray @c[2],134,65,240,128,153,137,111,240,208,240;
        Disp("Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul");
        Pick("","prt_gld","prt_gld","prt_gld","prt_gld","prt_gld");
    C5: setarray @c[2],158,272,83,47,68,155,299,345,292,107;
        Disp("Mardol:Cyr:Horn:Gefn:Banadis");
        Pick("","aru_gld","aru_gld","aru_gld","aru_gld","aru_gld");
    C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315;
        Disp("Himinn:Andlangr:Viblainn:Hljod:Skidbladnir");
        Pick("","sch_gld","sch_gld","sch_gld","sch_gld","sch_gld");
    C7: Restrict("RE");
        setarray @c[2],48,83,95,249,142,85,239,242,264,90;
        Disp("Kafragarten 1:Kafragarten 2:Kafragarten 3:Kafragarten 4:Kafragarten 5");
        Pick("","te_alde_gld","te_alde_gld","te_alde_gld","te_alde_gld","te_alde_gld");
    C8: Restrict("RE");
        setarray @c[2],134,65,240,128,153,137,111,240,208,240;
        Disp("Gloria 1:Gloria 2:Gloria 3:Gloria 4:Gloria 5");
        Pick("","te_prt_gld","te_prt_gld","te_prt_gld","te_prt_gld","te_prt_gld");
        
    // --------------------------------------------------
        Guild_Dungeons:
    // --------------------------------------------------
    menu    "Baldur",G1, "Luina",G2, "Valkyrie",G3, "Britoniah",G4,
            "Arunafeltz",G5, "Schwarzwald",G6, "Kafragarten",G7,
            "Gloria",G8;

    G1: Restrict("RE",2,3);
        setarray @c[2],119,93,119,93,120,130;
        Disp("Baldur F1:Baldur F2:Hall of Abyss");
        Pick("","gld_dun01","gld_dun01_2","gld2_pay");
    G2: Restrict("RE",2,3);
        setarray @c[2],39,161,39,161,147,155;
        Disp("Luina F1:Luina F2:Hall of Abyss");
        Pick("","gld_dun02","gld_dun02_2","gld2_ald");
    G3: Restrict("RE",2,3);
        setarray @c[2],50,44,50,44,140,132;
        Disp("Valkyrie F1:Valkyrie F2:Hall of Abyss");
        Pick("","gld_dun03","gld_dun03_2","gld2_prt");
    G4: Restrict("RE",2,3);
        setarray @c[2],116,45,116,45,152,118;
        Disp("Britoniah F1:Britoniah F2:Hall of Abyss");
        Pick("","gld_dun04","gld_dun04_2","gld2_gef");
    G5: Go("arug_dun01",199,195);
    G6: Go("schg_dun01",200,124);
    G7: Restrict("RE");
        Go("teg_dun01",42,36);
    G8: Restrict("RE");
        Go("teg_dun02",26,160);

    // --------------------------------------------------
        Instances:
    // --------------------------------------------------
    menu    "Bakonawa Lake",I1, "Bangungot Hospital 2F",I2, "Buwaya Cave",I3,
            "Devil Tower",I4, "Eclage Interior",I5, "Endless Tower",I6,
            "Faceworms Nest",I7, "Geffen Magic Tournament",I8, "Ghost Palace",I9,
            "Hazy Forest",I10, "Horror Toy Factory",I11, "Malangdo Culvert",I12,
            "Nidhoggur's Nest",I13, "Octopus Cave",I14, "Old Glast Heim",I15,
            "Orc's Memory",I16, "Sarah and Fenrir",I17, "Sara Memory",I18,
            "Sealed Shrine",I19, "Wolfchev's Laboratory",I20;

    I1: Restrict("RE");
        Go("ma_scene01",172,175);
    I2: Restrict("RE");
        Go("ma_dun01",151,8);
    I3: Restrict("RE");
        Go("ma_fild02",316,317);
    I4: Restrict("RE");
        Go("dali02",137,115);
    I5: Restrict("RE");
        Go("ecl_hub01",129,12);
    I6: Go("e_tower",72,112);
    I7: Restrict("RE");
        Go("dali",85,64);
    I8: Restrict("RE");
        Go("dali",94,141);
    I9: Restrict("RE");
        Go("dali02",46,128);
    I10: Restrict("RE");
        Go("bif_fild01",161,334);
    I11: Restrict("RE");
        Go("xmas",234,298);
    I12: Restrict("RE");
        Go("mal_in01",164,21);
    I13: Go("nyd_dun02",95,193);
    I14: Restrict("RE");
        Go("mal_dun01",152,230);
    I15: Restrict("RE");
        Go("glast_01",204,268);
    I16: Go("gef_fild10",240,198);
    I17: Restrict("RE");
        Go("dali02",92,141);
    I18: Restrict("RE");
        Go("dali",133,108);
    I19: Go("monk_test",306,143);
    I20: Restrict("RE");
        Go("lhz_dun04",148,269);

    // --------------------------------------------------
        Special:
    // --------------------------------------------------
    menu    "UFC Arena",S1, "Gon Test Arena",S2, "Vending Area",S3, "Mall of Asia",S4;

    S1: Go("ufc_pvp3",49,37);
    S2: Go("gon_test",56,94);
    S3: Go("turbo_room",100,100);
    S4: Go("sky_quest",46,46);

    OnInit:
        .Satan_Morocc = true;    //    false will enable moc_fild 4,5,6,8,9,10,14,15 while disable moc_fild 20,21,22 Default is true.
        .OnlyFirstFld = false;    //    true will teleport to the first level of the Fields  Default is false.
        .OnlyFirstDun = false;    //    true will teleport to the first level of the Dungeons  Default is false.
    }

    // --------------------------------------------------
    //    Duplicates:
    // --------------------------------------------------
    alb2trea,57,70,6 duplicate(Warper) Warper#tre    721
    alberta,35,238,5    duplicate(Warper)    Warper#alb    721
    aldebaran,135,122,5    duplicate(Warper)    Warper#alde    721
    comodo,194,158,4    duplicate(Warper)    Warper#com    721
    einbroch,69,202,4    duplicate(Warper)    Warper#einbr    721
    geffen,124,72,4    duplicate(Warper)    Warper#gef    721
    gonryun,162,122,4    duplicate(Warper)    Warper#gon    721
    hugel,101,151,4    duplicate(Warper)    Warper#hug    721
    izlude,134,99,4    duplicate(Warper)    Warper#izl    721    //Pre-RE: (132,120)
    lighthalzen,162,102,4    duplicate(Warper)    Warper#lhz    721
    morocc,156,105,5    duplicate(Warper)    Warper#mor    721
    payon,178,104,4    duplicate(Warper)    Warper#pay    721
    prontera,158,192,4    duplicate(Warper)    Warper#prt    721

    // --------------------------------------------------
    //    Duplicates (Renewal):
    // --------------------------------------------------
    brasilis,201,222,4    duplicate(Warper)    Warper#bra    721
    dewata,204,186,6    duplicate(Warper)    Warper#dew    721
    dicastes01,194,194,6    duplicate(Warper)    Warper#dic    721
    ecl_in01,51,60,4    duplicate(Warper)    Warper#ecl    721
    lasagna,196,187,4    duplicate(Warper)    Warper#las    721
    malangdo,134,117,6    duplicate(Warper)    Warper#mal    721
    malaya,231,204,4    duplicate(Warper)    Warper#ma    721
    mora,57,152,4    duplicate(Warper)    Warper#mora    721

     

  9. 14 minutes ago, Emistry said:

    if you just want the Emperium to walk around randomly, just set the monster mode to be walkable, there is no need to use additional npc script to control the movement unless u want a specific walking patterns/behaviours.

    hello what i mean is the emperium is rotating but in the permanent place

  10. 32 minutes ago, Vandares1 said:

    Hello rAthena community, i have a question regarding patcher editing 

     

    i have a notice box on my Patcher design template, how can i add some texts on it ? such as events and news etc....

    i have a psd files, should i just add some text to the psd design ? or there is more efficient way ?

    bg.jpg.fa00a010fe18e70c8505d6f2cc1a85cc.jpg

     

    and theses are the files i have.

     

    1060436998_Screenshot2022-03-04103700.png.ad7b22512cfa052c41dfe12d13f953f4.png

    open the folder Patch check if it has a web folder then you can see this text files you can edit it there
     

    1234.PNG

  11. 2 hours ago, Loke said:

    Hello guys, how to enable item group package in pre-renewal?

    thanks in advance.

    you need to make a custom box in your item db

    db/import/itemdb_yml or 
    db/pre-re/item_db_useable.yml

    example:
     

    Quote

    - Id: 40000
        AegisName: DEX_Biscuit_Stick_Box11
        Name: Custom Box 
        Type: Cash
        Buy: 10
        Weight: 10
        Flags:
          UniqueId: true
        Trade:
          Override: 100
          NoDrop: true
          NoTrade: true
          NoSell: true
          NoCart: true
          NoGuildStorage: true
          NoMail: true
          NoAuction: true
          NoStorage: false
        Script: |
           getitem 14003,10; getitem 12210,5; 

    save then @reloaditemdb
    then edit your iteminfo.lua
     

    Quote

     [40000] = {
            unidentifiedDisplayName = "Custom Box",
            unidentifiedResourceName = "Your_Box_sprite",
            unidentifiedDescriptionName = { "..." },
            identifiedDisplayName = "Custom Box",
            identifiedResourceName = "Your_Box_sprite",
            identifiedDescriptionName = { 
                "A box that contains the following",
                "________________________",
                "^0000FFElite Siege Supply Box 10pcs.^000000",
                "^0000FFBubble Gum 5pcs.^000000",    
                "________________________",
                "^0000CCWeight:^000000 1",
            },
            slotCount = 0,
            ClassNum = 0
        },

     

  12. 31 minutes ago, Vy Low said:

    this should work, i used it on my centos 7 vps

    im also using centos 7 and it works from me

    i used this steps

     

    try this:

    How To Install GCC on CentOS 7 | LinuxHostSupport

    after that then this :

     

    type: gcc --version

    "if you install gcc version upper than 4.8 you need to type this:
    type this :"

    scl enable devtoolset-7 bash

    the no 7 represent your gcc version it depends in what version you are using , you can check it by typing  gcc --version
     

    then 

    ./configure
    make clean
    make server

×
×
  • Create New...

Important Information

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