Перейти к содержанию

Outsider

Пользователи
  • Публикаций

    0
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Репутация

0

1 Подписчик

Информация о Outsider

  • Звание
    Только пришел

Посетители профиля

999 просмотров профиля
  1. Outsider

    Косяк С Валакасом

    да дело то в том что через квест то и заходил и не пускает,в БД статус 0 валика(пробовал сумонить его делаешь удар тебя ТПшит в город,но сам валик остается и агрится)
  2. Outsider

    Косяк С Валакасом

    так и что там менять? вот этот скрипт /* * 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 ai.individual; import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_FOLLOW; import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_IDLE; import java.util.Collection; import com.l2jserver.Config; import com.l2jserver.gameserver.ThreadPoolManager; import com.l2jserver.gameserver.datatables.SkillTable; import com.l2jserver.gameserver.instancemanager.GrandBossManager; import com.l2jserver.gameserver.model.L2Effect; import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.L2Skill; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.L2Summon; import com.l2jserver.gameserver.model.actor.instance.L2DecoyInstance; import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.QuestTimer; import com.l2jserver.gameserver.model.zone.type.L2BossZone; import com.l2jserver.gameserver.network.serverpackets.PlaySound; import com.l2jserver.gameserver.network.serverpackets.SocialAction; import com.l2jserver.gameserver.network.serverpackets.SpecialCamera; import com.l2jserver.gameserver.templates.StatsSet; import com.l2jserver.gameserver.util.Util; import com.l2jserver.util.Rnd; import javolution.util.FastList; import ai.group_template.L2AttackableAIScript; /** * Valakas AI * * @author Kerberos */ public class Valakas extends L2AttackableAIScript { private int i_ai0 = 0; private int i_ai1 = 0; private int i_ai2 = 0; private int i_ai3 = 0; private int i_ai4 = 0; private int i_quest0 = 0; private long i_quest1 = 0; // time to tracking valakas when was last time attacked private int i_quest2 = 0; // hate value for 1st player private int i_quest3 = 0; // hate value for 2nd player private int i_quest4 = 0; // hate value for 3rd player private L2Character c_quest2 = null; // 1st most hated target private L2Character c_quest3 = null; // 2nd most hated target private L2Character c_quest4 = null; // 3rd most hated target private static final int VALAKAS = 29028; //Valakas Status Tracking : private static final byte DORMANT = 0; //Valakas is spawned and no one has entered yet. Entry is unlocked private static final byte WAITING = 1; //Valakas is spawend and someone has entered, triggering a 30 minute window for additional people to enter //before he unleashes his attack. Entry is unlocked private static final byte FIGHTING = 2; //Valakas is engaged in battle, annihilating his foes. Entry is locked private static final byte DEAD = 3; //Valakas has been killed. Entry is locked private static L2BossZone _Zone; // Boss: Valakas public Valakas(int id, String name, String descr) { super(id, name, descr); int[] mob = { VALAKAS }; this.registerMobs(mob); i_ai0 = 0; i_ai1 = 0; i_ai2 = 0; i_ai3 = 0; i_ai4 = 0; i_quest0 = 0; i_quest1 = System.currentTimeMillis(); _Zone = GrandBossManager.getInstance().getZone(212852, -114842, -1632); StatsSet info = GrandBossManager.getInstance().getStatsSet(VALAKAS); int status = GrandBossManager.getInstance().getBossStatus(VALAKAS); if (status == DEAD) { // load the unlock date and time for valakas from DB long temp = (info.getLong("respawn_time") - System.currentTimeMillis()); // if valakas is locked until a certain time, mark it so and start the unlock timer // the unlock time has not yet expired. Mark valakas as currently locked. Setup a timer // to fire at the correct time (calculate the time between now and the unlock time, // setup a timer to fire after that many msec) if (temp > 0) { this.startQuestTimer("valakas_unlock", temp, null, null); } else { // the time has already expired while the server was offline. Immediately spawn valakas in his cave. // also, the status needs to be changed to DORMANT L2GrandBossInstance valakas = (L2GrandBossInstance) addSpawn(VALAKAS, -105200, -253104, -15264, 0, false, 0); GrandBossManager.getInstance().setBossStatus(VALAKAS, DORMANT); GrandBossManager.getInstance().addBoss(valakas); final L2Npc _valakas = valakas; ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { public void run() { try { _valakas.setIsInvul(true); _valakas.setRunning(); } catch (Throwable e) {} } }, 100L); startQuestTimer("1003", 60000, valakas, null, true); } } else { int loc_x = info.getInteger("loc_x"); int loc_y = info.getInteger("loc_y"); int loc_z = info.getInteger("loc_z"); int heading = info.getInteger("heading"); final int hp = info.getInteger("currentHP"); final int mp = info.getInteger("currentMP"); L2GrandBossInstance valakas = (L2GrandBossInstance) addSpawn(VALAKAS, loc_x, loc_y, loc_z, heading, false, 0); GrandBossManager.getInstance().addBoss(valakas); final L2Npc _valakas = valakas; final int _status = status; ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { public void run() { try { _valakas.setCurrentHpMp(hp, mp); if (_status != FIGHTING) _valakas.setIsInvul(true); _valakas.setRunning(); } catch (Throwable e) {} } }, 100L); startQuestTimer("1003", 60000, valakas, null, true); if (status == WAITING) { // Start timer to lock entry after 30 minutes startQuestTimer("1001", Config.Valakas_Wait_Time, valakas, null); } else if (status == FIGHTING) { // Start repeating timer to check for inactivity startQuestTimer("1002", 60000, valakas, null, true); valakas.setIsInvul(false); } } } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { if (npc != null) { long temp = 0; if (event.equalsIgnoreCase("1001")) { npc.teleToLocation(212852, -114842, -1632); i_quest1 = System.currentTimeMillis(); final L2Npc _valakas = npc; ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { public void run() { try { broadcastSpawn(_valakas); } catch (Throwable e) {} } }, 1L); startQuestTimer("1004", 2000, npc, null); } else if (event.equalsIgnoreCase("1002")) { int lvl = 0; int sk_4691 = 0; L2Effect[] effects = npc.getAllEffects(); if (effects != null && effects.length != 0) { for (L2Effect e : effects) { if (e.getSkill().getId() == 4629) { sk_4691 = 1; lvl = e.getSkill().getLevel(); break; } } } if (GrandBossManager.getInstance().getBossStatus(VALAKAS) == FIGHTING) { temp = (System.currentTimeMillis() - i_quest1); if (temp > 900000) { npc.getAI().setIntention(AI_INTENTION_IDLE); npc.teleToLocation(-105200, -253104, -15264); GrandBossManager.getInstance().setBossStatus(VALAKAS, DORMANT); npc.setCurrentHpMp(npc.getMaxHp(), npc.getMaxMp()); _Zone.oustAllPlayers(); cancelQuestTimer("1002", npc, null); i_quest2 = 0; i_quest3 = 0; i_quest4 = 0; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 1) / 4)) { if (sk_4691 == 0 || (sk_4691 == 1 && lvl != 4)) { npc.setTarget(npc); npc.doCast(SkillTable.getInstance().getInfo(4691, 4)); } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 2) / 4.0)) { if (sk_4691 == 0 || (sk_4691 == 1 && lvl != 3)) { npc.setTarget(npc); npc.doCast(SkillTable.getInstance().getInfo(4691, 3)); } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 3) / 4.0)) { if (sk_4691 == 0 || (sk_4691 == 1 && lvl != 2)) { npc.setTarget(npc); npc.doCast(SkillTable.getInstance().getInfo(4691, 2)); } } else if (sk_4691 == 0 || (sk_4691 == 1 && lvl != 1)) { npc.setTarget(npc); npc.doCast(SkillTable.getInstance().getInfo(4691, 1)); } } else if (event.equalsIgnoreCase("1003")) { if (!npc.isInvul()) getRandomSkill(npc); else npc.getAI().setIntention(AI_INTENTION_IDLE); } else if (event.equalsIgnoreCase("1004")) { startQuestTimer("1102", 1500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1300,180,-5,3000,15000,0,-5,1,0)); } else if (event.equalsIgnoreCase("1102")) { startQuestTimer("1103", 3300, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),500,180,-8,600,15000,0,60,1,0)); } else if (event.equalsIgnoreCase("1103")) { startQuestTimer("1104", 2900, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),800,180,-8,2700,15000,0,30,1,0)); } else if (event.equalsIgnoreCase("1104")) { startQuestTimer("1105", 2700, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),200,250,70,0,15000,30,80,1,0)); } else if (event.equalsIgnoreCase("1105")) { startQuestTimer("1106", 1, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,250,70,2500,15000,30,80,1,0)); } else if (event.equalsIgnoreCase("1106")) { startQuestTimer("1107", 3200, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),700,150,30,0,15000,-10,60,1,0)); } else if (event.equalsIgnoreCase("1107")) { startQuestTimer("1108", 1400, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1200,150,20,2900,15000,-10,30,1,0)); } else if (event.equalsIgnoreCase("1108")) { startQuestTimer("1109", 6700, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),750,170,15,3400,15000,10,-15,1,0)); } else if (event.equalsIgnoreCase("1109")) { startQuestTimer("1110", 5700, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),750,170,-10,3400,15000,4000,-15,1,0)); } else if (event.equalsIgnoreCase("1110")) { GrandBossManager.getInstance().setBossStatus(VALAKAS,FIGHTING); startQuestTimer("1002", 60000, npc, null, true); npc.setIsInvul(false); getRandomSkill(npc); } else if (event.equalsIgnoreCase("1111")) { startQuestTimer("1112", 3500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1100,210,-5,3000,10000,-13,0,1,1)); } else if (event.equalsIgnoreCase("1112")) { startQuestTimer("1113", 4500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1300,200,-8,3000,10000,0,15,1,1)); } else if (event.equalsIgnoreCase("1113")) { startQuestTimer("1114", 500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1000,190,0,3000,10000,0,10,1,1)); } else if (event.equalsIgnoreCase("1114")) { startQuestTimer("1115", 4600, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,120,0,2500,10000,12,40,1,1)); } else if (event.equalsIgnoreCase("1115")) { startQuestTimer("1116", 750, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,20,0,3000,10000,10,10,1,1)); } else if (event.equalsIgnoreCase("1116")) { startQuestTimer("1117", 2500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,10,0,3000,10000,20,70,1,1)); } else if (event.equalsIgnoreCase("1117")) { npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,10,0,3000,250,20,-20,1,1)); addSpawn(31759, 212852, -114842, -1632, 0, false, 900000); int radius = 1500; for (int i = 0; i < 20; i++) { int x = (int) (radius * Math.cos(i * .331)); //.331~2pi/19 int y = (int) (radius * Math.sin(i * .331)); addSpawn(31759, 212852 + x, -114842 + y, -1632, 0, false, 900000); } cancelQuestTimer("1002", npc, null); startQuestTimer("remove_players", 900000, null, null); } } else { if (event.equalsIgnoreCase("valakas_unlock")) { L2GrandBossInstance valakas = (L2GrandBossInstance) addSpawn(VALAKAS, -105200, -253104, -15264, 32768, false, 0); GrandBossManager.getInstance().addBoss(valakas); GrandBossManager.getInstance().setBossStatus(VALAKAS, DORMANT); } else if (event.equalsIgnoreCase("remove_players")) { _Zone.oustAllPlayers(); } } return super.onAdvEvent(event, npc, player); } @Override public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet, L2Skill skill) { if (npc.isInvul()) { return null; } i_quest1 = System.currentTimeMillis(); if (GrandBossManager.getInstance().getBossStatus(VALAKAS) != FIGHTING) { attacker.teleToLocation(150037, -57255, -2976); } if (attacker.getMountType() == 1) { int sk_4258 = 0; L2Effect[] effects = attacker.getAllEffects(); if (effects != null && effects.length != 0) { for (L2Effect e : effects) { if (e.getSkill().getId() == 4258) { sk_4258 = 1; } } } if (sk_4258 == 0) { npc.setTarget(attacker); npc.doCast(SkillTable.getInstance().getInfo(4258, 1)); } } if (attacker.getZ() < (npc.getZ() + 200)) { if (i_ai2 == 0) { i_ai1 = (i_ai1 + damage); } if (i_quest0 == 0) { i_ai4 = (i_ai4 + damage); } if (i_quest0 == 0) { i_ai3 = (i_ai3 + damage); } else if (i_ai2 == 0) { i_ai0 = (i_ai0 + damage); } if (i_quest0 == 0) { if ((((i_ai4 / npc.getMaxHp()) * 100)) > 1) { if (i_ai3 > (i_ai4 - i_ai3)) { i_ai3 = 0; i_ai4 = 0; npc.setTarget(npc); npc.doCast(SkillTable.getInstance().getInfo(4687, 1)); i_quest0 = 1; } } } } int i1 = 0; if (skill == null) { if (attacker == c_quest2) { if (((damage * 1000) + 1000) > i_quest2) { i_quest2 = ((damage * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest3) { if (((damage * 1000) + 1000) > i_quest3) { i_quest3 = ((damage * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest4) { if (((damage * 1000) + 1000) > i_quest4) { i_quest4 = ((damage * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = (damage * 1000) + Rnd.get(3000); c_quest2 = attacker; } else if (i1 == 3) { i_quest3 = (damage * 1000) + Rnd.get(3000); c_quest3 = attacker; } else if (i1 == 4) { i_quest4 = (damage * 1000) + Rnd.get(3000); c_quest4 = attacker; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 1) / 4)) { if (attacker == c_quest2) { if ((((damage / 30) * 1000) + 1000) > i_quest2) { i_quest2 = (((damage / 30) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest3) { if ((((damage / 30) * 1000) + 1000) > i_quest3) { i_quest3 = (((damage / 30) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest4) { if ((((damage / 30) * 1000) + 1000) > i_quest4) { i_quest4 = (((damage / 30) * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = (((damage / 30) * 1000) + Rnd.get(3000)); c_quest2 = attacker; } else if (i1 == 3) { i_quest3 = (((damage / 30) * 1000) + Rnd.get(3000)); c_quest3 = attacker; } else if (i1 == 4) { i_quest4 = (((damage / 30) * 1000) + Rnd.get(3000)); c_quest4 = attacker; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 2) / 4)) { if (attacker == c_quest2) { if ((((damage / 50) * 1000) + 1000) > i_quest2) { i_quest2 = (((damage / 50) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest3) { if ((((damage / 50) * 1000) + 1000) > i_quest3) { i_quest3 = (((damage / 50) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest4) { if ((((damage / 50) * 1000) + 1000) > i_quest4) { i_quest4 = (((damage / 50) * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = (((damage / 50) * 1000) + Rnd.get(3000)); c_quest2 = attacker; } else if (i1 == 3) { i_quest3 = (((damage / 50) * 1000) + Rnd.get(3000)); c_quest3 = attacker; } else if (i1 == 4) { i_quest4 = (((damage / 50) * 1000) + Rnd.get(3000)); c_quest4 = attacker; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 3) / 4.0)) { if (attacker == c_quest2) { if ((((damage / 100) * 1000) + 1000) > i_quest2) { i_quest2 = (((damage / 100) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest3) { if ((((damage / 100) * 1000) + 1000) > i_quest3) { i_quest3 = (((damage / 100) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest4) { if ((((damage / 100) * 1000) + 1000) > i_quest4) { i_quest4 = (((damage / 100) * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } if (i1 == 2) { i_quest2 = (((damage / 100) * 1000) + Rnd.get(3000)); c_quest2 = attacker; } else if (i1 == 3) { i_quest3 = (((damage / 100) * 1000) + Rnd.get(3000)); c_quest3 = attacker; } else if (i1 == 4) { i_quest4 = (((damage / 100) * 1000) + Rnd.get(3000)); c_quest4 = attacker; } } } else if (attacker == c_quest2) { if ((((damage / 150) * 1000) + 1000) > i_quest2) { i_quest2 = (((damage / 150) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest3) { if ((((damage / 150) * 1000) + 1000) > i_quest3) { i_quest3 = (((damage / 150) * 1000) + Rnd.get(3000)); } } else if (attacker == c_quest4) { if ((((damage / 150) * 1000) + 1000) > i_quest4) { i_quest4 = (((damage / 150) * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = (((damage / 150) * 1000) + Rnd.get(3000)); c_quest2 = attacker; } else if (i1 == 3) { i_quest3 = (((damage / 150) * 1000) + Rnd.get(3000)); c_quest3 = attacker; } else if (i1 == 4) { i_quest4 = (((damage / 150) * 1000) + Rnd.get(3000)); c_quest4 = attacker; } getRandomSkill(npc); return super.onAttack(npc, attacker, damage, isPet); } @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) { startQuestTimer("1111", 500, npc, null); npc.broadcastPacket(new SpecialCamera(npc.getObjectId(),1700,2000,130,-1,0,10000,-20,1,1)); npc.broadcastPacket(new PlaySound(1, "B03_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); GrandBossManager.getInstance().setBossStatus(VALAKAS,DEAD); long respawnTime = (long) Config.Interval_Of_Valakas_Spawn + Rnd.get(Config.Random_Of_Valakas_Spawn); this.startQuestTimer("valakas_unlock", respawnTime, null, null); // also save the respawn time so that the info is maintained past reboots StatsSet info = GrandBossManager.getInstance().getStatsSet(VALAKAS); info.set("respawn_time", (System.currentTimeMillis() + respawnTime)); GrandBossManager.getInstance().setStatsSet(VALAKAS, info); return super.onKill(npc, killer, isPet); } public void getRandomSkill(L2Npc npc) { if (npc.isInvul() || npc.isCastingNow()) { return; } L2Skill skill = null; int i0 = 0; int i1 = 0; int i2 = 0; L2Character c2 = null; if (c_quest2 == null) i_quest2 = 0; else if (!Util.checkIfInRange(5000, npc, c_quest2, true) || c_quest2.isDead()) i_quest2 = 0; if (c_quest3 == null) i_quest3 = 0; else if (!Util.checkIfInRange(5000, npc, c_quest3, true) || c_quest3.isDead()) i_quest3 = 0; if (c_quest4 == null) i_quest4 = 0; else if (!Util.checkIfInRange(5000, npc, c_quest4, true) || c_quest4.isDead()) i_quest4 = 0; if (i_quest2 > i_quest3) { i1 = 2; i2 = i_quest2; c2 = c_quest2; } else { i1 = 3; i2 = i_quest3; c2 = c_quest3; } if (i_quest4 > i2) { i1 = 4; i2 = i_quest4; c2 = c_quest4; } if (i2 == 0) c2 = getRandomTarget(npc); if (i2 > 0) { if (Rnd.get(100) < 70) { if (i1 == 2) i_quest2 = 500; else if (i1 == 3) i_quest3 = 500; else if (i1 == 4) i_quest4 = 500; } if (npc.getCurrentHp() > ((npc.getMaxHp() * 1) / 4)) { i0 = 0; i1 = 0; if (Util.checkIfInRange(1423, npc, c2, true)) { i0 = 1; i1 = 1; } if (c2.getZ() < (npc.getZ() + 200)) { if (Rnd.get(100) < 20) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 15) { skill = SkillTable.getInstance().getInfo(4689, 1); } else if (Rnd.get(100) < 15 && i0 == 1 && i_quest0 == 1) { skill = SkillTable.getInstance().getInfo(4685, 1); i_quest0 = 0; } else if (Rnd.get(100) < 10 && i1 == 1) { skill = SkillTable.getInstance().getInfo(4688, 1); } else if (Rnd.get(100) < 35) { skill = SkillTable.getInstance().getInfo(4683, 1); } else { if (Rnd.get(2) == 0) // TODO: replace me with direction, to check if player standing on left or right side of valakas skill = SkillTable.getInstance().getInfo(4681, 1); // left hand else skill = SkillTable.getInstance().getInfo(4682, 1); // right hand } } else if (Rnd.get(100) < 20) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 15) { skill = SkillTable.getInstance().getInfo(4689, 1); } else { skill = SkillTable.getInstance().getInfo(4684, 1); } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 2) / 4)) { i0 = 0; i1 = 0; if (Util.checkIfInRange(1423, npc, c2, true)) { i0 = 1; i1 = 1; } if (c2.getZ() < (npc.getZ() + 200)) { if (Rnd.get(100) < 5) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 10) { skill = SkillTable.getInstance().getInfo(4689, 1); } else if (Rnd.get(100) < 10 && i0 == 1 && i_quest0 == 1) { skill = SkillTable.getInstance().getInfo(4685, 1); i_quest0 = 0; } else if (Rnd.get(100) < 10 && i1 == 1) { skill = SkillTable.getInstance().getInfo(4688, 1); } else if (Rnd.get(100) < 20) { skill = SkillTable.getInstance().getInfo(4683, 1); } else { if (Rnd.get(2) == 0) // TODO: replace me with direction, to check if player standing on left or right side of valakas skill = SkillTable.getInstance().getInfo(4681, 1); // left hand else skill = SkillTable.getInstance().getInfo(4682, 1); // right hand } } else if (Rnd.get(100) < 5) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 10) { skill = SkillTable.getInstance().getInfo(4689, 1); } else { skill = SkillTable.getInstance().getInfo(4684, 1); } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 3) / 4.0)) { i0 = 0; i1 = 0; if (Util.checkIfInRange(1423, npc, c2, true)) { i0 = 1; i1 = 1; } if (c2.getZ() < (npc.getZ() + 200)) { if (Rnd.get(100) < 0) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 5) { skill = SkillTable.getInstance().getInfo(4689, 1); } else if (Rnd.get(100) < 5 && i0 == 1 && i_quest0 == 1) { skill = SkillTable.getInstance().getInfo(4685, 1); i_quest0 = 0; } else if (Rnd.get(100) < 10 && i1 == 1) { skill = SkillTable.getInstance().getInfo(4688, 1); } else if (Rnd.get(100) < 15) { skill = SkillTable.getInstance().getInfo(4683, 1); } else { if (Rnd.get(2) == 0) // TODO: replace me with direction, to check if player standing on left or right side of valakas skill = SkillTable.getInstance().getInfo(4681, 1); // left hand else skill = SkillTable.getInstance().getInfo(4682, 1); // right hand } } else if (Rnd.get(100) < 0) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 5) { skill = SkillTable.getInstance().getInfo(4689, 1); } else { skill = SkillTable.getInstance().getInfo(4684, 1); } } else { i0 = 0; i1 = 0; if (Util.checkIfInRange(1423, npc, c2, true)) { i0 = 1; i1 = 1; } if (c2.getZ() < (npc.getZ() + 200)) { if (Rnd.get(100) < 0) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 10) { skill = SkillTable.getInstance().getInfo(4689, 1); } else if (Rnd.get(100) < 5 && i0 == 1 && i_quest0 == 1) { skill = SkillTable.getInstance().getInfo(4685, 1); i_quest0 = 0; } else if (Rnd.get(100) < 10 && i1 == 1) { skill = SkillTable.getInstance().getInfo(4688, 1); } else if (Rnd.get(100) < 15) { skill = SkillTable.getInstance().getInfo(4683, 1); } else { if (Rnd.get(2) == 0) // TODO: replace me with direction, to check if player standing on left or right side of valakas skill = SkillTable.getInstance().getInfo(4681, 1); // left hand else skill = SkillTable.getInstance().getInfo(4682, 1); // right hand } } else if (Rnd.get(100) < 0) { skill = SkillTable.getInstance().getInfo(4690, 1); } else if (Rnd.get(100) < 10) { skill = SkillTable.getInstance().getInfo(4689, 1); } else { skill = SkillTable.getInstance().getInfo(4684, 1); } } } if (skill != null) callSkillAI(npc, c2, skill); } public void callSkillAI(L2Npc npc, L2Character c2, L2Skill skill) { QuestTimer timer = getQuestTimer("1003", npc, null); if (npc == null) { if (timer != null) timer.cancel(); return; } if (npc.isInvul()) return; if (c2 == null || c2.isDead() || timer == null) { c2 = getRandomTarget(npc); // just in case if hate AI fail if (timer == null) { startQuestTimer("1003", 500, npc, null, true); return; } } L2Character target = c2; if (target == null || target.isDead()) { return; } if (Util.checkIfInRange(skill.getCastRange(), npc, target, true)) { timer.cancel(); npc.getAI().setIntention(AI_INTENTION_IDLE); npc.setIsCastingNow(true); npc.setTarget(target); npc.doCast(skill); } else { npc.getAI().setIntention(AI_INTENTION_FOLLOW, target, null); npc.setIsCastingNow(false); } } public void broadcastSpawn(L2Npc npc) { Collection<L2Object> objs = npc.getKnownList().getKnownObjects().values(); { for (L2Object obj : objs) { if (obj instanceof L2PcInstance) { if (Util.checkIfInRange(10000, npc, obj, true)) { ((L2Character) obj).sendPacket(new PlaySound(1, "B03_A", 1, npc.getObjectId(), 212852, -114842, -1632)); ((L2Character) obj).sendPacket(new SocialAction(npc.getObjectId(), 3)); } } } } return; } public L2Character getRandomTarget(L2Npc npc) { FastList<L2Character> result = new FastList<L2Character>(); Collection<L2Object> objs = npc.getKnownList().getKnownObjects().values(); { for (L2Object obj : objs) { if (obj instanceof L2PcInstance || obj instanceof L2Summon || obj instanceof L2DecoyInstance) { if (Util.checkIfInRange(5000, npc, obj, true) && !((L2Character) obj).isDead() && !((L2Character) obj).isGM()) result.add((L2Character) obj); } } } if (!result.isEmpty() && result.size() != 0) { Object[] characters = result.toArray(); return (L2Character) characters[Rnd.get(characters.length)]; } return null; } @Override public String onSpellFinished(L2Npc npc, L2PcInstance player, L2Skill skill) { if (npc.isInvul()) { return null; } else if (npc.getNpcId() == VALAKAS && !npc.isInvul()) { getRandomSkill(npc); } return super.onSpellFinished(npc, player, skill); } @Override public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isPet) { int i1 = 0; if (GrandBossManager.getInstance().getBossStatus(VALAKAS) == FIGHTING) { if (npc.getCurrentHp() > ((npc.getMaxHp() * 1) / 4)) { if (player == c_quest2) { if (((10 * 1000) + 1000) > i_quest2) { i_quest2 = ((10 * 1000) + Rnd.get(3000)); } } else if (player == c_quest3) { if (((10 * 1000) + 1000) > i_quest3) { i_quest3 = ((10 * 1000) + Rnd.get(3000)); } } else if (player == c_quest4) { if (((10 * 1000) + 1000) > i_quest4) { i_quest4 = ((10 * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = ((10 * 1000) + Rnd.get(3000)); c_quest2 = player; } else if (i1 == 3) { i_quest3 = ((10 * 1000) + Rnd.get(3000)); c_quest3 = player; } else if (i1 == 4) { i_quest4 = ((10 * 1000) + Rnd.get(3000)); c_quest4 = player; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 2) / 4)) { if (player == c_quest2) { if (((6 * 1000) + 1000) > i_quest2) { i_quest2 = ((6 * 1000) + Rnd.get(3000)); } } else if (player == c_quest3) { if (((6 * 1000) + 1000) > i_quest3) { i_quest3 = ((6 * 1000) + Rnd.get(3000)); } } else if (player == c_quest4) { if (((6 * 1000) + 1000) > i_quest4) { i_quest4 = ((6 * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = ((6 * 1000) + Rnd.get(3000)); c_quest2 = player; } else if (i1 == 3) { i_quest3 = ((6 * 1000) + Rnd.get(3000)); c_quest3 = player; } else if (i1 == 4) { i_quest4 = ((6 * 1000) + Rnd.get(3000)); c_quest4 = player; } } else if (npc.getCurrentHp() > ((npc.getMaxHp() * 3) / 4.0)) { if (player == c_quest2) { if (((3 * 1000) + 1000) > i_quest2) { i_quest2 = ((3 * 1000) + Rnd.get(3000)); } } else if (player == c_quest3) { if (((3 * 1000) + 1000) > i_quest3) { i_quest3 = ((3 * 1000) + Rnd.get(3000)); } } else if (player == c_quest4) { if (((3 * 1000) + 1000) > i_quest4) { i_quest4 = ((3 * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = ((3 * 1000) + Rnd.get(3000)); c_quest2 = player; } else if (i1 == 3) { i_quest3 = ((3 * 1000) + Rnd.get(3000)); c_quest3 = player; } else if (i1 == 4) { i_quest4 = ((3 * 1000) + Rnd.get(3000)); c_quest4 = player; } } else if (player == c_quest2) { if (((2 * 1000) + 1000) > i_quest2) { i_quest2 = ((2 * 1000) + Rnd.get(3000)); } } else if (player == c_quest3) { if (((2 * 1000) + 1000) > i_quest3) { i_quest3 = ((2 * 1000) + Rnd.get(3000)); } } else if (player == c_quest4) { if (((2 * 1000) + 1000) > i_quest4) { i_quest4 = ((2 * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = ((2 * 1000) + Rnd.get(3000)); c_quest2 = player; } else if (i1 == 3) { i_quest3 = ((2 * 1000) + Rnd.get(3000)); c_quest3 = player; } else if (i1 == 4) { i_quest4 = ((2 * 1000) + Rnd.get(3000)); c_quest4 = player; } } else if (player == c_quest2) { if (((1 * 1000) + 1000) > i_quest2) { i_quest2 = ((1 * 1000) + Rnd.get(3000)); } } else if (player == c_quest3) { if (((1 * 1000) + 1000) > i_quest3) { i_quest3 = ((1 * 1000) + Rnd.get(3000)); } } else if (player == c_quest4) { if (((1 * 1000) + 1000) > i_quest4) { i_quest4 = ((1 * 1000) + Rnd.get(3000)); } } else if (i_quest2 > i_quest3) { i1 = 3; } else if (i_quest2 == i_quest3) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 3; } } else if (i_quest2 < i_quest3) { i1 = 2; } if (i1 == 2) { if (i_quest2 > i_quest4) { i1 = 4; } else if (i_quest2 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 2; } else { i1 = 4; } } else if (i_quest2 < i_quest4) { i1 = 2; } } else if (i1 == 3) { if (i_quest3 > i_quest4) { i1 = 4; } else if (i_quest3 == i_quest4) { if (Rnd.get(100) < 50) { i1 = 3; } else { i1 = 4; } } else if (i_quest3 < i_quest4) { i1 = 3; } } if (i1 == 2) { i_quest2 = ((1 * 1000) + Rnd.get(3000)); c_quest2 = player; } else if (i1 == 3) { i_quest3 = ((1 * 1000) + Rnd.get(3000)); c_quest3 = player; } else if (i1 == 4) { i_quest4 = ((1 * 1000) + Rnd.get(3000)); c_quest4 = player; } if (GrandBossManager.getInstance().getBossStatus(VALAKAS) == FIGHTING && !npc.isInvul()) { getRandomSkill(npc); } else return null; return super.onAggroRangeEnter(npc, player, isPet); } @Override public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet) { if (npc.isInvul()) { return null; } npc.setTarget(caster); return super.onSkillSee(npc, caster, skill, targets, isPet); } public static void main(String[] args) { // now call the constructor (starts up the ai) new Valakas(-1, "valakas", "ai"); } }
  3. Outsider

    Косяк С Валакасом

    сборка от Iceberga gracia epiloge, делаешь квест на валика доходишь до сердца тыкаешь на него пишет Cannot enter(как исправить это Валик живой его никто не убивал заранее спасибо!!!
  4. Outsider

    Маммон

    скиньте ссылку если есть у кого на рабочего Merchant of Mammon(торговца)лучше конечно чтобы сразу и кузнец и торговец заранее спасибо(грация эпилог) з.ы. и подскажите где менять уровень хб и открывать его
  5. Outsider

    Эвент

    Подскажите как запустить эвент(с тыквами или медалями например) в инете искал везде не то написано сборка Iceberg x50 грация эпилог спс заранее
  6. Outsider

    Рейд Босс Анчор

    подскажите где править анчор у рб?(которые кидают например орфен или просто некоторые рейд боссы)а то если проходит висит около 4 мин)айди или файл где а то не могу чет найти(заранее спс
  7. Outsider

    Рейт Адена

    Подскажите(сборка сервер от IceBerga x50)вроде все правильно делаю но рейты на адену не меняются также 1 остаются(дописывал сам поначалу их вообще не было)заранее спс # Experience multiplier RateXp = 15 # Skill points multiplier RateSp = 15 # Experience multiplier (Party) RatePartyXp = 1.5 # Skill points multiplier (Party) RatePartySp = 1.5 # RateDropAdena = 20 # RateConsumableCost = 1 # RateDropItems = 20
  8. Посоветуйте сервер финал или епилог чтобы там все настроено уже было(чтоб не париться с запусканием его)чтоб хоть потестить свое что то подабавлять заранее спасибо за ссылки
  9. Outsider

    Время Бафов

    просмотрел какие можно конфиги,где могут быть переменные по времени бафов?
  10. Outsider

    Время Бафов

    ребят может где то есть ограничение по бафу вообще и его надо менять?? нет я ставил на час все равно не меняется
  11. Outsider

    Время Бафов

    нет пробовал такая же хрень
  12. Outsider

    Время Бафов

    Сборка сервера l2perun epiloge.......вообщем там был бафер на серве но я залил своего,потом скачал с инета бафы по 3 часа закинул хмл,захожу в игру время не поменялось,вручную в gameserver/config/Character прописал время(выглядит это так# Включить альтернативное увеличение времени действия скиллов? EnableModifySkillDuration = True # Skill duration list # Format: skillid,newtime;skillid2,newtime2... # Example: # This enable 1h(3600) duration for songs, the "\"indicates new line, # and is only set for formating purposes. # SkillDurationList = 264,3600;265,3600;266,3600;267,3600;268,3600;\ # 269,3600;270,3600;304,3600;305,1200;306,3600;308,3600;349,3600;\ # 363,3600;364,3600 # *** # Список скиллов, время которых должно увеличиваться. Записывается как: # ID скилла,время;ID скилла,время;ID скилла,время... # Слеш "\" обозначает новую линию. # Пример для песен СвС - установка песен длительностью в один час: # SkillDurationList = 264,3600;265,3600;266,3600;267,3600;268,3600;\ # 269,3600;270,3600;304,3600;305,1200;306,3600;308,3600;349,3600;\ # 363,3600;364,3600 SkillDurationList = 1002,9999;1003,9999;1005,9999;1006,9999;1007,9999;1007,9999;1515,\ 1476,9999;1477,9999;1478,9999;1479,9999;1441,9999;1442,9999;1443,9999;\ 1009,9999;1010,9999;1251,9999;1252,9999;1253,9999;1006,9999;1444,9999;\ 1308,9999;1309,9999;1362,9999;1363,9999;1390,9999;1427,9999;1281,9999;\ 1413,9999;1461,9999;1002,9999;1003,9999;1004,9999;1005,9999;1280,9999;\ 1008,9999;1009,9999;1249,9999;1250,9999;1260,9999;1261,9999;1279,9999;\ 1282,9999;1364,9999;1365,9999;1414,9999;1415,9999;1416,9999;\ 1036,9999;1040,9999;1044,9999;1085,9999;1086,9999;1087,9999;\ 1045,9999;1048,9999;1059,9999;1062,9999;1068,9999;1077,9999;\ 1204,9999;1240,9999;1242,9999;1257,9999;1268,9999;1388,9999;\ 1078,9999;1032,9999;1033,9999;1259,9999;1243,9999;1354,9999;\ 1397,9999;1352,9999;1392,9999;1393,9999;1353,9999;1182,9999;\ 1189,9999;1191,9999;1303,9999;1460,9999;1355,9999;1356,9999;\ 1389,9999;1035,9999;1323,9999;1325,9999;1374,9999;\ 395,9999;396,9999;\ 264,9999;265,9999;266,9999;267,9999;268,9999;269,9999;270,9999;304,9999;\ 306,9999;308,9999;349,9999;363,9999;364,9999;529,9999;764,9999;305,9999;\ 271,9999;272,9999;273,9999;274,9999;275,9999;276,9999;277,9999;783,9999;\ 307,9999;309,9999;310,9999;311,9999;365,9999;366,9999;530,9999;765,9999;\ 825,9999;826,9999;827,9999;828,9999;829,9999;830,9999;499,9999;278,9999;\ 67,9999;33,9999;22,9999;10,9999;4699,9999;4700,9999;4702,9999;4703,9999; делаю рестарты все равно бафы остаются 40 мин денсы сонги 20(находил в Html несколько бафов пишет что время 12000)почему же в игре тогда 20 и 40??за помощь буду благодарен
  13. Помогите залить бафера сборка\L2Perun_Server_1_1 епилог,скачал бафера и не одного не подходит по Sql к базе сервера,не могу переделать его под свою базу(файл который вытаскиваю из базы не могу понять что надо поменять)ааа плиз уже просто сил нету весь дегь сижу мучаюсь напишите в аську плиз кто шарит помогите 482750003
  14. Outsider

    Бафер

    Помогите плиз,сборка L2Perun epiloge(качал отсюда)подскажите id бафера и где его можно редактировать(добавит баф,время и т.д)или еще лучше киньте ссылку на норм бафера(куда правда потом его кидать?)и если можно id камаель бафоф спасибо заранее
  15. Outsider

    Профа

    Немогу найти как сменить профу что писать надо?и подскажите как поставить профф кота(какой ид и т.д)хроники Эпилог
×
×
  • Создать...