Jump to content

Yukaiii

Members
  • Posts

    115
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Yukaiii

  1. 43 minutes ago, Chaos92 said:

    ah so its eamod. So.. why not get a clean of it instead. This is rathena by the way.

    The problem is that I would lose many modifications to the src. I have several scripts that depend on the src and I also wouldn't know how to update the code.

  2. Guys, I'm facing a bug on my server, which I simply can't find where to fix... I've looked through everything and I can't find what's causing this. skill: holy light and occult impact These skills are coming out two hits at once, I already looked at skill_db skill_cast everything is in order If anyone can give me any help or any tips that could help me, I would really appreciate it! emulator: eamod

  3. Hello guys, how are you?
    Guys, could anyone help me solve it, I don't know if it's a problem or not.
    I wanted the occult impact ability to only come out with one hit each time it was used.
    I've been doing some tests and I've messed with everything but I couldn't fix it.
    It's not every time, but every now and then it comes out two at once.
    I remember that many years ago, on other servers that I used, two did not come out at once.

     

    I apologize if I posted it in the wrong place.

     

     

    Skill_db 

    266,2,6,1,0,0x40,0,5,1,no,0,0,0,weapon,0,    MO_INVESTIGATE,Occult Impaction

     

    Skill_cast

    266,1000,500,0,0,0,0

  4. Answering the solution in case anyone ever runs into this problem..

    \conf\import\char_conf

     

    Quote

    conf/import/char_conf.txt
    login_ip: 127.0.0.1
    char_ip: vps_ip
    conf/import/map_conf.txt
    char_ip: 127.0.0.1
    map_ip: vps_ip

    I'm answering this old topic because I went through this and couldn't find a solution, until I racked my brains and found out where to solve it.

  5. On 3/26/2024 at 10:18 AM, Skorm said:

    I'm just now seeing this and don't have the time to test things out, but I've had problems warping players with similar BG scripts. I can't exactly remember what the problem was because its been years, but you should try collecting all of the players cids/aids for each team and then warping them individually instead of mapwarp/partywarp.

     

     

    I tried it without success my friend..

     

    [Erro]: script_rid2sd: erro fatal! no associated players!
    [Depurar]: Function: getcharid (1 parametro):
    [Depurar]: Dado: number value=1
    [Depurar]: Source (NPC): 3 vs 3 Party on arena_room (105,93)

     

    I'm having this error and these warnings as soon as a game ends...
    Then when I register again, only the party leaders enter..

    I added all the code to the sorce... everything is fine, the only problem I've been encountering is this...

     

     

  6. Good night friends.
    Guys, I did a search on the forum, but I couldn't find a detailed explanation.
    If someone could tell me how I can reduce the freezing time based on luk.

     

     

    Would the modification be done right here?

    Quote

            case SC_FREEZE:
                sc_def = status->mdef*100;
                sc_def2 = status->luk*10 + status_get_lv(bl)*10 - status_get_lv(src)*10;
                tick_def2 = status_src->luk*-10; // Caster can increase final duration with luk
                break;

    Example: Normal freezing lasts an average of 10 seconds.
    with 100 luk it would reduce it to 4 seconds frozen.

     

    I've already tried a few ways here but none with success.

     

    Thank you very much in advance!!

  7. 10 hours ago, Skorm said:

    I'm just now seeing this and don't have the time to test things out, but I've had problems warping players with similar BG scripts. I can't exactly remember what the problem was because its been years, but you should try collecting all of the players cids/aids for each team and then warping them individually instead of mapwarp/partywarp.

     

     

    I'll be testing it later, thanks for the tip friend.

  8. Guys, I wanted some tips or even some help from you...
    I know this is rathena, in fact I use it and have a rathena server too..
    but I'm trying to put another project of mine online, a very old project.
    And I would like to ask for your help so I can fix this script.

    Error: when both parties register, everything goes well in the first match, but then when you register again, instead of teleporting the entire party in case 3, you end up teleporting only 1 player, the leader.

    Thank you very much for any help you may have!!

    Quote

    arena_room,105,93,5    script    3 vs 3 Party    822,{
        if (BaseLevel < 250 || Class==Job_Novice || Class==Job_Baby || Class==Job_Novice_High) {
        mes "[Arena Guide]";
        mes "Sorry, you need to be above level 250 or not be an Apredinz.";
    close;
    }
    if (getpartyleader(getcharid(1),2) != getcharid(0)) {
    mes "Only the Party leader can Register!"; 
    close;


    if (getpartymembercount(getcharid(1)) != 3 && getpartycount(getcharid(1)) != 3){
     mes "Sorry, you don't meet the requirements, check if your Party has 3 people and try again.";
    close;
        }

     
    getpartymember getcharid(1),0;
    getpartymember getcharid(1),1;
    getpartymember getcharid(1),2;
    set .@count, $@partymembercount;
    if(.@count < 3)
    end; //Not enough members
    copyarray .@charid[0],$@partymembercid[0],$@partymembercount;
    //if($@partymembercount != ) end;
        for(set .@i,0; .@i < .@count; set .@i, .@i + 1){
        if( isloggedin($@partymemberaid[.@i],$@partymembercid[.@i]))
            set .@online, .@online + 1;
        }
        if(.@count != .@online){
    mes" Some group member is not online!";
            close;
    }    //Not all users on


    mes "Welcome to 3 vs 3 Party!!!";
    set .@i,0;
    mes "Do you want to register?";
    if ( select( "Sim", "Não" ) == 2 ) close;
    else if ( .signup_count == 128 ) {
    mes "Desculpe a fila está cheia";
            close;
        }
    while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count )
    set .@i, .@i +1;
    if ( .@i < .signup_count ) {
    mes "Sua Party já está registrada.";
    mes "You have ^FF0000"+(.signup_count-1)+"^000000 Parties in front of you.";
     
            close;
        }
    set .signup_aid[ .signup_count ], getcharid(3);
    set .signup_count, .signup_count +1;
    mes "Congratulations, you are now on the waiting line for 3vs3 Party!";
    mes "Your position is: ^FF0000"+(.signup_count-1)+"^000000";
    dispbottom "You have  "+(.signup_count-1)+" Parties in front of you !";
        close2;
    L_start:
    if ( .signup_count < .min2start ) end;
    for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 ) {
    if ( attachrid( .signup_aid[.@i] ) ) {
    if ( getmapflag( strcharinfo(3), mf_nowarp ) ) { // player has went into another event
         deletearray .signup_aid[.@i], 1;
                   set .signup_count, .signup_count -1;
                    set .@i, .@i -1;
                }
            }
            else {
                deletearray .signup_aid[.@i], 1;
                set .signup_count, .signup_count -1;
                set .@i, .@i -1;
            }    
        }
    if ( .start || .signup_count < .min2start ) end;
    announce "A 3vs3 Match Started!", 0;
    set .start, 1;
    for ( set .@i, 0; .@i < .signup_count; set .@i, .@i +1 )
    setbgid ( .@i %2 )? .red : .blue, .signup_aid[.@i];
    deletearray .signup_aid, .min2start;
    set .signup_count, .signup_count - .min2start;
    bg_warp .red, "guild_vs1-1", 7,49;
    bg_warp .blue, "guild_vs1-1", 92,49;
    cleararray .score[1], .startingscore, 2;
    bg_updatescore "guild_vs1-1", .score[1], .score[2];
    sleep .eventlasting * 1000;
        if ( .start == 1 ) {
          if ( .score[1] == .score[2] )
               mapannounce "guild_vs1-1", "Empate !", 0;
            else if ( .score[1] > .score[2] ) {
                mapannounce "guild_vs1-1", " Red side wins !", 0;
                callsub L_reward, .red;
            }
            else if ( .score[1] < .score[2] ) {
                mapannounce "guild_vs1-1", " Blue side wins !", 0;
                callsub L_reward, .blue;
            }
        }
        bg_warp .red, "izlude", 128,117;
        bg_warp .blue, "izlude", 128,117;
        bg_kickall .red;
        bg_kickall .blue;
        set .start, 0;
        deletearray .score;
        goto L_start;


    L_reward:
        getbgusers getarg(0);
        for ( set .@i, 0; .@i < $@arenamembersnum; set .@i, .@i +1 )
    //    getitem 501, 1, $@arenamembers[.@i]; // item reward
        bg_kickall .red;
        bg_kickall .blue;
        set .start, 0;
        deletearray .score;
        warpparty "lhz_cube",66,192,getcharid(1);
        enablenpc "Partytwo";
        enablenpc "Partyone";
        goto L_start;
        return;

    OnredDead: callsub L_dead, 1;
    OnblueDead: callsub L_dead, 2;

    L_dead:
        set .score[ getarg(0) ], .score[ getarg(0) ] -1;
        bg_updatescore "guild_vs1-1", .score[1], .score[2];
        if ( !.score[ getarg(0) ] )
            awake strnpcinfo(0);
        sleep2 1250;
        percentheal 100,100;
        end;
     
    OnredQuit: callsub L_quit, 1, .red;
    OnblueQuit: callsub L_quit, 2, .blue;
    L_quit:
     
        if ( bg_get_data( getarg(1), 0 ) ) end;
        set .score[ getarg(0) ], 0;
        awake strnpcinfo(0);
    end;
     
     
     
     
    OnInit:
        set .eventlasting, 100 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins
        set .min2start, 2; // minimum player to start
        set .startingscore, 6; // score at start
        set .red, createbgid( "guild_vs1-1", 7,49, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" );
        set .blue, createbgid( "guild_vs1-1", 92,49, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" );
        set $psvp_map$,"guild_vs1-1";
        set $pvsp_grupo1,0;
        set $pvsp_grupo2,0;
        set $pvsp_kill1,0;
        set $pvsp_kill2,0;
        end;
     

    OnPCKillEvent:
    if(strcharinfo(3) == $psvp_map$)
     {
             if(getcharid(1) == $pvsp_grupo1)
         {
               set $pvsp_kill1,$pvsp_kill1+1;
                mapannounce $psvp_map$,"Party  ["+getpartyname($pvsp_grupo1)+"] Matou "+$pvsp_kill1+"/3 Membros da  Party ["+getpartyname($pvsp_grupo2)+"]!",bc_all;

               }
     
            if(getcharid(1) == $pvsp_grupo2)
                {
                set $pvsp_kill2,$pvsp_kill2+1;
                mapannounce $psvp_map$,"Party ["+getpartyname($pvsp_grupo2)+"] Matou "+$pvsp_kill2+"/3 Membros da Party ["+getpartyname($pvsp_grupo1)+"]!",bc_all;

           }
            if($pvsp_kill1 == 3)
                {
                announce "[3 vs 3] Party ["+getpartyname($pvsp_grupo1)+"] è a vencedora !",bc_all;
    sleep 3000;
    mapwarp "guild_vs1-1","lhz_cube",66,192;
        callsub L_reward, .red;
            }
     
            if($pvsp_kill2 == 3)
                {
               announce "[3 vs 3] Party ["+getpartyname($pvsp_grupo2)+"] é a vencedora !",bc_all;
    sleep 3000;
    mapwarp "guild_vs1-1","lhz_cube",66,192;
        callsub L_reward, .blue;
            }
    end;
        }
    }
    guild_vs1-1,7,49,0    script    Partyone    139,5,5,{
     
    warpparty "guild_vs1-1",7,49,getcharid(1);
    set $pvsp_grupo1,0;
    set $pvsp_kill1,0;
    if($pvsp_grupo1 == 0) set $pvsp_grupo1,getcharid(1);
    sleep 1000;
    disablenpc "Partyone";
    end;
    }
    guild_vs1-1,92,49,0    script    Partytwo    139,5,5,{
    set $pvsp_grupo2,0;
    set $pvsp_kill2,0;
    warpparty "guild_vs1-1",92,49,getcharid(1);
    if($pvsp_grupo2 == 0) set $pvsp_grupo2,getcharid(1);
    sleep 1000;
    disablenpc "Partytwo";
    end;
    }

    lhz_cube,66,192,3    script    partyvsparty0    139,5,5,{

    if(getcharid(1) == $pvsp_grupo1)
                   {
    getitem 20043,3;
    warp "arena_room",99,88;


        close;
         }
     
    if(getcharid(1) == $pvsp_grupo2)
                {
    getitem 20043,3;
    warp "arena_room",99,88;

    close;
          }

    }

    -    script    Remove_Buffs3    -1,{

    OnPCLoadMapEvent:

    if(strcharinfo(2) == "guild_vs1-1" || strcharinfo(2) == "guild_vs1-2" ){
    sc_end -1;
    }
    end;

    OnPCDieEvent:
        getmapxy(@map$,$@x,$@y,0);
        if (@map$ == "guild_vs1-1") {
        sleep2 1;
        atcommand "@alive";
        warp "prontera",156,191;
        end;
    }
    }

    guild_vs1-1    mapflag    nosave    SavePoint
    guild_vs1-1    mapflag    nowarp
    guild_vs1-1    mapflag    nowarpto
    guild_vs1-1    mapflag    noteleport
    guild_vs1-1    mapflag    nomemo
    guild_vs1-1    mapflag    nopenalty
    guild_vs1-1    mapflag    nobranch
    guild_vs1-1    mapflag    noicewall
    guild_vs1-1    mapflag    pvp

    guild_vs1-1    mapflag    noexp
    guild_vs1-1    mapflag    noreturn
    guild_vs1-1    mapflag    pvp_noguild

     

  9. Quote

    // Skill Damage Adjustment Database
    //
    // Structure of Database:
    // SkillName,Caster,Map,Damage against Players{,Damage against Mobs{,Damage against Bosses{,Damage against Other}}}
    //
    // Caster: The groups for which the adjustment takes effect. (bitmask)
    //         1 = Player
    //         2 = Monster
    //         4 = Pet
    //         8 = Homunculus
    //        16 = Mercenary
    //        32 = Elemental
    //
    // Map:
    //         1    - Normal (the maps that aren't classified as these maps below)
    //         2    - PVP
    //         4    - GVG
    //         8    - Battlegrounds
    //         16   - 'skill_damage' mapflag
    // Restricted zones - they're configured by 'restricted <number>' mapflag
    //         32   - Zone 1
    //         64   - Zone 2
    //         128  - Zone 3
    //         256  - Zone 4
    //         512  - Zone 5
    //         1024 - Zone 6
    //         2048 - Zone 7
    //
    // Notes:
    //      Damage is a percentage between -100 and 100000.
    //      Negative values decrease damage and positive values increase it (0 = no change).
    //
    // Examples:
    // MC_MAMMONITE,1,1,50 // In normal maps, players deal +50% damage to other players with Mammonite.
    // MO_EXTREMITYFIST,1,6,-50 // In PVP and GVG, players deal -50% (half) damage to other players with Asura Strike.
    // AB_ADORAMUS,1,6,50,0,10,15 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.
    MO_EXTREMITYFIST,2,1,-100

    Good morning guys!!!
    I wish someone could explain to me how this works.
    I usually change the damage of skills in src, here I tried every way, but I never managed to make it work.
    I wanted to increase Magic Crash's damage here and reduce Asura by 100% on MVP's.
    I've tried it several times and I don't know if it's really working.

    MO_EXTREMITYFIST,2,1,-100

    If anyone can give me a more concrete explanation...
    thank you very much.

  10. 10 hours ago, Tokei said:

    Hmm, you'd definitely want to add more checks on this, but here:

    -	script	Mob Helper	-1,{
    OnNPCKillEvent:
    	// Fixed improper usage of rand for "chance"
    	if (500 < rand(10000)) end;
    	if (mkTimed && gettimetick(2) <= mkTimed) end;
    	// Don't use "set" anymore, that's way outdated.
    	// Using getmonsterinfo isn't a bad idea, but it's somewhat useless/broken now. You'd have to expand on it in the source to make it useful.
    	getunitdata(killedgid, .@mobdata);
    	// There's no reason to use player variables in this case, the variable has no purpose outside of the NPC block code. Therefore it should be a NPC variable.
    	.@MobMode = .@mobdata[UMOB_MODE];
    	.@MobClass = .@mobdata[UMOB_CLASS];
    	if (!(.@MobMode & MD_CANMOVE)) end;
    	if (!(.@MobMode & MD_CANATTACK)) end;
    	// MD_BOSS/32 isn't a thing anymore either, so that code won't work.
    	if (.@MobClass == CLASS_BOSS) end;
    	// Too much wrong with these lines.
    	//set @WoE[0],1288|1285|1830|1949|1950|1286|1287|1899|1829;                                    //WoE IDs
    	//for(set @n,0; @n < getarraysize(@WoE); set @n,@n+1){ if(@WoE[@n] == killedrid){ end; } }    //WoE
    	// You probably meant to use "setarray", and you also probably to use commas instead of separators: setarray @woe, 1288, 1285, ..;
    	// Either way, that's inefficient considering this code runs on all killed monsters. Honestly I'd do the whole thing via the source instead since running a script everytime you kill a monster is overkill. Anyhow, use a dictionary seach:
    	if (.badMob[killedrid]) end;
    	.@nTime = (300 + rand(0, 120)) - getmonsterinfo(killedrid, MOB_LV);
    	// The main reason why your script didn't work: "summon" uses miliseconds, not seconds.
    	.@nTime *= 1000; // s to ms
    	summon "Ajudante " + getmonsterinfo(killedrid, MOB_NAME), killedrid, .@nTime;
    	mkTimed = gettimetick(2) + .@nTime + rand(0, 60);
    	message strcharinfo(0), "[" + getmonsterinfo(killedrid, MOB_NAME) + "] Hello " + strcharinfo(0) + " I will help you for a few minutes!";
    	end;
    OnInit:
    	// Define bad mobs here
    	.badMob[1288] = 1;
    	.badMob[1285] = 1;
    	.badMob[1830] = 1;
    	.badMob[1949] = 1;
    	.badMob[1950] = 1;
    	.badMob[1286] = 1;
    	.badMob[1287] = 1;
    	.badMob[1899] = 1;
    	.badMob[1829] = 1;
    	end;
    }

     

    Thank you very much friend!!

  11. Quote

    // . Description: .
    // . Change from dead monster reborn to help for some . .
    // . minutes. . .
    // . A percentage is 5% and can be changed.
    // . a permanent variable is generated with the time of .
    // . 'validity' of the monster, so only the char already has .
    // . a monstrous helper, he won't get another one and that one.
    // . 'expiration' time is 5 minutes + rand(120) being .
    // . so a time between 5 and 7 minutes - monster level, .
    // . that is, the higher the level of the monstrous, the less.
    // . 'expiration' time it will have.
    // . Not valid for MvP/Boss, monsters that don't attack. .
    // . and they don't move and they are WoE monsters               .
    // .----------------------------------------------------------.
    -    script    Mob Helper    -1,{

        OnNPCKillEvent:
            if(rand(0,10000) > 500) end;                                                                //5% para conseguir
            if(mkTimed && gettimetick(2) <= mkTimed) end;                                                //Checa tempo
            set @MobMode, getmonsterinfo(killedrid,MOB_MODE);
            if(!(@MobMode & 1)) end;                                                                    //Mob não se move
            if(!(@MobMode & 128)) end;                                                                    //Mob não ataca
            if(@MobMode & 32) end;                                                                        //Mob MvP/Boss
            set @WoE[0],1288|1285|1830|1949|1950|1286|1287|1899|1829;                                    //WoE IDs
            for(set @n,0; @n < getarraysize(@WoE); set @n,@n+1){ if(@WoE[@n] == killedrid){ end; } }    //WoE
            
            set @nTime, (300+rand(0,120))-getmonsterinfo(killedrid,1);
            summon "Ajudante "+getmonsterinfo(killedrid,0), killedrid, @nTime;
            set mkTimed, gettimetick(2)+@nTime+rand(0,60);
            message strcharinfo(0),"["+getmonsterinfo(killedrid,0)+"] Hello "+strcharinfo(0)+" I will help you for a few minutes!";
        end;

    }

    What's up guys!!
    Guys, could anyone help me with this script?
    it simply does not present any errors in the emulator.
    It shows the message that mob will appear to help and but it doesn't appear, could anyone tell me how I can fix this?

     

     

    Dimension-RO 19_03_2024 12_00_32.png

  12. On 17/03/2024 at 21:55, dukenukexd said:

    tive alguns problemas quando meus chars atingiram o nível 99, não consigo ir mais longe, todos os mobs dão experiência muito baixa, como posso resolver isso? 
    ajustando a exp base que os mobs dão? ou ajustar a tabela de exp?

    ajuda por favor

    Firstly, you need to know if your server is configured for which level.

     

    After changing it however you see fit.

    conf\battle\exp

     

    // Rate at which exp. is given. (Note 2)
    base_exp_rate: 1000000

    // Rate at which job exp. is given. (Note 2)
    job_exp_rate: 1000000

  13.  

    Pessoal, como vocês estão?
    Sei que é um anti bot bem antigo... mas acho muito interessante, estou fazendo alguns testes aqui no meu servidor e estão aparecendo esses erros... alguém poderia me dizer como consertar?

     

    este é o  Antibot - Matador de Bots 6

     

     

    imagem.thumb.png.c4124621dd5fa475a3bceda0bfde064c.png

  14. 22 hours ago, pajodex said:

    I believe this is not related to the script.

     

     

    If you follow the original thread, you should've known that this might have to do with npctalk script command. You can always disable the npctalk part if you want to not get the error. Original thread is attached below:

     

    Solved, thank you!

×
×
  • Create New...