Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Gatekeeper Noob

Iniciado por Swarlog, Ago 19, 2022, 12:40 AM

Tema anterior - Siguiente tema

Swarlog

Pues esta gracieta lo que hace es mandar al PJ a un sitio aleatorio que tu defines. El proposito de los sitios ya depende del admin  ;D para eso se llama GateKeeper Noob.

El propósito de este codigo es tenerlo como tutorial para seguir aprendiendo Java %up%

Después de clonar nuestro npc_custom, le colocamos su HTML:
Código (html5) [Seleccionar]
<html><head><title>Noob Gatekeeper</title></head>
<body>
Hey! Quieres ir a sitios increibles!<br><br>
De momento mis servicios son gratis, acabo de salir de la academia y... me hace falta practicar.
<br><br>
<a action="bypass -h npc_%objectId%_Quest">Que destinos unicos tienes?</a><br>
<br>
</body>
</html>

El script Java es bastante sencillo:
Código (javascript) [Seleccionar]
package quests.Q1001_TeleportSorpresa;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;

/**
 * @author Kimeraweb
 */
public class Q1001_TeleportSorpresa extends Quest
{
int _npcID = 1000007;
int[] _destinos =
{
1, // x
2, // y
3, // z
// otro
40,
50,
60,
// otro
700,
800,
900
};

/**
* @param questId
* @param name
* @param descr
*/
public Q1001_TeleportSorpresa(int questId, String name, String descr)
{
super(questId, name, descr);
addStartNpc(_npcID);
addTalkId(_npcID);
}

// Cuando clican en Quest
@SuppressWarnings("null")
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
QuestState st = player.getQuestState(Q1001_TeleportSorpresa.class.getSimpleName());
if (st == null)
{
st.setState(State.CREATED);
}

String htmltext = "No... no se, no se...";

switch (st.getState())
{
case State.CREATED:
htmltext = "1001-01.html";
break;
}

return htmltext;
}

// Una vez que se clica en el bypass llegamos aqui:
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext_head = "<html><head><title>Noob Gatekeeper</title></head><body>", htmltext_foot = "</body></html>", html = "";
switch (Integer.valueOf(event))
{
case 1:
html = "Ahi tendras todos los bichos que quieras matar.<br>Cuidado con los de level alto, son bastante dificiles!";
break;
case 2:
html = "Espero que sepas volver por tu cuenta.<br>Creo que esta parte del planeta es la mas siniestra de todos los imperios";
break;
case 3:
html = "Los tesoros se encuentran siempre en el lugar mas insospechado.<br>Acuerdate de los pobres cuando encuentres ese filon!";
break;
case 4:
html = "Valakas se encuentra por aqui, creo...<br>Vigila tu espalda y no confies en nadie. Valakas podria ser el.";
break;
case 5:
html = "Ahi tienes el castillo, justo frente a ti.<br>Espero que tus habilidades como guerrero te sean utiles en estas tierras tan yermas.";
break;
default:
html = "No tengo ni idea de lo que ha pasado... espero que hayas aterrizado de pie!";
break;
}
int destinosDisponibles = _destinos.length / 3;
int destinoAleatorio = getRandom(0, destinosDisponibles-1);
player.teleToLocation(_destinos[(destinoAleatorio * 3)], _destinos[(destinoAleatorio * 3) + 1], _destinos[(destinoAleatorio * 3) + 2]);
return htmltext_head + html + htmltext_foot;

}

public static void main(String[] args)
{
new Q1001_TeleportSorpresa(1001, Q1001_TeleportSorpresa.class.getSimpleName(), "TeleportSorpresa");
}

}

En el HTML pasamos la gracieta:
Código (html5) [Seleccionar]
<html><head><title>Noo Gatekeeper</title></head>
<body>
Bueno, como ya te dije, acabo de salir de la academia de las artes magicas y aun no domino esta tecnica a la perfeccion, por eso mis servicios son gratuitos.<br>
Tienes ya pensado donde quieres ir?<br><br>
<br>
<br>
<a action="bypass -h Quest Q1001_TeleportSorpresa 1">Zona de Leveo</a><br>
<a action="bypass -h Quest Q1001_TeleportSorpresa 2">Un ricon inospito del planeta</a><br>
<a action="bypass -h Quest Q1001_TeleportSorpresa 3">Buscar un tesoro</a><br>
<a action="bypass -h Quest Q1001_TeleportSorpresa 4">Valakas Lair</a><br>
<a action="bypass -h Quest Q1001_TeleportSorpresa 5">La aventura del castillo</a><br>
</body>
</html>

Los valores que se mandan por el bypass, 1 2 3 4 y 5 se corresponden al switch en Java, donde hacemos un HTML para terminar de bordar la broma.

Imaginate que clica en Valakas y no hay Valakas, en su lugar lo tiras al mar... y el mensaje "Valakas está por aquí... creo..." jejje...

Lo importante es enteder como se ha hecho.

Espero que que os haya servido :)

%hr1%

El PJ hablará con el Gatekeeper, le mostrará 5 destinos a elegir. El script de Java elige al azar cualquiera de las coordenadas registradas creadas en la Quest sin importar el destino elegido por el PJ (es pura farsa). Al mandarle al destino le mostrará un HTML relacionado con el destino elegido.

By Kimeraweb