|
Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов. |
Ссылки сообщества |
Изображения и альбомы |
Пользователи |
К странице... |
Опции темы |
28.04.2010, 16:06 | #1 |
Пользователь
|
Скрипт для Модера
Столкнулся с такой проблемой при доделывании скрипта не как не могу добавить в него бан чара когда тот в оффе и разбан чара вот скрипт
Код:
/* * 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 com.l2open.gameserver.handler.voicedcommandhandlers; import java.util.StringTokenizer; import com.l2open.gameserver.datatables.AdminCommandAccessRights; import com.l2open.gameserver.datatables.CharNameTable; import com.l2open.gameserver.handler.IVoicedCommandHandler; import com.l2open.gameserver.model.L2World; import com.l2open.gameserver.model.actor.instance.L2PcInstance; public class ChatAdmin implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "banchat", "unbanchat", "ban", "unban", "jail", "unjail" }; /** * * @see ru.l2open.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, ru.l2open.gameserver.model.actor.instance.L2PcInstance, java.lang.String) */ public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) { if (!AdminCommandAccessRights.getInstance().hasAccess(command, activeChar.getAccessLevel())) return false; if (command.equalsIgnoreCase(VOICED_COMMANDS[0])) // banchat { if (params == null) { activeChar.sendMessage("Usage: .banchat name [minutes]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0) length = 0; int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.NONE) { activeChar.sendMessage("Player is already punished !"); return false; } if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } if (player.isGM()) { activeChar.sendMessage("You can't ban GM !"); return false; } if (AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel())) { activeChar.sendMessage("You can't ban moderator !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.CHAT, length); player.sendMessage("Chat banned by moderator " + activeChar.getName()); if (length > 0) activeChar.sendMessage("Player " + player.getName() + " chat banned for " + length + " minutes."); else activeChar.sendMessage("Player " + player.getName() + " chat banned forever."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[1])) //unbanchat { if (params == null) { activeChar.sendMessage("Usage: .unbanchat name"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.CHAT) { activeChar.sendMessage("Player is not chat banned !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.NONE, 0); activeChar.sendMessage("Player " + player.getName() + " chat unbanned."); player.sendMessage("Chat unbanned by moderator " + activeChar.getName()); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[2])) // ban { if (params == null) { activeChar.sendMessage("Usage: .ban name [day]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null && name.equals(name)) { return true; } if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.CHAR, length); player.sendMessage("Chat banned by moderator " + activeChar.getName()); if (length > 0) activeChar.sendMessage("Player " + player.getName() + " char banned for " + length + " day."); else activeChar.sendMessage("Player " + player.getName() + " char banned forever."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[3])) //unban { if (params == null) { activeChar.sendMessage("Usage: .unban name"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); player.setPunishLevel(L2PcInstance.PunishLevel.CHAR, 0); activeChar.sendMessage("Player " + player.getName() + " char unbanned."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[4])) // jail { if (params == null) { activeChar.sendMessage("Usage: .jail name [minutes]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0) length = 0; int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.NONE) { activeChar.sendMessage("Player is already punished !"); return false; } if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } if (player.isGM()) { activeChar.sendMessage("You can't ban GM !"); return false; } if (AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel())) { activeChar.sendMessage("You can't ban moderator !"); return false; } if (length <= 0) { activeChar.sendMessage("Wrong ban length"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.JAIL, length); player.sendMessage("Chat banned by moderator " + activeChar.getName()); if (length > 0) activeChar.sendMessage("Player " + player.getName() + " jail for " + length + " minutes."); else activeChar.sendMessage("Player " + player.getName() + " jail forever."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[5])) //unjail { if (params == null) { activeChar.sendMessage("Usage: .unjail name"); return true; } StringTokenizer st1 = new StringTokenizer(params); if (st1.hasMoreTokens()) { String name = st1.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.JAIL) { activeChar.sendMessage("Player is not jail !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.NONE, 1); activeChar.sendMessage("Player " + player.getName() + " unjail."); } else { activeChar.sendMessage("Player not found !"); return false; } } } return true; } /** * * @see ru.l2open.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList() */ public String[] getVoicedCommandList() { return VOICED_COMMANDS; } } Добавлено через 13 минут еще вопрос как добавить в верхний скрипт вот это? кому не сложно помогите Код:
private boolean changeCharAccessLevel(L2PcInstance targetPlayer, String player, L2PcInstance activeChar, int lvl) { if (targetPlayer != null) { targetPlayer.setAccessLevel(lvl); targetPlayer.sendChatMessage(0, Say2.ALL, "SYS", "Your character has been banned. Good Bye."); targetPlayer.logout(); RegionBBSManager.getInstance().changeCommunityBoard(); activeChar.sendChatMessage(0, Say2.ALL, "SYS", "The character " + targetPlayer.getName() + " has now been banned."); } else { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE characters SET accesslevel=? WHERE char_name=?"); statement.setInt(1, lvl); statement.setString(2, player); statement.execute(); int count = statement.getUpdateCount(); statement.close(); if (count == 0) { activeChar.sendChatMessage(0, Say2.ALL, "SYS", "Character not found or access level unaltered."); return false; } else activeChar.sendChatMessage(0, Say2.ALL, "SYS", player + " now has an access level of " + lvl); } catch (SQLException se) { activeChar.sendChatMessage(0, Say2.ALL, "SYS", "SQLException while changing character's access level."); if (Config.DEBUG) se.printStackTrace(); return false; } finally { L2DatabaseFactory.close(con); } } return true; } Последний раз редактировалось lxShaDoWxl; 28.04.2010 в 16:19. Причина: Добавлено сообщение |
28.04.2010, 16:31 | #2 |
Супергерой
|
Re: Скрипт для Модера
По поводу первого,
где найдешь : Код:
L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } Код:
L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null) { activeChar.sendMessage("Player not found !"); return false; } |
28.04.2010, 17:26 | #3 | |
Пользователь
|
Re: Скрипт для Модера
Цитата:
Добавлено через 1 час 42 минуты Так вот подвел 2 скрипт к 1, но всё равно не получается не разбанить чара не забанить если в офе, вот весь скрипт Код:
/* * 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 com.l2open.gameserver.handler.voicedcommandhandlers; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.StringTokenizer; import com.l2open.Config; import com.l2open.L2DatabaseFactory; import com.l2open.gameserver.datatables.AdminCommandAccessRights; import com.l2open.gameserver.datatables.CharNameTable; import com.l2open.gameserver.handler.IVoicedCommandHandler; import com.l2open.gameserver.model.L2World; import com.l2open.gameserver.model.actor.instance.L2PcInstance; import com.l2open.gameserver.network.clientpackets.Say2; public class ChatAdmin implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "banchat", "unbanchat", "ban", "unban", "jail", "unjail" }; /** * * @see ru.l2open.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, ru.l2open.gameserver.model.actor.instance.L2PcInstance, java.lang.String) */ public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) { if (!AdminCommandAccessRights.getInstance().hasAccess(command, activeChar.getAccessLevel())) return false; if (command.equalsIgnoreCase(VOICED_COMMANDS[0])) // banchat { if (params == null) { activeChar.sendMessage("Usage: .banchat name [minutes]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0) length = 0; int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.NONE) { activeChar.sendMessage("Player is already punished !"); return false; } if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } if (player.isGM()) { activeChar.sendMessage("You can't ban GM !"); return false; } if (AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel())) { activeChar.sendMessage("You can't ban moderator !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.CHAT, length); player.sendMessage("Chat banned by moderator " + activeChar.getName()); if (length > 0) activeChar.sendMessage("Player " + player.getName() + " chat banned for " + length + " minutes."); else activeChar.sendMessage("Player " + player.getName() + " chat banned forever."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[1])) //unbanchat { if (params == null) { activeChar.sendMessage("Usage: .unbanchat name"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null || player.isOnline() == 0) { activeChar.sendMessage("Player not online !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.CHAT) { activeChar.sendMessage("Player is not chat banned !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.NONE, 0); activeChar.sendMessage("Player " + player.getName() + " chat unbanned."); player.sendMessage("Chat unbanned by moderator " + activeChar.getName()); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[2])) // ban { if (params == null) { activeChar.sendMessage("Usage: .ban name [day]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } return changeCharAccessLevel(params, activeChar, -100); } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[3])) //unban { if (params == null) { activeChar.sendMessage("Usage: .unban name"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } return changeCharAccessLevel(params, activeChar, 0); } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[4])) // jail { if (params == null) { activeChar.sendMessage("Usage: .jail name [minutes]"); return true; } StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int length = 0; if (st.hasMoreTokens()) { try { length = Integer.parseInt(st.nextToken()); } catch (NumberFormatException e) { activeChar.sendMessage("Wrong ban length !"); return false; } } if (length < 0) length = 0; int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null) { activeChar.sendMessage("Player not found !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.NONE) { activeChar.sendMessage("Player is already punished !"); return false; } if (player == activeChar) { activeChar.sendMessage("You can't ban yourself !"); return false; } if (player.isGM()) { activeChar.sendMessage("You can't ban GM !"); return false; } if (AdminCommandAccessRights.getInstance().hasAccess(command, player.getAccessLevel())) { activeChar.sendMessage("You can't ban moderator !"); return false; } if (length <= 0) { activeChar.sendMessage("Wrong ban length"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.JAIL, length); player.sendMessage("Chat banned by moderator " + activeChar.getName()); if (length > 0) activeChar.sendMessage("Player " + player.getName() + " jail for " + length + " minutes."); else activeChar.sendMessage("Player " + player.getName() + " jail forever."); } else { activeChar.sendMessage("Player not found !"); return false; } } } else if (command.equalsIgnoreCase(VOICED_COMMANDS[5])) //unjail { if (params == null) { activeChar.sendMessage("Usage: .unjail name"); return true; } StringTokenizer st1 = new StringTokenizer(params); if (st1.hasMoreTokens()) { String name = st1.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player == null) { activeChar.sendMessage("Player not found !"); return false; } if (player.getPunishLevel() != L2PcInstance.PunishLevel.JAIL) { activeChar.sendMessage("Player is not jail !"); return false; } player.setPunishLevel(L2PcInstance.PunishLevel.NONE, 1); activeChar.sendMessage("Player " + player.getName() + " unjail."); } else { activeChar.sendMessage("Player not found !"); return false; } } } return true; } private boolean changeCharAccessLevel(String params, L2PcInstance activeChar, int lvl) { StringTokenizer st = new StringTokenizer(params); if (st.hasMoreTokens()) { String name = st.nextToken(); int objId = CharNameTable.getInstance().getIdByName(name); if (objId > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId); if (player != null) player.setAccessLevel(lvl); activeChar.sendMessage("The character " + player.getName() + " has now been banned."); } else { StringTokenizer st1 = new StringTokenizer(params); if (st1.hasMoreTokens()) { String name1 = st1.nextToken(); int objId1 = CharNameTable.getInstance().getIdByName(name1); if (objId1 > 0) { L2PcInstance player = L2World.getInstance().getPlayer(objId1); if (player != null) { Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE characters SET accesslevel=? WHERE char_name=?"); statement.setInt(1, lvl); statement.setString(2, params); statement.execute(); int count = statement.getUpdateCount(); statement.close(); if (count == 0) { activeChar.sendMessage("Character not found or access level unaltered."); return false; } else activeChar.sendMessage( "Player" + player.getName() + " now has an access level of " + lvl); } catch (SQLException se) { activeChar.sendChatMessage(0, Say2.ALL, "SYS", "SQLException while changing character's access level."); if (Config.DEBUG) se.printStackTrace(); return false; } finally { L2DatabaseFactory.close(con); } } } } } } return true; } /** * * @see ru.l2open.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList() */ public String[] getVoicedCommandList() { return VOICED_COMMANDS; } } Последний раз редактировалось lxShaDoWxl; 28.04.2010 в 19:08. Причина: Добавлено сообщение |
|
09.05.2010, 15:00 | #4 | |
Пользователь
|
Re: Скрипт для Модера
Цитата:
хм видал что-то подобное на сервере Какойто чар с определёнными правами ну допустим 20 пишет в чат команду .chat после чего там вводит ник время и причину после выдачи бан чата на весь мир в системный чат красным цветом пишет Модетатор Feyser забанил чат игроку lxShaDoWxl на 100 минут Причина: МАт Также есть в этой фишке и разбан таково типа как приведённый с верху Это оно? Можно ли исходники этой прелести ? Последний раз редактировалось Feyser; 09.05.2010 в 15:28. |
|
09.05.2010, 16:36 | #5 | |
Пользователь
|
Re: Скрипт для Модера
Цитата:
|
|
09.05.2010, 18:06 | #6 |
Пользователь
|
Re: Скрипт для Модера
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скрипт на exp | Shema | Серверная часть | 1 | 19.03.2010 13:27 |
Скрипт ТОП 10 FA для l2 java | cAleks | PHP | 3 | 13.11.2009 01:10 |
Нужен скрипт. | zenn | Движки сайтов (CMS) | 0 | 14.10.2008 22:59 |
Скрипт регистрации | thesingle | Движки сайтов (CMS) | 5 | 22.09.2008 22:33 |