Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/02/21 in all areas

  1. If you use Visual Studio Code or Visual Studio to edit your files, you can search the whole solution for the constants. We can't tell you the exact npc. But my guess would be a job changer npc or something related to Jobs.
    1 point
  2. 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 point
  3. Version 1.0.0

    386 downloads

    This event triggers when a player character attacks another entity. And it registers the damage and other information about the attack. Example usage: // @damage holds the amount of damage dealt. // @damagegid holds the GID of the target (account ID if the target is a player). // @damagerid holds the rid of the mob OnPCAttackEvent: dispbottom "You've dealt "+@damage+" to target with GID "+@damagegid+" and RID "+@damagerid;
    Free
    1 point
  4. Version v1.3

    2963 downloads

    Using @afk with AFK Hat. (Notice Board) I just modified it and put the AFK Hat effect. Changelog: v1.0 - Initial Release - Need to open a chat room to use @afk command and it is disabled to use in prontera v1.1 - No need to create a chat room to use @afk command as suggested by Mysterious (disabled to use in prontera) v1.2 (eA and rA) - Added a config in misc.conf. afk_timeout: 0 (0 is default) Tested with the latest rathena - Revision 17156 v1.3 (rA ONLY) - Working with latest revision 17306 - Now you can't use @afk when you are dead.
    Free
    1 point
  5. the solution that Gepard post... it will convert the argument into string format... and..this method actually tested and work fine in previous topic as well.
    1 point
×
×
  • Create New...