Jump to content

Mael

Forum Moderator
  • Posts

    832
  • Joined

  • Last visited

  • Days Won

    20

Posts posted by Mael

  1. 12 hours ago, aleph075 said:

    Buenas noches. Estoy queriendo editar varias cosas referidas a los Jobs. Las enlistaré para que puedan ayudarme mejor. Soy nuevo y me alcanza con scripts y ediciones basicas para aprender (con el tiempo intentare mejorar mis scritps) Desde ya les agradezco el apoyo.

    Estoy usando el emulador "4cram_4th_jobs". Quiero lograr un server con clases renacidas, que pueda desbloquear algunas habilidades de clases avanzadas (3rd classes)

    1- Quiero deshabilitar las 3eras y 4tas clases por completo. Que el mismo juego no permita que mediante quest o job changer se llegue a ser 3rd class. ¿Alcanza con poner "false" en las lineas de job_exp.yml y luego recompilar? ¿Que me recomiendan?

    2- Quisiera que el JobChanger, al detectar que eres, por ejemplo, Priest level 50 job, te permita pasar directamente a HighPriest sin resetear tu Base Level, pero si tu job level. ¿Como puedo hacerlo? Supongo que el script es dificil de hacer, asi que acepto recomendaciones. De todas formas, este es el script que dispongo:

      Reveal hidden contents

    prontera,153,193,6    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)) {
            .@blvl = getarg(0) - BaseLevel;
            .@jlvl = 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 " +
                ((.@blvl > 0) ? "^bb0000"+.@blvl+"^000000 more base levels " + 
                    ((.@jlvl > 0) ? "and " : "") : "") +
                ((.@jlvl > 0) ? "^00bb00"+.@jlvl+"^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 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 .@array[getarraysize(.@array)],opt1,opt2,...;
    // It's just easier to read, since we're using it very often
    function    Job_Options    {
        .@argcount = getargcount();
        .@arr_size = getarraysize(getarg(0));
        for( .@i = 1; .@i < .@argcount; .@i++) {
            setarray getelementofarray(getarg(0), .@arr_size++),getarg(.@i);
        }
    }

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

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

    // Displays the job menu
    function    Job_Menu    {
        // getarg(0) is the .@job_opt array holding all available job changes.
        function Confirm_Change;
        while(true) {
            .@opt_cnt =  getarraysize(getarg(0));
            if( .@opt_cnt <= 0 ) {
                mes "No more jobs are available.";
                close;
            }

            .@selected = 0; // Just a single job class given, no select needed
            if (.@opt_cnt > 1) {
                // Multiple job classes given. Select one and save it to .@class
                // After that confirm .@class
                mes "Select a job.";
                .@menu$ = "";
                for (.@i = 0; .@i < .@opt_cnt; .@i++) {
                    if( getelementofarray(getarg(0), .@i) == Job_Novice_High)
                        .@jobname$ = "^0055FFRebirth^000000";
                    else
                        .@jobname$ = jobname(getelementofarray(getarg(0), .@i));
                    .@menu$ = .@menu$ + " ~ " + .@jobname$ + ":";
                }
                .@menu$ = .@menu$+" ~ ^777777Cancel^000000";
                .@selected = select(.@menu$) - 1;
                if( .@selected < 0 || .@selected >= .@opt_cnt )
                    close;
                next;
                mes .NPCName$;
            }
            .@class = getelementofarray(getarg(0), .@selected);
            if ((.@class == Job_Super_Novice || .@class == 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(.@class) + ".";
                return;
            }
            // Confirm the Class
            Confirm_Change(.@class, .@opt_cnt > 1);
            next;
            mes .NPCName$;
        }
        return;
    }


    // Executes the actual jobchange and closes.
    function    Job_Change    {
        .@previous_class = Class;
        .@to_cls = getarg(0);
        next;
        mes .NPCName$;
        mes "You are now " + callfunc("F_InsertArticle", jobname(.@to_cls)) + "!";
        if (.@to_cls == Job_Novice_High && .LastJob)
            lastJob = Class; // Saves the lastJob for rebirth
        jobchange .@to_cls;
        if (.@to_cls == Job_Novice_High)
            resetlvl(1);
        else if (.@to_cls == Job_Baby) {
            resetstatus;
            resetskill;
            set SkillPoint,0;
        }
        specialeffect2 EF_ANGEL2;
        specialeffect2 EF_ELECTRIC;
        if (.@previous_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 .@class
        .@class = getarg(0, -1);
        .@back = getarg(1, false);
        if( .@class < 0 || eaclass(.@class) == -1 ) {
            mes "Unknown Class Error.";
            close;
        }
        mes "Do you want to change into ^0055FF"+jobname(.@class)+"^000000 class?";
        .@job_option$ = " ~ Change into ^0055FF"+jobname(.@class)+"^000000 class";
        if( .@class == Job_Novice_High)
            .@job_option$ = " ~ ^0055FFRebirth^000000";
        
        if (select(.@job_option$+": ~ ^777777" + 
                ((.@back) ?"Go back" : "Cancel") + "^000000") == 1) {
            Job_Change(.@class);
        }
        if (!.@back)
            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.
        .@eac = eaclass();
        if( .@eac&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 (.@eac&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:
        // Initialisation, do not edit these
        .NPCName$ = "[Job Master]";
        
        // Settings
        .ThirdClass = true;            // Enable third classes?
        .RebirthClass = true;            // Enable rebirth classes?
        .SecondExpanded = true;        // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion?
        .BabyNovice = true;    // Enable Baby novice classes? Disable it if you like player must have parent to get job baby.
        .BabyClass = true;                // Enable Baby classes?
        .BabyThird = true;                // Enable Baby third classes?
        .BabyExpanded = true;            // Enable Baby Expanded classes: Ex. Baby Ninja, Baby Taekwon, etc.
        .BabySummoner = true;            // Enable Baby Summoner?
        .LastJob = true;                // Enforce linear class changes?
        .SkillPointCheck = true;        // Force player to use up all skill points?
        .Platinum = true;                // 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_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;
    }


    3- Es posible agregar skills de 3rd classes siendo que sos rebirth?

     

    Muchas gracias

     

    Usa el emulador de rAthena en su lugar, actualmente ya soportamos los 4th jobs.

    https://github.com/rathena/rathena

  2. 12 hours ago, aleph075 said:

    Me pasó que al editar el cap level a 100 (cuando el cap level es 250) se me bloqueo la ganancia de experiencia. Cada vez que mato un mob me dice "inf%". Habilite subir varios niveles (por si el error era ese) y no paso nada. Tambien agregue el nivel 100 a todas las tablas y recompilé. Y creo que borre las tablas de XP de los niveles superiores a 100. No los necesito para testear
    Ademas, cuando inicio el server me salen los siguientes errores, que no deshabilitan el server y no creo que este ahi el problema, pero lo comparto por si les sirve para ayudarme:

     

     

    error 2.jpg

    src/map/map.hpp

    #Define MAX_LEVEL

    Modifica eso.

  3. On 2/22/2024 at 6:15 AM, Relzz said:

    Cambiaremos el enfoque principal hacia el cliente ya que tengo una petición puesta justo ahora acá, comenzaremos por traducir los archivos del cliente y pasaremos a los NPC y ojala este sistema este listo para cuando terminemos el cliente. Si ven esto, por favor voten para que se implemente, si conseguimos suficiente atención podemos atraer alguien que lo haga realidad 

     

    Tengo entendido que este proyecto está descartado por el Dev Team. Quizás si presentacen algo nuevo podría ser.

  4. 7 hours ago, Gidz Cross said:

    Heya. Can i request a replicated method to this @iteminfo.

    So the picture shows is when you type @ii in a wild search. For example @ii Poring Card. Those information on the chat box will appear. And at the same time it will call a npc script with dialog box which shows the item with itemlink in it.

    Tagging @joecalis XD

    Or... The NPC dialog box isn't necessary. Just make the information on the chatbox with item link.

    OSRO_h4qXVLiXo3.png.f57b7dc2b42e109431fc71d74eb4af49.png
     

    https://github.com/rathena/rathena/blob/master/conf/battle/feature.conf#L155

  5. 8 hours ago, Soad said:

    me gustaria subir los archivo, donde los localizo? y si me los pasas te lo agradeceria,

    con respecto a lo del "Alt + S" ya edite mi archivo data con el GRF sustitullendo la carpeta skillinfoz por otra que se suponia ya estava arreglado pero sigue cerrandose el servidor, creo que ya voy entendiendo los procesos pero aun no logro solucionar nungono de los 2 problemas :V  

    tengo discord: Soad#9386 

    Te recomiendo leer la wiki del proyecto de data. Tu problema está en que no estás utilizando los archivos correctamente: https://github.com/llchrisll/ROenglishRE/wiki

    Utiliza proyectos vigentes, no utilices proyectos descontinuados (si desconoces cómo funcionaban).

  6. 5 hours ago, Soad said:

    hola a todos!
    hago este post con la finalidad de reducir un poco la búsqueda ya que la cantidad de información que existe en este bello foro es muy extensa y a muchos les es muy confuso en ocasiones traducir tanta información, 
    supongo que a varias personas que no somos eruditos en la programación tenemos ciertos problemas al comenzar nuestro servidor de RO, y la verdad es que yo estoy comenzando el mío como proyecto personal 

    comencé mi server siguiendo esta guía:

    a mi parecer y no soy un experto me a sido de mucha utilidad ya que ahora cuento con un servidor offline corriendo en orden... 
    hasta aquí todo bello y hermoso!...

    imagen_2023-04-18_020051053.thumb.png.4038cd6d274391aa6afaa634029eb2b7.png

    esto podría pasarles a muchos y es aquí donde trato con este post hacer mas fácil el proceso y no morir en el intento con la ayuda de ustedes,

    1- al abrir la ventana de skills se cierra el servidor, leyendo en el foro e dado con que la solución esta en cambiar desde el GRF editor un archivo de nombre que se almacena en:
        data/luafiles514/lua files/skillinfoz....
       de "skilltreeview 20180620.lub" a "skilltreeview.lub"....

    puede se que si.... pero da la casualidad de que no me aparece ese archivo a mi... además encontré mas carpetas llamadas "skillinfoz" y en ninguna de ellas esta dicha archivo pero si una con ese nombre pero con mayuculas "SkillTreeView.lub"

    imagen_2023-04-18_021017313.thumb.png.2d962ff2970af5873d856f12aff06b10.png


    cave mencionar que si doy click derecho y trato de renombrar no me lo perite y me avienta esta ventana.


    imagen_2023-04-18_021223452.thumb.png.0b117de2e945edf32ae8b35ed16edc1b.png

    hasta este punto este problema no lo e logrado solucionar .... 
    continuando con otros detalles que por el momento me e encontrado, al escribir comandos como por ejemplo "/joblvl 70" el juego me dice que no tengo permisos para esos comandos... siendo que ya estoy como GM según tengo entendido... y cuando escribo comandos como @autoloot lo escribe solamente.... adjunto 2 imágenes mostrando:

    imagen_2023-04-18_022003063.thumb.png.a9b840ce334826c9ced0dea695bfdd89.pngimagen_2023-04-18_022059287.thumb.png.7994a6fbb1a692dbc208d04914a31889.png

    el usuario @ElBola me comento o siguiente:
    Lo de los comandos, necesitas habilitar el Group en tu base de datos para poder obtener dichos comandos o en su defecto, agregar los comandos al group.yml en tu carpeta conf de tu emulador.

    el problema es que no se como hacer esto precisamente y si quiero aprender pero al buscar me a costado mucho dar con información útil ya que no es una comunidad latina, con este post espero que mucha mas gente que tenga estos mismos problemas puedan solucionarlo con mayor facilidad y en menos tiempo en el futuro, también estaría muy padre si comentan consejos y tutoriales o guías básicas para cosas utiles en español para que los curiosos podamos hacer uso de estas y seguir aprendiendo! ?

    guías de como crear NPC, hacer eventos, modificar el nombre del servidor, poner imagenes seleccionadas en las pantallas de carga entre mapa y mapa y todas esas cosas vienen de maravilla 


    gracias por su ayuda y su apoyo (y) 
    espero que esto tambien te sirva a ti hermano del futuro que esta viendo esto! :B

    Por favor si vas a postear algo en español, utiliza el topic apropiado: https://rathena.org/board/forum/76-spanish-support/

  7. On 3/29/2023 at 12:49 PM, reidouraidou said:

    That fixed that but now this one shows up
     

    script error on npc/custom/etc/Compendium.txt line 366
        parse_simpleexpr: unmatched ')'
       361 : OnHour00:
       362 :        if(gettime(DT_DAYOFMONTH) == 1){
       363 :                query_sql("TRUNCATE `compendium`");
       364 :                end;
       365 :        }
    *  366 :        query_sql("UPDATE `compendium` SET `quest` = '"+.quest_count+" WHERE `quest` < '"+.quest_count'"''");
       367 : end;
       368 :
       369 : function       compendium_getexp       {
       370 :        .@exp_value = getarg(0);
       371 :        .@account_id = getcharid(3);

    Anyone got this one working?

    	query_sql("UPDATE `compendium` SET `quest` = '"+.quest_count+" WHERE `quest` < '"+.quest_count+"'");
  8. 21 hours ago, Daitroll said:

    ¡Hola!

    Una pregunta, ¿Qué color tengo que aplicar en NEMO > Chat color - GM, para que lo que escriba el GM quede en amarillo? he intentado aplicar todo en amarillo o mesclar con otros colores, pero no he logrado acertar al amarillo, me queda en un celeste (visible para los demás jugadores, porque desde mi cuenta de GM lo veo como verde).

    1.jpg

    No necesitas modificar en WARP para eso.

    Solo ve a este archivo en tu data: https://github.com/llchrisll/ROenglishRE/blob/master/Renewal/data/clientinfo.xml#L23

    Y antepon de esta forma a la declaración los id que estén utilizando los GMS:

            <yellow>
                <admin>2000001</admin>
                <admin>2000002</admin>
                <admin>2000003</admin>
            </yellow>

    Referencia: https://github.com/rathena/rathena/wiki/Clientinfo.xml

    • Upvote 1
  9. 13 hours ago, Daitroll said:

    Estuve usando el WARP, pero creo que lo que hace es remplazar el Doram por otro job que yo elija y indicarlo como si fuera algo pj nuevo (pide ingresar una ID que esta asociada a una clase), asimismo figuran con el nombre de Doram. ¿No es posible activar la interfaz antigua que solo salía una lineal para visualizar 3 pj?

    Respecto a los logros, en Nemo desactive el botón, pero no estoy seguro si lo que hace es solo ocultar y seguir funcionado o si se deshabilitan complementarte, a lo que me lleva a consultar si posible desactivar todo ese menú que figura en los datos del Pj, no recuerdo si en los pre renewall figuraba ese menu. Asimismo mañana probare si solo lo oculta el icono o no xD.

    Por ultimo respecto a las chat y/o iconos que figuran sin NPC, puse el archivo signboardlist_f.lub en Ro/system y active la opción desde el Nemo, funcionado, no obstante cuando abro el juego me figura un error. Intente dejar el signboardlist_f.lub sin contenido, también probé cambiando el nombre signboardlist.lub, aun así funciona, pero sigue saliendo el error abrir el exe (aceptando abre el juego y los iconos y chat no están, pero es molesto el error) 

     

    Adjunto captura del error

    12.png%20

     

    Para lo del Doram.

    data\luafiles514\lua files\service_korea\ExternalSettings_kr.lub

    MakeableRace = { Doram = true }

    Cambia por false*

    Y sobre el signboardlist... solo borra de la lista los carteles que no quieres ver...

    • Upvote 1
  10. 1 hour ago, Daitroll said:

    Mucha gracias por a sus comentarios, finalmente pude lograr crear el server pre renewal, asimismo de  desactivar los doram. Actualmente tengo tres dudas.

    1. Existe alguna forma de que al ingresar al juego y crear un personaje no figure la ventana de los doram? pese a que uno intente crear uno, figura como acceso denegado, pero aun asi son visibles.

    2. entre a conf/battle/feature.conf y le di a off a la linea que indicaba los logros, pero aun así figuran en el juego, mas que nada los queria desactivar porque no se que premios dan y si son acordes a un server pre renewal.

    3. Me figuran unas chat sin npc, como puedo desactivarlos?

     

    1.png

     

    Aquí: https://github.com/llchrisll/ROenglishRE/blob/master/Renewal/data/luafiles514/lua files/signboardlist_f.lub

    • Upvote 1
  11. 14 hours ago, Daitroll said:

    Quizás puede que haya hecho mal el paso de cambiarlo a pre renewal, en ese caso lo que hice fue solo modificar esta linea:

    /// Leave this line to enable renewal specific support such as renewal formulas
    #define PRERE

    y lo hice directamente de la carpeta de mi Pc (block de nota) ¿era así? 

     

    Asimismo me surgieron las siguientes dudas:

    - Cuando entro a crear un personaje, me sale la opción de crear un doram, siendo que es pre renewal, tengo entendido que no habían doram o si?

    - Siendo pre renewal, la interfaz es la misma que la de renewal?, es decir me figuran logros (los cuales me salen en koreano) mas un menu mas actualizado.

    - Como puedo saber en que capitulo se encuentra mi server?

    1. Doram se desactiva del lado del cliente. (usando en el buscador del foro podrás encontrar cómo hacerlo)

    2. Si visualizas un interface renewal, es porque estás usando un cliente renewal. Los logros los puedes deshabilitar desde conf/battle/feature.conf

    3. "Creo" que el pre-re de rathena está en el 13.3 (por favor corríjanme si me equivoco)

     

    Si tienes dudas sobre la conf. PRE, no olvides compilar tu emulador luego de realizar lo que te sugerí.

    • Love 1
  12. 4 hours ago, takechi said:

    Hola como estan?

    Tengo un problema en mi servidor que provoca que los jugadores no puedan lanzar habilidades de vez en cuando, esto es muy variable, todo funciona normal, y al pasar rato se bloquean las habilidades, esto se resulve relogeando pero no es una solucion

     

    Quedo muy atento si tiene alguna idea 

    Gracias

    Podrías compartir el hash de tu emulador y también indicar por si tienes algun evento relacionado a skills?

×
×
  • Create New...