Jump to content

Jocy

Members
  • Posts

    13
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

About Jocy

Profile Information

  • Gender
    Not Telling

Jocy's Achievements

Newbie

Newbie (1/16)

0

Reputation

  1. But as you can see this might not be upgraded and that topic is closed here I could not have been there ;)
  2. I upgraded to this event azizilaika up Freya L2J server is now doing a diff dp In primary http://www.maxcheaters.com/forum/index.php?topic=103178.0
  3. Biohazard Event update L2j Freya 'In primary "azizilaika" ' Core http://www.4shared.com/file/CfTHH0rb/Biohazard_Freya.html DP http://www.4shared.com/file/ySnf1QAM/Biohazard_Freya_DP.html
  4. This is all well and good but the Hungarians have fun with that for no reason is restarting the server: D Some time limit should be added only once in 24 hours as they can restart
  5. Freya L2Characker.java Peace zone attack //return; + if(!player.isInFunEvent() || !player.getTarget().isInFunEvent()) { player.sendPacket(new SystemMessage(SystemMessageId.TARGET_IN_PEACEZONE)); player.sendPacket(ActionFailed.STATIC_PACKET); } Freya L2PcInstance.java Peace zonel attack and skill attack // Check if the attacker is in TvT and TvT is started if (TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(getObjectId())) return true; + + if(!this.isInFunEvent() || !attacker.isInFunEvent()) + return false; // Check if this is offensive magic skill if (skill.isOffensive()) { if ((isInsidePeaceZone(this, target)) && !getAccessLevel().allowPeaceAttack()) { + if(!this.isInFunEvent() || !target.isInFunEvent()) + return false;
  6. DM.java Epilogue and Freya player.isOnline() !=0 replacement player.isOnlineInt() !=0
  7. MasterHeadler.java private static void loadVoicedHandlers() { + VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new castle()); VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new stats()); castle.java same :)
  8. Update Epilogue l2j [table][tr][td]index: com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java +++ com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java import com.l2jserver.gameserver.model.entity.L2Event; import com.l2jserver.gameserver.model.entity.Siege; import com.l2jserver.gameserver.model.entity.TvTEvent; +import com.l2jserver.gameserver.model.entity.Biohazard; import com.l2jserver.gameserver.model.itemcontainer.Inventory; import com.l2jserver.gameserver.model.itemcontainer.ItemContainer; import com.l2jserver.gameserver.model.itemcontainer.PcFreight; }; private static final int[] COMMON_CRAFT_LEVELS = { 5, 20, 28, 36, 43, 49, 55, 62 }; + private static boolean _inBiohazard = false; public class AIAccessor extends L2Character.AIAccessor { private int _obsZ; private boolean _observerMode = false; + public boolean _isZombie = false; + public void setIsZombie(boolean a) + { + _isZombie = a; + } + public boolean isZombie() + { + return _isZombie; + } + /** Stored from last ValidatePosition **/ private Point3D _lastServerPosition = new Point3D(0, 0, 0); private boolean _isFakeDeath; + public int factionId = 0; + public int getFactionId() + { + return this.factionId; + } + public void setFactionId(int i) + { + factionId=i; + } + public int isInFaction = 0; + public int inWorld() + { + return isInFaction; + } + public void untransform() { + if (inBiohazard() && Biohazard.isStarted() && _transformation != null && isZombie()) + return; if (_transformation != null) { setTransformAllowedSkills(new int[]{}); // Kill the L2PcInstance if (!super.doDie(killer)) return false; + + if (killer instanceof L2PcInstance) + { + L2PcInstance pl = (L2PcInstance) killer; + if (inBiohazard() && !isZombie() && pl.inBiohazard() && pl.isZombie() && Biohazard.isStarted()) + { + pl.abortAttack(); + pl.abortCast(); + doRevive(); + Biohazard.infectPlayer(this); + stopAllEffects(); + setCurrentHp(getMaxHp()); + setCurrentMp(getMaxMp()); + setCurrentCp(getMaxCp()); + } + } if (isMounted()) stopFeed(); { reviveRequest(this, null, false); } + + if (isZombie() && inBiohazard()) + { + if(Biohazard._infected.contains(this)) + { + Biohazard._infected.remove(this); + untransform(); + if (Biohazard._infected.size() == 0) + Biohazard.playersWin(); + } + } return true; } // Check if the attacker isn't the L2PcInstance Pet if (attacker == this || attacker == getPet()) return false; - + + L2PcInstance player = null; + if (attacker instanceof L2PcInstance) + player = (L2PcInstance) attacker; + if (attacker instanceof L2SummonInstance) + player = ((L2SummonInstance) attacker).getOwner(); + + if (player != null) + if (Biohazard.isStarted() && player.inBiohazard() && inBiohazard() && player.isZombie() != isZombie()) + return true; // TODO: check for friendly mobs // Check if the attacker is a L2MonsterInstance if (attacker instanceof L2MonsterInstance) return false; } + if (skill.getId() == 619 && inBiohazard() && isZombie()) + return false; + //************************************* Check Skill Type ******************************************* - // Check if this is offensive magic skill if (skill.isOffensive()) { - if ((isInsidePeaceZone(this, target)) && !getAccessLevel().allowPeaceAttack()) + if ((isInsidePeaceZone(this, target)) && !getAccessLevel().allowPeaceAttack()) { // If L2Character or target is in a peace zone, send a system message TARGET_IN_PEACEZONE a Server->Client packet ActionFailed sendPacket(new SystemMessage(SystemMessageId.TARGET_IN_PEACEZONE)); sendPacket(ActionFailed.STATIC_PACKET); + + boolean cond = true; + L2PcInstance trgtF = null; + if (target instanceof L2PcInstance) + trgtF = (L2PcInstance)target; + else if (target instanceof L2SummonInstance) + trgtF = ((L2SummonInstance)target).getOwner(); + if (trgtF != null) + if (Biohazard.isStarted() && trgtF.inBiohazard() && inBiohazard()) + { + if (trgtF.isZombie() != isZombie()) + cond = true; + if (trgtF.isZombie() == isZombie()) + cond = false; + } + + if (!cond) return false; } { if(skill.isPvpSkill()) // pvp skill { + if (Biohazard.isStarted() && inBiohazard() && ((L2PcInstance)target).inBiohazard() && isZombie() != ((L2PcInstance)target).isZombie()) + return true; if(getClan() != null && ((L2PcInstance)target).getClan() != null) { if(getClan().isAtWarWith(((L2PcInstance)target).getClan().getClanId()) && ((L2PcInstance)target).getClan().isAtWarWith(getClan().getClanId())) return true; } + private boolean inBiohazard() { + + return _inBiohazard; + } /** * Return True if the L2PcInstance is a Mage.<BR><BR> */ { _log.log(Level.SEVERE, "deleteMe()", e); } - + + try + { + Biohazard.onLogout(this); + } + catch (Exception e) + { + _log.log(Level.SEVERE, "deleteMe()", e); + } + // Update database with items in its inventory and remove them from the world try { private boolean _canFeed; private int _afroId = 0; private boolean _isInSiege; + public int _oldX; + public int _oldY; + public int _oldZ; public Collection<TimeStamp> getReuseTimeStamps() { break; } } + public void setIsInBiohazard(boolean b) { + + _inBiohazard = b; + } } \ No newline at end of file Index: com/l2jserver/gameserver/model/entity/Biohazard.java =================================================================== --- com/l2jserver/gameserver/model/entity/Biohazard.java (revision 0) +++ com/l2jserver/gameserver/model/entity/Biohazard.java (revision 0) +/* + * 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.l2jserver.gameserver.model.entity; + +import java.util.Calendar; +import java.util.logging.Logger; + +import javolution.util.FastSet; +import com.l2jserver.gameserver.Announcements; +import com.l2jserver.gameserver.instancemanager.TransformationManager; +import com.l2jserver.gameserver.model.L2World; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.olympiad.Olympiad; +import com.l2jserver.gameserver.network.serverpackets.PlaySound; +import com.l2jserver.gameserver.util.Broadcast; +import com.l2jserver.util.Rnd; + +/** + * @author Laikeriz + */ +public class Biohazard +{ + enum EventState + { + INACTIVE, + INACTIVATING, + REGISTERING, + STARTED, + REWARDING + } + + private final static Logger _log = Logger.getLogger(Biohazard.class.getName()); + private static EventState _state = EventState.INACTIVE; + + public static FastSet<L2PcInstance> _participants = new FastSet<L2PcInstance>(); + public static FastSet<L2PcInstance> _infected = new FastSet<L2PcInstance>(); + public static FastSet<L2PcInstance> _notInfected = new FastSet<L2PcInstance>(); + + public static boolean isStarted() + { + if (_state == EventState.STARTED) + return true; + return false; + } + + public static boolean isRegistering() + { + if (_state == EventState.REGISTERING) + return true; + return false; + } + + public static void startRegistering() + { + if (_state == EventState.REGISTERING || _state == EventState.STARTED) + return; + Announcements.getInstance().announceToAll("Biohazard: Registration is open."); + Announcements.getInstance().announceToAll("Biohazard: Type \".bhreg\" to register to event."); + Announcements.getInstance().announceToAll("Biohazard: Type \".bhunreg\" to unregister from event."); + _state = EventState.REGISTERING; + int step = 0; + int after = 0; + for (int i = 40; i > 0; i-=10) + { + switch(i) + { + case 40: + step = 5; + after = 15; + break; + case 30: + step = 5; + after = 10; + break; + case 20: + step = 4; + after = 5; + break; + case 10: + step = 1; + after = 1; + break; + } + if (_state == EventState.INACTIVE) + return; + Announcements.getInstance().announceToAll("Biohazard: Registration will be closed in " + after + " minute(s)."); + try{Thread.sleep(step*60000);}catch (Exception e){} + } + //sound = ""; + try{Thread.sleep(60000);}catch (Exception e){} + if (_state == EventState.INACTIVE) + return; + if (_participants.size() >= 2) + { + Announcements.getInstance().announceToAll("Biohazard: Teleporting players in 20 seconds."); + try{Thread.sleep(20000);}catch (Exception e){} + _state = EventState.STARTED; + startEventAndTelePl(); + } + else + Announcements.getInstance().announceToAll("Biohazard: Event aborted due to lack of participants."); + } + + public static void addParticipant(L2PcInstance player) + { + if (Olympiad.getInstance().isRegistered(player) || TvTEvent.isPlayerParticipant(player.getObjectId())) + { + player.sendMessage("You cannot register because of registration in another event"); + return; + } + if (_state == EventState.REGISTERING && !_participants.contains(player)) + { + _participants.add(player); + player.sendMessage("You have successfully registered to this event"); + } + else + player.sendMessage("You are already registered or it's not registration time."); + } + + public static void removeParticipant(L2PcInstance player) + { + if (_state == EventState.REGISTERING) + { + if (_participants.contains(player)) + _participants.remove(player); + else + player.sendMessage("You aren't registered in this event."); + player.setIsInBiohazard(false); + } + else + player.sendMessage("It's not registration time."); + } + public static void startEventAndTelePl() + { + if (_state == EventState.INACTIVE) + return; + synchronized(_participants) + { + for (L2PcInstance pl : _participants) + if (pl.isOnline() == 1) + { + _notInfected.add(pl); + pl._oldX = pl.getX(); + pl._oldY = pl.getY(); + pl._oldZ = pl.getZ(); + pl.teleToLocation(-17507,143206,-3911); + pl.setTeam(0); + pl.setIsInBiohazard(true); + pl.untransform(); + } + } + Announcements.getInstance().announceToAll("Biohazard: Teleportion done."); + Announcements.getInstance().announceToAll("Biohazard: One player was infected by untreatable virus!"); + Announcements.getInstance().announceToAll("Biohazard: In about one minute virus will take over his body and he will become zombie!"); + try{Thread.sleep(60000);}catch (Exception e){} + int num = Math.round(Rnd.get(_notInfected.size()-1)); + L2PcInstance infectFirst = ((L2PcInstance[])getAllNotInfected())[num]; + infectPlayer(infectFirst); + Announcements.getInstance().announceToAll("Biohazard: Virus took over " + infectFirst.getName() + " body and he wants to infect everybody else!"); + } + + public static void infectPlayer(L2PcInstance zombie) + { + if (_state == EventState.INACTIVE) + return; + if (zombie.isTransformed()) + zombie.untransform(); + zombie.setIsZombie(true); + _notInfected.remove(zombie); + _infected.add(zombie); + TransformationManager.getInstance().transformPlayer(303, zombie); + if (_notInfected.size() == 0) + zombiesWin(); + } + + public static void onLogout(L2PcInstance playerInstance) + { + if (_state == EventState.REGISTERING) + removeParticipant(playerInstance); + else if (_state == EventState.STARTED) + { + playerInstance.setXYZ(playerInstance._oldX,playerInstance._oldY,playerInstance._oldZ); + if (!playerInstance.isZombie()) + _notInfected.remove(playerInstance); + else if (playerInstance.isZombie()) + _infected.remove(playerInstance); + if (_notInfected.size() == 0) + zombiesWin(); + if (_infected.size() == 0) + playersWin(); + } + } + + public static void zombiesWin() + { + if (_state == EventState.INACTIVE) + return; + Announcements.getInstance().announceToAll("Biohazard: Zombies won."); + Announcements.getInstance().announceToAll("Biohazard: Rewarding and teleporting participants back to village in 20 seconds."); + _state = EventState.REWARDING; + try{Thread.sleep(20000);}catch (Exception e){} + synchronized(_infected) + { + for (L2PcInstance pl : _infected) + if (pl.isOnline() == 1) + pl.addItem("Biohazard", 6673, 1, pl, true); + } + synchronized(_participants) + { + for (L2PcInstance pl : _participants) + if (pl.isOnline() == 1) + { + pl.teleToLocation(pl._oldX,pl._oldY,pl._oldZ); + pl.setIsInBiohazard(false); +// if (pl.inWorld() == 1) +// pl.setTeam(pl.getFactionId()); + if (pl.isTransformed()) + pl.untransform(); + } + } + _participants.clear(); + _infected.clear(); + _notInfected.clear(); + _state = EventState.INACTIVE; + } + + public static void playersWin() + { + Announcements.getInstance().announceToAll("Biohazard: Players won."); + Announcements.getInstance().announceToAll("Biohazard: Rewarding and teleporting participants back to village in 20 seconds."); + _state = EventState.REWARDING; + try{Thread.sleep(20000);}catch (Exception e){} + synchronized(_notInfected) + { + for (L2PcInstance pl : _notInfected) + if (pl.isOnline() == 1) + { + pl.addItem("Biohazard", 6673, 1, pl, true); + } + } + synchronized(_participants) + { + for (L2PcInstance pl : _participants) + if (pl.isOnline() == 1) + { + pl.teleToLocation(pl._oldX,pl._oldY,pl._oldZ); + pl.setIsInBiohazard(false); +// if (pl.inWorld() == 1) +// pl.setTeam(pl.getFactionId()); + if (pl.isTransformed()) + pl.untransform(); + } + } + _participants.clear(); + _infected.clear(); + _notInfected.clear(); + _state = EventState.INACTIVE; + } + + public static L2PcInstance[] getAllNotInfected() + { + synchronized(_notInfected) + { + return _notInfected.toArray(new L2PcInstance[_notInfected.size()]); + } + } + + public static void abortEvent() + { + _state = EventState.INACTIVE; + _participants.clear(); + _notInfected.clear(); + _infected.clear(); + Announcements.getInstance().announceToAll("Biohazard: Event aborted."); + } +} \ No newline at end of file[/table]
×
×
  • Create New...