Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
рефлектион
#1
Ув. Кодеры/Знатоки, вот есть код (который по идеи должен персонажу выдавать N кол-во очков олимпиады, но он не работает, мб кто-то подскажет что и как)

Код

При выполнение этого кода, выскакивает вот такой еррор:
Картинка

Ошибка получается в 352 строка. Вот она - noble_char.set("olympiad_points", 1337);
Сборка - luc2
Ответ
#2
Bend3r Написал:Ув. Кодеры/Знатоки, вот есть код (который по идеи должен персонажу выдавать N кол-во очков олимпиады, но он не работает, мб кто-то подскажет что и как)

Код

При выполнение этого кода, выскакивает вот такой еррор:
Картинка

Ошибка получается в 352 строка. Вот она - noble_char.set("olympiad_points", 1337);
Сборка - luc2

Это указание выполнено? Путь до класса правильный?
[SRC="java"]Class<?> clazz = Class.forName("ru.catssoftware.gameserver.model.olympiad.Olympiad"); //путь до класса Olympiad, вставьте свой
[/SRC]
Студия L2dev.su. Сборки Lindvior, Epilogue. ICQ 1817070. Skype wowan.sm
Ответ
#3
Путь правильный
Ответ
#4
В классе напрямую использовать метод не судьба? Надо через определение класса и метода only?
Ответ
#5
Visor Написал:В классе напрямую использовать метод не судьба? Надо через определение класса и метода only?
Не все так просто.

Код:
    protected static synchronized void updateNobleStats(int playerId, StatsSet stats)
    {
        _nobles.remove(playerId);
        _nobles.put(playerId, stats);
    }
Ответ
#6
Цитата:_nobles.remove(playerId);
_nobles.put(playerId, stats);

:em::dd:
Ех.. В любом случаи - спасибо Л2 за то, что научила меня кодить)

Добавлено через 1 минуту
Покажите содержимое метода getNobleStats,
у Вас
StatsSet noble_char = (StatsSet) method1.invoke(clazz, player.getObjectId());
вернул null
Ответ
#7
private static Map<Integer, StatsSet> _nobles = new FastMap<Integer, StatsSet>();
Код:
protected static StatsSet getNobleStats(int playerId)
    {
        return _nobles.get(playerId);
    }
Ответ
#8
Bend3r Написал:Не все так просто.

Код:
    protected static synchronized void updateNobleStats(int playerId, StatsSet stats)
    {
        _nobles.remove(playerId);
        _nobles.put(playerId, stats);
    }

А в чем проблема вызвать напрямую?)
Типа Olympiad.getNobleStats(id)
Ответ
#9
Вообще я в java код плохо понимаю. Создать прототип класса Olympiad, я не могу т.к "public final class Olympiad". И вообще мне этот когда писал один человек с этого форума за 600 рублей, но он не работает и человек молчит.

Добавлено через 1 минуту
Если кто-то хочет помочь мне с кодом и заработать на пиво то пишите.
icq - 596502
Ответ
#10
Если не ошибаюсь, вызов Class<?> clazz = Class.forName("blablabla"); используется классов, которые компилируются и загружаются в память при запуске гса. То есть, если класс находится в скомпилированной сборке в виде скомпилированного класса (тобишь в jar-файлах) - используется обычный import, если же класс находится в виде исходника (в основном по пути gameserver/data/scripts/..), то используется создание объекта Class<?>.

Добавлено через 9 минут
Как-то так в общем:
[src='java']
import ... тут всякие импорты
import ru.catssoftware.gameserver.model.olympiad.Olympiad;

... какой-то код
else if(args[0].equals("noblese123")) {
if(!player.isNoble())
return "Вы не нублесс";
if(!checkMoney(player, _reload_pts)) // Проверяем Деньги
return "Вам необходимо иметь 5 Coin of Luck!";

Olympiad oly;

StatsSet noble_char = (StatsSet) oly.getNobleStats(player.getObjectId);
noble_char.set("olympiad_points", 1337);
oly.updateNobleStats(player.getObjectId(), noble_char);
return "У Вас 18 очков, удачи! Пропишите /olympiadstat";
}
[/src]
Ответ


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


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