Сообщений: 7
Тем: 1
Зарегистрирован: Jul 2011
Репутация:
0
Где в исходах поставить, чтоб каждый созданный персонаж имел Access левел который я укажу в исходах?)
з.ы. только носом не тыкайте в конфиги, да там есть похожий пункт, но он даёт фул админ права)
з.ы.ы. Если можно тыкните носом в исходах где подправить)
з.ы.ы.ы. Заранее гигантское спасибо)
P.S сборка L2WT
Сообщений: 1,326
Тем: 10
Зарегистрирован: Apr 2010
Репутация:
2,078
Сообщений: 7
Тем: 1
Зарегистрирован: Jul 2011
Репутация:
0
07-30-2011, 09:58 AM
(Сообщение последний раз редактировалось: 07-30-2011, 10:00 AM vuerto.)
Azagthtot Написал:В пакете CharacterCreate
где находится этот пакет?
Добавлено через 1 минуту
CharacterCreate.java это он?
Добавлено через 2 минуты
какие именно строчки там поправить подскажите плииизз
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Какая сборка хотя бы?
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 3,968
Тем: 90
Зарегистрирован: Nov 2010
Репутация:
15,337
[STIGMATED];133310 Написал:Какая сборка хотя бы? vuerto Написал:P.S сборка L2WT
10 символов.
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Не проснулся, простите =)
Она же вроде на лыже основана?
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 7
Тем: 1
Зарегистрирован: Jul 2011
Репутация:
0
07-30-2011, 11:37 AM
(Сообщение последний раз редактировалось: 07-30-2011, 05:30 PM Casper.)
вот сожержание фаила CharacterCreate.java
код
Цитата:/*
* 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 <http://www.gnu.org/licenses/>.
*/
package com.l2emu.gameserver.network.clientpackets;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.l2emu.Config;
import com.l2emu.gameserver.datatables.CharNameTable;
import com.l2emu.gameserver.datatables.CharTemplateTable;
import com.l2emu.gameserver.datatables.SkillTable;
import com.l2emu.gameserver.datatables.SkillTreeTable;
import com.l2emu.gameserver.idfactory.IdFactory;
import com.l2emu.gameserver.instancemanager.QuestManager;
import com.l2emu.gameserver.model.L2ItemInstance;
import com.l2emu.gameserver.model.L2ShortCut;
import com.l2emu.gameserver.model.L2SkillLearn;
import com.l2emu.gameserver.model.L2World;
import com.l2emu.gameserver.model.actor.instance.L2PcInstance;
import com.l2emu.gameserver.model.actor.stat.PcStat;
import com.l2emu.gameserver.model.quest.Quest;
import com.l2emu.gameserver.model.quest.QuestState;
import com.l2emu.gameserver.model.base.Experience;
import com.l2emu.gameserver.network.L2GameClient;
import com.l2emu.gameserver.network.serverpackets.CharCreateFail;
import com.l2emu.gameserver.network.serverpackets.CharCreateOk;
import com.l2emu.gameserver.network.serverpackets.CharSelectionInfo;
import com.l2emu.gameserver.templates.chars.L2PcTemplate;
import com.l2emu.gameserver.templates.chars.L2PcTemplate.PcTemplateItem;
import com.l2emu.gameserver.util.Util;
public final class CharacterCreate extends L2GameClientPacket
{
private static final String _C__0B_CHARACTERCREATE = "[C] 0B CharacterCreate";
private static Log _log = LogFactory.getLog(CharacterCreate.class);
// 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()
{
// Last Verified: May 30, 2009 - Gracia Final - Players are able to
// create characters with names consisting of as little as 1,2,3
// letter/number combinations.
if (_name.length() < 1 || _name.length() > 16)
{
if (Config.DEBUG)
_log.debug("Character Creation Failure: Character name " + _name + " is invalid. Message generated: Your title cannot exceed 16 characters in length. Please try again.");
CharCreateFail ccf = new CharCreateFail(CharCreateFail.REASON_16_ENG_CHARS);
sendPacket(ccf);
return;
}
// Last Verified: May 30, 2009 - Gracia Final
if (!Util.isAlphaNumeric(_name) || !isValidName(_name))
{
if (Config.DEBUG)
_log.debug("Character Creation Failure: Character name " + _name + " is invalid. Message generated: Incorrect name. Please try again.");
CharCreateFail ccf = new CharCreateFail(CharCreateFail.REASON_INCORRECT_NAME);
sendPacket(ccf);
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.getInstance().accountCharNumber(getClient().getAccountName()) >= Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT && Config.MAX_CHARACTERS_NUMBER_PER_ACCOUNT != 0)
{
if (Config.DEBUG)
_log.debug("Max number of characters reached. Creation failed.");
CharCreateFail ccf = new CharCreateFail(CharCreateFail.REASON_TOO_MANY_CHARACTERS);
sendPacket(ccf);
return;
}
else if (CharNameTable.getInstance().doesCharNameExist(_name))
{
if (Config.DEBUG)
_log.debug("Character Creation Failure: Message generated: You cannot create another character. Please delete the existing character and try again.");
CharCreateFail ccf = new CharCreateFail(CharCreateFail.REASON_NAME_ALREADY_EXISTS);
sendPacket(ccf);
return;
}
template = CharTemplateTable.getInstance().getTemplate(_classId);
if (Config.DEBUG)
_log.debug("Character Creation Failure: Character name " + _name + " is invalid. Message generated: This name already exists.");
if (template == null || template.classBaseLevel > 1)
{
if (Config.DEBUG)
_log.debug("Character Creation Failure: " + _name + " classId: " + _classId + " Template: " + template + " Message generated: Your character creation has failed.");
CharCreateFail ccf = new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED);
sendPacket(ccf);
return;
}
int objectId = IdFactory.getInstance().getNextId();
newChar = L2PcInstance.create(objectId, template, getClient().getAccountName(), _name, _hairStyle, _hairColor, _face, _sex != 0);
}
newChar.setCurrentHp(template.baseHpMax);
newChar.setCurrentCp(template.baseCpMax);
newChar.setCurrentMp(template.baseMpMax);
CharCreateOk cco = new CharCreateOk();
sendPacket(cco);
initNewChar(getClient(), newChar);
}
private boolean isValidName(String text)
{
boolean result = true;
String test = text;
Pattern pattern;
try
{
pattern = Pattern.compile(Config.CNAME_TEMPLATE);
}
catch (PatternSyntaxException e) // case of illegal pattern
{
_log.error("ERROR : Character name pattern of config is wrong!");
pattern = Pattern.compile(".*");
}
Matcher regexp = pattern.matcher(test);
if (!regexp.matches())
result = false;
return result;
}
private void initNewChar(L2GameClient client, L2PcInstance newChar)
{
if (Config.DEBUG)
_log.debug("Character init start");
L2World.getInstance().storeObject(newChar);
L2PcTemplate template = newChar.getTemplate();
newChar.addAdena("Init", Config.STARTING_ADENA, null, false);
newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);
// L2EMU_ADD
if (Config.ALLOW_NEW_CHARACTER_TITLE)
newChar.setTitle(Config.NEW_CHARACTER_TITLE);
else
newChar.setTitle("");
// Vitality System
if (Config.ENABLE_VITALITY)
newChar.setVitalityPoints(PcStat.MAX_VITALITY_POINTS, true);
if (Config.STARTING_LEVEL > 1)
{
if(Config.STARTING_LEVEL > Experience.MAX_LEVEL)
Config.STARTING_LEVEL = Experience.MAX_LEVEL;
newChar.addExpAndSp(Experience.LEVEL[Config.STARTING_LEVEL], 0);
}
if (Config.STARTING_SP > 0)
newChar.getStat().addSp(Config.STARTING_SP);
L2ShortCut shortcut;
// add attack shortcut
shortcut = new L2ShortCut(0, 0, 3, 2, 0, 1);
newChar.registerShortCut(shortcut);
// add take shortcut
shortcut = new L2ShortCut(3, 0, 3, 5, 0, 1);
newChar.registerShortCut(shortcut);
// add sit shortcut
shortcut = new L2ShortCut(10, 0, 3, 0, 0, 1);
newChar.registerShortCut(shortcut);
for (PcTemplateItem ia : template.getItems())
{
L2ItemInstance item = newChar.getInventory().addItem("Init", ia.getItemId(), ia.getAmount(), newChar, null);
// add tutbook shortcut
if (item.getItemId() == 5588)
{
shortcut = new L2ShortCut(11, 0, 1, item.getObjectId(), 0, 1);
newChar.registerShortCut(shortcut);
}
if (item.isEquipable() && ia.isEquipped())
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)
{
shortcut = new L2ShortCut(1, 0, 2, skill.getId(), skill.getLevel(), 1);
newChar.registerShortCut(shortcut);
}
if (skill.getId() == 1216)
{
shortcut = new L2ShortCut(10, 0, 2, skill.getId(), skill.getLevel(), 1);
newChar.registerShortCut(shortcut);
}
if (Config.DEBUG)
_log.debug("Adding starter skill: " + skill.getId() + " / " + skill.getLevel());
}
startTutorialQuest(newChar);
L2GameClient.saveCharToDisk(newChar);
// send char list
newChar.deleteMe(); // release the world of this character and it's
// inventory
CharSelectionInfo cl = new CharSelectionInfo(client.getAccountName(), client.getSessionId().playOkID1);
client.getConnection().sendPacket(cl);
client.setCharSelection(cl.getCharInfo());
if (Config.DEBUG)
_log.debug("Character init end.");
}
public void startTutorialQuest(L2PcInstance player)
{
QuestState qs = player.getQuestState("255_Tutorial");
Quest q = null;
if (qs == null)
q = QuestManager.getInstance().getQuest("255_Tutorial");
if (q != null)
q.newQuestState(player);
}
/*
* (non-Javadoc)
* @see com.l2emu.gameserver.clientpackets.ClientBasePacket#getType()
*/
@Override
public String getType()
{
return _C__0B_CHARACTERCREATE;
}
}
Сообщений: 242
Тем: 62
Зарегистрирован: Jun 2010
Репутация:
34
vuerto Написал:з.ы. только носом не тыкайте в конфиги, да там есть похожий пункт, но он даёт фул админ права)
Ам... В зависимости от значения и разрешённых команд , он не будет давать фулл админ . Поставив на 1 , любой новый чар будет с этим уровнем доступа , но любая команда доступна только на 2 уровен администрирования (access level 2) , его уже через БД .
Сообщений: 7
Тем: 1
Зарегистрирован: Jul 2011
Репутация:
0
MROBAR Написал:Ам... В зависимости от значения и разрешённых команд , он не будет давать фулл админ . Поставив на 1 , любой новый чар будет с этим уровнем доступа , но любая команда доступна только на 2 уровен администрирования (access level 2) , его уже через БД .
это я знаю)н о мне надоимеенно испаравить пакет
Сообщений: 242
Тем: 62
Зарегистрирован: Jun 2010
Репутация:
34
Хотелось бы узнать для чего , тогде , может быть , дам более дельный совет . С подобной ситуацией я уже сталкивался на своём сервере , делая для ВИП аккаунтов определённые ГМ команды .
|