Перейти к содержанию
Авторизация  
godzil

Реализация Стартовой Локации.

Рекомендуемые сообщения

Имеются исходы aCis, хотелось бы реализовать стартовую локацию для всех чаров, как это можно сделать, если можно объясните поэтапно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вам в пакет network/clientpackets/CharacterCreate.java

мне, как начинающему "чайнику", очень сложно сделать это, если не трудно напишите какой код нужно вставить и как добавлять в конфиги

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне, как начинающему "чайнику", очень сложно сделать это, если не трудно напишите какой код нужно вставить и как добавлять в конфиги

Что мешает чайнику саморазвиваться чтобы, не быть чайником и не тревожить других людей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что мешает чайнику саморазвиваться чтобы, не быть чайником и не тревожить других людей?

что мешает других людей помочь разобраться с этим?, так как без поэтапного примера очень сложно разобраться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что мешает других людей помочь разобраться с этим?, так как без поэтапного примера очень сложно разобраться...

Напишите сюда ваш скайп. Будем помогать друг другу)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

модифицируйте так

 

if(Config.SPAWN_POINT)

newChar.setXYZInvisible(Config.SPAWN_X, Config.SPAWN_Y,Config.SPAWN_Z);

else

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

 

думаю в конфиг вы сами в состоянии будете вывести

Изменено пользователем masone
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если чайник в ядре, почему бы в базу запрос не кинуть на стартовую локацию?

таблица char_templates столбы x,y,z определяют точку создания

(сброка интерлюди l2r)

Изменено пользователем KLEYDOX
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

модифицируйте так

 

if(Config.SPAWN_POINT)

newChar.setXYZInvisible(Config.SPAWN_X, Config.SPAWN_Y,Config.SPAWN_Z);

else

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

 

думаю в конфиг вы сами в состоянии будете вывести

неполучается у меня(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public static boolean SPAWN_POINT;

/** X Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_X;

/** Y Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_Y;

/** Z Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_Z;

 

 

SPAWN_POINT = Boolean.parseBoolean(players.getProperty("CustomSpawn", "false"));

SPAWN_X = Integer.parseInt(players.getProperty("SpawnX", ""));

SPAWN_Y = Integer.parseInt(players.getProperty("SpawnY", ""));

SPAWN_Z = Integer.parseInt(players.getProperty("SpawnZ", ""));

 

что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public static boolean SPAWN_POINT;

/** X Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_X;

/** Y Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_Y;

/** Z Coordinate of the SPAWN_CHAR setting. */

public static int SPAWN_Z;

 

 

SPAWN_POINT = Boolean.parseBoolean(players.getProperty("CustomSpawn", "false"));

SPAWN_X = Integer.parseInt(players.getProperty("SpawnX", ""));

SPAWN_Y = Integer.parseInt(players.getProperty("SpawnY", ""));

SPAWN_Z = Integer.parseInt(players.getProperty("SpawnZ", ""));

 

что не так?

какая ошибка при компиляции?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

какая ошибка при компиляции?

[javac] Compiling 1304 source files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\classes

[javac] C:\Users\Админ\Desktop\Source\aCis_gameserver\java\net\sf\l2j\gameserver\network\clientpackets\CharacterCreate.java:196: error: class, interface, or enum expected

[javac] if(Config.SPAWN_POINT)

[javac] ^

[javac] C:\Users\Админ\Desktop\Source\aCis_gameserver\java\net\sf\l2j\gameserver\network\clientpackets\CharacterCreate.java:198: error: class, interface, or enum expected

[javac] else

[javac] ^

[javac] C:\Users\Админ\Desktop\Source\aCis_gameserver\java\net\sf\l2j\gameserver\network\clientpackets\CharacterCreate.java:200: error: class, interface, or enum expected

[javac] }

[javac] ^

[javac] 3 errors

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помогите кто-нибудь, в чем ошибка у меня?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/*

* 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 .

*/

package net.sf.l2j.gameserver.network.clientpackets;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.datatables.CharNameTable;

import net.sf.l2j.gameserver.datatables.CharTemplateTable;

import net.sf.l2j.gameserver.datatables.SkillTable;

import net.sf.l2j.gameserver.datatables.SkillTreeTable;

import net.sf.l2j.gameserver.idfactory.IdFactory;

import net.sf.l2j.gameserver.instancemanager.QuestManager;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.L2ShortCut;

import net.sf.l2j.gameserver.model.L2SkillLearn;

import net.sf.l2j.gameserver.model.L2World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.quest.Quest;

import net.sf.l2j.gameserver.network.serverpackets.CharCreateFail;

import net.sf.l2j.gameserver.network.serverpackets.CharCreateOk;

import net.sf.l2j.gameserver.network.serverpackets.CharSelectInfo;

import net.sf.l2j.gameserver.templates.chars.L2PcTemplate;

import net.sf.l2j.gameserver.templates.item.L2Item;

import net.sf.l2j.gameserver.util.Util;

 

@SuppressWarnings("unused")

public final class CharacterCreate extends L2GameClientPacket

{

// cSdddddddddddd

private String _name;

private int _race;

private byte _sex;

private int _classId;

private int _int;

private int _str;

private int _con;

private int _men;

private int _dex;

private int _wit;

private byte _hairStyle;

private byte _hairColor;

private byte _face;

 

@Override

protected void readImpl()

{

_name = readS();

_race = readD();

_sex = (byte) readD();

_classId = readD();

_int = readD();

_str = readD();

_con = readD();

_men = readD();

_dex = readD();

_wit = readD();

_hairStyle = (byte) readD();

_hairColor = (byte) readD();

_face = (byte) readD();

}

 

@Override

protected void runImpl()

{

if (_name.length() > 16)

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_16_ENG_CHARS));

