Jump to content

Tdi123

Members
  • Posts

    192
  • Joined

  • Last visited

Posts posted by Tdi123

  1. Example, ITEM_DB:

    30452,Enchant_Elmo,Enchant Elmo,2,30,,1,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_Encantment"; },{},{}

    30453,Enchant_Auras,Enchant Auras,2,30,,1,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_Encantment1"; },{},{}

    30454,Enchant_Asas,Enchant Asas,2,30,,1,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_Encantment2"; },{},{}

    SCRIPT:

    function    script    F_Encantment    {
        end;
    }

    function    script    F_Encantment1    {
        end;
    }

    function    script    F_Encantment2   {
        end;
    }

    Thank you in advance for your help!

  2. On 10/3/2021 at 3:41 PM, mR L said:
    https://github.com/rathena/rathena/blob/master/db/pre-re/skill_db.yml

     

    #     ItemCost:               Item required to cast. (Default: 0)
    #       - Item                Item name.
    #         Amount              Item amount.
    #         Level               Skill level. Makes the skill item check become level dependent if supplied. (Default: applies to all levels)

     

    I still don't know how to make this type of modification, could you help me?

     

    I am wanting to add a bonus to the queen bee card to nullify the consumption of ninja stones as well.
    Who can help me, thank you in advance!

  3. On 9/30/2021 at 7:32 AM, sader1992 said:
    prontera,0,0,0	script	delay	444,{
    	.@t = #DELAY_ERGHLKJ + 60;//60 seconds
    	if(.@t < gettimetick(2)){
    		mes "Try again after " + (gettimetick(2) - .@t) + " seconds";
    		end;
    	}
    	#DELAY_ERGHLKJ = gettimetick(2);
    	mes "Hello!";
    end;
    }

    #ACCOUNT_VARIABLE

    Thank you very much!

     

    On 9/30/2021 at 6:39 AM, Tdi123 said:

    I'm trying to put some delay to use npc again, but it only works for the character, I wanted to put it on the account, how do I do it?

    Example:

    if( .@now < barenamvp_delay ) {
                        mes .prc$;
                        mes "Aguarde ^0000ff"+(bar_delay - .@now)+"s^000000 para usar o npc novamente";
                        close2;
                        cutin "",255;
                        end;

    }

    It works too, putting # in front of bar_delay, so it looks like this: #bar_delay

  4. I'm trying to put some delay to use npc again, but it only works for the character, I wanted to put it on the account, how do I do it?

    Example:

    if( .@now < barenamvp_delay ) {
                        mes .prc$;
                        mes "Aguarde ^0000ff"+(bar_delay - .@now)+"s^000000 para usar o npc novamente";
                        close2;
                        cutin "",255;
                        end;

    }

  5. SCRIPT: 

    function	script	F_ShuffleNumbers	{
    	deletearray getarg(2);
    	.@static = getarg(0);
    	.@range = getarg(1) +1 - .@static;
    	.@count = getarg(3, .@range);
    	if (.@range <= 0 || .@count <= 0)
    		return 0;
    	if (.@count > .@range)
    		.@count = .@range;
    	for (.@i = 0; .@i < .@range; ++.@i)
    		.@temparray[.@i] = .@i;
    	for (.@i = 0; .@i < .@count; ++.@i) {
    		.@rand = rand(.@range);
    		set getelementofarray( getarg(2), .@i ), .@temparray[.@rand] + .@static;
    		.@temparray[.@rand] = .@temparray[--.@range];
    	}
    	return .@count;
    }
    
    -	script	RegistroBG	-1,{
    OnJoinBG:
    	.@name$ = strcharinfo(0);
    	.@minplayer2start = getvariableofnpc(.minplayer2start, "fortress#bg"); 
    	.@start = getvariableofnpc(.start, "fortress#bg"); 
    	if(.@start == 1) {
    		dispbottom "Batalha Campal : Desculpe, a bg está em andamento.";
    		end;
    	}
    	while ( .aid[.@i] != getcharid(3) && .@i < .size ) ++.@i;
    	if ( .@i < .size ) {
    		dispbottom "Batalha Campal : Por favor, aguarde a batalha começar.";
    		end;
    	}
    	if (BaseLevel < 300) {
    		dispbottom "Batalha Campal : Apenas jogadores de nível 300 podem participar da Batalha Campal!";
    		end;
    	}
    	if( agitcheck() || agitcheck2() ){
    		dispbottom "Batalha Campal : Neste momento a Guerra do Emperium está ativa e não é possível se inscrever na Batalha Campal!";
    		end;
    	}
    	dispbottom "Batalha Campal : Por favor, permaneça no mapa atual para participar!";
    	.aid[ .size++ ] = getcharid(3);
    	for ( .@i = 0; .@i < .size; ++.@i ) {
    		if ( !isloggedin( .aid[.@i] ) ) {
    			deletearray .aid[.@i], 1;
    			--.@i;
    			--.size;
    		}
    		else {
    			attachrid .aid[.@i];
    			if ( strcharinfo(3) != strnpcinfo(4) ) {
    				deletearray .aid[.@i], 1;
    				--.@i;
    				--.size;
    			}
    		}
    	}
    	detachrid;
    	if ( .size == .@minplayer2start * 2 ) {
    		copyarray getvariableofnpc( .aid_, "fortress#bg" ), .aid, .size;
    		donpcevent "fortress#bg::OnStart";
    		deletearray .aid;
    		.size = 0;
    	}
    	else
    		announce .@name$ +" se inscreveu na Batalha Campal... ainda restam "+ .size +"/"+ .@minplayer2start * 2 +" vagas para começar.", bc_npc | bc_all;
    	end;
    
    OnInit:
    	bindatcmd("joinbg",strnpcinfo(0)+"::OnJoinBG",0,99);
    	end;
    }
    
    -	script	fortress#bg	-1,{
    OnInit:
    	// =============
    	// Game Settings
    	// =============
    	
    	// Minimum players per team to start
    	// default : 5 ( 5v5 )
    	.minplayer2start = 1;
    	
    	// Event duration in minutes..
    	// default : 5 mins
    	.duration = 5; 
    	
    	// Reward settings
    	setarray .rwd[0],
    		7773, 5,	// win team reward
    		7773, 1;		// lose team reward
    	
    	end;
    	
    OnStart:
    	.start = 1;
    	.red = bg_create ( strnpcinfo(4), 58, 123, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDie" );
    	.blue =  bg_create ( strnpcinfo(4), 141, 60, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDie" ); 
    	callfunc "F_ShuffleNumbers", 0, .minplayer2start *2 -1, .@r;
    	for ( .@i = 0; .@i < .minplayer2start * 2; ++.@i ) {
    		attachrid .aid_[.@r[.@i]];
    		bg_join ( .@i % 2 )? .red : .blue;
    	}
    	detachrid;
    	sleep 5000;
    	announce "Destruam a Fortaleza Principal!", bc_npc | bc_map | bc_blue;
    	sleep 5000;
    	announce "A Batalha durará 5 minutos!", bc_npc | bc_map | bc_blue;
    	
    	bg_monster 0, "bat_c01", 99, 92, "Fortaleza Principal", 1911, strnpcinfo(3)+"::OnEmpDown";
    	
    	sleep .duration * 60000;
    	
    		
    	if(.owner)
    		callsub L_reward, (.owner == .red) ? .red : .blue, (.owner == .red) ? .blue : .red, (.owner == .red) ? "Red" : "Blue";
    	else
    		announce "A batalha terminou em empate!", bc_npc | bc_map | bc_blue;
    	.owner = .start = 0;
    	bg_destroy .red;
    	bg_destroy .blue;
    	mapwarp strnpcinfo(4),"prontera",150,150,0;
    	end;
    	
    L_reward:
    	announce getarg(2) +" team venceu!", bc_npc | bc_map | bc_blue;
    	bg_get_data getarg(0), 1;
    	for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
    		getitem .rwd[0],.rwd[1], $@arenamembers[.@i];
    	sleep 1;
    	bg_get_data getarg(1), 1;
    	for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
    		getitem .rwd[2],.rwd[3], $@arenamembers[.@i];
    	return;
    	
    OnEmpDown:
    	.owner = getcharid(4);
    	announce ((getcharid(4) == .red) ? "Red": "Blue") +" Team conquistou a Fortaleza Principal!", bc_npc | bc_map | bc_blue;
    	bg_warp .red, strnpcinfo(4), 58, 123;
    	bg_warp .blue, strnpcinfo(4), 141, 60;
    	bg_monster .owner, "bat_c01", 99, 92, "Fortaleza Principal", (getcharid(4) == .red) ? 1912 : 1913, strnpcinfo(3)+"::OnEmpDown";
    	//setnpcdisplay("#mainfort", "Fortaleza Principal", (getcharid(4) == .red) ? 1912 : 1913 );
    	end;
    	
    	
    OnRedQuit: callsub L_Quit, .red, "Red";
    OnBlueQuit: callsub L_Quit, .blue, "Blue";
    L_Quit:
    	if ( bg_get_data( getarg(0), 0 ) ) end;
    	announce "Todos "+ getarg(2) +" team membros saíram!", bc_npc | bc_map | bc_blue;
    	sleep 1000;
    	callsub L_reward, ( getarg(0) == .red ) ? .red : .blue, ( getarg(0) == .red ) ? .blue : .red, ( getarg(0) == .red ) ? "Red" : "Blue";
    	awake instance_npcname( strnpcinfo(0) );
    	end;
    
    OnRedDie:
    OnBlueDie:
    	sleep2 1250;
    	percentheal 100, 100;
    	end;
    
    }
    
    bat_c01,99,92,0	script	#mainfort	-1,5,5,{
    end;
    OnTouch:
    	getmapxy(.@mapname$, .@mapx, .@mapy, BL_NPC, strnpcinfo(3));
    	setarray .@n_mapx[0], .@mapx-5, .@mapx+5;
    	setarray .@n_mapy[0], .@mapy-5, .@mapy+5;
    	
    	@ontouch = 1;
    	.@owner = getvariableofnpc( .owner, "fortress#bg" );
    	
    	while ( @ontouch && strcharinfo(3) == strnpcinfo(4) ) {
    	if( .@owner != getcharid(4) ) {
    		if ( Hp > 1 )
    			percentheal -10, 0;
    		else
    			percentheal -100, 0;
    		specialeffect2 49;
    	} 
    	else if ( .@owner == getcharid(4) ) {
    		if ( Hp != MaxHP ) 
    			specialeffect2 EF_HEAL;
    		percentheal 10, 10;		
    	}		  
    	sleep2 1000;
    		getmapxy(@mapname$, @mapx, @mapy, BL_PC);
    		if ( @mapx < .@n_mapx[0] || @mapx > .@n_mapx[1] || @mapy < .@n_mapy[0] || @mapy > .@n_mapy[1]) {
    			@ontouch = 0;
    		}
    	}
    	end;	
    }
    
    bat_c01,55,126,0	script	#redminifort	1915,5,5,{
    end;
    OnTouch:
    	getmapxy(.@mapname$, .@mapx, .@mapy, BL_NPC, strnpcinfo(3));
    	setarray .@n_mapx[0], .@mapx-5, .@mapx+5;
    	setarray .@n_mapy[0], .@mapy-5, .@mapy+5;
    	
    	.@owner = getvariableofnpc( .red, "fortress#bg" );
    	@ontouch = 1;
    	
    	while ( @ontouch && strcharinfo(3) == strnpcinfo(4) ) {
    	if ( .@owner != getcharid(4) ) {
    		if ( Hp > 10 )
    			percentheal rand(-20,-40), 0;
    		else
    			percentheal -100, 0;
    		specialeffect2 49;
    	} else {
    		if( HP != MaxHP )
    			specialeffect2 EF_HEAL;
    		percentheal 10, 10;
    	}
    	sleep2 1000;
    		getmapxy(@mapname$, @mapx, @mapy, BL_PC);
    		if ( @mapx < .@n_mapx[0] || @mapx > .@n_mapx[1] || @mapy < .@n_mapy[0] || @mapy > .@n_mapy[1]) {
    			@ontouch = 0;
    		}
    	}
    	end;	
    }
    
    bat_c01,144,57,0	script	#blueminifort	1914,5,5,{
    end;
    OnTouch:
    	getmapxy(.@mapname$, .@mapx, .@mapy, BL_NPC, strnpcinfo(3));
    	setarray .@n_mapx[0], .@mapx-5, .@mapx+5;
    	setarray .@n_mapy[0], .@mapy-5, .@mapy+5;
    	
    	.@owner = getvariableofnpc( .blue, "fortress#bg" );
    	@ontouch = 1;
    	
    	while ( @ontouch && strcharinfo(3) == strnpcinfo(4) ) {
    	if ( .@owner != getcharid(4) ) {
    		if ( Hp > 10 )
    			percentheal rand(-20,-40), 0;
    		else
    			percentheal -100, 0;
    		specialeffect2 49;
    	} else {
    		if( HP != MaxHP )
    			specialeffect2 EF_HEAL;
    		percentheal 10, 10;
    	}
    	sleep2 1000;
    		getmapxy(@mapname$, @mapx, @mapy, BL_PC);
    		if ( @mapx < .@n_mapx[0] || @mapx > .@n_mapx[1] || @mapy < .@n_mapy[0] || @mapy > .@n_mapy[1]) {
    			@ontouch = 0;
    		}
    	}
    	end;	
    }
    
    bat_c01	mapflag	battleground	2
    bat_c01	mapflag	nosave	SavePoint
    bat_c01	mapflag	nowarp
    bat_c01	mapflag	nowarpto
    bat_c01	mapflag	noteleport
    bat_c01	mapflag	nomemo
    bat_c01	mapflag	nopenalty
    bat_c01	mapflag	nobranch
    bat_c01	mapflag	noicewall

     

    If I put the map name + the coordinate, the npc works only on the npc map, example:

    prontera,0,0,0    script    RegistroBG    100,{
    OnJoinBG:

     

    So, it will only work on the prontera map

     

    I wanted to release the command for all maps

    Thank you for your help now!

  6. I created a simple npc pack guild, but I don’t know how to do a unique_id check, could someone help me?

    poring_w02,172,178,3	script	Pack Guild#1	446,{
    
    	mes "^FF7F00[ Pack Guild ]^000000";
    	mes (gettime(3)>= 6&&gettime(3)<= 12?"Bom dia":(gettime(3)>=13&&gettime(3)<=18?"Boa tarde":"Boa noite"))+" ^0000ff"+strcharinfo(0)+"^000000";
    	mes "Aqui você poderá escolher qualquer ^0000ffElmo^000000 quest do Servidor.";
    	next;
    	if(#packguild > 0){
    			mes "^FF7F00[ Pack Guild ]^000000";
    			mes "Você já recebeu seu Elmo!";
    			close;
    		}
    	mes "^FF7F00[ Pack Guild ]^000000";
    	mes "Vale lembrar que o Pack Guild será válido por ^0000ff30 dias^000000.";
    	close2;
    	callfunc "pgshop";
    	end;
    }

     

  7. 28 minutes ago, Hyroshima said:

    Posso estar falando merda mas pelo que vi em várias versões, a skill aumenta o dano somente por itens/cartas que aumentam o atk (como str ou o poder de atk), a carta general aumenta o dano através de um efeito bonus em raças, experimenta usar uma carta q aumenta um desses 2 atributos que falei.

    Não sei afirmar isso também, esse problema foi relatado por um jogador mono mestre-ferreiro, então acredito que as cartas aumentam o dano tbm, no bRO wiki está escrito isso.

    LINK: https://browiki.org/wiki/Choque_do_Carrinho

  8. On 4/21/2021 at 2:12 AM, Haruka Mayumi said:

    Gonna check it

    Yes, and the program allowed it!

     

    On 4/21/2021 at 2:12 AM, Haruka Mayumi said:

    Gonna check it

    I can replace a file or add it, the program allows it, even if I don't have the password

×
×
  • Create New...