Jump to content

Jonata Pontes

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Jonata Pontes

  1. On 10/23/2020 at 11:44 PM, Kassio Felix said:

    image.thumb.png.e1b51ff39b8ed85182bcccb1b1615641.pngpior que já tentei isso tbm e ainda persiste no erro

     

     

    Provável já ter resolvido, ou desistido.

    No caso do rAthena, o erro está no comando soundeffectall, *soundeffectall "<effect filename>",<type>{,"<map name>"}{,<x0>,<y0>,<x1>,<y1>}; 

    Segundo o GitHub do rAthena

    Onde se vê:

    Quote
    		switch (@Tema) {
    			case 14: soundeffectall "assassin_of_sunset.wav",0,24,@mapa$,0,0,50,50; break;
    			case 12: soundeffectall "in_to_the_abyss.wav",0,24,@mapa$,0,0,50,50; break;
    			case 11: soundeffectall "dont_forget_me_not.wav",0,24,@mapa$,0,0,50,50; break;
    			case 7:  soundeffectall "ring_of_nibelungen.wav",0,24,@mapa$,0,0,50,50; break;
    			case 5:  soundeffectall "bragis_poem.wav",0,24,@mapa$,0,0,50,50; break;
    			case 2:  soundeffectall "chaos_of_eternity.wav",0,24,@mapa$,0,0,50,50; break;
    			default: soundeffectall @Tema$,0,24,@mapa$,0,0,50,50; break;
    		}

     

    O certo seria:

    Quote
    		switch (@Tema) {
    			case 14: soundeffectall "assassin_of_sunset.wav",24,@mapa$,0,0,50,50; break;
    			case 12: soundeffectall "in_to_the_abyss.wav",24,@mapa$,0,0,50,50; break;
    			case 11: soundeffectall "dont_forget_me_not.wav",24,@mapa$,0,0,50,50; break;
    			case 7:  soundeffectall "ring_of_nibelungen.wav",24,@mapa$,0,0,50,50; break;
    			case 5:  soundeffectall "bragis_poem.wav",24,@mapa$,0,0,50,50; break;
    			case 2:  soundeffectall "chaos_of_eternity.wav",24,@mapa$,0,0,50,50; break;
    			default: soundeffectall @Tema$,24,@mapa$,0,0,50,50; break;
    		}

     

     

    • Like 1
  2. On 11/15/2020 at 9:44 PM, DoomSlayer said:

    Gostei da ideia e fiz um npc, se quiseres usar, meu teclado nao eh portugues entao esta faltando acentos!
    Nao esqueca de trocar "MAPA,X,Y" pelas posicoes do NPC!

     

    //==============Made by DoomSlayer=============
    //Ferreiro Custom - Quanto mais materiais maior
    //a chance de sucesso!
    //=============================================
    
    MAPA,X,Y,3	script	Blacksmith Custom	63,{
    	disable_items;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Eu sou o melhor Ferreiro da cidade!";
    	mes "Meu custo de trabalho e "+.price+" Zeny!";
    	mes "Quanto mais materiais voce ultilizar, mais chances de sucesso voce tem!";
    	next;
    	switch(select("Refinar:Sair")){
    		case 1:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Qual o equipament que voce quer refinar?";
    			next;
    			goto OnRefine;
    			end;
    		case 2:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Boa sorte!";
    			close;
    			end;
    	}
    OnRefine:
    	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(set .@i,1; .@i<=10; set .@i,.@i+1)
    		set .@menu$, .@menu$ + ( getequipisequiped(.@indices[.@i]) ? getequipname(.@indices[.@i]) : F_getpositionname(.@indices[.@i]) +"-[Unequipped]" ) +":";
    	set .@part, .@indices[ select(.@menu$) ];
    	if (!getequipisequiped(.@part)) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Voce nao tem nennhum equipamento!";
    		close;
    	}
    	if (!getequipisenableref(.@part)) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Este equipament nao pode ser refinado!";
    		close;
    	}
    	.@equip_id = getequipid(.@part);
    	.@equip_refine = getequiprefinerycnt(.@part);
    	setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
    
    	if (.@equip_refine >= 20) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Este equipamento ja esta no maximo!";
    		close;
    	}
    	
    	if (getequipweaponlv(.@part) == 0){
    		set .@matuse,2;
    	} else {
    		set .@matuse,1;
    	}
    	mes "^0000FF"+.name$+"^000000";
    	mes "Quantos "+.namemat$[.@matuse]+" voce quer usar?";
    	mes "A cada material sua chance aumenta por "+.matchance+"%.";
    	next;
    	input .@amount;
    	if (.@amount == 0) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Nenhum material? como vou refinar assim?";
    		close;
    		end;
    	}
    	if (countitem(.material[.@matuse]) < .@amount){
    		mes $npc$;
    		mes "Voce nao tem essa quantidade de materiais";
    		close;
    		end;
    	}
    	if (.@amount > .maxmat){
    		mes $npc$;
    		mes "Voce so pode ultilizar um maximo de "+.maxmat+" materiais!";
    		close;
    		end;
    	}
    	mes "^0000FF"+.name$+"^000000";
    	mes "Entao vamos la!";
    	next;
    	delitem .material[.@matuse],.@amount;
    	set .@failchance,rand(1,100);
    	set .@schance, (.chance + (.@amount * .matchance));
    	if (.@failchance > .@schance){
    		specialeffect2 EF_SUI_EXPLOSION;
    		if (.break == 1){ failedrefitem .@part; }
    		if (.break == 2){ downrefitem .@part; }
    		mes "^0000FF"+.name$+"^000000";
    		mes "Nao foi desta vez...";
    		close;
    		end;
    	}
    	successrefitem .@part;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Muito facil!";
    	close;
    	end;
    	
    OnInit:
    	set .name$,"Ferreiro";						//Nome do NPC
    	set .chance,10;								//Chance de refinar 10 = 10% (sem material)
    	set .matchance,1;							//Quantos % sobem por material
    	set .maxmat,90;								//Maximo de materiais que se pode usar (90 x 1 = 90%)
    	setarray .namemat$,"Oridecon","Elunium";	//Nome dos materiais abaixo
    	setarray .material[1],984,985;				//Material que vai ser usado (984 - Oridecon 985 - Elunium)
    	set .break,1;								//1 - Errar quebra / 2 - Errar desce refinamento / 3 - Nada acontece ao errar
    	set .price,25000;							//Preco para refinar
    	end;
    }

     

    Amigo, boa tarde.

    Sei que já tem tempo, mas peguei seu script que achei bem interessante e dei uma mexida.

    Vou postar aqui, vai que a galera precise de um UP.

     

    Coloquei refine por item especifico como no quadro abaixo:

     

    LVL ITEM 1 5 10 50 MATERIAL REFINO DE ATE
    0 ARMOR 6225 16259 16261   Carnium Perfeito 10 10
    4 WEAPON 6226 16258 16260   Bradium Perfeito 10 10
    0 ARMOR 6241 16395 16396 17105 Elunium Perfeito 7 9
    4 WEAPON 6240 16393 16394 17104 Oridecon Perfeito 7 9
    0 ARMOR 7619 13610     Elunium Enriquecido 5 6
    4 WEAPON 7620 13611     Oridecon Enriquecido 5 6
    0 ARMOR 985       Elunium Refinado 1 4
    4 WEAPON 984       Oridecon Refinado 1 4

     

    LVL é o Weapon Level;

    ITEM é o Type;

    1; 5; 10; 50 são os códigos dos itens onde 1 equivale a 1 unidade e o resto são box's;

    Material, alto explicativo;

    De Ate é o nível de refinamento que o item será usado, exemplo:

    Valk Armor +5

    Utilizara 180 x 7619 - Elunium Enriquecido do nível 5 ao 6 e 6 ao 7.

    Depois 360 x 6241 - Elinium Perfeito do nível 7 ao 10.

     

    Tudo é configurável e o que não estava comentado eu comentei.

     

    Ahh, sou novo em escrever por aqui, aceito criticas.

     

    //==============Made by DoomSlayer=============
    //Ferreiro Custom - Quanto mais materiais maior
    //a chance de sucesso!
    //=============================================
    //==============Adaptation by JPontes=============
    //Melhoria no script
    //Adicionado chance por material especifico,
    //weapon leave.
    //http://www.vikingsro.com.br
    //=============================================
    
    prontera,150,180,3	script	Blacksmith Custom	63,{
    	disable_items;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Eu sou o melhor Ferreiro de Valhalla!";
    	mes "Eu utilizo matéria-prima para realizar refinamentos em itens.";
    	next;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Para fazer este serviço, eu preciso de um valor simbólico de "+.price+" Zeny, assim ofereço "+.chance+"% de sucesso no refinamento!";
    	mes "Caso você tenha os materiais necessarios, podemos chegar em "+(.chance + (.maxmat * .matchance))+"%.";
    	next;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Cada material, aumentamos em "+.matchance+"% a chance de sucesso!";
    	mes "Quanto mais materiais você me der, mais chances de sucesso teremos!";
    	next;
    	if (.break == 1){
    	mes "^0000FF"+.name$+"^000000";
    	mes "^996600!^000000^ff0000ATENÇÃO^000000^996600!^000000";
    	mes "Caso não obtenhamos sucesso, você poderá perder o item!";
    	mes "Aconselho tirar todas as Card's do equipamento!";
    	next;
    	}
    	switch(select("^00f000Vamos refinar^000000:Informações:^ff0000Não, obrigado!^000000")){
    		case 1:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Qual equipamento que você quer refinar?";
    			next;
    			goto OnRefine;
    			end;
    		case 2:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Os itens necessários para o refinamento são:";
    			
    			for( .@i = 0; .@i < getarraysize(.material); .@i++ )
    			mes "{"+.material[.@i]+"} - "+.namemat$[.@i];
    		
    			next;
    			switch(select("Escolher equipamento:Vou buscar os materiais")){
    			case 1:
    			goto OnRefine;
    			case 2:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Volte quando precisar de meus serviços!";
    			close;
    			end;
    			}
    		case 3:
    			mes "^0000FF"+.name$+"^000000";
    			mes "Volte quando precisar de meus serviços!";
    			close;
    			end;
    	}
    OnRefine:
    	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 "^0000FF"+.name$+"^000000";
    		mes "Você não está equipando nada!";
    		close;
    	}
    	
    	set .@part, .@indices[ select(.@menu$) ];
    	
    
    	if (!getequipisenableref(.@part)) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Este equipamento não pode ser refinado!";
    		close;
    	}
    	.@equip_id = getequipid(.@part);
    	.@equip_refine = getequiprefinerycnt(.@part);
    	setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
    	// +10 não refinar
    	if (.@equip_refine >= 10) { // max refine
    		mes "^0000FF"+.name$+"^000000";
    		mes "Este equipamento já está +10!";
    		mes "Escolha outro equipamento:";
    			next;
    			goto OnRefine;
    			end;
    		
    	// 0 a 4
    	} else if((.@equip_refine >= 0) && (.@equip_refine <= 4)){
    	if (getequipweaponlv(.@part) == 0){
    		set .@matuse,1;
    	} else {
    		set .@matuse,0;
    	}
    	goto OnRefineOk;
    		
    	// 5 a 6
    	} else if((.@equip_refine >= 5) && (.@equip_refine <= 6)){
    	if (getequipweaponlv(.@part) == 0){
    		set .@matuse,3;
    	} else {
    		set .@matuse,2;
    	}
    	goto OnRefineOk;
    		
    	// 7 a 9	
    	} else if((.@equip_refine >= 7) && (.@equip_refine <= 9)){
    	if (getequipweaponlv(.@part) == 0){
    		set .@matuse,5;
    	} else {
    		set .@matuse,4;
    	}
    	goto OnRefineOk;
    		
    	// 10 + (tirar os comentarios abaixo caso seja refine > 10
    //	} else if(.@equip_refine = 9){
    //	if (getequipweaponlv(.@part) == 0){
    //		set .@matuse,7;
    //	} else {
    //		set .@matuse,6;
    //	}
    //	goto OnRefineOk;
    	}	
    	
    	OnRefineOk:
    	mes "^0000FF"+.name$+"^000000";
    	mes "Quantos {"+.material[.@matuse]+"} - "+.namemat$[.@matuse]+" Você quer usar?";
    	mes "Lembrando que cada material sua chance aumenta por "+.matchance+"%.";
    	next;
    	input .@amount;
    	if (.@amount == 0) {
    		mes "^0000FF"+.name$+"^000000";
    		mes "Nenhum material? Não consigo garantir o sucesso se você não me ajudar também!";
    		close;
    		end;
    	}
    	if (countitem(.material[.@matuse]) < .@amount){
    		mes "^0000FF"+.name$+"^000000";
    		mes "Você não tem essa quantidade de materiais";
    		close;
    		end;
    	}
    	if (.@amount > .maxmat){
    		mes "^0000FF"+.name$+"^000000";
    		mes "Você so pode ultilizar um maximo de "+.maxmat+" materiais!";
    		close;
    		end;
    	}
    	mes "^0000FF"+.name$+"^000000";
    	mes "Entao vamos la!";
    		set .@percent, .@amount + .chance;
    	mes "Você acumulou um percentual de "+.@percent+"%!";
    	next;
    	
    	delitem .material[.@matuse],.@amount;
    	set .@failchance,rand(1,100);
    	set .@schance, (.chance + (.@amount * .matchance));
    	if (.@failchance > .@schance){
    		specialeffect2 EF_SUI_EXPLOSION;
    		if (.break == 1){ failedrefitem .@part; }
    		if (.break == 2){ downrefitem .@part; }
    		mes "^0000FF"+.name$+"^000000";
    		mes "Não foi desta vez...";
    		close;
    		end;
    	}
    	successrefitem .@part;
    	mes "^0000FF"+.name$+"^000000";
    	mes "Muito fácil!";
    	close;
    	end;
    	
    OnInit:
    	set .name$,"Ferreiro Viking";				//Nome do NPC
    	set .chance,10;								//Chance de refinar 10 = 10% (sem material)
    	set .matchance,1;							//Quantos % sobem por material
    	set .maxmat,90;								//Maximo de materiais que se pode usar (90 x 1 = 90%)
    	setarray .namemat$,							//Lista dos itens utilizados para o refine
    	"Oridecon",
    	"Elunium",
    	"Oridecon Enriquecido",
    	"Elunium Enriquecido",
    	"Oridecon Perfeito",
    	"Elunium Perfeito"
    //	"Bradium Perfeito"
    //	"Carnium Perfeito"
    	;
    	setarray .material[0],						//Lista dos id
    	984,
    	985,
    	7620,
    	7619,
    	6240,
    	6241
    //	6226
    //	6225
    	;
    	set .break,1;								//1 - Errar quebra / 2 - Errar desce refinamento / 3 - Nada acontece ao errar
    	set .price,25000;							//Preco para refinar
    	end;
    }

     

    • Like 1
×
×
  • Create New...