return;

}

 

if (!Util.isValidPlayerName(_name))

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME));

return;

}

 

if (_face > 2 || _face < 0)

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));

return;

}

 

if (_hairStyle < 0 || (_sex == 0 && _hairStyle > 4) || (_sex != 0 && _hairStyle > 6))

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));

return;

}

 

if (_hairColor > 3 || _hairColor < 0)

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));

return;

}

 

L2PcInstance newChar = null;

L2PcTemplate template = null;

 

/*

* DrHouse: Since checks for duplicate names are done using SQL, lock must be held until data is written to DB as well.

*/

synchronized (CharNameTable.getInstance())

{

if (CharNameTable.accountCharNumber(getClient().getAccountName()) >= 7)

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_TOO_MANY_CHARACTERS));

return;

}

 

if (CharNameTable.doesCharNameExist(_name))

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_NAME_ALREADY_EXISTS));

return;

}

 

template = CharTemplateTable.getInstance().getTemplate(_classId);

if (template == null || template.classBaseLevel > 1)

{

sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));

return;

}

 

int objectId = IdFactory.getInstance().getNextId();

newChar = L2PcInstance.create(objectId, template, getClient().getAccountName(), _name, _hairStyle, _hairColor, _face, _sex != 0);

}

 

 

newChar.setCurrentCp(0);

newChar.setCurrentHp(newChar.getMaxHp());

newChar.setCurrentMp(newChar.getMaxMp());

 

// send acknowledgement

sendPacket(CharCreateOk.STATIC_PACKET);

 

L2World.getInstance().storeObject(newChar);

 

newChar.addAdena("Init", Config.STARTING_ADENA, null, false);

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

newChar.setTitle("");

 

newChar.registerShortCut(new L2ShortCut(0, 0, 3, 2, -1, 1)); // attack shortcut

newChar.registerShortCut(new L2ShortCut(3, 0, 3, 5, -1, 1)); // take shortcut

newChar.registerShortCut(new L2ShortCut(10, 0, 3, 0, -1, 1)); // sit shortcut

 

for (L2Item ia : template.getItems())

{

L2ItemInstance item = newChar.getInventory().addItem("Init", ia.getItemId(), 1, newChar, null);

if (item.getItemId() == 5588) // tutorial book shortcut

newChar.registerShortCut(new L2ShortCut(11, 0, 1, item.getObjectId(), -1, 1));

 

if (item.isEquipable())

{

if (newChar.getActiveWeaponItem() == null || !(item.getItem().getType2() != L2Item.TYPE2_WEAPON))

newChar.getInventory().equipItemAndRecord(item);

}

}

 

for (L2SkillLearn skill : SkillTreeTable.getInstance().getAvailableSkills(newChar, newChar.getClassId()))

{

newChar.addSkill(SkillTable.getInstance().getInfo(skill.getId(), skill.getLevel()), true);

if (skill.getId() == 1001 || skill.getId() == 1177)

newChar.registerShortCut(new L2ShortCut(1, 0, 2, skill.getId(), 1, 1));

 

if (skill.getId() == 1216)

newChar.registerShortCut(new L2ShortCut(9, 0, 2, skill.getId(), 1, 1));

}

 

if (!Config.DISABLE_TUTORIAL)

{

if (newChar.getQuestState("Tutorial") == null)

{

Quest q = QuestManager.getInstance().getQuest("Tutorial");

if (q != null)

q.newQuestState(newChar).setState(Quest.STATE_STARTED);

}

}

 

 

newChar.setOnlineStatus(true, false);

newChar.deleteMe();

 

final CharSelectInfo cl = new CharSelectInfo(getClient().getAccountName(), getClient().getSessionId().playOkID1);

getClient().getConnection().sendPacket(cl);

getClient().setCharSelection(cl.getCharInfo());

}

 

if(Config.SPAWN_POINT)

newChar.setXYZInvisible(Config.SPAWN_X, Config.SPAWN_Y,Config.SPAWN_Z);

else

newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);

 

}

}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://pastebin.com/iLtjmfdX

 

пробуйте

:)), вы удалили код на стартовую локацию, когда я добиваюсь наоборот реализацию ее...

 

сорри, не заметил, я не внимательный), сейчас попробую

Изменено пользователем godzil

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

clean:

[delete] Deleting directory C:\Users\Админ\Desktop\Source\aCis_gameserver\build

 

checkRequirements:

[echo] Verification of your JDK version.

 

version:

[echo] aCis gameserver revision: exported

 

init:

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\classes

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver

 

compile:

[javac] Compiling 1304 source files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\classes

 

jar:

[jar] Building jar: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\l2jserver.jar

[copy] Copying 1 file to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login\libs

[copy] Copying 1 file to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\libs

 

dist:

[copy] Copying 4 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login\libs

[copy] Copying 7 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\libs

[copy] Copying 7 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login

[copy] Copying 3 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\log

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login\log

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\config

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login\config

[copy] Copying 9 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\config

[copy] Copying 4 files to C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\login\config

[mkdir] Created dir: C:\Users\Админ\Desktop\Source\aCis_gameserver\build\dist\gameserver\data

 

BUILD SUCCESSFUL

Total time: 22 seconds

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...