Jump to content

valentin

Members
  • Posts

    504
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by valentin

  1. you don't understand, the meaning, the word, how to use several dedicated servers,with powerful processors,of course illegally acces,to use in your own purposes. You have to go through several steps to get what you intend. Maybe I went too far with thoughts, but I think not, well we completed this topic. good response "should i buy 1 more?" :)). can of course you're an admin, from any server x,y,and I do not like this topic. :)). how to talk to security 100% when the NSA is not 100%. You must be an idiot to believe in 100% security.
  2. it is a long exercise with much numbers. It depends what tools you use. if you want solved,this exercise,you will not get nowhere,it's like an infinite count.Only if you want to fool,with specific tools for it . the first option that I know all linux is the most affordable for whosoever. It depends on the knowledge we have are people who only deal with so,is easy prey. this is for adrenaline or smart guard or etc: exemple 321321321321, each number is encrypted.if one number is encrypted multiple times will be much harder. I know, you see a string of numbers lose hope.if each comes with an idea,results will come for sure This topic has to go to another level if we want results for all to need decrypt, you need to have at hand, multiple processors to work at the same time. stop looking on google, decrypt.exe as making a big mistake,many viruses calls only, professionals in linux,or do not forget that you can call a hacker(old) with experience,they will have everything at hand,and they will teach you, heaven :P (just an expression)
  3. calculates image in your mind! and you'll find the answer (i always will be leaked and detours)
  4. TTS script.enc for L2 mid price is 3 E skype : valentin.ciceo1
  5. var Captcha:string; begin while delay(500) do if Captcha <> Engine.DlgText then begin Captcha := Engine.DlgText; if (Pos('снятия', Captcha) <> 0) then PlaySound('Sounds/hp.wav',false); Delay(1800); end; end. or he not reacts ,captcha code does not write function SetForegroundWindow(hwnd: integer) : Boolean; stdcall; external 'user32.dll'; function captcha:boolean; begin if engine.dlgtext.contains('Refresh') or engine.dlgtext.contains('Captcha') or engine.dlgtext.contains('60 seconds') or engine.dlgtext.contains('Bot') then begin SetForegroundWindow(Engine.GameWindow); PlaySound(exepath+'\sounds\'+'PlayerAlarm'+'.wav'); delay(500); StopSound; end;
  6. passwords in the database is decrypted and try to break another server,It is outrageous
  7. fail sv bump! ( evri time delete replay posting:) :))) idiot admin
  8. only children headless implements,this command :/ a big mess to lie to your players bump!
  9. code is good you have to method your to work bump
  10. CORE : Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (revision 1) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (working copy) @@ -20,18 +20,29 @@ import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.BuffCommand; +import net.sf.l2j.gameserver.datatables.SkillTable; @@ -89,10 +100,218 @@ else if (_command.startsWith("player_help ")) { playerHelp(activeChar, _command.substring(12)); } + // start voiced .buff command + else if (_command.startsWith("buffCommandFight")) + { + BuffCommand.getFullBuff(activeChar, false); + } + else if (_command.startsWith("buffCommandMage")) + { + BuffCommand.getFullBuff(activeChar, true); + } + else if (_command.startsWith("buffCommand") && BuffCommand.check(activeChar)) + { + String idBuff = _command.substring(12); + int parseIdBuff = Integer.parseInt(idBuff); + SkillTable.getInstance().getInfo(parseIdBuff, SkillTable.getInstance().getMaxLevel(parseIdBuff)).getEffects(activeChar, activeChar); + BuffCommand.showHtml(activeChar); + } + else if (_command.startsWith("cancelBuffs") && BuffCommand.check(activeChar)) + { + activeChar.stopAllEffectsExceptThoseThatLastThroughDeath(); + BuffCommand.showHtml(activeChar); + } + // end voiced .buff command Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/BuffCommand.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/BuffCommand.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/BuffCommand.java (working copy) @@ -0,0 +1,59 @@ +package net.sf.l2j.gameserver.handler.voicedcommandhandlers; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.datatables.SkillTable; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.zone.ZoneId; +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * + * @author Bluur + * + */ +public class BuffCommand implements IVoicedCommandHandler +{ + private final String[] _voicedCommands = + { + "buff" + }; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) + { + if (check(activeChar)) //retorna + showHtml(activeChar); + + return true; + } + + public static void getFullBuff(L2PcInstance p, boolean isClassMage) + { + if (check(p)) + { + if (isClassMage) + { + for (int b : Config.BUFF_COMMAND_MAGE_IDBUFFS) + SkillTable.getInstance().getInfo(b, SkillTable.getInstance().getMaxLevel(b)).getEffects(p, p); + } + else + { + for (int b : Config.BUFF_COMMAND_FIGHT_IDBUFFS) + SkillTable.getInstance().getInfo(b, SkillTable.getInstance().getMaxLevel(b)).getEffects(p, p); + } + p.sendMessage("[Buff Command]: Voce foi buffado!"); + } + } + + public static boolean check(L2PcInstance p) + { + return p.isInsideZone(ZoneId.PEACE) && !p.isInCombat() && !p.isInOlympiadMode(); //restrições + } + + public static void showHtml(L2PcInstance player) + { + NpcHtmlMessage html = new NpcHtmlMessage(0); + html.setFile("data/html/mods/buffCommand.htm"); + html.replace("%currentBuffs%", player.getBuffCount()); + html.replace("%getMaxBuffs%", player.getMaxBuffCount()); + player.sendPacket(html); + } + + @Override + public String[] getVoicedCommandList() + { + return _voicedCommands; + } +} \ No newline at end of file Index: java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java =================================================================== --- java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (working copy) @@ -0,0 +1,94 @@ import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Online; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.BuffCommand; protected VoicedCommandHandler() { registerHandler(new Online()); + registerHandler(new BuffCommand()); Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 1) +++ java/net/sf/l2j/Config.java (working copy) @@ -484,6 +484,11 @@ public static boolean STORE_SKILL_COOLTIME; public static int BUFFS_MAX_AMOUNT; + /** Voiced buff command */ + public static String LIST_BUFF_COMMAND; + public static int[] BUFF_COMMAND_FIGHT_IDBUFFS; + public static int[] BUFF_COMMAND_MAGE_IDBUFFS; + STORE_SKILL_COOLTIME = players.getProperty("StoreSkillCooltime", true); + + LIST_BUFF_COMMAND = players.getProperty("buffCommandFightBuffsID", "123,456"); + + String[] buffCommand = LIST_BUFF_COMMAND.split(","); + BUFF_COMMAND_FIGHT_IDBUFFS = new int[buffCommand.length]; + for (int i = 0; i < buffCommand.length; i++) + BUFF_COMMAND_FIGHT_IDBUFFS[i] = Integer.parseInt(buffCommand[i]); + + LIST_BUFF_COMMAND = players.getProperty("buffCommandMageBuffsID", "789,1011112"); + + buffCommand = LIST_BUFF_COMMAND.split(","); + BUFF_COMMAND_MAGE_IDBUFFS = new int[buffCommand.length]; + for (int i = 0; i < buffCommand.length; i++) + BUFF_COMMAND_MAGE_IDBUFFS[i] = Integer.parseInt(buffCommand[i]); Index: config/players.properties =================================================================== --- config/players.properties (revision 1) +++ config/players.properties (working copy) @@ -288,4 +288,14 @@ StoreSkillCooltime = True + +#============================================================= +# Voiced .buff Command by Bluur +#============================================================= + +# List of ID buffs - FIGHT - +buffCommandFightBuffsID = 1204,1040,1035,1045,1062,1048,1036,1303,1085,1059,1078,264,267,268,304,349,273,276,365,1363 + +# List of ID buffs - MAGE - +buffCommandMageBuffsID = 1204,1068,1040,1035,1036,1045,1086,1077,1240,1242,264,267,268,269,304,364,271,274,275,1363 DATA : <html><title>buff Command</title><body><center> <br> Slots de Buffs: <font color=LEVEL>%currentBuffs%</font> / %getMaxBuffs% <br> <table width=280> <tr> <td align=center><a action="bypass -h buffCommand 1040">Shield</a></td> <td align=center><a action="bypass -h buffCommand 1062">Berserker</a></td> <td align=center><a action="bypass -h buffCommand 271">Warrior</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1068">Might</a></td> <td align=center><a action="bypass -h buffCommand 269">Hunter</a></td> <td align=center><a action="bypass -h buffCommand 272">Inspiration</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1035">Mental Shield</a></td> <td align=center><a action="bypass -h buffCommand 304">Vitality</a></td> <td align=center><a action="bypass -h buffCommand 1355">P Of Water</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1077">Focus</a></td> <td align=center><a action="bypass -h buffCommand 268">Wind</a></td> <td align=center><a action="bypass -h buffCommand 1356">P Of Fire</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1078">Concentration</a></td> <td align=center><a action="bypass -h buffCommand 265">Life</a></td> <td align=center><a action="bypass -h buffCommand 1357">P Of Wind</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1085">Acumen</a></td> <td align=center><a action="bypass -h buffCommand 363">Meditation</a></td> <td align=center><a action="bypass -h buffCommand 1363">C Of Victory</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1036">Magic Barrier</a></td> <td align=center><a action="bypass -h buffCommand 267">Warding</a></td> <td align=center><a action="bypass -h buffCommand 1413">C Of Magnus'</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1045">Blessed Body</a></td> <td align=center><a action="bypass -h buffCommand 270">Invocation</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1048">Blessed Soul</a></td> <td align=center><a action="bypass -h buffCommand 266">Water</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1086">Haste</a></td> <td align=center><a action="bypass -h buffCommand 264">Earth</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1204">Wind Walk</a></td> <td align=center><a action="bypass -h buffCommand 277">Light</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1240">Guidance</a></td> <td align=center><a action="bypass -h buffCommand 275">Fury</a></td> <td align=center><a action="bypass -h cancelBuffs"><font color=LEVEL>Cancel Buffs</font></a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1303">Wild Magic</a></td> <td align=center><a action="bypass -h buffCommand 274">Fire</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1059">Empower</a></td> <td align=center><a action="bypass -h buffCommand 273">Mystic</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1087">Agility</a></td> <td align=center><a action="bypass -h buffCommand 276">D Concentration</a></td> </tr> <tr> <td align=center><a action="bypass -h buffCommand 1268">Vampiric Rage</a></td> <td align=center><a action="bypass -h buffCommand 365">Siren's</a></td> </tr> <tr> <tr><td align=center><a action="bypass -h buffCommand 1242">Dead Whisper</a></td> </tr> </table> <br> <center> <table width=260> <tr> <td align=center><img src=icon.skill0214 width=32 height=32></td> <td align=center><img src=icon.skill0430 width=32 height=32></td> </tr> <tr> <td align=center><a action="bypass -h buffCommandMage"><font color=3399CC>Mage Buff</a></td> <td align=center><a action="bypass -h buffCommandFight">Fight Buff</font></a></td> </tr> </table> </center> </body></html>
  11. Creditos: Bluur ### Eclipse Workspace Patch 1.0 Index: java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java =================================================================== --- java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java (revision 1) +++ java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java (working copy) @@ -62,6 +62,7 @@ import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSiege; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSkill; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSpawn; +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminStriderRace; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTarget; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTeleport; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminUnblockIp; @@ -127,6 +128,8 @@ registerAdminCommandHandler(new AdminTeleport()); registerAdminCommandHandler(new AdminUnblockIp()); registerAdminCommandHandler(new AdminZone()); + //custom + registerAdminCommandHandler(new AdminStriderRace()); } public void registerAdminCommandHandler(IAdminCommandHandler handler) Index: java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java =================================================================== --- java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java (revision 0) +++ java/net/sf/l2j/gameserver/custom/striderrace/StriderRace.java (working copy) @@ -0,0 +1,236 @@ +/* + * 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.custom.striderrace; + +import java.util.ArrayList; +import java.util.List; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.datatables.MapRegionTable; +import net.sf.l2j.gameserver.datatables.NpcTable; +import net.sf.l2j.gameserver.datatables.SpawnTable; +import net.sf.l2j.gameserver.model.L2Spawn; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; +import net.sf.l2j.gameserver.skills.AbnormalEffect; +import net.sf.l2j.gameserver.util.Broadcast; + +/** + * @author Bluur + * @version 1.1 + */ +public class StriderRace +{ + private static StriderRace INSTANCE; + private StriderRaceState srState = StriderRaceState.DESACTIVED; + private List<L2PcInstance> players = new ArrayList<>(); + + private StriderRace(){} + + public void startEvent() + { + srState = StriderRaceState.REGISTER; + announceEvent("The event started! Commands .joinsr or .leavesr"); + announceEvent("Registration time: 5 minutes!"); + sleep(60); + announceEvent("[4] minutes to the end of the record!"); + sleep(60); + announceEvent("[3] minutes to the end of the record!"); + sleep(60); + announceEvent("[2] minutes to the end of the record!"); + sleep(60); + announceEvent("[1] minutes to the end of the record!"); + sleep(60); + if (!minPlayers()) + { + abortEvent(); + return; + } + srState = StriderRaceState.WAIT; + announceEvent("closed registration! Total number of registered players: "+ players.size()); + announceEvent("The players will be teleported in 10 seconds!"); + sleep(10); + teleportPlayers(); + mountPlayer(true); + paralizedPlayer(true); + announceEvent("The event will start in 15 seconds!"); + sleep(15); + srState = StriderRaceState.ATIVED; + announceEvent("The race is on! Go Go Go!"); + spawnNpc(); + paralizedPlayer(false); + sleep(300); // duração do evento em segundos + if (srState == StriderRaceState.ATIVED) + finishEvent(); + } + + private void paralizedPlayer(boolean value) + { + if (value) + { + for (L2PcInstance player : players) + { + player.setIsParalyzed(true); + player.startAbnormalEffect(AbnormalEffect.HOLD_2); + } + } + else + { + for (L2PcInstance player : players) + { + player.setIsParalyzed(false); + player.stopAbnormalEffect(AbnormalEffect.HOLD_2); + } + } + } + + private void mountPlayer(boolean value) + { + if (value) + { + for (L2PcInstance player : players) + { + if (player != null) + { + player.getRadar().addMarker(Config.EVENT_SR_LOC_ARRIVAL_X, Config.EVENT_SR_LOC_ARRIVAL_Y, Config.EVENT_SR_LOC_ARRIVAL_Z); + player.mount(12526, 0, false); + } + } + } + else + { + for (L2PcInstance player : players) + { + if (player != null) + { + player.getRadar().removeMarker(Config.EVENT_SR_LOC_ARRIVAL_X, Config.EVENT_SR_LOC_ARRIVAL_Y, Config.EVENT_SR_LOC_ARRIVAL_Z); + player.dismount(); + } + } + } + } + + private void abortEvent() + { + srState = StriderRaceState.DESACTIVED; + announceEvent("The event was terminated for lack of participants!"); + players.clear(); + } + + public void finishEvent() + { + srState = StriderRaceState.DESACTIVED; + announceEvent("The event duration time is up! Thank all..."); + teleportPlayersToTown(); + mountPlayer(false); + players.clear(); + } + + private static void announceEvent(String sendMessage) + { + Broadcast.announceToOnlinePlayers("[Strider Race]: " + sendMessage, true); + } + + private void teleportPlayers() + { + for (L2PcInstance player : players) + player.teleToLocation(Config.EVENT_SR_LOC_PLAYER_X, Config.EVENT_SR_LOC_PLAYER_Y, Config.EVENT_SR_LOC_PLAYER_Z, 60); + } + + private void teleportPlayersToTown() + { + for (L2PcInstance player : players) + player.teleToLocation(MapRegionTable.TeleportWhereType.Town); + } + + private boolean minPlayers() + { + if (players.size() < Config.EVENT_SR_MINIMUM_PLAYERS) + return false; + + return true; + } + + public boolean maxPlayers() + { + if (players.size() >= Config.EVENT_SR_MAXIMUM_PLAYERS) + return false; + + return true; + } + + public boolean containsPlayer(L2PcInstance player) + { + return players.contains(player); + } + + public void registerPlayer(L2PcInstance player) + { + players.add(player); + } + + public void removePlayer(L2PcInstance player) + { + players.remove(player); + } + + private static void spawnNpc() + { + NpcTemplate tp = NpcTable.getInstance().getTemplate(Config.EVENT_SR_LOC_ID_NPC); + try + { + L2Spawn spawn = null; + + spawn = new L2Spawn(tp); + spawn.setLocx(Config.EVENT_SR_LOC_ARRIVAL_X); + spawn.setLocy(Config.EVENT_SR_LOC_ARRIVAL_Y); + spawn.setLocz(Config.EVENT_SR_LOC_ARRIVAL_Z); + spawn.setHeading(0); + + SpawnTable.getInstance().addNewSpawn(spawn, false); + spawn.init(); + spawn.stopRespawn(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + public StriderRaceState getStriderRaceState() + { + return srState; + } + + private static void sleep(int value) + { + try + { + Thread.sleep(1000 * value); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + public static StriderRace getInstance() + { + if (INSTANCE == null) + INSTANCE = new StriderRace(); + + return INSTANCE; + } +} Index: java/net/sf/l2j/gameserver/network/clientpackets/Logout.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/Logout.java (revision 1) +++ java/net/sf/l2j/gameserver/network/clientpackets/Logout.java (working copy) @@ -15,6 +15,8 @@ package net.sf.l2j.gameserver.network.clientpackets; import net.sf.l2j.Config; +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival; import net.sf.l2j.gameserver.model.L2Party; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; @@ -44,6 +46,16 @@ return; } + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED) + { + if (StriderRace.getInstance().containsPlayer(player)) + { + player.sendMessage("[Strider Race]: You can't logout in strider race!"); + player.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + } + if (player.isLocked()) { if (Config.DEBUG) Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 1) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -50,6 +50,8 @@ import net.sf.l2j.gameserver.ai.NextAction.NextActionCallback; import net.sf.l2j.gameserver.communitybbs.BB.Forum; import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager; +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; import net.sf.l2j.gameserver.datatables.AccessLevels; import net.sf.l2j.gameserver.datatables.CharNameTable; import net.sf.l2j.gameserver.datatables.CharTemplateTable; @@ -5012,6 +5014,16 @@ { sendPacket(new SetupGauge(3, 0, 0)); int petId = _mountNpcId; + + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED) + { + if (petId == 12526 && StriderRace.getInstance().containsPlayer(this)) + { + sendMessage("[Strider Race]: You can't unmount in strider race!"); + return false; + } + } + if (setMount(0, 0, 0)) { stopFeed(); Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (revision 1) +++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (working copy) @@ -15,6 +15,8 @@ package net.sf.l2j.gameserver.model.actor.stat; import net.sf.l2j.Config; +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; import net.sf.l2j.gameserver.datatables.NpcTable; import net.sf.l2j.gameserver.datatables.PetDataTable; import net.sf.l2j.gameserver.model.actor.L2Character; @@ -334,6 +336,9 @@ if (penalty > 0) val *= Math.pow(0.84, penalty); + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED && StriderRace.getInstance().containsPlayer(getActiveChar())) + val *= Config.EVENT_SR_SPEED; + return val; } Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 1) +++ java/net/sf/l2j/Config.java (working copy) @@ -226,6 +226,20 @@ public static int ALT_FISH_CHAMPIONSHIP_REWARD_4; public static int ALT_FISH_CHAMPIONSHIP_REWARD_5; + /** Strider Race */ + public static int EVENT_SR_MINIMUM_PLAYERS; + public static int EVENT_SR_MAXIMUM_PLAYERS; + public static int[][] EVENT_SR_REWARD_TOP1; + public static int[][] EVENT_SR_REWARD_TOP2; + public static int[][] EVENT_SR_REWARD_TOP3; + public static double EVENT_SR_SPEED; + public static int EVENT_SR_REWARD_COUNT; + public static int EVENT_SR_LOC_ARRIVAL_X; + public static int EVENT_SR_LOC_ARRIVAL_Y; + public static int EVENT_SR_LOC_ARRIVAL_Z; + public static int EVENT_SR_LOC_PLAYER_X; + public static int EVENT_SR_LOC_PLAYER_Y; + public static int EVENT_SR_LOC_PLAYER_Z; + public static int EVENT_SR_LOC_ID_NPC; + // -------------------------------------------------- // HexID // -------------------------------------------------- @@ -879,6 +893,18 @@ ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000); ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000); + EVENT_SR_LOC_ID_NPC = events.getProperty("EventSRnpcID", 10); + EVENT_SR_MINIMUM_PLAYERS = events.getProperty("EventSRminimumPlayers", 2); + EVENT_SR_MAXIMUM_PLAYERS = events.getProperty("EventSRmaximumPlayers", 2); + EVENT_SR_REWARD_TOP1 = parseItemsList(events.getProperty("EventSRrewardsTop1", "57,300")); + EVENT_SR_REWARD_TOP2 = parseItemsList(events.getProperty("EventSRrewardsTop2", "57,200")); + EVENT_SR_REWARD_TOP3 = parseItemsList(events.getProperty("EventSRrewardsTop3", "57,100")); + EVENT_SR_SPEED = events.getProperty("EventSRspeedBoost", 1.0); + EVENT_SR_LOC_PLAYER_X = events.getProperty("EventSRlocPlayerX", 0); + EVENT_SR_LOC_PLAYER_Y = events.getProperty("EventSRlocPlayerY", 0); + EVENT_SR_LOC_PLAYER_Z = events.getProperty("EventSRlocPlayerZ", 0); + EVENT_SR_LOC_ARRIVAL_X = events.getProperty("EventSRlocArrivalX", 0); + EVENT_SR_LOC_ARRIVAL_Y = events.getProperty("EventSRlocArrivalY", 0); + EVENT_SR_LOC_ARRIVAL_Z = events.getProperty("EventSRlocArrivalZ", 0); Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java =================================================================== --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminStriderRace.java (working copy) @@ -0,0 +1,60 @@ +/* + * 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.handler.admincommandhandlers; + +import net.sf.l2j.gameserver.ThreadPoolManager; +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; +import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + +/** + * @author Bluur + * + */ +public class AdminStriderRace implements IAdminCommandHandler +{ + private static final String[] ADMIN_COMMANDS = {"admin_startsr"}; + + @Override + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.DESACTIVED) + initEvent(); + else + activeChar.sendMessage("[Strider Race]: The event this already in progress!"); + + return true; + } + + private static void initEvent() + { + ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() + { + @Override + public void run() + { + StriderRace.getInstance().startEvent(); + } + + }, 1); + } + + @Override + public String[] getAdminCommandList() + { + return ADMIN_COMMANDS; + } +} Index: java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java =================================================================== --- java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java (revision 0) +++ java/net/sf/l2j/gameserver/custom/striderrace/StriderRaceState.java (working copy) @@ -0,0 +1,27 @@ +/* + * 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.custom.striderrace; + +/** + * @author Bluur + * + */ +public enum StriderRaceState +{ + DESACTIVED, + REGISTER, + WAIT, + ATIVED; +} Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java (revision 1) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java (working copy) @@ -15,6 +15,8 @@ package net.sf.l2j.gameserver.network.clientpackets; import net.sf.l2j.Config; +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; import net.sf.l2j.gameserver.instancemanager.SevenSignsFestival; import net.sf.l2j.gameserver.model.L2Party; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; @@ -47,6 +49,16 @@ return; } + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED) + { + if (StriderRace.getInstance().containsPlayer(player)) + { + player.sendMessage("[Strider Race]: You can't restart in strider race!"); + sendPacket(RestartResponse.valueOf(false)); + return; + } + } + if (player.isLocked()) { sendPacket(RestartResponse.valueOf(false)); Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/RegStriderRace.java (working copy) @@ -0,0 +1,83 @@ +/* + * 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.handler.voicedcommandhandlers; + +import net.sf.l2j.gameserver.custom.striderrace.StriderRace; +import net.sf.l2j.gameserver.custom.striderrace.StriderRaceState; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + +/** + * @author Bluur + */ +public class RegStriderRace implements IVoicedCommandHandler +{ + private static final String[] voiced_commands = + { + "joinsr", + "leavesr" + }; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params) + { + if (command.equals("joinsr")) + { + if (register(activeChar)) + { + StriderRace.getInstance().registerPlayer(activeChar); + activeChar.sendMessage("[Strider Race]: You have been successfully registered!"); + } + } + else if (command.equals("leavesr")) + { + remove(activeChar); + } + return true; + } + + private static boolean register(L2PcInstance p) + { + if (!StriderRace.getInstance().maxPlayers()) + { + p.sendMessage("[Strider Race]: Limit of players was reached."); + return false; + } + else if (StriderRace.getInstance().getStriderRaceState() != StriderRaceState.REGISTER || p.getKarma() > 0 || p.isInCombat() || p.isInOlympiadMode() || p.inObserverMode() || StriderRace.getInstance().containsPlayer(p)) + { + p.sendMessage("[Strider Race]: conditions for registration are inappropriate !!!"); + return false; + } + + return true; + } + + private static boolean remove(L2PcInstance p) + { + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.REGISTER && StriderRace.getInstance().containsPlayer(p)) + { + StriderRace.getInstance().removePlayer(p); + p.sendMessage("[Strider Race]: you have been successfully removed!"); + } + + return true; + } + + @Override + public String[] getVoicedCommandList() + { + return voiced_commands; + } +} Index: java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java =================================================================== --- java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java (working copy) import java.util.Map; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.RegStriderRace; protected VoicedCommandHandler() { + registerVoicedCommandHandler(new RegStriderRace()); \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java (revision 0) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2StriderRaceEventInstance.java (working copy) @@ -0,0 +1,102 @@ +/* + * 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.model.actor.instance; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.ai.CtrlIntention; +import net.sf.l2j.gameserver.datatables.MapRegionTable; +import net.sf.l2j.gameserver.datatables.SpawnTable; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.L2Spawn; +import net.sf.l2j.gameserver.model.actor.L2Npc; +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; +import net.sf.l2j.gameserver.model.striderrace.StriderRace; +import net.sf.l2j.gameserver.model.striderrace.StriderRaceState; +import net.sf.l2j.gameserver.util.Broadcast; + +public class L2StriderRaceEventInstance extends L2NpcInstance +{ + public L2StriderRaceEventInstance(int objectId, NpcTemplate template) + { + super(objectId, template); + } + + private static int rankPlayer = 0; + + @Override + public void onAction(L2PcInstance player) + { + if (player.getTarget() != this) + player.setTarget(this); + else + { + if (!canInteract(player)) + player.getAI().setIntention(CtrlIntention.INTERACT, this); + else + { + if (StriderRace.getInstance().getStriderRaceState() == StriderRaceState.ATIVED && StriderRace.getInstance().containsPlayer(player)) + { + if (rankPlayer < 2) + { + rankPlayer++; + Broadcast.announceToOnlinePlayers("[Strider Race]: [" + rankPlayer + "] to arrive was -> " + player.getName(), true); + rewardPlayer(player); + StriderRace.getInstance().removePlayer(player); + player.teleToLocation(MapRegionTable.TeleportWhereType.Town); + player.dismount(); + return; + } + rankPlayer += 1; + Broadcast.announceToOnlinePlayers("[Strider Race]: [3] to arrive was -> " + player.getName(), true); + rewardPlayer(player); + StriderRace.getInstance().finishEvent(); + rankPlayer = 0; + + L2Object obj = player.getTarget(); + if (obj != null && obj instanceof L2Npc) + { + L2Npc target = (L2Npc) obj; + target.deleteMe(); + + L2Spawn spawn = target.getSpawn(); + if (spawn != null) + { + spawn.stopRespawn(); + SpawnTable.getInstance().deleteSpawn(spawn, true); + } + } + } + } + } + } + + private static void rewardPlayer(L2PcInstance player) + { + switch (rankPlayer) + { + case 1: + for (int[] item : Config.EVENT_SR_REWARD_TOP1) + player.addItem("", item[0], item[1], player, true); + break; + case 2: + for (int[] item : Config.EVENT_SR_REWARD_TOP2) + player.addItem("", item[0], item[1], player, true); + break; + default: + for (int[] item : Config.EVENT_SR_REWARD_TOP3) + player.addItem("", item[0], item[1], player, true); + } + } +} Index: config/events.properties =================================================================== --- config/events.properties (revision 1) +++ config/events.properties (working copy) gameserver/data/xml/admin_commands_rights.xml + <aCar name="admin_startsr" accessLevel="1" /> gameserver/data/xml/npcs <npc id="9106" idTemplate="35062" name="Strider Race Event" title="[ARRIVAL HERE]"> <set name="level" val="75"/> <set name="radius" val="10"/> <set name="height" val="80"/> <set name="rHand" val="0"/> <set name="lHand" val="0"/> <set name="type" val="L2StriderRaceEvent"/> <set name="exp" val="0"/> <set name="sp" val="10"/> <set name="hp" val="2676.65854"/> <set name="mp" val="1507.8"/> <set name="hpRegen" val="8.5"/> <set name="mpRegen" val="3"/> <set name="pAtk" val="794.70901"/> <set name="pDef" val="319.24623"/> <set name="mAtk" val="542.68324"/> <set name="mDef" val="233.61053"/> <set name="crit" val="4"/> <set name="atkSpd" val="253"/> <set name="str" val="40"/> <set name="int" val="21"/> <set name="dex" val="30"/> <set name="wit" val="20"/> <set name="con" val="43"/> <set name="men" val="20"/> <set name="corpseTime" val="7"/> <set name="walkSpd" val="50"/> <set name="runSpd" val="120"/> <set name="dropHerbGroup" val="0"/> <set name="attackRange" val="40"/> <ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" clan="door_clan;dion_siege_clan" clanRange="600" canMove="false" seedable="false"/> <skills> <skill id="4045" level="1"/> <skill id="4416" level="19"/> </skills> </npc> Broadcast.announceToOnlinePlayers("[Strider Race]: The event ends with the winner -> " +player.getName(), true); Broadcast.announceToOnlinePlayers("[Strider Race]: " + sendMessage, true);
  12. server 2 wekk and dead bump! topic close
  13. I may have exaggerated the word defragment for some people It matters less what you say, all admins they are monkeys. Excuse my expression
  14. I don't understand why the world play these sv We are expecting something amazing from the l2cleaver l2 interlude is a wreck lost (We all know but nobody recognizes)
  15. again fail sv 1 mounth , The server is a mess,especially admin I'm sorry I lost time with such a server. I concluded that it is a profitable and careless admin Never Again here,It is outrageous,what happened the last man on earth is profitable (neo ,blaze, ....and so on. etc... (.....)
  16. pm for free box 9 + not need money ;)
  17. pm for free l2tower for l2 mid ;)
  18. what u sell "pokemon" evry time sv live 1 mounth , closed topic!
  19. dont click I'll deliver you..... put dialog adrenaline and error line reed
  20. WebsSite : http://l2crime.i-live.eu/ Grand Open 10/10/2015 clok 18 gmt + 2 important !!! boot is legal does not harm the game Rates: » Xp 9000x. » Sp 9000x. » Aden 9000x. » Drop 1x. » PartyXp 2x. » PartySp 2x. » Starting character level - 80. Enchant rates: » Safe enchant +5. » Blessed and simple scrolls max enchant (+16). » Crystal scrolls max enchant (+20). » Simple enchant scrolls chance - 70%. » Blessed enchant scrolls chance - 100%. » Crystal enchant scrolls chance - 100%. Unique features: » Main towns - Giran. » Working all castle sieges. » Stackable scrolls, lifestones, book of giants. » Unique primeval isle flag vs flag pvp area. » More then 5 active raid bosses. » Casino event manager. » Unique aden system. » Wedding system. » Unique farming areas. » Npc skill enchanter. » S grade items for free. » Unique tattoos. » Full npc buffer with auto buff. » Max count of buffs - 56. » Max subclasses - 3. » Free and no quest class change. » Free and no quest sub class. » Free nobless status. » No weight limit. » No grade limit. » Quake pvp system. » Pvp/pk show on title. » Online password change. » Top 10 Players npc in game. » Augmentation system (preconfigured). » Server information npc. » Unique monsters. » Offline trade system. » Interlude retail skills. » Server up-time [24/7] [95]%. » Good class balance, dayli update ! » No custom items ! Voiced commands: .tvtjoin .tvtleave - Join or leave tvt event. .ctfjoin .ctfleave - Join or leave ctf event. .dmjoin .dmleave - Join of leave dm event. .menu - custom comands for players. .srvinfo - server information. .pin - set you password for character. .setmes - for clan leader. Event system: » TVT event » CTF event » DM event » Hide Event [180] minutes. » Casino event working [24/7]. » Town War daily (Schuttgard). » Event GM daily » Unique event shop. Olympiad game: » Retail olympiad game. » Competition period [1] week. » Olympiad start time [18:00] end [00:00]. » Olympoiad start/end times can be found in olympiad manager. Raid Boss information » RespawnInfo: 45 minutes to 1 hours » Drop : Letters , Raid Rings , FA , LS , Bogs! » Drop : 100% Grand Boss Information » Respawn Info : 1 hours to 10 hours ! » Drop : Full Drop for full characters ! » Drop : 100% !
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock