Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Скилл, который запоминает координаты.
#1
Добрый день.

Сразу перейду к делу.

Создал две абилки:
1) Remember
2) Return In Memories

Remember - запоминает место, на котором вы находитесь.

Return In Memories - возвращает вас в воспоминания. (соответственно туда, где место было запомненно)

Вариант ли написать skillType (handler) для Remeber, чтобы при юзе скила, персонаж запоминал место - на котором находится. Т.е. нажал на скил, внизу чата выдались координаты и строчка "Запомненно" + скажем он эти координаты заносит в отдельную таблицу БД?
Ответ
#2
А по другому не возможно, ток через новый скил_тип.
Ответ
#3
iqman Написал:А по другому не возможно, ток через новый скил_тип.

iqman, тогда другой вопрос, во сколько строк бы уложились вы, при создании данного скиллтипа? Smile не поймите неправельно, но для меня это важный фаткор.
Ответ
#4
finfan
если вам в базу писать то обошлось бы одним запросом на апдейт данной таблицы (если таблица новая), если в таблицу чарактерс то можно было бы обойтись одной строкой, ну и одной новой переменной в плеерс и дао
[Изображение: 2ewe.jpg][Изображение: 1.gif]
Ответ
#5
PaInKiLlEr Написал:finfan
если вам в базу писать то обошлось бы одним запросом на апдейт данной таблицы (если таблица новая), если в таблицу чарактерс то можно было бы обойтись одной строкой, ну и одной новой переменной в плеерс и дао

Позвольте я укажу мой план действий и если вам не трудно, не могли бы вы ег опроанализировать и сказать где я допускаю ошибку...

Сначала спрошу как бы вы сделали? в чарактерс или же новую таблицу?

План действий (сборка на хрониках IT):
Вношу новый скилл_тип в l2skill.java
Создаю новый хендлер аля Remember.java, внутри описываю, при каких условиях место можно запомнить, при каких - нельзя. Там же прописываю запросы к дб.
Создаю .xml данного скила
Вношу изменения в клиентских файлах.

Вроде бы все...

P.S. Я сразу извеняюсь за такую наглость, просто для меня, работа над таким скилом - очень серьезная работа. Ибо незная явы в целом, я работаю над сервером только благодаря английскому языку и логике...
Не кидайтесь тапками >.<
Ответ
#6
iqman Написал:А по другому не возможно, ток через новый скил_тип.

не обязательно...вариантов реализации уйма...
можно вообще ничего нового не создавать, а к примеру в л2чарактерс(Креатуре) в методе doCast сделать проверку на кастуемый скилл...
если это наш скилл то вызываем метод на сохранение\тп чара...

можно модифицировать уже существующий скилл класс Телепорт...

вот код для сохранения и ТП...

Код:
public void saveLoc(L2Character _char)
    {
        _char.setVar("MyTpSkillLoc", _char.getX() + " " + _char.getY() + " " + _char.getZ() + " 0");
    }
    public void charTele(L2Character _char)
    {
        String var = _char.getVar("MyTpSkillLoc");
        if(var == null || var.equals(""))
        {
            сенДмеседж;
            return;
        }
        String[] coords = var.split(" ");
        if(coords.length != 4)
        {
            сенДмеседж;
            return;
        }
        _char.teleToLocation(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2]), Long.parseLong(coords[3]));
        _char.unsetVar("MyTpSkillLoc"); // если чар может юзать 1 локу сколько угодно раз то это нам не нужно...
    }
если вы уже создали свой скиллТип то добавьте туда этот код и все будет окей)
open-team.ru - Freya, HighFive...
Ответ
#7
DiagoD Написал:не обязательно...вариантов реализации уйма...
можно вообще ничего нового не создавать, а к примеру в л2чарактерс(Креатуре) в методе doCast сделать проверку на кастуемый скилл...
если это наш скилл то вызываем метод на сохранение\тп чара...

можно модифицировать уже существующий скилл класс Телепорт...

вот код для сохранения и ТП...

Код:
public void saveLoc(L2Character _char)
    {
        _char.setVar("MyTpSkillLoc", _char.getX() + " " + _char.getY() + " " + _char.getZ() + " 0");
    }
    public void charTele(L2Character _char)
    {
        String var = _char.getVar("MyTpSkillLoc");
        if(var == null || var.equals(""))
        {
            сенДмеседж;
            return;
        }
        String[] coords = var.split(" ");
        if(coords.length != 4)
        {
            сенДмеседж;
            return;
        }
        _char.teleToLocation(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2]), Long.parseLong(coords[3]));
        _char.unsetVar("MyTpSkillLoc"); // если чар может юзать 1 локу сколько угодно раз то это нам не нужно...
    }
если вы уже создали свой скиллТип то добавьте туда этот код и все будет окей)

Не могу не сказать
СПАСИБО
Ответ
#8
Какие тяжелые кода >_<

В L2PcInstance

Код:
private Location _lastSavedLoc = null;

public void notifyTriggerSaveLoc()
{
    if (_lastSavedLoc == null)
    {
        _lastSavedLoc = getLocation();
        sendMessage("Точка возвращения сохранена");
    }
    else
    {
        teleToLocation(_lastSavedLoc);
        broadCastPacket(new MagicSkillUse(бла бла бла какой нить красивый эффект));
        _lastSavedLoc = null;
    }
}

Создаем простенький хендлер для эффекта\скилла и пихаем в onStart вызов этого метода. При первом юзе скилла точка будет сохраняться, при втором телепортировать.

Или,чтобы не захламлять PcInstance, внести этот метод в тот же хендлер, а в PcInstance оставить поле и сеттеры\геттеры.
Ответ
#9
цитата
какие не надежные кода >_<...

сделал рестарт и слетел ваш код...
я сделал с расчетом, что оно будет запоминать координаты и рестарт не будет помехой)))
open-team.ru - Freya, HighFive...
Ответ
#10
DiagoD Написал:
цитата
какие не надежные кода >_<...

сделал рестарт и слетел ваш код...
я сделал с расчетом, что оно будет запоминать координаты и рестарт не будет помехой)))

Угумс. Чел зашел твинком в зону осад, стал в тронке, ушел в город и зашел во время осад.

Нажатие кнопки и куча твинков в зоне осад нагибает оунеров замка >_<
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Координаты точки внутри окружности finfan 2 2,324 09-23-2017, 11:00 AM
Последний пост: finfan
  Ищу человека который разбирается в python Bend3r 0 989 10-16-2014, 10:19 PM
Последний пост: Bend3r
  Skill/Скилл terra_inkognito 0 932 08-11-2014, 01:08 PM
Последний пост: terra_inkognito
  Итем который нельзя ложить в банк Rolfer 9 2,500 05-20-2014, 08:23 PM
Последний пост: Rolfer
  Sonic Rage Скилл Литион 7 1,965 04-23-2014, 08:56 PM
Последний пост: Walker
  Скилл 1400 Turn Undead (Испугать Нежить) Raikerock3 0 1,077 04-13-2014, 06:46 AM
Последний пост: Raikerock3
  Скилл нельзя использовать против соклана в дуеле revlon 8 1,909 09-29-2012, 06:07 PM
Последний пост: revlon
  как сделать скилл нельзя юзать на себя revlon 2 1,315 09-29-2012, 06:06 PM
Последний пост: revlon
  требуется помощь: скилл Charge (Interlude) finfan 3 1,702 03-08-2012, 09:11 AM
Последний пост: Azagthtot
  [Новый Скилл] Что сделал не так? finfan 11 3,256 02-14-2012, 11:58 AM
Последний пост: finfan

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


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