Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
Добрый день.
Сразу перейду к делу.
Создал две абилки:
1) Remember
2) Return In Memories
Remember - запоминает место, на котором вы находитесь.
Return In Memories - возвращает вас в воспоминания. (соответственно туда, где место было запомненно)
Вариант ли написать skillType (handler) для Remeber, чтобы при юзе скила, персонаж запоминал место - на котором находится. Т.е. нажал на скил, внизу чата выдались координаты и строчка "Запомненно" + скажем он эти координаты заносит в отдельную таблицу БД?
Сообщений: 1,883
Тем: 53
Зарегистрирован: Feb 2011
А по другому не возможно, ток через новый скил_тип.
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
iqman Написал:А по другому не возможно, ток через новый скил_тип.
iqman, тогда другой вопрос, во сколько строк бы уложились вы, при создании данного скиллтипа? не поймите неправельно, но для меня это важный фаткор.
Сообщений: 552
Тем: 12
Зарегистрирован: Jan 2010
Репутация:
1,341
finfan
если вам в базу писать то обошлось бы одним запросом на апдейт данной таблицы (если таблица новая), если в таблицу чарактерс то можно было бы обойтись одной строкой, ну и одной новой переменной в плеерс и дао
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
PaInKiLlEr Написал:finfan
если вам в базу писать то обошлось бы одним запросом на апдейт данной таблицы (если таблица новая), если в таблицу чарактерс то можно было бы обойтись одной строкой, ну и одной новой переменной в плеерс и дао
Позвольте я укажу мой план действий и если вам не трудно, не могли бы вы ег опроанализировать и сказать где я допускаю ошибку...
Сначала спрошу как бы вы сделали? в чарактерс или же новую таблицу?
План действий (сборка на хрониках IT):
Вношу новый скилл_тип в l2skill.java
Создаю новый хендлер аля Remember.java, внутри описываю, при каких условиях место можно запомнить, при каких - нельзя. Там же прописываю запросы к дб.
Создаю .xml данного скила
Вношу изменения в клиентских файлах.
Вроде бы все...
P.S. Я сразу извеняюсь за такую наглость, просто для меня, работа над таким скилом - очень серьезная работа. Ибо незная явы в целом, я работаю над сервером только благодаря английскому языку и логике...
Не кидайтесь тапками >.<
Сообщений: 1,660
Тем: 9
Зарегистрирован: Feb 2009
Репутация:
10,142
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...
Сообщений: 1,058
Тем: 129
Зарегистрирован: May 2009
Репутация:
11,626
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 локу сколько угодно раз то это нам не нужно...
}
если вы уже создали свой скиллТип то добавьте туда этот код и все будет окей)
Не могу не сказать
СПАСИБО
Сообщений: 2,303
Тем: 24
Зарегистрирован: Sep 2010
Репутация:
5,617
Какие тяжелые кода >_<
В 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 оставить поле и сеттеры\геттеры.
Сообщений: 1,660
Тем: 9
Зарегистрирован: Feb 2009
Репутация:
10,142
цитата
ANZO Написал:Какие тяжелые кода >_<
В 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 оставить поле и сеттеры\геттеры.
какие не надежные кода >_<...
сделал рестарт и слетел ваш код...
я сделал с расчетом, что оно будет запоминать координаты и рестарт не будет помехой)))
open-team.ru - Freya, HighFive...
Сообщений: 2,303
Тем: 24
Зарегистрирован: Sep 2010
Репутация:
5,617
DiagoD Написал:
какие не надежные кода >_<...
сделал рестарт и слетел ваш код...
я сделал с расчетом, что оно будет запоминать координаты и рестарт не будет помехой)))
Угумс. Чел зашел твинком в зону осад, стал в тронке, ушел в город и зашел во время осад.
Нажатие кнопки и куча твинков в зоне осад нагибает оунеров замка >_<
|