Jump to content

Slammer

Members
  • Posts

    218
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by Slammer

  1. 11 hours ago, Angeluz said:

    Hello good, it turns out that I have problems when implementing official maps such as

    • map: grademk
    • map: nif_dun01
    • map: nif_dun02
    • map: 1@ch_t
    • map: 2@ch_t
    • map: 3@ch_t
    • map: 1@mjo1
    • map: 1@mjo2
    • map: 1@spa2
    • map: sp_rudus4

     

    I tried adding them with https://rathena.org/board/files/file/3858-mapcache-editor/ and weemapcache (I have been able to add other maps without problems)

    I am using a client version 2020-04-01, I do not know if someone could have added these maps that can help me a little

    this is the error that leaves me when crashing

     

    Module Name: C:\Users\sgots\Desktop\OceanRO\OceanRO.exe
    Time Stamp: 0x00000000 - Wed Dec 31 21:00:00 1969
    
    
    Exception Type: 0xc0000005
    
    0x0019f3ec	
    0x00920f19	OceanRO.exe
    0x004b75d0	OceanRO.exe
    0x006157e2	OceanRO.exe
    0x0072f619	OceanRO.exe
    0x00618c3c	OceanRO.exe
    0x0083f464	OceanRO.exe
    0x00a45d06	OceanRO.exe
    0x76fafa29	KERNEL32.DLL
    0x77dd7a7e	ntdll.dll
    0x77dd7a4e	ntdll.dll
    
    eax: 0x00000000	ebx: 0x517d68e0
    ecx: 0xffffffff	edx: 0x4b766630
    esi: 0x0019f43c	edi: 0x5179be50
    ebp: 0x0019f21c	esp: 0x0019f220
    
    stack 0019f220 - 0019f620
    0019F220 : 19 0F 92 00 60 E2 BC 00 00 00 00 00 6A 93 EF 87 
    0019F230 : 50 BE 79 51 28 2F CF 00 E0 68 7D 51 38 04 00 00 
    0019F240 : 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 
    0019F250 : 20 D7 9A 4B 40 02 3D 51 47 52 53 57 00 F2 19 00 
    0019F260 : 30 66 76 4B 80 07 00 00 44 6B CB 00 00 00 00 00 
    0019F270 : 00 1E 05 02 00 90 7E 00 00 00 00 00 00 00 00 00 
    0019F280 : D0 63 76 4B 00 00 00 00 00 00 00 00 00 00 00 00 
    0019F290 : D0 63 76 4B 00 00 00 00 E4 F2 19 00 B8 F2 19 00 
    0019F2A0 : C8 49 4B 00 20 00 00 00 80 00 36 01 48 F3 19 00 
    0019F2B0 : AC 18 84 46 40 F3 19 00 6F 62 DB 77 68 00 00 00 
    0019F2C0 : 20 00 00 00 50 BE 79 51 00 00 3A 01 DC F2 19 00 
    0019F2D0 : E0 F2 19 00 24 F4 19 00 9F 73 4B 00 20 00 00 00 
    0019F2E0 : 18 00 0C 00 18 00 00 00 00 08 23 01 64 00 00 00 
    0019F2F0 : 6F 62 DB 77 18 00 00 00 20 00 00 00 C8 AB 7A 51 
    0019F300 : 98 18 84 46 00 00 00 00 00 00 00 00 00 00 23 01 
    0019F310 : 02 00 00 00 02 00 00 00 03 00 00 00 00 00 23 01 
    
    Launch Info 
    00A4 00A4 0000 0000 0000 0000 0000 0000 
    0000 0000 0000 0000 0000 0000 0000 0000 
    0000 0000 0000 0000 0000 0000 0000 0000 
    0000 0000 0000 0000 0000 0000 0000 0000 
    
    Job : Novice
    
    1@ch_t.rsw 267 350
    
    ro_ 824

     

     

    Thx

    try use exe 2021!

  2. 12 hours ago, Break said:

    After loading the character, the client closes without any errors, and this also does not always happen and after one or two.

    There are no errors in the console

    
    [Status]: Using packet version: 20180621.
    [Status]: Packet Obfuscation: Disabled.

    clientinfo.xml 

     

    
    <version>55</version>

     

    CDClient.dll from the Input folder of the nemo patcher

    Data/lua from https://github.com/zackdreaver/ROenglishRE

    List of patches in attachment

    Please help me solve the problem, dear experts.

    2018-06-21aRagexeRE_patched.exe.log 2.64 kB · 0 downloads

    Enable [Disable packet Encryption] on nemo

    src\config\packets.hpp

    #if PACKETVER >= 20110817
        /// Comment to disable the official packet obfuscation support.
        /// This requires PACKETVER 2011-08-17 or newer.
        #ifndef PACKET_OBFUSCATION
            #define PACKET_OBFUSCATION

            // Define these inside src/custom/defines_pre.hpp or src/custom/defines_post.hpp
            //#define PACKET_OBFUSCATION_KEY1 <key1>
            //#define PACKET_OBFUSCATION_KEY2 <key2>
            //#define PACKET_OBFUSCATION_KEY3 <key3>

            /// Comment this to disable warnings for missing client side encryption
            #define PACKET_OBFUSCATION_WARN
        #endif
    #else

    to

    #if PACKETVER >= 20110817
        /// Comment to disable the official packet obfuscation support.
        /// This requires PACKETVER 2011-08-17 or newer.
        #ifndef PACKET_OBFUSCATION
            //#define PACKET_OBFUSCATION

            // Define these inside src/custom/defines_pre.hpp or src/custom/defines_post.hpp
            //#define PACKET_OBFUSCATION_KEY1 <key1>
            //#define PACKET_OBFUSCATION_KEY2 <key2>
            //#define PACKET_OBFUSCATION_KEY3 <key3>

            /// Comment this to disable warnings for missing client side encryption
            //#define PACKET_OBFUSCATION_WARN
        #endif
    #else

    and recompile

  3. 17 minutes ago, luanfolive said:
    
    The guild does not have a guild storage.
    @gstorage failed.

    Esse é o erro que estou tendo, já procurei em outros tópicos mas continuo a ter dois erros, na hora de dar diff no SRC que o pessoal indica para atualizar, já tentei adicionar no pre-re/guild_skill_tree o   - Id: GD_GUILD_STORAGE  MaxLevel: 5, mas não funciona. Aprece um erro no Map.exe dizendo que a habilidade GD_GUILD_STORAGE não existe. Se alguém souber como resolve isso, ficarei grato.

    1. edit src/common/moo.h

    #ifdef RENEWAL
    #define MAX_GUILDSKILL    20 ///Max Guild skills
    #else
    #define MAX_GUILDSKILL    20 ///Max Guild skills
    #endif
    become :
    #define MAX_GUILDSKILL    20 ///Max Guild skills

    2.edit db/pre-re/skill_db.yml

    add :
      - Id: 10016
        Name: GD_GUILD_STORAGE
        Description: Guild Storage Expansion
        MaxLevel: 5
        Flags:
          IsGuild: true

    Hopefully it can help you

    • Love 1
  4. 9 hours ago, amanikoko said:

    I am experiencing the with Correct VIEW ID but when equipped, there's nothing appear on my Character. 

    any idea on how to solved this? there's some others item are having the same issue also.

    The act. & Spr. file are in place inside my server's GRF yet it is not showing.

    I find it pretty weird... is anyone faced the same issue before as i am currently?

    have you already add id robe at transparentItem.lub?

  5. 7 hours ago, Sashimi said:

    How do I add an official skill to a pet? As heal for example

    like poring loot item?

    // Whether or not the pet's will use skills. (Note 1)
    // Note: Offensive pet skills need at least pet_attack_support or
    // pet_damage_support to work (they trigger while the pet is attacking).
    pet_status_support: no
    to
    pet_status_support: yes

    note : if server has running first pet_status_support: no then pet_status_support: yes
    make egg/pet are disappear

  6. 8 hours ago, acacioleite92 said:

    Hello guys

    
    Could someone send me a hexed diffed 2010-07-30aRagexeRE with a setup that works on Windows 10? (Pre-Renewal)
    
    I am really desperate, I have been trying for months and I cannot solve this. 
    
    My biggest problem is the setup, no resolution works even in fullscreen mode.
    
    Does Setup need any more files to work well?

     

     

     

    try this setup.

    Setup.exe

  7. 3 hours ago, botka4aet said:

    data/msgstringtable.txt

    [%s] opened [%s] and awarded with '%s'!!#
     

     

     

    maybe u can change :
    [%s] opened [%s] and awarded with '%s'!!#
    to
    [%s] obtained from [%s] an item, that is '%s'!!#

    because if u set item like old blue box, open and  announce it.
    it's use same id at msgstringtable...

  8. 9 hours ago, ahloi007 said:

    Hi thanks for your reply Slammer, just to inform you about the script don't function well.

    Even I've already set the time for the Boost Rate start on time.

    No error occur in the script.

    share your script.

    i use last data server.

  9. 3 hours ago, chadness said:

    thankyou sir how about if the weapon or armors or headgear failed is there also an announcer?

    here you go...

     

    Quote

    function    script    refinemain    {

        disable_items;
        .@npc_name$ = getarg(0);
        .@features = getarg(1);
        mes "["+ .@npc_name$ +"]";
        mes "I'm the Armsmith.";
        mes "I can refine all kinds of weapons, armor and equipment, so let me";
        mes "know what you want me to refine.";
        next;

        setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
        for(.@i = 1; .@i<getarraysize(.@indices); ++.@i) {
            if(getequipisequiped(.@indices[.@i])) {
                .@menu$ = .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]";
                .@equipped = 1;
            }
            .@menu$ = .@menu$ + ":";
        }
        if (.@equipped == 0) {
            mes "["+ .@npc_name$ +"]";
            mes "I don't think I can refine any items you have...";
            close;
        }
        .@part = .@indices[select(.@menu$)];

        if(!getequipisequiped(.@part)) { //custom check
            mes "["+ .@npc_name$ +"]";
            mes "You're not wearing";
            mes "anything there that";
            mes "I can refine.";
            emotion ET_FRET;
            close;
        }
        //Check if the item is refinable...
        if(!getequipisenableref(.@part)) {
            mes "["+ .@npc_name$ +"]";
            mes "I don't think I can";
            mes "refine this item at all...";
            close;
        }
        //Check to see if the items is already +10
        if(getequiprefinerycnt(.@part) >= 10) {
            mes "["+ .@npc_name$ +"]";
            mes "I can't refine this";
            mes "any more. This is as";
            mes "refined as it gets!";
            close;
        }
        .@refineitemid = getequipid(.@part); // save id of the item
        .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
        setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
        .@price = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_ZENY_COST);
        .@material = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_MATERIAL_ID);

        switch (getequipweaponlv(.@part)) {
            case 1: .@safe = 7; break;
            case 2: .@safe = 6; break;
            case 3: .@safe = 5; break;
            case 4:
            default: .@safe = 4; break;
        }

        // If the VIP system is enabled, the prices for non-VIP players are considerably higher.
        if (VIP_SCRIPT && !vip_status(VIP_STATUS_ACTIVE)) {
            switch(getequipweaponlv(.@part)) {
                case 0: .@price = .@price * 10; break;
                case 1: .@price = .@price * 40; break;
                case 2: .@price = .@price * 50; break;
                case 3: .@price = .@price * 2; break;
                case 4: .@price = .@price * 2; break;
                case 5: .@price = .@price * 10; break;
            }
        }

        if(.@features != 1) {
            mes "["+ .@npc_name$ +"]";
            mes "To refine this I need";
            mes "one ^003366"+getitemname(.@material)+"^000000 and";
            mes "a service fee of " + .@price + " Zeny.";
            mes "Do you really wish to continue?";
            next;
            if(select("Yes:No") == 2){
                mes "["+ .@npc_name$ +"]";
                mes "Yeah...";
                mes "There's no need to";
                mes "rush. Take your time.";
                close;
            }
            if(getequippercentrefinery(.@part) < 100) {
                mes "["+ .@npc_name$ +"]";
                mes "Oh no! If I continue to";
                mes "refine this, there's a risk it could";
                switch(.@material) {
                case 985:
                    mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
                    break;
                default:
                    mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
                    mes "or any added special properties.";
                    break;
                }
                next;
                mes "["+getarg(0)+"]";
                mes "I can't make it any clearer.";
                mes "Once a weapon is destroyed,";
                mes "there's no getting it back.";
                mes "You really have a chance to";
                mes "^FF0000lose this weapon^000000 forever.";
                mes "Do you still want to refine?";
                next;
                if(select("Yes:No") == 2){
                    mes "["+ .@npc_name$ +"]";
                    mes "I completely agree...";
                    mes "I might be a great refiner, but sometimes even I make mistakes.";
                    close;
                }
            }
            if((countitem(.@material) < 1) || (Zeny < .@price)) {
                mes "["+ .@npc_name$ +"]";
                mes "You don't seem to have";
                mes "enough Zeny or "+getitemname(.@material)+"...";
                mes "Go get some more. I'll be";
                mes "here all day if you need me.";
                close;
            }
            Zeny = Zeny-.@price;
            delitem .@material,1;

            // anti-hack
            if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3]) ||
                callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) {
                mes "["+ .@npc_name$ +"]";
                emotion ET_FRET;
                mes "Wait a second...";
                mes "Do you think I'm stupid?!";
                mes "You switched the item while I wasn't looking! Get out of here!";
                close;
            }

            if(getequippercentrefinery(.@part) <= rand(100)) {
                announce strcharinfo(0)+" has failed refined a "+getequipname(.@part)+"+"+getequiprefinerycnt(.@part)+" to "+getequipname(.@part)+"+"+(getequiprefinerycnt(.@part)+1)+"!",0;
                failedrefitem .@part;
                mes "["+ .@npc_name$ +"]";
                emotion (!rand(5))?ET_MONEY:ET_HUK;
                .@lose = rand(1,3);
                if (.@lose == 1) {
                    mes "OH! MY GOD!";
                    mes "Damn it! Not again!";
                    mes "I'm terribly sorry, but you know practice does make perfect.";
                    mes "Um, right? Heh heh...";
                } else if(.@lose == 2) {
                    mes "Nooooooo!";
                    mes "It broke!";
                    mes "I-I'm sorry!";
                } else {
                    mes "Crap!";
                    mes "It couldn't take";
                    mes "much more tempering!";
                    mes "Sorry about this...";
                }
                close;
            }
            mes "["+getarg(0)+"]";
            successrefitem .@part;
            if (getequiprefinerycnt(.@part) >= 8 && getequipweaponlv(.@part) == 1){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 7 && getequipweaponlv(.@part) == 2){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 6 && getequipweaponlv(.@part) == 3){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 5 && getequipweaponlv(.@part) == 4){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 5) && (.@part == EQI_GARMENT || .@part == EQI_HEAD_TOP || .@part == EQI_SHOES || .@part == EQI_ARMOR){
            announce strcharinfo(0)+" has refined armor "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            emotion ET_SMILE;
            .@win = rand(1,3);
            if (.@win == 1) {
                mes "Perfect!";
                mes "Heh heh!";
                mes "Once again,";
                mes "flawless work";
                mes "from the master~";
            } else if(.@win == 2) {
                mes "Success...!";
                mes "Yet again, my amazing";
                mes "talent truly dazzles";
                mes "and shines today.";
            } else {
                mes "Heh heh!";
                mes "I'm all done.";
                mes "No doubt, my work is";
                mes "to your satisfaction.";
                mes "Sheer, utter perfection~";
            }
            close;
        }

    // New Refining Functions ========================
        if (.@refinerycnt < .@safe) {
            mes "["+ .@npc_name$ +"]";
            mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
            next;
            .@menu2 = select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
        } else
            .@menu2 = 2;
        switch(.@menu2){
        case 1:
            .@refinecnt = .@safe - .@refinerycnt;
            break;
        case 2:
            next;
            mes "["+ .@npc_name$ +"]";
            mes "How many times would you like me to refine your item?";
            next;
            input .@refinecnt;
            .@refinecheck = .@refinecnt + .@refinerycnt;
            if (.@refinecnt < 1 || .@refinecheck > 10) {
                mes "["+ .@npc_name$ +"]";
                mes "I can't refine this item that many times.";
                close;
            }
            if(.@refinecheck > .@safe) {
                .@refinecheck = .@refinecheck - .@safe;
                mes "["+ .@npc_name$ +"]";
                mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
                next;
                if(select("Yes...","No...") == 2){
                    mes "["+ .@npc_name$ +"]";
                    mes "You said so... So be it.";
                    close;
                }
            }
            break;
        case 3:
            next;
            mes "["+ .@npc_name$ +"]";
            mes "You said so... So be it.";
            close;
        }
        .@fullprice = .@price * .@refinecnt;
        mes "["+ .@npc_name$ +"]";
        mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
        next;
        if(select("Yes","No...") == 2){
            mes "["+ .@npc_name$ +"]";
            mes "You said so... So be it.";
            close;
        }
        if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
            mes "["+ .@npc_name$ +"]";
            mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
            close;
        }
        Zeny = Zeny - .@fullprice;
        delitem .@material,.@refinecnt;
        while(.@refinecnt){
            if (getequipisequiped(.@part) == 0) {
                mes "["+ .@npc_name$ +"]";
                mes "Look here... you don't have any items on...";
                close;
            }
            // anti-hack
            if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3]) ||
                    callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
                mes "["+ .@npc_name$ +"]";
                mes "Clang... No, but did you imagine I could be so stupid?!";
                mes "You changed it...";
                mes "Get out before I stun you with my Hammer!!";
                close;
            }
            mes "Clang, clang!!!";
            if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
                failedrefitem .@part;
                announce strcharinfo(0)+" has failed refined a "+getequipname(.@part)+"+"+getequiprefinerycnt(.@part)+" to "+getequipname(.@part)+"+"+(getequiprefinerycnt(.@part)+1)+"!",0;
                emotion ET_HUK;
                mes "["+ .@npc_name$ +"]";
                mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
                .@refinecnt = .@refinecnt - 1;
                if(.@refinecnt == 0) close;
                mes "Here's the unused Zeny and materials back...";
                getitem .@material,.@refinecnt;
                .@fullprice = .@refinecnt * .@price;
                Zeny = Zeny + .@fullprice;
                close;
            }
            successrefitem .@part;
            if (getequiprefinerycnt(.@part) >= 8 && getequipweaponlv(.@part) == 1){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 7 && getequipweaponlv(.@part) == 2){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 6 && getequipweaponlv(.@part) == 3){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 5 && getequipweaponlv(.@part) == 4){
            announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            else if (getequiprefinerycnt(.@part) >= 5) && (.@part == EQI_GARMENT || .@part == EQI_HEAD_TOP || .@part == EQI_SHOES || .@part == EQI_ARMOR){
            announce strcharinfo(0)+" has refined armor "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;}
            emotion ET_BEST;
            .@refinecnt = .@refinecnt - 1;
            .@refinerycnt = getequiprefinerycnt(.@part);
            next;
        }
        mes "["+ .@npc_name$ +"]";
        mes "All finished... Come again soon.";
        close;
    }

     

    • MVP 1
  10.       if (countitem(item_id)<quality || countitem(item_id)<quality) {
          getitem item_id,quality;
          dispbottom "You need [ blablabla ].";
          }
          if (countitem(item_id)>quality && countitem(item_id)>quality) {
          delitem item_id,quality;
          delitem item_id,quality;
          getitem callfunc("F_Rand",item_id,item_id,item_id,.......),1;
          }

    maybe can help you

×
×
  • Create New...