Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
ГМ права проблема
#1
Столкнулся с такой проблемой на не которых сборках если в SQL не поставить isGM="1" нельзя использовать гм-команды, как сделать что бы без isGM а только с AccesLevel>0 можно было использовать гм-команды
я предполагал что надо убрать в коде(ниже написан) isGM то можно будет, но не получилось.. помогите решить этот вопрос
PHP код:
<?php 
/*
* 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.datatables;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

import javolution.util.FastMap;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.l2open.L2DatabaseFactory;
import com.l2open.gameserver.model.L2AccessLevel;
import com.l2open.gameserver.model.L2AdminCommandAccessRight;

/**
* @author FBIagent<br>
*/
public class AdminCommandAccessRights
{
/** The logger<br> */
private final static Log _log = LogFactory.getLog(AdminCommandAccessRights.class);
private
Map<String, L2AdminCommandAccessRight> _adminCommandAccessRights;

/**
* Returns the one and only instance of this class<br>
* <br>
*
* @return AdminCommandAccessRights: the one and only instance of this class<br>
*/
public static AdminCommandAccessRights getInstance()
{
return
SingletonHolder._instance;
}

/** The access rights<br> */
private AdminCommandAccessRights()
{
loadAdminCommandAccessRights();
}

/**
* Loads admin command access rights from database<br>
*/
private void loadAdminCommandAccessRights()
{
_adminCommandAccessRights = new FastMap<String, L2AdminCommandAccessRight>();
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement stmt = con.prepareStatement("SELECT * FROM admin_command_access_rights");
ResultSet rset = stmt.executeQuery();
String adminCommand = null;
String accessLevels = null;
while (
rset.next())
{
adminCommand = rset.getString("adminCommand");
accessLevels = rset.getString("accessLevels");
_adminCommandAccessRights.put(adminCommand, new L2AdminCommandAccessRight(adminCommand, accessLevels));
}
rset.close();
stmt.close();
}
catch (
SQLException e)
{
_log.error("AdminCommandAccessRights: Error loading from database: " + e);
}
finally
{
L2DatabaseFactory.close(con);
}
_log.info("AdminCommandAccessRights: Loaded: " + _adminCommandAccessRights.size() + " from database.");
}

public
boolean hasAccess(String adminCommand, L2AccessLevel accessLevel)
{
if (
accessLevel.isGm())
return
true;
if (
accessLevel.getLevel() == AccessLevels._builderAccessLevelNum)
return
false;
L2AdminCommandAccessRight acar = _adminCommandAccessRights.get(adminCommand);
if (
acar == null)
{
_log.info("AdminCommandAccessRights: No rights defined for admin command " + adminCommand + ".");
return
false;
}
return
acar.hasAccess(accessLevel);
}

public
void reloadAdminCommandAccessRights()
{
loadAdminCommandAccessRights();
}

@
SuppressWarnings("synthetic-access")
private static class
SingletonHolder
{
protected static final
AdminCommandAccessRights _instance = new AdminCommandAccessRights();
}
}

Добавлено через 20 часов 30 минут
раз никто не знает пока что, скиньте сборку где можно давать ГМ права без isGM или вообще что бы его там не было этого isGM
Ответ
#2
А можно по-конкретнее про конечную цель? Вопрос довольно абстрактно звучит, т.е. на него нет однозначного ответа (Вернее есть, но цель не ясна. Скорее всего можно сделать проще.). Может быть, к конечной цели может привести ещё один путь?
Ответ
#3
Bonabo Написал:А можно по-конкретнее про конечную цель? Вопрос довольно абстрактно звучит, т.е. на него нет однозначного ответа (Вернее есть, но цель не ясна. Скорее всего можно сделать проще.). Может быть, к конечной цели может привести ещё один путь?
Приведу пример
Ну собственно на сборках которые мне попадались везде если давать isGM то можно использовать гм команды, а если просто дать AccessLevel=1 и у него убрать isGM=0 чар с AccessLevel=1 при написание гм команды сервер их не принимаются... мне надо сделать игровых модером и что бы у них были только команды на баны, а если AccessLevel=1 с isGM=1 то автоматически появляются такие привилегии как видеть невидимых, в пвп зоне их только через Контрл можно бить, и само важно Шифт+Клик чара любого и просмотр его IP, логина и всех стат
Ответ
#4
lxShaDoWxl Написал:Приведу пример
Ну собственно на сборках которые мне попадались везде если давать isGM то можно использовать гм команды, а если просто дать AccessLevel=1 и у него убрать isGM=0 чар с AccessLevel=1 при написание гм команды сервер их не принимаются... мне надо сделать игровых модером и что бы у них были только команды на баны, а если AccessLevel=1 с isGM=1 то автоматически появляются такие привилегии как видеть невидимых, в пвп зоне их только через Контрл можно бить, и само важно Шифт+Клик чара любого и просмотр его IP, логина и всех стат

В общем я сейчас использую сборку l2open free 854 stable то там тоже есть isGM но там ищё есть столбцы такие как:
allowPeaceAttack
allowFixedRes
allowTranscation
allowAltg
giveDamage
takeAggro
gainExp

и вот в них выставляй 1 или 0 для Admina везде стоит 1!
там еще есть столбец childAccess для Admina стоит 2;3;4;5;6;7 а для GMoв уже 5;6;7 это тоже что то значит попробуй в общем)

Во нашел в общем лазил по файлам и нашелSmile(с тебя +)
Вот 2 файла uicats_en.csv uikeys_en.csv находяца они тут C:\L2Open\gameserver\data\ в них ты прописуеш категорию и ID команды... а уже потом в access_levels выставляешь 1 или 0 и все)
Вот ток ID команд узнай)
что то оно не то( хатя ХЗ попробуй самSmile
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Проблема с квестами "Письма Кекропуса" Metallurg1985 0 550 11-05-2023, 07:01 PM
Последний пост: Metallurg1985
  Проблема с баферами Mor9k400 4 1,917 09-10-2018, 09:08 PM
Последний пост: Mor9k400
  Проблема с созданием персонажа Trufan 3 1,935 08-18-2016, 01:26 PM
Последний пост: Gaikotsu
  Проблема с custom jscripts. Сборка pw ESCfromReality 2 1,990 08-14-2016, 04:05 PM
Последний пост: KID
  Проблема с компилом Nez 2 1,735 08-04-2016, 04:08 PM
Последний пост: Nez
  Проблема с квестом взросление дракончика nemoruss 3 1,786 01-29-2016, 01:35 AM
Последний пост: nemoruss
  Проблема с квестом Elrokian Hunter's Proof Goffa 1 1,487 01-26-2016, 12:04 PM
Последний пост: GenCloud
  Проблема с лучниками vanyahunter123 3 1,699 12-13-2015, 09:15 AM
Последний пост: HiredKiller
  Проблема с скриптом DroNik 1 1,370 08-10-2015, 12:20 AM
Последний пост: Mosinnik
  Проблема с скриптом ownedbyhard 0 1,094 07-16-2015, 03:48 PM
Последний пост: ownedbyhard

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)