Сообщений: 268 
	Тем: 90 
	Зарегистрирован: Jun 2008
	
 Репутация: 
 766
	 
 
	
	
		Ява сервер от команды L2Open Gracia Final (CT2.3) ревизия 3.5
Свеженькая соборчка от команды разработчиков серверов Lineage II L2Open. Она является дополнением к 3.0.Что нового: 
- фикс волка до 24 ур. по оффу; 
- фикс волка до 25 уровня по оффу; 
- фикс дюпа; 
- немного перевода папки default; 
- полный синх заточки скилов с CT2.2; 
- доработка комьюнити; 
- добавлен HB_Door скрипт;
 Скачать
	 
	
	
 
	
	
 
 
	
	
	
		
	Сообщений: 169 
	Тем: 6 
	Зарегистрирован: Sep 2009
	
 Репутация: 
 41
	 
 
	
		
		
		10-20-2009, 08:55 PM 
(Сообщение последний раз редактировалось: 10-20-2009, 09:20 PM   FXAntiXrist.)
		
	 
	
		и все таки.....как сделать тыквы? там лежит файл SquishYourSquash.java, вот он 
Код: /* 
* 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 events.SquishYourSquash; 
 
import net.sf.l2j.gameserver.model.L2Object; 
import net.sf.l2j.gameserver.model.L2Skill; 
import net.sf.l2j.gameserver.model.actor.L2Npc; 
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; 
import net.sf.l2j.gameserver.model.quest.Quest; 
import net.sf.l2j.gameserver.network.serverpackets.NpcSay; 
import net.sf.l2j.gameserver.templates.item.L2Weapon; 
import net.sf.l2j.util.Rnd; 
 
public class SquishYourSquash extends Quest 
{ 
   private static final int[] SKILL_NECTAR = 
   { 
      2005,1011,1013,1015 
   }; 
 
   private static final int[] CHRONOWEAPONS = 
   { 
      4202,5133,5817,7058,8350 
   }; 
 
   private static final int[] SQUASHLIST = 
   { 
      12774,12775,12776,12777,12778,12779 
   }; 
 
   private static final int[] CANNOTGROW = 
   { 
      13016,13017 
   }; 
 
   private static final String[] EAT_TEXT = 
   { 
      "More... I need more...", 
      "Yummy, what a great nectar.", 
      "I'm growing...", 
      "Give me more!", 
      "I need moooreee." 
   }; 
 
   private static final String[] CHRONO_TEXT = 
   { 
      "Arghhh... You have chrono weapon.", 
      "My end is coming...", 
      "I feel chrono....", 
      "No.. No.. please don't kill me." 
   }; 
 
   private static final String[] NOCHRONO_TEXT = 
   { 
      "Haha, you can't kill me.", 
      "It's impossible to kill mi without chrono weapon.", 
      "I can be defeated only with special chrono weapon!", 
      "Hahaha.... Keep trying..." 
   }; 
 
   private int _numAtk = 0; 
   private int _nectar = 0; 
 
   public SquishYourSquash(int questId, String name, String descr) 
   { 
      super(questId, name, descr); 
      for (int i : SQUASHLIST) 
      { 
         addSkillSeeId(i); 
         addAttackId(i); 
         addKillId(i); 
         addSpawnId(i); 
      } 
   } 
 
   public String onSpawn(L2Npc npc) 
   { 
      _numAtk = 0; 
      _nectar = 0; 
 
      return super.onSpawn(npc); 
   } 
 
   public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) 
   { 
      _numAtk = 0; 
      _nectar = 0; 
 
      return super.onAdvEvent(event, npc, player); 
   } 
 
   public String onSkillSee (L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet) 
   { 
      int npcId = npc.getNpcId(); 
      if (!contains(targets, npc)) return super.onSkillSee(npc, caster, skill, targets, isPet); 
      if (!contains(SKILL_NECTAR, skill.getId())) return super.onSkillSee(npc, caster, skill, targets, isPet); 
      if (!contains(CANNOTGROW, npc.getNpcId())) return super.onSkillSee(npc, caster, skill, targets, isPet); 
      if (_nectar == 0 && _nectar <= 3) 
      { 
         npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), EAT_TEXT[Rnd.get(EAT_TEXT.length)])); 
         _nectar++; 
      } 
      else if (_nectar == 4) 
      { 
         if (npcId == 12774) 
         { 
            addSpawn(12776, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else if (npcId == 12777) 
         { 
            addSpawn(12779, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else 
            _nectar++; 
      } 
      else if (_nectar == 9) 
      { 
         if (npcId == 12776) 
         { 
            addSpawn(12775, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else if (npcId == 12779) 
         { 
            addSpawn(12778, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else 
            _nectar++; 
      } 
      else if (_nectar == 19) 
      { 
         if (npcId == 12775) 
         { 
            addSpawn(13016, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else if (npcId == 12778) 
         { 
            addSpawn(13017, npc); 
            npc.deleteMe(); 
            _nectar = 0; 
         } 
         else 
            _nectar++; 
      } 
 
      return super.onSkillSee(npc,caster,skill,targets,isPet); 
   } 
 
   public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) 
   { 
      L2Weapon weapon = attacker.getActiveWeaponItem(); 
      if (weapon == null) 
      { 
         npc.setIsInvul(true); 
         if (Rnd.get(4) == 1) npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NOCHRONO_TEXT[Rnd.get(NOCHRONO_TEXT.length)])); 
      } 
      else if (isPet) 
      { 
         npc.setIsInvul(true); 
         if (Rnd.get(4) == 1) npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NOCHRONO_TEXT[Rnd.get(NOCHRONO_TEXT.length)])); 
      } 
      else 
      { 
         if (contains(SQUASHLIST, npc.getNpcId())) 
         { 
            if (contains(CHRONOWEAPONS, weapon.getItemId())) 
            { 
               npc.setIsInvul(false); 
               if (_numAtk < 1) npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), CHRONO_TEXT[Rnd.get(CHRONO_TEXT.length)])); 
               _numAtk++; 
            } 
            else 
            { 
               npc.setIsInvul(true); 
               if (Rnd.get(4) == 1) npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NOCHRONO_TEXT[Rnd.get(NOCHRONO_TEXT.length)])); 
            } 
         } 
         else 
            npc.setIsInvul(false); 
      } 
 
      return super.onAttack(npc, attacker, damage, isPet); 
   } 
 
   public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet) 
   { 
      npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "Rewards !!")); 
      _numAtk = 0; 
      _nectar = 0; 
 
      return super.onKill(npc,killer,isPet); 
   } 
 
   private static boolean contains(int[] array, int obj) 
   { 
      for (int i = 0; i < array.length; i++) 
      { 
         if (array[i] == obj) 
            return true; 
      } 
 
      return false; 
   } 
 
   public static <T> boolean contains(T[] array, T obj) 
   { 
      for (int i = 0; i < array.length; i++) 
      { 
         if (array[i] == obj) 
            return true; 
      } 
 
      return false; 
   } 
 
   public static void main(String[] args) 
   { 
      new SquishYourSquash(-1, "SquishYourSquash", "events"); 
   } 
}
 Нектар себе сунул в инвентарь, нажимаю ничего не происходит, тыквы спавнятся по id... И какой ид кота, который семена и пуху дает?... 
Вот содержимое scripts.cfg (отрывок)
 Код: # Events 
events/SquishYourSquash/SquishYourSquash.java 
events/MasterOfEnchanting/MasterOfEnchanting.java 
events/l2day/__init__.py 
events/CharacterBirthday/CharacterBirthday.java
  
	 
	
	
 
 
	
	
 
 
	
	
	
		
	Сообщений: 28 
	Тем: 2 
	Зарегистрирован: May 2009
	
	 
 
	
	
		Они реализовали Mail в комуните или еще не нашли от куда скопипастить?  
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 3 
	Тем: 0 
	Зарегистрирован: Oct 2009
	
 Репутация: 
 0
	 
 
	
	
		У меня такой вопрос. Поставили сервер, а там не работает чат. При крафте Спиритшотов А грейда выдаёт "you are missing -1640 spirit ore required to create that" (Вы пропускаете-1640 руд духа, требуемых создать это) Поидее с крафтом остального таже проблема. 
Или хотя бы назовите файлы отвечающие за крафт и чат. 
Стоит эта сборка. 
Заранее благодарен.
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 15 
	Тем: 5 
	Зарегистрирован: Nov 2009
	
	 
 
	
		
		
		01-29-2010, 09:36 PM 
(Сообщение последний раз редактировалось: 01-29-2010, 09:37 PM   FerryCorsten.)
		
	 
	
		В сборке реализовано то что при пвп убийстве даётся итем, хотелось бы узнать где это прописано (с custom.ini знаком), хотелось бы понять само место в скриптах, что за чем следует, нужно поставить условие что предмет даётся только если уровень персонажа скажем 70 и выше. 
 
# ------------------- 
# Система награда за PvP 
# ------------------- 
# Включить награды за PvP? 
# По умолчанию: False 
AllowPvpReward = True 
 
# ID предмета, даваемого в качестве награды. 
# По умолчанию: 57 (адена) 
PvpRewardItemId = 6393 << Мне нужно тут условие что даётся только при 70+ лвле и выше, как релизовать это не могу понять((( 
 
Не как не могу найти(( Помогите пожайлуста!
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 643 
	Тем: 7 
	Зарегистрирован: Jul 2008
	
 Репутация: 
 2,115
	 
 
	
	
		ну исходниках нада смотреть где переменная конфига употребляется и дописывать условия if ..... &&  player.getlevel >=70 && target.getlevel >= 70
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 15 
	Тем: 5 
	Зарегистрирован: Nov 2009
	
	 
 
	
	
		Подскажите плз SVN URL Адрес где можно по данным сборкам L2Open получить исходник
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 4 
	Тем: 2 
	Зарегистрирован: May 2009
	
 Репутация: 
 0
	 
 
	
	
		Кто ставил - скажите пожалуйста, есть ли у вас проблема с заточкой скила Curse Fear (книги исчезают, скил на месте даже при удачной заточке) и Bleed у ТХ (сразу на +30 подымается)? И совет по устранению хотелось бы получить.
	 
	
	
	
	
 
 
	
	
	
		
	Сообщений: 6,450 
	Тем: 262 
	Зарегистрирован: Nov 2007
	
 Репутация: 
 44,165
	 
 
 
	
	
	
		
	Сообщений: 15 
	Тем: 5 
	Зарегистрирован: Nov 2009
	
	 
 
	
		
		
		01-31-2010, 05:01 AM 
(Сообщение последний раз редактировалось: 02-01-2010, 02:39 AM   FerryCorsten.)
		
	 
	
		Подумав немного добился чтоб поставилось условие при котором сам игрок должен быть 70 лвла, но со 2 условием так и бьюсь головой об стенку, нужно сделать так чтоб у игрока был в таргете другой игрок с 70+ лвлом. Компилятор говорит неверная строка. Подскажите как написать 2 условие плзззззззз 
Кусок кода из файла L2PcInstance.java
 Цитата:int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID); 
String PvpRewardItemName = (Config.PVP_REWARD_ITEM_NAME); 
int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMOUNT); 
if (getLevel() > 70) 
if (target.getLevel() > 70) 
addItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true); 
sendMessage("You have earned " + PvpRewardItemAmmount + " item(s) of " + PvpRewardItemName + "."); 
	 
	
	
	
	
 
 
	 
 |