• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Голосование за рестарт сервера

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
7 049
Розыгрыши
21
Решения
1
Репутация
5 925
Реакции
6 609
Баллы
2 688
С помощью этой команды игроки с вашего сервера смогут проголосовать за рестарт сервера.

Код:
Index: D:/Games/Server/WorkSpace/GameServer/java/config/Mods.properties
===================================================================
--- D:/Games/Server/WorkSpace/GameServer/java/config/Mods.properties    (revision 194)
+++ D:/Games/Server/WorkSpace/GameServer/java/config/Mods.properties    (working copy)
@@ -227,3 +227,12 @@
# Announce Level Settings
MinLevelToAnnounce = 1
MaxLevelToAnnounce = 80
+
+# ========================== #
+#   Server Restart Voting    #
+# ========================== #
+# Enable Server Restart Command
+AllowServerRestartCommand = False
+
+# Votes For Restart
+VotesNeededForRestart = 20
Index: D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/Config.java
===================================================================
--- D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/Config.java    (revision 194)
+++ D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/Config.java    (working copy)
@@ -960,6 +960,10 @@
     public static int NPC_ANNOUNCER_MIN_LVL_TO_ANNOUNCE;
     public static int NPC_ANNOUNCER_MAX_LVL_TO_ANNOUNCE;
     public static boolean NPC_ANNOUNCER_DONATOR_ONLY;
+   
+    /** Server Restart */
+    public static boolean ALLOW_SERVER_RESTART_COMMAND;
+    public static int     VOTES_NEEDED_FOR_RESTART;
   
    /** Event Automation */
    public static int TIME_BETWEEN_EVENTS;
@@ -2091,6 +2095,9 @@
                 NPC_ANNOUNCER_MAX_ANNOUNCES_PER_DAY = Integer.parseInt(Mods.getProperty("AnnouncesPerDay", "20"));
                 NPC_ANNOUNCER_MIN_LVL_TO_ANNOUNCE = Integer.parseInt(Mods.getProperty("MinLevelToAnnounce", "0"));
                 NPC_ANNOUNCER_MAX_LVL_TO_ANNOUNCE = Integer.parseInt(Mods.getProperty("MaxLevelToAnnounce", "80"));
+               
+                ALLOW_SERVER_RESTART_COMMAND = Boolean.parseBoolean(Mods.getProperty("AllowServerRestartCommand", "False"));
+                VOTES_NEEDED_FOR_RESTART     = Integer.parseInt(Mods.getProperty("VotesNeededForRestart", "20"));
             }
             catch (Exception e)
             {
Index: D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 196)
+++ D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (working copy)
@@ -617,6 +617,9 @@
     public boolean _inEventVIP = false;
     public boolean _isNotVIP = false, _isTheVIP = false;
     public int _originalNameColourVIP, _originalKarmaVIP;
+   
+    /** Server Restart Vote Parameters */
+    public boolean        _voteRestart        = false;

    /** new loto ticket **/
    private int _loto[] = new int[5];
Index: D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/GameServer.java    (revision 189)
+++ D:/Games/Server/WorkSpace/GameServer/java/net/sf/l2j/gameserver/GameServer.java    (working copy)
@@ -204,6 +204,7 @@
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.JoinVIP;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.OnlinePlayers;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.PmOff;
+import net.sf.l2j.gameserver.handler.voicedcommandhandlers.ServerRestartVote;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.TradeOff;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.VoiceInfo;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Wedding;
@@ -620,6 +621,9 @@
            _voicedCommandHandler.registerVoicedCommandHandler(new BuyRec());
       
        _voicedCommandHandler.registerVoicedCommandHandler(new JoinVIP());
+       
+        if(Config.ALLOW_SERVER_RESTART_COMMAND)
+            _voicedCommandHandler.registerVoicedCommandHandler(new ServerRestartVote());

        _log.config("VoicedCommandHandler: Loaded " + _voicedCommandHandler.size() + " handlers.");

Создайте новый файл с названием ServerRestartVote.java в net.sf.l2j.gameserver.commandhandler.voicedcommands и вставьте:

Код:
/*
* This program 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.
*
* This program 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 net.sf.l2j.gameserver.handler.voicedcommandhandlers;

import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.entity.RestartVoteVariable;

/**
* @author SkyLanceR
*/

public class ServerRestartVote implements IVoicedCommandHandler
{
    private static final String[] VOICED_COMMANDS = {"vote_restart"};
   
    /**
     *
     * @see net.sf.l2j.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, net.sf.l2j.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
     */
   
    public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
    {
        RestartVoteVariable e = new RestartVoteVariable();
       
        if(command.startsWith("vote_restart"))
        {
            if (activeChar._voteRestart == false)
            {
                e.increaseVoteCount("restart");
                activeChar._voteRestart = true;
                activeChar.sendMessage("You succesfully voted for the server restart. Votes For The Moment: " + e.getVoteCount("tvt") + ".");
                Announcements.getInstance().announceToAll("Player: "+activeChar.getName()+" has voted for server restart. If you whant to support him type .vote_restart !");
            }
            else
            {
                activeChar.sendMessage("You have already voted for an server restart.");
            }
        }
        return false;
    }
   
    public String[] getVoicedCommandList()
    {
        return VOICED_COMMANDS;
    }
}

Создайте новый файл VoteVariable.java в net.sf.l2j.gameserver.model.actor.entity и вставьте:
Код:
/*
* This program 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.
*
* This program 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 net.sf.l2j.gameserver.model.entity;

/**
*@author SkyLanceR
*/

public class RestartVoteVariable
{
    public int                _voteCountRestart = 0;
    private int                _voteCount = 0;
   
    public int getVoteCount(String name)
    {
        if (name == "restart")
        {
            _voteCount = _voteCountRestart;
        }
        return  _voteCount;
    }
   
    public void increaseVoteCount(String name)
    {
        if (name == "restart")
        {
            _voteCountRestart = _voteCountRestart+1;
        }
    }
}

Создайте файл RestartTheServer.java в net.sf.l2j.gameserver.model.actor.entity и вставьте:

Код:
/*
* This program 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.
*
* This program 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 net.sf.l2j.gameserver.model.entity;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.Shutdown;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;


/**
* @author SkyLanceR
*/

public class RestartTheServer
{

    public static void playerRestart(L2PcInstance activeChar, boolean restart)
    {
        RestartVoteVariable e = new RestartVoteVariable();
       
        if (e.getVoteCount("restart") > Config.VOTES_NEEDED_FOR_RESTART)
        {
            Shutdown.getInstance().startShutdown(activeChar, 60, restart);
        }
    }
}
 

Прикольная вещь.:)
 
Так поставь в конфиге 100 000 голосов и всё :D
а тогда смысл весь пропадает от скрипта))я себе делал лет 5 назад такое просто очень было весело наблюдать, потом убрал)))
 
Эм, а как быть если онлайн 3000, а голосов поставил 100к?
 
Назад
Сверху Снизу