-
Posts
2 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by Jonata Pontes
-
-
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; }
- 1
[NPC] - Sistema de casas
in Suporte a Configurações
Posted
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ê:
O certo seria: