(https://i.imgur.com/lfcZk0R.png)
Os presentamos nuestro propio sistema de votación vía web.
Completamente configurable y sincronizado con su servidor!
--> Prueba disponible en línea, AQUÍ! <-- (http://www.l2kingdoms.com/vote)
Usuario: l2jdevs1, l2jdevs2, l2jdevs3, ... | Contraseña: l2jdevs1, l2jdevs2, l2jdevs3, ...
Imágenes del proyecto
(https://i.imgur.com/lfcZk0R.png)
(https://i.imgur.com/oPA4YZI.png)
(https://i.imgur.com/PLnefQi.png)
(https://i.imgur.com/pTukUOv.png)
(https://i.imgur.com/NDoGFgX.png)
Lista y estado de desarrollo actual.•
Verde ------- Característica ya probada e implementada.
•
Naranja ----- Característica en desarrollo o parcialmente completada.
•
Rojo --------- Característica no disponible aún.
LISTA DE CARACTERÍSTICAS:- Panel de Login
- Verificación por nombre, IP y fecha. Si cumples los requisitos puedes avanzar.
- Muestra el número de votos realizados.
- Posibilidad de cambiar el idioma
- Sistema de Votación
- Tiempo de protección entre votos.
- Bloqueo de botón para prevenir trampas.
- Muestra los votos indicados en la lista XML.
- Selección de Personaje
- Muestra personajes de esa cuenta que estén offline.
- Selecciona el personaje para enviar la recompensa.
- Sistema de Recompensas
- Envía recompensa al jugador indicado.
- Posibilidad de enviar recompensa al inventario o al almacén del jugador.
LISTA DE IMPLEMENTACIONES:- Conexión al servidor, gameserver y loginserver independientes.
- Lista de votación usando XML.
- Sistema de protección por dirección IP y tiempo.
- Sistema multidioma.
- Archivo de configuración personalizado.
- Programado en PHP, JS, XML y MSQLI.
IDIOMAS DISPONIBLES:
MÁS INFORMACIÓN:- Ir a su sección de soporte y desarrollo, link externo! (http://www.l2jdevs.org/forum/index.php?topic=492.0)
- Descargar última versión disponible (https://gitlab.com/L2JDevs/VoteSystemWeb/-/archive/master/VoteSystemWeb-master.zip)
- Link del proyecto Git (https://gitlab.com/L2JDevs/VoteSystemWeb)
IMPLEMENTACIÓN ADICIONAL:Si quereis que el servidor reinicie cada mes los votos, os dejo este script:
/*
* Copyright © 2004-2025 L2JDevs
*
* This file is part of L2JDevs.
*
* L2JDevs is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2JDevs is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package custom.VoteTaskSystem;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.l2jdevs.commons.database.pool.impl.ConnectionFactory;
import org.l2jdevs.gameserver.model.actor.L2Npc;
import org.l2jdevs.gameserver.model.actor.instance.L2PcInstance;
import ai.npc.AbstractNpcAI;
/**
* Vote Task System
* @author U3Games
*/
public class VoteTaskSystem extends AbstractNpcAI
{
// Logger Class
private static Logger LOGGER = Logger.getLogger(VoteTaskSystem.class.getName());
// Mist
private static final int _dayCheckCalendar = Integer.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
// Quotes
private final String CLEAR_VOTES = "UPDATE vote_system_count SET votes=? WHERE votes > 0";
private VoteTaskSystem()
{
super(VoteTaskSystem.class.getSimpleName(), "custom");
onAdvEvent("AUTOCHECK", null, null);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
switch (event)
{
case "AUTOCHECK":
{
if (_dayCheckCalendar == 1)
{
updatedVoteCount();
}
break;
}
}
return event;
}
/**
* Clear all votes of players to 0.
*/
private void updatedVoteCount()
{
final int initVoteCount = 0;
try (Connection con = ConnectionFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement(CLEAR_VOTES))
{
ps.setInt(1, initVoteCount);
ps.execute();
}
catch (SQLException e)
{
LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Error while update vote count to: " + initVoteCount + ". " + e, e);
}
}
public static void main(String[] args)
{
new VoteTaskSystem();
}
}