Класс телепортер - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 09.10.2012, 16:26   #1
Аватар для halaymoon
Пользователь

Автор темы (Топик Стартер) Класс телепортер

Доброго дня. Хочу сделать "небольшого" доп. ГК на java.

Не могу понять, как можно адекватно поместить статик данные в классе, что бы потом из него вытягивать? Т.е. класс будет исключительно для хранения статических данных, в данном случае координат

Вот пример:
Код:
public class Teleport24
{

final int[][] CoordLoc1 = 
{
	{59018,-42682,-3005}
};
final int[][] CoordLoc2 = 
{
	{76618,-42682,-3005}
};
final int[][] CoordLoc3 = 
{
	{11318,-42682,-3005}
};

...
public getCoordLoc1()
{
   return CoordLoc1;
}
...
}
Вот такой вот класс примерно должен быть, после чего, в самом инстансе у нового гк будет:

Код:
switch(locations)
{
...
player.teleToLocation(Teleport24.getCoordLoc1());
...
}
Будет ли это правильно работать? И в чем я здесь не прав?(
Как вообще сделать лучше?
halaymoon вне форума Ответить с цитированием
Непрочитано 09.10.2012, 16:33   #2
Аватар для Ashe
Олдфаг

По умолчанию Re: Класс телепортер

Неправильно получаете данные из массива.
__________________
Fortuna - non penis, in manus non recipe.
Ashe вне форума Ответить с цитированием
Непрочитано 09.10.2012, 17:45   #3
Аватар для coldy

По умолчанию Re: Класс телепортер

Код:
package teleports;

import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;

import java.util.ArrayList;
import java.util.List;

import static teleports.TeleportExample.*;

public class TeleportExample {

    public static final List<Location> TELEPORT = new ArrayList<Location>();

    static {
        TELEPORT.add(new Location(69,96,69));
        TELEPORT.add(new Location(77,66,33));
    }
}

class GateKeeper
{
    private void doTeleport(L2PcInstance player)
    {

        int rnd = Rnd.get(TELEPORT.size());
        player.teleToLocation(TeleportExample.TELEPORT.get(rnd),false);
    }
}
это если конкретно со статическими данными. за грамотность кода не отвечаю.
coldy вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 09.10.2012, 18:11   #4
Аватар для halaymoon
Пользователь

Автор темы (Топик Стартер) Re: Класс телепортер

Спс большое, понял)

А если выборка не рандомная, а допустим у меня каждая локация позначена определенными координатами, и мне нужно конкретное значение? Как можно определить эти координаты в ArrayList? Затем вытянуть по определенному Id?
halaymoon вне форума Ответить с цитированием
Непрочитано 09.10.2012, 20:04   #5
Аватар для coldy

По умолчанию Re: Класс телепортер

через Map делайте и выбирайте по ключу.
coldy вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 10.10.2012, 09:54   #6
Аватар для halaymoon
Пользователь

Автор темы (Топик Стартер) Re: Класс телепортер

Ну вот например делаю так:

Код:
public class TeleportPoint
{	
	private Map<String, Location> teleports = new HashMap<String, Location>();
	
	teleports.put("thiskey1", new Location(50,50,50));
        //teleports.get("thiskey1");
}
Выдает кучу ошибок при компиляции, "<indentefier> expected" , "illegal start of types", на строчке teleports.put

Бьюсь головой, перечитываю сотни хелпов по HashMap, делаю все вроде бы правильно но не могу понять ЧТО здесь не так... Помогите пожалуйста
halaymoon вне форума Ответить с цитированием
Непрочитано 10.10.2012, 15:34   #7
Аватар для coldy

По умолчанию Re: Класс телепортер

Вам уже советовали - почитайте книги. У вас нету понимания того, как должно быть. Смысл писать методом тыка?
Ну или хотя бы поставьте IDE и вчитывайтесь в ошибки.

Если вам надо заполнить коллекцию данными, то делайте это в конструкторе, либо в static {} блоке, если коллекция объявлена как static.
coldy вне форума Ответить с цитированием
Непрочитано 10.10.2012, 18:07   #8
Аватар для halaymoon
Пользователь

Автор темы (Топик Стартер) Re: Класс телепортер

Цитата:
Вам уже советовали - почитайте книги. У вас нету понимания того, как должно быть. Смысл писать методом тыка?
Ну или хотя бы поставьте IDE и вчитывайтесь в ошибки.

Если вам надо заполнить коллекцию данными, то делайте это в конструкторе, либо в static {} блоке, если коллекция объявлена как static.
Я вас уверяю, что книги я читал и продолжаю обучаться. Не все сразу.
Про коллекции я тоже читал не мало, перед тем как написать это так же перекопал гугл.

Пересмотрев любые примеры в гугле - все они показывают тольк отак. Откуда я могу знать про конструктор для этого???? В книге, которая у мну есть по яве - тоже самое, ничего подробного как вы описали НЕТ.

Спасибо!
Теперь буду знать.
и Спасибо за подсказку насчет компилятора, посмотрю что он пишет. Думал код маленький , напишу в NP++
halaymoon вне форума Ответить с цитированием
Непрочитано 10.10.2012, 18:20   #9
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Класс телепортер

Писать код в NP++. Да вы батенька шутник.
Zubastic вне форума Ответить с цитированием
Непрочитано 10.10.2012, 21:13   #10
Аватар для Visor

По умолчанию Re: Класс телепортер

Дорогой топик-стартер - посмотрите сами что вы пытаетесь куда передавать.
вот например
final int[][] CoordLoc1 =
{
{59018,-42682,-3005}
};

зачем вам объявлять массив int[][] для того чтобы положить в него всего 3 координаты?
final int[] CoordLoc1 = {59018,-42682,-3005};

Далее
player.teleToLocation(Teleport24.getCoordLoc1());
что вы думаете должно попадать в функцию teleToLocation? есть ли вход с int[] значением в процедуре?

Если вы не понимаете то о чем я написал - то попытайтесь это понять - потому что людям не нравится помогать другим людям, которые не пытаются понять вообще о чем спрашивают - это раздражает.
__________________
L2Emu Enterprise Server
Visor вне форума Отправить сообщение для Visor с помощью ICQ Отправить сообщение для Visor с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что с класс - мастером ? La2DeviL Архив 3 01.04.2011 11:46
твт и саб класс DarkFall Lineage II 0 11.03.2011 13:17
Новое обновление на офф серверах lineage 2 xamelion Курилка / Yak floor 28 16.01.2011 17:08
Квест на саб Класс kopwnz Работа со скриптами 15 14.12.2010 14:44
Условия в квесте на саб класс [STIGMATED] Lineage II 4 19.12.2008 23:32


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:10. Часовой пояс GMT +3.

Вверх