Jump to content

(Pedido) NPC Refinador & Agregar Bonus


MrOptAJL

Recommended Posts


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  06/24/24
  • Last Seen:  

Buen día/tarde/noche.

 

Soy muy nuevo en esto de crear NPCs a pesar de mi larga experiencia jugando Ragnarok.

 

Tengo un servidor casero que levante hace poco con guías de este foro en el cual estoy implementando algunos NPC solo para hacer pruebas de builds de diferentes personajes (equipo, stats, skills) que después usaré en mis personajes del servidor en el que me encuentre jugando.

Osea que solo es un servidor de pruebas/test/casero. No está pensado para abrirse nunca al público ni ponerse Online, es de uso privado y personal.

 

El NPC lo necesito solo para refin normal (+1 a +10) en pre-renewal, y lo pido más que nada porque no me gusta el refinador más nuevo que está en prontera por la lentitud e interfaz que posee, me gusta más lo viejito, sencillo y rápido.

 

Lo que estoy buscando es un NPC que te deje refinar lo normal pero sin que se rompan los equipos, que no cobre nada y que te deje elegir a qué nivel sube tu equipo

 

Ejemplo:

hablo con el NPC y me da la lista de equipos:

Hat [Apple Of Archer]

Armor [Pantie]

Shield [Buckler]…, etc.

 

al seleccionar “Hat” que te pregunte a qué nivel quieres refinar tu hat?, que se abra una ventana donde ingreses el número y ese será el valor del refin del Hat o cualquier equipo que hayas seleccionado.

 

básicamente seleccionas:

Hat >

Ingresas el número, ejemplo el “7” o el número que deseas…

> Refina el hat a +7

Y termina.

 

Y aprovechando para no crear otro post, existe una manera de agregar bonus a los equipos? Por ejemplo a cualquier Garment que se les pueda agregar por ejemplo 10% de reducción de daño “Neutral” o 5% reducción elemento “Fuego” o a los Shoes que se les pueda agregar +10% HP o +10% SP, y que se añada algo parecido como si fuera una runa de stats como las que se añaden a los enchant de hats y armor como de (Dex +1) en el tercer o cuarto slot de los equipos? O que simplemente se quede “encantado” el equipo con esta clase de bonus?

 

Gracias de antemano por tomarse el tiempo de contestar. 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  343
  • Reputation:   15
  • Joined:  11/21/11
  • Last Seen:  

Si el refine es perfecto sin nada de riesgos porque mejor no usas el comando @refine ?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  06/24/24
  • Last Seen:  

4 hours ago, williamII said:

Si el refine es perfecto sin nada de riesgos porque mejor no usas el comando @refine ?

 

Hola william, veras como mencione el servidor es de pruebas pero tampoco quiero siempre estar dando comandos con todos los personajes de prueba que este usando como @item, @refine, @blvl, @job cada que creo un personaje para probar builds aparte de que si creo cuenta nueva a menos de que deje todas las cuentas en el grupo de GMs tendré que poner la cuenta de GM para tener comandos y demás cosas... Entonces para evitarme estar haciendo tanto comando y mover cuentas estoy implementando una sala en donde he agregado muchos NPCs con equipos, consumibles, cambiadores de Job, subir nivel, etc. Esto para que una cuenta nueva "normal", ósea fuera del grupo de los GMs tenga acceso a todos estos NPCs y puedas fácilmente subir de nivel, cambiar de job y comprar el equipo que necesites para probar builds sin necesidad de tirar 1 solo comando de GM. Así si en algún momento decido pasar el servidor a mis amigos para que prueben builds no se tenga necesidad de mover nada, podrán equiparse, subir de nivel y cambiar de job muy rápido y sin comandos de GM/Admin.

 

Saludos.

screenWanatozRO001.jpg

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  212
  • Reputation:   93
  • Joined:  06/02/12
  • Last Seen:  

Hola

//===== rAthena Script ======================================= 
//= https://rathena.org/board/topic/142082-pedido-npc-refinador-agregar-bonus/
//============================================================

prontera,170,181,4	script	Refinador	4_4JOB_MAURA,{
	.@max = 10;	//max refino
	
	disable_items;
	cutin "4job_maura_01.PNG",2;
	mes "[Refinador]";
	mes "Hola. Puedo refinar tus equipos ^0000FFsin que se rompan^000000, que ^0000FFno cobre nada^000000 y te deje ^0000FFelegir a qué nivel sube (+1 ~ +" + .@max + ")^000000!";
	mes "Por favor elige el equipo.";

	setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
	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 <= 10; ++.@i )
		.@menu$ += .@position$[.@i] + " [" + (getequipisequiped(.@indices[.@i]) ? getequipname(.@indices[.@i]) : .@position$[.@i] + "- Nada") + "]:";

	.@part = .@indices[ select(.@menu$) ];
	clear;
	if (!getequipisequiped(.@part)) {
		mes "[Refinador]";
		mes "Tienes que equipar el equipo que quieres refinar.";
		close3;
	}
	if (!getequipisenableref(.@part)) {
		emotion ET_OTL;
		mes "[Refinador]";
		mes "Oh lo siento.";
		mes "Este artículo es imposible de refinar.";
		close3;
	}
	.@refineitemid = getequipid(.@part); // save id of the item
	.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
	setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
	
	mes "[Refinador]";
	mes "A qué nivel quieres refinar tu " + .@position$[@menu] + "?";
	input .@r;
	clear;
	if (.@r < 1) {
		mes "[Refinador]";
		mes "Sólo puedo refinar de +1 a +" + .@max + ".";
		close3;
	}
	if (.@r > .@max) {
		mes "[Refinador]";
		mes "Solo puedo refinar desde hasta +" + .@max + ".";
		if (select("Refinar a +" + .@max + ".", "No importa.") == 2)
			close3;
		.@r = .@max;
	}
	if (getequiprefinerycnt(.@part) == .@r) {
		emotion ET_PROFUSELY_SWEAT;
		mes "[Refinador]";
		mes "^8B4513Este artículo ya está refinado al nivel que deseas...^000000";
		close3;
	}

	// anti-hack
	if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
		callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
		next;
		emotion ET_FRET;
		mes "[Refinador]";
		mes "Espera un segundo...";
  		mes "¡¿Crees que soy estúpido?!";
  		mes "¡Cambiaste el objeto mientras yo no miraba! ¡Fuera de aquí!";
		close3;
	}
	if (getequiprefinerycnt(.@part) > .@r)
		downrefitem .@part, getequiprefinerycnt(.@part) - .@r;
	else
		successrefitem .@part, .@r - getequiprefinerycnt(.@part);

	emotion ET_DELIGHT;
	specialeffect EF_SUI_EXPLOSION;
	mes "[Refinador]";
	mes "Muy bien, aquí está ~";
	close3;
}

 

