|
Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo. Caso seja registrado, efetue login. Esqueceu sua senha? Clique aqui Recomendamos o uso do Mozilla Firefox para uma melhor visualização. |
|
| Início | Postados Hoje | Marcar Fóruns Como Lidos | Álbums | Banidos | SE Team | Medalhas |
|
|||||||
| Registrar | Loteria VIP | Staff SE | Regras do fórum | Comunidade | Arcade | Postados Hoje | Pesquisar | Experience |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
![]() |
|
|
Ferramentas do Tópico | Modos de Exibição |
|
|
|
|
#1 |
|
Banido
![]() Registrado em: Nov 2009
Localização: Fortaleza-ce
Posts: 325
Agradeceu: 125
Agradecido 203 Vezes em 82 Posts
Nome Real: Allan Alcântara de Alencar
|
bom estou aqui mais uma vez, disponibilizando mais outro MOD, sendo que esse é um evento.
depois que o ví achei meio que estranho ... mas bem enteressante. kkkkkk evento quiz. - ele funcionano epilogue mas com adaptações ele possa funcionar para interlude. então ai vai ... Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
if (command.equalsIgnoreCase("3") && QuizEvent._quizRunning)
{
QuizEvent.setAnswer(activeChar, 3);
}
return true;
}
/**
*
* @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
*/
public String[] getVoicedCommandList()
{
new QuizEvent();
return _voicedCommands;
}
}
Código:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
package custom.QuizEvent;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.Announcements;
import javolution.util.FastMap;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.util.Rnd;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import java.io.File;
import com.l2jserver.Config;
/**
*
* @author Rizel
*
*/
public class QuizEvent
{
public static boolean _quizRunning;
private static String _question;
private static String _answer1;
private static String _answer2;
private static String _answer3;
private static int _rightanswer;
private static FastMap<L2PcInstance,Integer> _players;
private static int status;
private static int announced;
private static ThreadPoolManager tpm;
private static AutoEventTask task;
private static String[][] _questions;
private static int i = 0;
private static final int STATUS_NOT_IN_PROGRESS = 0;
private static final int STATUS_ASK = 1;
private static final int STATUS_ANSWER = 2;
private static final int STATUS_END = 3;
//----------------------------------------------------------------------------
//------------------------------ CONFIG --------------------------------------
//----------------------------------------------------------------------------
//Number of questions per event
private static int _questionNumber = 3;
//The Item ID of the reward
private static int _rewardID = 57;
//The ammount of the reward
private static int _rewardCount = 1000;
//Wait for the first event after the server start (in seconds)
private static int _initWait = 60;
//Time for answer the question (in seconds)
private static int _answerTime = 10;
//Time between two event (in seconds)
private static int _betweenTime = 60;
public QuizEvent()
{
tpm = ThreadPoolManager.getInstance();
status = STATUS_NOT_IN_PROGRESS;
task = new AutoEventTask();
announced = 0;
_quizRunning = false;
_question = "";
_answer1 = "";
_answer2 = "";
_answer3 = "";
_rightanswer = 0;
_players = new FastMap<L2PcInstance,Integer>(100);
_questions = new String[20][];
includeQuestions();
tpm.scheduleGeneral(task, _initWait*1000);
}
private void includeQuestions()
{
File questionFile = new File(Config.DATAPACK_ROOT, "data/scripts/custom/QuizEvent/QuizEvent.xml");
Document doc = null;
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringComments(true);
dbf.setValidating(false);
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(questionFile);
for (Node root = doc.getFirstChild(); root != null; root = root.getNextSibling())
{
if ("list".equalsIgnoreCase(root.getNodeName()))
{
for (Node child = root.getFirstChild(); child != null; child = child.getNextSibling())
{
if ("question".equalsIgnoreCase(child.getNodeName()))
{
int id, correct;
String ask, answer1, answer2, answer3;
NamedNodeMap attrs = child.getAttributes();
id = Integer.parseInt(attrs.getNamedItem("id").getNodeValue());
correct = Integer.parseInt(attrs.getNamedItem("correct").getNodeValue());
ask = attrs.getNamedItem("ask").getNodeValue();
answer1 = attrs.getNamedItem("answer1").getNodeValue();
answer2 = attrs.getNamedItem("answer2").getNodeValue();
answer3 = attrs.getNamedItem("answer3").getNodeValue();
_questions[id] = new String[]{ ask, answer1, answer2, answer3, ""+correct };
i++;
}
}
}
}
}
catch (Exception e)
{
}
}
private class AutoEventTask implements Runnable
{
@Override
public void run()
{
switch (status)
{
case STATUS_NOT_IN_PROGRESS:
announceStart();
break;
case STATUS_ASK:
if (announced < _questionNumber)
{
announceQuestion();
}
else
{
status = STATUS_END;
tpm.scheduleGeneral(task, 3000);
}
break;
case STATUS_ANSWER:
announceCorrect();
break;
case STATUS_END:
endEvent();
break;
default:
break;
}
}
}
//Get a random question from the quiz_event table
private static void selectQuestion()
{
int id = Rnd.get(i)+1;
_question = _questions[id][0];
_answer1 = _questions[id][1];
_answer2 = _questions[id][2];
_answer3 = _questions[id][3];
_rightanswer = Integer.parseInt(""+_questions[id][4]);
}
//Announce the question
private static void announceQuestion()
{
selectQuestion();
Announcements.getInstance().announceToAll("-----------------");
Announcements.getInstance().announceToAll("Question: "+_question);
Announcements.getInstance().announceToAll("-----------------");
Announcements.getInstance().announceToAll("1: "+_answer1);
Announcements.getInstance().announceToAll("2: "+_answer2);
Announcements.getInstance().announceToAll("3: "+_answer3);
Announcements.getInstance().announceToAll("-----------------");
status = STATUS_ANSWER;
tpm.scheduleGeneral(task, _answerTime*1000);
}
//Announce the correct answer
private static void announceCorrect()
{
Announcements.getInstance().announceToAll("-----------------");
Announcements.getInstance().announceToAll("The correct answer was: "+_rightanswer);
Announcements.getInstance().announceToAll("-----------------");
announced++;
giveReward();
status = STATUS_ASK;
tpm.scheduleGeneral(task, 5000);
}
private static void announceStart()
{
_quizRunning = true;
_players.clear();
Announcements.getInstance().announceToAll("Quiz Event begins! "+_questionNumber+" questions. "+_answerTime+" secs for answer each. ");
Announcements.getInstance().announceToAll("Type . and the number of the correct answer to the chat. (Like: .1)");
Announcements.getInstance().announceToAll("Get Ready!");
status = STATUS_ASK;
tpm.scheduleGeneral(task, 5000);
}
//Add a player and its answer
public static void setAnswer(L2PcInstance player, int answer)
{
if( _players.containsKey(player) )
player.sendMessage("You already choosen an aswer!: "+_players.get(player));
else
_players.put(player, answer);
}
private static void endEvent()
{
_quizRunning = false;
Announcements.getInstance().announceToAll("The Quiz Event is over!");
announced = 0;
status = STATUS_NOT_IN_PROGRESS;
tpm.scheduleGeneral(task, _betweenTime*1000);
}
private static void giveReward()
{
for( L2PcInstance p: _players.keySet())
{
if(_players.get(p) == _rightanswer)
{
p.sendMessage("Your answer was correct!");
p.addItem("Quiz", _rewardID, _rewardCount, p, true);
}
else
{
p.sendMessage("Your answer was not correct!");
}
}
_players.clear();
}
}
|
|
|
| Links Patrocinados |
|
|
#2 | ||||||||||||||
|
Membro - Coronel
![]() Registrado em: Dec 2008
Localização: Campo Grande
Posts: 185
Agradeceu: 97
Agradecido 1,929 Vezes em 100 Posts
Nome Real: Victor Mendonça
|
Cara, na boa, pra Ctrl C + Ctrl V tá bem pobre hein? Cade diff? Cadê classes a serem alteradas? Informações do mod?
|
||||||||||||||
|
|
|
||||||||||||||
| Os Seguintes 3 Usuários disseram Obrigado(a) para mend3 por gostarem deste post : |
|
|
#3 |
|
Banido
![]() Registrado em: Nov 2009
Localização: Fortaleza-ce
Posts: 325
Agradeceu: 125
Agradecido 203 Vezes em 82 Posts
Nome Real: Allan Alcântara de Alencar
|
como disse peguei de um forum, e achei meio estranho o mod ... mas acabei postando aqui. como disse funfa em epilogo que vi lá nos post e tão funcionando . então não venha com essa de ctrl+c ctrl+v como eu disse sem muitas informações,
mas creio que seja : EVENTO QUIZ. O ADMIN OU GM SEI, INICIA O EVENTO( OU AUTOMATICAMENTE ), O PLAYER RESPONDE E SE FOR CERTO GANHA UM ITEM. NÃO TESTEI NÃO SEI COMO FUNCIONA, MAS LENDO OS CODE DA PRA SABER COMO FUNFA. SEN ÃO TIVER COMPLETO NÃO SE PREOCUPE IREI OLHAR SE ESTÁ FALTANDO ALGO. --'. qualquer coisa pode reclamar. u.u'
|
|
|
|