Jump to content

badago

Members
  • Content Count

    3
  • Joined

  • Last visited

  • Feedback

    N/A

Community Reputation

0 Neutral

About badago

  • Rank
    Vassal

Profile Information

  • Gender
    Male
  • Country
    Australia

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. package net.sf.l2j.gameserver.network.clientpackets; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.Config; import net.sf.l2j.gameserver.data.sql.PlayerInfoTable; import net.sf.l2j.gameserver.data.xml.NpcData; import net.sf.l2j.gameserver.data.xml.PlayerData; import net.sf.l2j.gameserver.data.xml.ScriptData; import net.sf.l2j.gameserver.idfactory.IdFactory; import net.sf.l2j.gameserver.model.L2ShortCut; import net.sf.l2j.gameserver.model.World; import net.sf.l2j.gameserver.model.actor.instance.Player; import net.sf.l2j.gameserver.model.actor.template.PlayerTemplate; import net.sf.l2j.gameserver.model.base.Sex; import net.sf.l2j.gameserver.model.holder.skillnode.GeneralSkillNode; import net.sf.l2j.gameserver.model.item.instance.ItemInstance; import net.sf.l2j.gameserver.model.item.kind.Item; 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.scripting.Quest; @SuppressWarnings("unused") public final class CharacterCreate extends L2GameClientPacket { 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() { // Invalid race. if (_race > 4 || _race < 0) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Invalid face. if (_face > 2 || _face < 0) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Invalid hair style. if (_hairStyle < 0 || (_sex == 0 && _hairStyle > 4) || (_sex != 0 && _hairStyle > 6)) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Invalid hair color. if (_hairColor > 3 || _hairColor < 0) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Invalid name length, or name typo. if (!StringUtil.isValidString(_name, "^[A-Za-z0-9]{3,16}$")) { sendPacket((_name.length() > 16) ? CharCreateFail.REASON_16_ENG_CHARS : CharCreateFail.REASON_INCORRECT_NAME); return; } // Your name is already taken by a NPC. if (NpcData.getInstance().getTemplateByName(_name) != null) { sendPacket(CharCreateFail.REASON_INCORRECT_NAME); return; } // You already have the maximum amount of characters for this account. if (PlayerInfoTable.getInstance().getCharactersInAcc(getClient().getAccountName()) >= 7) { sendPacket(CharCreateFail.REASON_TOO_MANY_CHARACTERS); return; } // The name already exists. if (PlayerInfoTable.getInstance().getPlayerObjectId(_name) > 0) { sendPacket(CharCreateFail.REASON_NAME_ALREADY_EXISTS); return; } // The class id related to this template is post-newbie. final PlayerTemplate template = PlayerData.getInstance().getTemplate(_classId); if (template == null || template.getClassBaseLevel() > 1) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Create the player Object. final Player player = Player.create(IdFactory.getInstance().getNextId(), template, getClient().getAccountName(), _name, _hairStyle, _hairColor, _face, Sex.values()[_sex]); if (player == null) { sendPacket(CharCreateFail.REASON_CREATION_FAILED); return; } // Set default values. player.setCurrentCp(0); player.setCurrentHp(player.getMaxHp()); player.setCurrentMp(player.getMaxMp()); // send acknowledgement sendPacket(CharCreateOk.STATIC_PACKET); World.getInstance().addObject(player); player.getPosition().set(template.getRandomSpawn()); player.setTitle(""); // Register shortcuts. player.registerShortCut(new L2ShortCut(0, 0, 3, 2, -1, 1)); // attack shortcut player.registerShortCut(new L2ShortCut(3, 0, 3, 5, -1, 1)); // take shortcut player.registerShortCut(new L2ShortCut(10, 0, 3, 0, -1, 1)); // sit shortcut // Equip or add items, based on template. for (int itemId : template.getItemIds()) { final ItemInstance item = player.getInventory().addItem("Init", itemId, 1, player, null); if (itemId == 5588) // tutorial book shortcut player.registerShortCut(new L2ShortCut(11, 0, 1, item.getObjectId(), -1, 1)); if (item.isEquipable()) { if (player.getActiveWeaponItem() == null || !(item.getItem().getType2() != Item.TYPE2_WEAPON)) player.getInventory().equipItemAndRecord(item); } } // Add skills. for (GeneralSkillNode skill : player.getAvailableAutoGetSkills()) { if (skill.getId() == 1001 || skill.getId() == 1177) player.registerShortCut(new L2ShortCut(1, 0, 2, skill.getId(), 1, 1)); if (skill.getId() == 1216) player.registerShortCut(new L2ShortCut(9, 0, 2, skill.getId(), 1, 1)); } // Tutorial runs here. if (!Config.DISABLE_TUTORIAL) { if (player.getQuestState("Tutorial") == null) { final Quest quest = ScriptData.getInstance().getQuest("Tutorial"); if (quest != null) quest.newQuestState(player).setState(Quest.STATE_STARTED); } } player.setOnlineStatus(true, false); player.deleteMe(); final CharSelectInfo csi = new CharSelectInfo(getClient().getAccountName(), getClient().getSessionId().playOkID1); sendPacket(csi); getClient().setCharSelectSlot(csi.getCharacterSlots()); } } It couldn't work, because this class is different from yours
  2. Hello everybody, can someone show me a code how to make custom starting level on aCis 379? I tried myself and it didn't work. I'm not the best java developer (if u know what i mean), just learning
×