On 6/24/2024 at 7:06 AM, MrOptAJL said:

Y aprovechando para no crear otro post, existe una manera de agregar bonus a los equipos? Por ejemplo a cualquier Garment que se les pueda agregar por ejemplo 10% de reducción de daño “Neutral” o 5% reducción elemento “Fuego” o a los Shoes que se les pueda agregar +10% HP o +10% SP, y que se añada algo parecido como si fuera una runa de stats como las que se añaden a los enchant de hats y armor como de (Dex +1) en el tercer o cuarto slot de los equipos? O que simplemente se quede “encantado” el equipo con esta clase de bonus?

Puedes usar el sistema de Random Options.
images?q=tbn:ANd9GcT1_FpnJJlEvPNO7POpc89

  • Love 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  3
  • Reputation:   0
  • Joined:  06/24/24
  • Last Seen:  

58 minutes ago, Racaae said:

Hola

//===== rAthena Script ======================================= 
//= https://rathena.org/board/topic/142082-pedido-npc-refinador-agregar-bonus/
//============================================================

prontera,170,181,4	script	Refinador	4_4JOB_MAURA,{
	.@max = 10;	//max refino
	
	disable_items;
	cutin "4job_maura_01.PNG",2;
	mes "[Refinador]";
	mes "Hola. Puedo refinar tus equipos ^0000FFsin que se rompan^000000, que ^0000FFno cobre nada^000000 y te deje ^0000FFelegir a qué nivel sube (+1 ~ +" + .@max + ")^000000!";
	mes "Por favor elige el equipo.";

	setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
	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 <= 10; ++.@i )
		.@menu$ += .@position$[.@i] + " [" + (getequipisequiped(.@indices[.@i]) ? getequipname(.@indices[.@i]) : .@position$[.@i] + "- Nada") + "]:";

	.@part = .@indices[ select(.@menu$) ];
	clear;
	if (!getequipisequiped(.@part)) {
		mes "[Refinador]";
		mes "Tienes que equipar el equipo que quieres refinar.";
		close3;
	}
	if (!getequipisenableref(.@part)) {
		emotion ET_OTL;
		mes "[Refinador]";
		mes "Oh lo siento.";
		mes "Este artículo es imposible de refinar.";
		close3;
	}
	.@refineitemid = getequipid(.@part); // save id of the item
	.@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
	setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
	
	mes "[Refinador]";
	mes "A qué nivel quieres refinar tu " + .@position$[@menu] + "?";
	input .@r;
	clear;
	if (.@r < 1) {
		mes "[Refinador]";
		mes "Sólo puedo refinar de +1 a +" + .@max + ".";
		close3;
	}
	if (.@r > .@max) {
		mes "[Refinador]";
		mes "Solo puedo refinar desde hasta +" + .@max + ".";
		if (select("Refinar a +" + .@max + ".", "No importa.") == 2)
			close3;
		.@r = .@max;
	}
	if (getequiprefinerycnt(.@part) == .@r) {
		emotion ET_PROFUSELY_SWEAT;
		mes "[Refinador]";
		mes "^8B4513Este artículo ya está refinado al nivel que deseas...^000000";
		close3;
	}

	// anti-hack
	if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
		callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
		next;
		emotion ET_FRET;
		mes "[Refinador]";
		mes "Espera un segundo...";
  		mes "¡¿Crees que soy estúpido?!";
  		mes "¡Cambiaste el objeto mientras yo no miraba! ¡Fuera de aquí!";
		close3;
	}
	if (getequiprefinerycnt(.@part) > .@r)
		downrefitem .@part, getequiprefinerycnt(.@part) - .@r;
	else
		successrefitem .@part, .@r - getequiprefinerycnt(.@part);

	emotion ET_DELIGHT;
	specialeffect EF_SUI_EXPLOSION;
	mes "[Refinador]";
	mes "Muy bien, aquí está ~";
	close3;
}

 

Puedes usar el sistema de Random Options.
images?q=tbn:ANd9GcT1_FpnJJlEvPNO7POpc89

Muchas gracias Racaae, funciona a la perfección el refinador!

 

Y gracias por el dato de Random Options, lo buscare para ver si lo puedo usar y adaptar al servidor.

 

Saludos.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...