Autor Tema: separar sexos  (Leído 174 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado Shadock

  • Grado C
  • *
  • Topic Author
  • Mensajes: 144
  • ar
  • Agradecimientos: 21
  • siempre hacia adelante
  • Cronica: : Interlude
  • Revision: 365
  • S.O: Windows 10
  • Serverpack : L2jaCis
separar sexos
« en: Diciembre 27, 2018, 04:10:19 am »
gracias
Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    hola gente buenas noches..
    quería saber si alguien puede explicarme como hacer para que pueda seleccionar el lugar de nacimiento de razas se que se edita de "data/xml/classes/"
     pero quiero separar por sexos  alguien que tenga alguna idea de como hacerlo se lo agradecería  este es una de las lineas tal vez si separo o duplico esto dejando solo radius female y   heightFemale  podría editar esta separacion  pero no quiero hacer nada sin consultar desde ya muchas gracias


    Código: [Seleccionar]
    <class id="109"><!-- Ghost Sentinel -->
    <set name="str" val="41" />
    <set name="con" val="32" />
    <set name="dex" val="34" />
    <set name="int" val="25" />
    <set name="wit" val="12" />
    <set name="men" val="26" />
    <set name="pAtk" val="4" />
    <set name="pDef" val="80" />
    <set name="mAtk" val="6" />
    <set name="mDef" val="41" />
    <set name="runSpd" val="122" />
    <set name="walkSpd" val="85" />
    <set name="swimSpd" val="50" />
    <set name="spawnX" val="28377" />
    <set name="spawnY" val="10916" />
    <set name="spawnZ" val="-4224" />
    <set name="radius" val="7.5" />
    <set name="radiusFemale" val="7" />
    <set name="height" val="24" />
    <set name="heightFemale" val="23.5" />
    <set name="baseLvl" val="76" />
    <set name="hpTable" val="94;107.65;121.45;135.4;149.5;163.75;178.15;192.7;207.4;222.25;237.25;252.4;267.7;283.15;298.75;314.5;330.4;346.45;362.65;379;412;445.3;478.9;512.8;547;581.5;616.3;651.4;686.8;722.5;758.5;794.8;831.4;868.3;905.5;943;980.8;1018.9;1057.3;1096;1148;1200.4;1253.2;1306.4;1360;1414;1468.4;1523.2;1578.4;1634;1690;1746.4;1803.2;1860.4;1918;1976;2034.4;2093.2;2152.4;2212;2272;2332.4;2393.2;2454.4;2516;2578;2640.4;2703.2;2766.4;2830;2894;2958.4;3023.2;3088.4;3154;3220;3286.4;3353.2;3420.4;3488" />
    <set name="mpTable" val="30;35.46;40.98;46.56;52.2;57.9;63.66;69.48;75.36;81.3;87.3;93.36;99.48;105.66;111.9;118.2;124.56;130.98;137.46;144;153.9;163.89;173.97;184.14;194.4;204.75;215.19;225.72;236.34;247.05;257.85;268.74;279.72;290.79;301.95;313.2;324.54;335.97;347.49;359.1;378.6;398.25;418.05;438;458.1;478.35;498.75;519.3;540;560.85;581.85;603;624.3;645.75;667.35;689.1;711;733.05;755.25;777.6;800.1;822.75;845.55;868.5;891.6;914.85;938.25;961.8;985.5;1009.35;1033.35;1057.5;1081.8;1106.25;1130.85;1155.6;1180.5;1205.55;1230.75;1256.1" />
    <set name="cpTable" val="47;53.825;60.725;67.7;74.75;81.875;89.075;96.35;103.7;111.125;118.625;126.2;133.85;141.575;149.375;157.25;165.2;173.225;181.325;189.5;206;222.65;239.45;256.4;273.5;290.75;308.15;325.7;343.4;361.25;379.25;397.4;415.7;434.15;452.75;471.5;490.4;509.45;528.65;548;574;600.2;626.6;653.2;680;707;734.2;761.6;789.2;817;845;873.2;901.6;930.2;959;988;1017.2;1046.6;1076.2;1106;1136;1166.2;1196.6;1227.2;1258;1289;1320.2;1351.6;1383.2;1415;1447;1479.2;1511.6;1544.2;1577;1610;1643.2;1676.6;1710.2;1744" />
    <skillTrees>
    « Última modificación: Diciembre 27, 2018, 04:17:57 am por Shadock »

    Desconectado tutankamon

    • No Grade
    • *
    • Mensajes: 47
    • 00
    • Agradecimientos: 26
    • Only God Can Touch Me
    • Cronica: : Interlude
    • Revision: Acis366
    • S.O: Linux Ubuntu
    • Serverpack : Acis
    A Shadock le gusta este post.

    Re:separar sexos
    « Respuesta #1 en: Diciembre 27, 2018, 07:04:40 am »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Desde ahi no vas a poder dividir los inicios de spawn por géneros, lo vas a tener q hacer mediante la modificación del core. Tienes acceso al core? Facilita la revisión de tu pack y entre todos te guiamos a hacerlo  :01:

    Desconectado tutankamon

    • No Grade
    • *
    • Mensajes: 47
    • 00
    • Agradecimientos: 26
    • Only God Can Touch Me
    • Cronica: : Interlude
    • Revision: Acis366
    • S.O: Linux Ubuntu
    • Serverpack : Acis
    A Shadock le gusta este post.

    Re:separar sexos
    « Respuesta #2 en: Diciembre 27, 2018, 07:52:35 am »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
  • Suponiendo que tienes Acis.
    Busca EnterWorld.java
    y Agrega el siguiente code

    Código: [Seleccionar]
    		if (((L2PcInstance) activeChar).getAppearance().getSex() == Sex.FEMALE
    && activeChar.getOnlineTime() == 0)
    activeChar.teleToLocation(-71568, 258353, -3111, 20);


    Conectado Shadock

    • Grado C
    • *
    • Topic Author
    • Mensajes: 144
    • ar
    • Agradecimientos: 21
    • siempre hacia adelante
    • Cronica: : Interlude
    • Revision: 365
    • S.O: Windows 10
    • Serverpack : L2jaCis
    Re:separar sexos
    « Respuesta #3 en: Diciembre 27, 2018, 01:55:25 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    muchas gracias ahora lo voy a probar  si no entiendo mal con ese parche  todas las razas FEMALE nacerían en  (-71568, 258353, -3111, 20);  verdad y el 20 a que corresponde al lvl ?

    Desconectado tutankamon

    • No Grade
    • *
    • Mensajes: 47
    • 00
    • Agradecimientos: 26
    • Only God Can Touch Me
    • Cronica: : Interlude
    • Revision: Acis366
    • S.O: Linux Ubuntu
    • Serverpack : Acis
    A Fissban y Shadock, les gusta este post.

    Re:separar sexos
    « Respuesta #4 en: Diciembre 27, 2018, 02:22:07 pm »
    gracias
    Este post tiene 2 agradecimientos
  • Añade a tus favoritos
    es para el randomOffset, tengo entendido que  sirve para modificar un poco el /loc y que no caigan los players exactamente en el mismo lugar y se haga un bug por blockbody.

    Conectado Shadock

    • Grado C
    • *
    • Topic Author
    • Mensajes: 144
    • ar
    • Agradecimientos: 21
    • siempre hacia adelante
    • Cronica: : Interlude
    • Revision: 365
    • S.O: Windows 10
    • Serverpack : L2jaCis
    Re:separar sexos
    « Respuesta #5 en: Diciembre 27, 2018, 08:31:32 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
  • te vuelvo a molestar por que no logro hacerlo funcionar  ya que el pack que utilizo se basa en facciones y esta muy modificado
    este es mi enterword y me tira errores ponga donde lo ponga y no logre hacer que se me separen los sexos y ponerle la loc q quiero  ya que son excasos mis conocimientos en java U_U


    Código: [Seleccionar]
    /*
     * 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 net.sf.l2j.gameserver.network.clientpackets;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map.Entry;
    import java.util.logging.Level;

    import main.EngineModsManager;

    import net.sf.l2j.Config;
    import net.sf.l2j.L2DatabaseFactory;
    import net.sf.l2j.gameserver.communitybbs.Manager.MailBBSManager;
    import net.sf.l2j.gameserver.custom.entity.FactionMaps;
    import net.sf.l2j.gameserver.datatables.AdminCommandAccessRights;
    import net.sf.l2j.gameserver.datatables.AnnouncementTable;
    import net.sf.l2j.gameserver.datatables.GmListTable;
    import net.sf.l2j.gameserver.datatables.MapRegionTable.TeleportWhereType;
    import net.sf.l2j.gameserver.datatables.SkillTable.FrequentSkill;
    import net.sf.l2j.gameserver.instancemanager.CastleManager;
    import net.sf.l2j.gameserver.instancemanager.ClanHallManager;
    import net.sf.l2j.gameserver.instancemanager.CoupleManager;
    import net.sf.l2j.gameserver.instancemanager.DimensionalRiftManager;
    import net.sf.l2j.gameserver.instancemanager.PetitionManager;
    import net.sf.l2j.gameserver.instancemanager.SevenSigns;
    import net.sf.l2j.gameserver.instancemanager.SevenSigns.CabalType;
    import net.sf.l2j.gameserver.instancemanager.SevenSigns.SealType;
    import net.sf.l2j.gameserver.model.L2Clan;
    import net.sf.l2j.gameserver.model.L2Clan.SubPledge;
    import net.sf.l2j.gameserver.model.Location;
    import net.sf.l2j.gameserver.model.World;
    import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    import net.sf.l2j.gameserver.model.base.ClassRace;
    import net.sf.l2j.gameserver.model.entity.Castle;
    import net.sf.l2j.gameserver.model.entity.ClanHall;
    import net.sf.l2j.gameserver.model.entity.Siege;
    import net.sf.l2j.gameserver.model.holder.IntIntHolder;
    import net.sf.l2j.gameserver.model.olympiad.Olympiad;
    import net.sf.l2j.gameserver.model.zone.ZoneId;
    import net.sf.l2j.gameserver.network.SystemMessageId;
    import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
    import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
    import net.sf.l2j.gameserver.network.serverpackets.Die;
    import net.sf.l2j.gameserver.network.serverpackets.EtcStatusUpdate;
    import net.sf.l2j.gameserver.network.serverpackets.ExMailArrived;
    import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
    import net.sf.l2j.gameserver.network.serverpackets.ExStorageMaxCount;
    import net.sf.l2j.gameserver.network.serverpackets.FriendList;
    import net.sf.l2j.gameserver.network.serverpackets.HennaInfo;
    import net.sf.l2j.gameserver.network.serverpackets.ItemList;
    import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
    import net.sf.l2j.gameserver.network.serverpackets.PlaySound;
    import net.sf.l2j.gameserver.network.serverpackets.PledgeShowMemberListAll;
    import net.sf.l2j.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
    import net.sf.l2j.gameserver.network.serverpackets.PledgeSkillList;
    import net.sf.l2j.gameserver.network.serverpackets.PledgeStatusChanged;
    import net.sf.l2j.gameserver.network.serverpackets.QuestList;
    import net.sf.l2j.gameserver.network.serverpackets.ShortCutInit;
    import net.sf.l2j.gameserver.network.serverpackets.SkillCoolTime;
    import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
    import net.sf.l2j.gameserver.network.serverpackets.UserInfo;
    import net.sf.l2j.gameserver.scripting.Quest;
    import net.sf.l2j.gameserver.scripting.QuestState;
    import net.sf.l2j.gameserver.scripting.ScriptManager;
    import net.sf.l2j.gameserver.taskmanager.GameTimeTaskManager;
    import net.sf.l2j.gameserver.util.Broadcast;

    public class EnterWorld extends L2GameClientPacket
    {
    private static final String LOAD_PLAYER_QUESTS = "SELECT name,var,value FROM character_quests WHERE charId=?";

    @Override
    protected void readImpl()
    {
    }

    @Override
    protected void runImpl()
    {
    Location loc = null;
    final L2PcInstance activeChar = getClient().getActiveChar();
    if (activeChar == null)
    {
    _log.warning("EnterWorld failed! activeChar is null...");
    getClient().closeNow();
    return;
    }

    final int objectId = activeChar.getObjectId();

    if (activeChar.isGM())
    {
    if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", activeChar.getAccessLevel()))
    {
    activeChar.setIsInvul(true);
    }

    if (Config.GM_STARTUP_INVISIBLE && AdminCommandAccessRights.getInstance().hasAccess("admin_hide", activeChar.getAccessLevel()))
    {
    activeChar.getAppearance().setInvisible();
    }

    if (Config.GM_STARTUP_SILENCE && AdminCommandAccessRights.getInstance().hasAccess("admin_silence", activeChar.getAccessLevel()))
    {
    activeChar.setInRefusalMode(true);
    }

    if (Config.GM_STARTUP_AUTO_LIST && AdminCommandAccessRights.getInstance().hasAccess("admin_gmlist", activeChar.getAccessLevel()))
    {
    GmListTable.getInstance().addGm(activeChar, false);
    }
    else
    {
    GmListTable.getInstance().addGm(activeChar, true);
    }
    }

    // Set dead status if applies
    if (activeChar.getCurrentHp() < 0.5)
    {
    activeChar.setIsDead(true);
    }

    // Clan checks.
    final L2Clan clan = activeChar.getClan();
    if (clan != null)
    {
    activeChar.sendPacket(new PledgeSkillList(clan));

    // Refresh player instance.
    clan.getClanMember(objectId).setPlayerInstance(activeChar);

    final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_S1_LOGGED_IN).addCharName(activeChar);
    final PledgeShowMemberListUpdate update = new PledgeShowMemberListUpdate(activeChar);

    // Send packets to others members.
    for (L2PcInstance member : clan.getOnlineMembers())
    {
    if (member == activeChar)
    {
    continue;
    }

    member.sendPacket(msg);
    member.sendPacket(update);
    }

    // Send a login notification to sponsor or apprentice, if logged.
    if (activeChar.getSponsor() != 0)
    {
    final L2PcInstance sponsor = World.getInstance().getPlayer(activeChar.getSponsor());
    if (sponsor != null)
    {
    sponsor.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOUR_APPRENTICE_S1_HAS_LOGGED_IN).addCharName(activeChar));
    }
    }
    else if (activeChar.getApprentice() != 0)
    {
    final L2PcInstance apprentice = World.getInstance().getPlayer(activeChar.getApprentice());
    if (apprentice != null)
    {
    apprentice.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOUR_SPONSOR_S1_HAS_LOGGED_IN).addCharName(activeChar));
    }
    }

    // Add message at connexion if clanHall not paid.
    final ClanHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(clan);
    if (clanHall != null && !clanHall.getPaid())
    {
    activeChar.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
    }

    for (Castle castle : CastleManager.getInstance().getCastles())
    {
    final Siege siege = castle.getSiege();
    if (!siege.isInProgress())
    {
    continue;
    }

    if (siege.checkIsAttacker(clan))
    {
    activeChar.setSiegeState((byte) 1);
    }
    else if (siege.checkIsDefender(clan))
    {
    activeChar.setSiegeState((byte) 2);
    }
    }

    activeChar.sendPacket(new PledgeShowMemberListAll(clan, 0));

    for (SubPledge sp : clan.getAllSubPledges())
    {
    activeChar.sendPacket(new PledgeShowMemberListAll(clan, sp.getId()));
    }

    activeChar.sendPacket(new UserInfo(activeChar));
    activeChar.sendPacket(new PledgeStatusChanged(clan));
    }

    // Updating Seal of Strife Buff/Debuff
    if (SevenSigns.getInstance().isSealValidationPeriod() && SevenSigns.getInstance().getSealOwner(SealType.STRIFE) != CabalType.NORMAL)
    {
    CabalType cabal = SevenSigns.getInstance().getPlayerCabal(objectId);
    if (cabal != CabalType.NORMAL)
    {
    if (cabal == SevenSigns.getInstance().getSealOwner(SealType.STRIFE))
    {
    activeChar.addSkill(FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
    }
    else
    {
    activeChar.addSkill(FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
    }
    }
    }
    else
    {
    activeChar.removeSkill(FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
    activeChar.removeSkill(FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
    }

    if (Config.PLAYER_SPAWN_PROTECTION > 0)
    {
    activeChar.setSpawnProtection(true);
    }

    if (activeChar.isVip())
    {
    Broadcast.announceToOnlinePlayers("Caution! " + activeChar.getName() + ", the greatest player ever just logged in!");
    }

    activeChar.spawnMe();

    // Engage and notify partner.
    if (Config.ALLOW_WEDDING)
    {
    for (Entry<Integer, IntIntHolder> coupleEntry : CoupleManager.getInstance().getCouples().entrySet())
    {
    final IntIntHolder couple = coupleEntry.getValue();
    if (couple.getId() == objectId || couple.getValue() == objectId)
    {
    activeChar.setCoupleId(coupleEntry.getKey());
    break;
    }
    }
    }

    // Announcements, welcome & Seven signs period messages
    activeChar.sendPacket(SystemMessageId.WELCOME_TO_LINEAGE);
    activeChar.sendPacket(SevenSigns.getInstance().getCurrentPeriod().getMessageId());
    AnnouncementTable.getInstance().showAnnouncements(activeChar, false);

    // if player is DE, check for shadow sense skill at night
    if (activeChar.getRace() == ClassRace.DARK_ELF && activeChar.getSkillLevel(294) == 1)
    {
    activeChar.sendPacket(SystemMessage.getSystemMessage((GameTimeTaskManager.getInstance().isNight()) ? SystemMessageId.NIGHT_S1_EFFECT_APPLIES : SystemMessageId.DAY_S1_EFFECT_DISAPPEARS).addSkillName(294));
    }

    activeChar.getMacroses().sendUpdate();
    activeChar.sendPacket(new UserInfo(activeChar));
    activeChar.sendPacket(new HennaInfo(activeChar));
    activeChar.sendPacket(new FriendList(activeChar));
    // activeChar.queryGameGuard();
    activeChar.sendPacket(new ItemList(activeChar, false));
    activeChar.sendPacket(new ShortCutInit(activeChar));
    activeChar.sendPacket(new ExStorageMaxCount(activeChar));

    // no broadcast needed since the player will already spawn dead to others
    if (activeChar.isAlikeDead())
    {
    activeChar.sendPacket(new Die(activeChar));
    }

    activeChar.updateEffectIcons();
    activeChar.sendPacket(new EtcStatusUpdate(activeChar));
    activeChar.sendSkillList();

    // Load quests.
    try (Connection con = L2DatabaseFactory.getInstance().getConnection())
    {
    PreparedStatement statement = con.prepareStatement(LOAD_PLAYER_QUESTS);
    statement.setInt(1, objectId);

    ResultSet rs = statement.executeQuery();
    while (rs.next())
    {
    final String questName = rs.getString("name");

    // Test quest existence.
    final Quest quest = ScriptManager.getInstance().getQuest(questName);
    if (quest == null)
    {
    _log.warning("Quest: Unknown quest " + questName + " for player " + activeChar.getName());
    continue;
    }

    // Each quest get a single state ; create one QuestState per found <state> variable.
    final String var = rs.getString("var");
    if (var.equals("<state>"))
    {
    new QuestState(activeChar, quest, rs.getByte("value"));

    // Notify quest for enterworld event, if quest allows it.
    if (quest.getOnEnterWorld())
    {
    quest.notifyEnterWorld(activeChar);
    }
    }
    // Feed an existing quest state.
    else
    {
    final QuestState qs = activeChar.getQuestState(questName);
    if (qs == null)
    {
    _log.warning("Quest: Unknown quest state " + questName + " for player " + activeChar.getName());
    continue;
    }

    qs.setInternal(var, rs.getString("value"));
    }
    }
    rs.close();
    statement.close();
    }
    catch (Exception e)
    {
    _log.log(Level.WARNING, "Quest: could not insert char quest:", e);
    }

    activeChar.sendPacket(new QuestList(activeChar));

    // Unread mails make a popup appears.
    if (Config.ENABLE_COMMUNITY_BOARD && MailBBSManager.getInstance().checkUnreadMail(activeChar) > 0)
    {
    activeChar.sendPacket(SystemMessageId.NEW_MAIL);
    activeChar.sendPacket(new PlaySound("systemmsg_e.1233"));
    activeChar.sendPacket(ExMailArrived.STATIC_PACKET);
    }

    // Clan notice, if active.
    if (Config.ENABLE_COMMUNITY_BOARD && clan != null && clan.isNoticeEnabled())
    {
    final NpcHtmlMessage html = new NpcHtmlMessage(0);
    html.setFile("data/html/clan_notice.htm");
    html.replace("%clan_name%", clan.getName());
    html.replace("%notice_text%", clan.getNotice().replaceAll("\r\n", "<br>").replaceAll("action", "").replaceAll("bypass", ""));
    sendPacket(html);
    }
    else if (Config.SERVER_NEWS)
    {
    final NpcHtmlMessage html = new NpcHtmlMessage(0);
    html.setFile("data/html/servnews.htm");
    sendPacket(html);
    }

    PetitionManager.getInstance().checkPetitionMessages(activeChar);
    playerLastAccess(activeChar);
    activeChar.onPlayerEnter();


    sendPacket(new SkillCoolTime(activeChar));

    // If player logs back in a stadium, port him in nearest town.
    if (Olympiad.getInstance().playerInStadia(activeChar))
    {
    activeChar.teleToLocation(TeleportWhereType.TOWN);
    }

    if (DimensionalRiftManager.getInstance().checkIfInRiftZone(activeChar.getX(), activeChar.getY(), activeChar.getZ(), false))
    {
    DimensionalRiftManager.getInstance().teleportToWaitingRoom(activeChar);
    }

    if (activeChar.getClanJoinExpiryTime() > System.currentTimeMillis())
    {
    activeChar.sendPacket(SystemMessageId.CLAN_MEMBERSHIP_TERMINATED);
    }

    // Attacker or spectator logging into a siege zone will be ported at town.
    if (!activeChar.isGM() && (!activeChar.isInSiege() || activeChar.getSiegeState() < 2) && activeChar.isInsideZone(ZoneId.SIEGE))
    {
    activeChar.teleToLocation(TeleportWhereType.TOWN);
    }

    activeChar.setIP((activeChar.getClient().getConnection().getInetAddress().getHostAddress()).toString());

    EngineModsManager.onEnterWorld(activeChar);

    if (Config.FACTION_ENABLE_MEM_BALANCE_ONLOG && activeChar.getFactionId() > 0)
    {
    switch (activeChar.getFactionId())
    {
    case 1:
    World.getInstance().getAllTeam1().remove(activeChar.getName().toLowerCase());
    break;
    case 2:
    World.getInstance().getAllTeam2().remove(activeChar.getName().toLowerCase());
    break;
    }

    activeChar.getAppearance().setNameColor(0xFFFFFF);
    activeChar.getAppearance().setTitleColor(0xFFFFFF);
    activeChar.setTeam(0);
    activeChar.setFactionId(0);
    }

    if (Config.ENABLE_ONLINE_PLAYERS_ON_ENTERWORLD)
    {
    activeChar.sendMessage("--------------------------------------------------------------");
    activeChar.sendMessage(Config.FACTION_TEAM1_NAME + ": " + World.getInstance().getAllteam1Players().size());
    activeChar.sendMessage(Config.FACTION_TEAM2_NAME + ": " + World.getInstance().getAllteam2Players().size());
    activeChar.sendMessage("Total: " + World.getInstance().getPlayers().size() + " online.");
    activeChar.sendMessage("--------------------------------------------------------------");
    }

    if (!Config.FACTION_ENABLE_VOTE_MAP)
    {
    activeChar.sendMessage("--------------------------------------------------------------");
    activeChar.sendMessage("Current Map: " + FactionMaps.getMapName() + ". Round [" + FactionMaps.getMapId() + "].");
    activeChar.sendMessage("Next Map: " + FactionMaps._all_maps.get(FactionMaps.getNextMap(FactionMaps.getMapId())) + ".");
    activeChar.sendMessage("Time left: " + FactionMaps.getDelayUntilVoting());
    activeChar.sendMessage("--------------------------------------------------------------");
    }

    if (Config.FACTION_ENCHANT_SYSTEM_TYPE.equals("PVPENCHANT") && activeChar.getCurrentEnItem() == null)
    {
    activeChar.sendPacket(new ExShowScreenMessage("For Level Up Speack Npc (Manager Faction)!", 20000));
    }

    // if (!activeChar.isGM())
    // {
    switch (activeChar.getFactionId())
    {
    case 1:
    activeChar.getAppearance().setNameColor(Config.FACTION_TEAM1_COLOR);
    if (activeChar.isVip())
    {
    activeChar.getAppearance().setTitleColor(0x00CCFF);
    }
    else
    {
    activeChar.getAppearance().setTitleColor(Config.FACTION_TEAM1_COLOR);
    if(Config.AURA_TEAM_ENABLE){
    activeChar.setTeam(1);
    }
    }
    activeChar.broadcastUserInfo();
    activeChar.sendMessage("You are fighting for " + Config.FACTION_TEAM1_NAME + " Faction.");
    break;
    case 2:
    activeChar.getAppearance().setNameColor(Config.FACTION_TEAM2_COLOR);
    if (activeChar.isVip())
    {
    activeChar.getAppearance().setTitleColor(0x00CCFF);
    }
    else
    {
    activeChar.getAppearance().setTitleColor(Config.FACTION_TEAM2_COLOR);
    if(Config.AURA_TEAM_ENABLE){
    activeChar.setTeam(2);
    }
    }
    activeChar.broadcastUserInfo();
    activeChar.sendMessage("You are fighting for " + Config.FACTION_TEAM2_NAME + " Faction.");
    break;
    default:
    activeChar.sendMessage("Meet the Faction Manager in order to chose your destiny.");
    break;
    }
    // }

    activeChar.sendPacket(ActionFailed.STATIC_PACKET);
    }

    @Override
    protected boolean triggersOnActionRequest()
    {
    return false;
    }

    private static void playerLastAccess(L2PcInstance activeChar)
    {
    Location loc = null;
        Date lastAcess = new Date(activeChar.getLastAccess());
        SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
        String data = dateformat.format(lastAcess);
           
        CreatureSay lastVisit = new CreatureSay(0, 3, "[Last Login]" ,  "Usted entro por ultima vez "+ data);   
        activeChar.sendPacket(lastVisit);
       
      //-----------------------



     
      //------------------------
    }
    }

    si podrias explicar te lo voy a agradecer asi aprendo un poco mas del tema
    « Última modificación: Diciembre 29, 2018, 08:47:59 pm por Shadock »

    Desconectado tutankamon

    • No Grade
    • *
    • Mensajes: 47
    • 00
    • Agradecimientos: 26
    • Only God Can Touch Me
    • Cronica: : Interlude
    • Revision: Acis366
    • S.O: Linux Ubuntu
    • Serverpack : Acis
    A Shadock le gusta este post.

    Re:separar sexos
    « Respuesta #6 en: Diciembre 30, 2018, 06:52:08 pm »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    En realidad prefiero que me muestres el error.., xk al igual solo as colocado en el lugar incorrecto el código.  :13:
    Creo qe tienes el faction del pack de Dagger.
    Borra el anterior codigo.
    Ahora busca: CharacterCreate (Alt+Sift+R con eclipse)
    Busca la linea donde este :

    Código: [Seleccionar]
    		if (Config.FACTION_SYSTEM_NEW_CHAR_ALLOW_ALT_SPAWN) {
    newChar.setXYZInvisible(Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_X, Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Y,
    Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Z);
    y remplaza x esto:

    Código: [Seleccionar]
    		if (Config.FACTION_SYSTEM_NEW_CHAR_ALLOW_ALT_SPAWN) {
    if (((L2PcInstance) newChar).getAppearance().getSex() == Sex.FEMALE
    && newChar.getOnlineTime() == 0)
    newChar.setXYZInvisible(-71568, 258353, -3111);
    else
    newChar.setXYZInvisible(Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_X, Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Y,
    Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Z);


    Si loq quieres obligar a los jugadores a elegir si o si una facción según la condición que quieres (este caso x sexo). Personalmente no te recomiendo que los separes por spawn, y hagas varios npcs con diferentes Chose faction.
    Loq haria yo, es hacer un unico Chose Faction y dentro de las condiciones que tu indiques hacer que el jugador entre a un bando o a otro al pulsar sobre el boton.
    Otra cosa, no olvides condicionar o borrar los comandos de cambiar las facciones (.order .chaos).  :08:
    « Última modificación: Diciembre 30, 2018, 06:59:51 pm por tutankamon »

    Conectado Shadock

    • Grado C
    • *
    • Topic Author
    • Mensajes: 144
    • ar
    • Agradecimientos: 21
    • siempre hacia adelante
    • Cronica: : Interlude
    • Revision: 365
    • S.O: Windows 10
    • Serverpack : L2jaCis
    Re:separar sexos
    « Respuesta #7 en: Diciembre 31, 2018, 02:15:29 am »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
  • gracias por responderme acabo de probarlo y me dan errores  este codigo que me diste


    Código: [Seleccionar]
    newChar.setXYZInvisible(Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_X, Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Y,

    me aparece de esta manera


    Código: [Seleccionar]
    newChar.setXYZInvisible(Config.FACTION_NEWBIE_BASE[0] + Rnd.get(Config.FACTION_NEWBIE_BASE[3], Config.FACTION_NEWBIE_BASE[4]), Config.FACTION_NEWBIE_BASE[1] + Rnd.get(Config.FACTION_NEWBIE_BASE[3], Config.FACTION_NEWBIE_BASE[4]), Config.FACTION_NEWBIE_BASE[2]);


    el pack que utilizo no es el de dagger  es este  http://l2devsadmins.net/l2devsAdmins2-0-11/index.php?topic=12310.0 esta bastante bueno pero me esta costando horrores arreglarle algunos bug y editarlo a mi gusto ya que esta muy tocado  si no me equivoco  el eugine que utiliza es el de fissban que es garantia de confianza  :D  pero como te habia dicho mis conocimientos de java son casi nulos por el momento de paso te hago otra consulta y disculpame por el abuso
    si yo duplico esto cuando lo pueda colocar  donde pones FEMALE  le pongo MALE  podre elegir el lugar de nacimiento tambien verdad?


    CharacterCreate


    Código: [Seleccionar]
    /*
     * 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 net.sf.l2j.gameserver.network.clientpackets;

    import net.sf.l2j.commons.lang.StringUtil;
    import net.sf.l2j.commons.random.Rnd;

    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.model.L2ShortCut;
    import net.sf.l2j.gameserver.model.L2SkillLearn;
    import net.sf.l2j.gameserver.model.World;
    import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    import net.sf.l2j.gameserver.model.actor.template.PcTemplate;
    import net.sf.l2j.gameserver.model.base.Sex;
    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;
    import net.sf.l2j.gameserver.scripting.ScriptManager;

    import main.EngineModsManager;

    @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 (!StringUtil.isValidPlayerName(_name))
    {
    sendPacket(new CharCreateFail((_name.length() > 16) ? CharCreateFail.REASON_16_ENG_CHARS : 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;
    }

    if (CharNameTable.getInstance().getCharactersInAcc(getClient().getAccountName()) >= 7)
    {
    sendPacket(new CharCreateFail(CharCreateFail.REASON_TOO_MANY_CHARACTERS));
    return;
    }

    if (CharNameTable.getInstance().getPlayerObjectId(_name) > 0)
    {
    sendPacket(new CharCreateFail(CharCreateFail.REASON_NAME_ALREADY_EXISTS));
    return;
    }

    final PcTemplate template = CharTemplateTable.getInstance().getTemplate(_classId);
    if (template == null || template.getClassBaseLevel() > 1)
    {
    sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
    return;
    }

    final L2PcInstance newChar = L2PcInstance.create(IdFactory.getInstance().getNextId(), template, getClient().getAccountName(), _name, _hairStyle, _hairColor, _face, Sex.values()[_sex]);
    if (newChar == null)
    {
    sendPacket(new CharCreateFail(CharCreateFail.REASON_CREATION_FAILED));
    return;
    }

    newChar.setCurrentCp(0);
    newChar.setCurrentHp(newChar.getMaxHp());
    newChar.setCurrentMp(newChar.getMaxMp());

    // send acknowledgement
    sendPacket(CharCreateOk.STATIC_PACKET);

    World.getInstance().addObject(newChar);


    newChar.setXYZInvisible(Config.FACTION_NEWBIE_BASE[0] + Rnd.get(Config.FACTION_NEWBIE_BASE[3], Config.FACTION_NEWBIE_BASE[4]), Config.FACTION_NEWBIE_BASE[1] + Rnd.get(Config.FACTION_NEWBIE_BASE[3], Config.FACTION_NEWBIE_BASE[4]), Config.FACTION_NEWBIE_BASE[2]);
    // newChar.getPosition().set(template.getSpawn());
    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 (Item ia : template.getItems())
    {
    ItemInstance item = newChar.getInventory().addItem("Init", ia.getItemId(), 1, newChar, null);
    if (item.getItemId() == 5588)
    {
    newChar.registerShortCut(new L2ShortCut(11, 0, 1, item.getObjectId(), -1, 1));
    }

    if (item.isEquipable())
    {
    if (newChar.getActiveWeaponItem() == null || !(item.getItem().getType2() != Item.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 = ScriptManager.getInstance().getQuest("Tutorial");
    if (q != null)
    {
    q.newQuestState(newChar).setState(Quest.STATE_STARTED);
    }
    }
    }


    if (Config.PVP_PK_TITLE)
    newChar.setTitle(Config.PVP_TITLE_PREFIX + "[0] ");

    // Custom by fissban
    EngineModsManager.onCreateCharacter(newChar);

    newChar.setOnlineStatus(true, false);
    newChar.deleteMe();

    final CharSelectInfo cl = new CharSelectInfo(getClient().getAccountName(), getClient().getSessionId().playOkID1);
    getClient().getConnection().sendPacket(cl);
    getClient().setCharSelection(cl.getCharInfo());
    }
    }
    « Última modificación: Diciembre 31, 2018, 02:23:47 am por Shadock »

    Desconectado tutankamon

    • No Grade
    • *
    • Mensajes: 47
    • 00
    • Agradecimientos: 26
    • Only God Can Touch Me
    • Cronica: : Interlude
    • Revision: Acis366
    • S.O: Linux Ubuntu
    • Serverpack : Acis
    A Shadock le gusta este post.

    Re:separar sexos
    « Respuesta #8 en: Diciembre 31, 2018, 09:12:20 am »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    Normal que te diera error xk estas usando unas config diferente.,.  :01:
    Puedes armar un código con todo loq te proporcione y sin los config. ( cuando digo config, me refiero a cuando seteas parámetros desde un .Propperties )

    Este seria un ejemplo:

    Código: [Seleccionar]
    			
    if (((L2PcInstance) newChar).getAppearance().getSex() == Sex.FEMALE)
    newChar.setXYZInvisible(-71568, 258353, -3111);
    else
    newChar.setXYZInvisible(-71568, 258353, -3111);

    Cámbiale el Spawn modifiando esto: -71568, 258353, -3111
    El primer If hace referencia a las chicas, y el Else a todos los demás.
    La verdad q empezar con java en un pack faction te va a dar buenos quebraderos de cabeza jajaja pero naaah, todo sale con tiempo y ganas! Te animo aq experimentes tu mismo con los códigos sin ningún miedo, verás q todo tiene Su Logica, ademas en el foro podrás encontrar mucha sabiduría, con muchas preguntas frecuentes resueltas que podrán servirte siempre de apoyo.
    PD: Revisa los cubics  :05:

    Conectado Shadock

    • Grado C
    • *
    • Topic Author
    • Mensajes: 144
    • ar
    • Agradecimientos: 21
    • siempre hacia adelante
    • Cronica: : Interlude
    • Revision: 365
    • S.O: Windows 10
    • Serverpack : L2jaCis
    Re:separar sexos
    « Respuesta #9 en: Diciembre 31, 2018, 03:53:00 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Una MARAVILLA  exelente te agradezco mucho por la paciencia