Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Ява сервер от команды L2Open Gracia Final (CT2.3) ревизия 3.5
#1
Ява сервер от команды L2Open Gracia Final (CT2.3) ревизия 3.5

Свеженькая соборчка от команды разработчиков серверов Lineage II L2Open. Она является дополнением к 3.0.Что нового:
- фикс волка до 24 ур. по оффу;
- фикс волка до 25 уровня по оффу;
- фикс дюпа;
- немного перевода папки default;
- полный синх заточки скилов с CT2.2;
- доработка комьюнити;
- добавлен HB_Door скрипт;

Скачать
Ответ
#2
и все таки.....как сделать тыквы? там лежит файл 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
[Изображение: 594769547.png]
Ответ
#3
Они реализовали Mail в комуните или еще не нашли от куда скопипастить?Big Grin
Ответ
#4
У меня такой вопрос. Поставили сервер, а там не работает чат. При крафте Спиритшотов А грейда выдаёт "you are missing -1640 spirit ore required to create that" (Вы пропускаете-1640 руд духа, требуемых создать это) Поидее с крафтом остального таже проблема.
Или хотя бы назовите файлы отвечающие за крафт и чат.
Стоит эта сборка.
Заранее благодарен.
Ответ
#5
В сборке реализовано то что при пвп убийстве даётся итем, хотелось бы узнать где это прописано (с custom.ini знаком), хотелось бы понять само место в скриптах, что за чем следует, нужно поставить условие что предмет даётся только если уровень персонажа скажем 70 и выше.

# -------------------
# Система награда за PvP
# -------------------
# Включить награды за PvP?
# По умолчанию: False
AllowPvpReward = True

# ID предмета, даваемого в качестве награды.
# По умолчанию: 57 (адена)
PvpRewardItemId = 6393 << Мне нужно тут условие что даётся только при 70+ лвле и выше, как релизовать это не могу понять(((

Не как не могу найти(( Помогите пожайлуста!
Ответ
#6
ну исходниках нада смотреть где переменная конфига употребляется и дописывать условия if ..... && player.getlevel >=70 && target.getlevel >= 70
Ответ
#7
Подскажите плз SVN URL Адрес где можно по данным сборкам L2Open получить исходник
Ответ
#8
Кто ставил - скажите пожалуйста, есть ли у вас проблема с заточкой скила Curse Fear (книги исчезают, скил на месте даже при удачной заточке) и Bleed у ТХ (сразу на +30 подымается)? И совет по устранению хотелось бы получить.
Ответ
#9
FerryCorsten, http://my-svn.assembla.com/svn/l2open-free/trunk
Ответ
#10
Подумав немного добился чтоб поставилось условие при котором сам игрок должен быть 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 + ".");
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Русский Никнейм PTS Сервер! Kenrix 6 3,665 11-26-2023, 09:32 AM
Последний пост: ОргазмО
  где сервер гранит файлы ява? doloto777 3 1,478 04-15-2023, 11:44 AM
Последний пост: gorodetskiy
  Требуется Тех. Администратор на сервер Interlude/High Five! sfmusic 1 1,350 03-15-2023, 01:11 PM
Последний пост: Adamheers
  Требуется Тех. Администратор на сервер essence (mobius) sfmusic 0 1,001 03-06-2023, 05:26 PM
Последний пост: sfmusic
  Share Gracia Final Off Euro Deazer 424 256,286 07-10-2022, 07:20 PM
Последний пост: JIecTap
  Не пускает на сервер Nab 8 2,917 02-01-2022, 12:01 PM
Последний пост: Nab
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,379 10-01-2021, 02:40 PM
Последний пост: tenor
  Ищу опытного рекламщика чтобы совместно держать готовый сервер Донат - 50 на 50.- xevilx 3 1,757 08-25-2021, 10:09 PM
Последний пост: Lord_Gothic
  Сервер lineage 2 chronicle 1 harbingers of war на node.js space2pacman 3 3,031 02-26-2020, 08:42 AM
Последний пост: space2pacman
  Не пускает дальше в логин сервер Kennedy 2 2,054 12-26-2018, 11:22 PM
Последний пост: n3k0nation

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)