Jump to content
  • 0

[help] master of enchanting & squash event


Question

Posted

squash event: When I break a squash, this one does not give me anything...how can I fix?

 

master of enchanting: When I enchant the yogi's staff (and ofc I equip it) and try to exchange it for the reward, does not give me anything, what can it be?

 

What do I have to share to U for help me (which code I mean)?

 

PS: I'm sry for my ignorance, it's my first time...

Recommended Posts

  • 0
Posted

SquashEvent.java

package events.SquashEvent;

import l2.gp.gameserver.instancemanager.QuestManager;
import l2.gp.gameserver.model.L2Object;
import l2.gp.gameserver.model.skills.L2Skill;
import l2.gp.gameserver.model.actor.L2Npc;
import l2.gp.gameserver.model.actor.instance.L2MonsterInstance;
import l2.gp.gameserver.model.actor.instance.L2PcInstance;
import l2.gp.gameserver.model.quest.Quest;
import l2.gp.gameserver.model.quest.QuestState;
import l2.gp.gameserver.network.clientpackets.Say2;
import l2.gp.gameserver.network.serverpackets.CreatureSay;
import l2.gp.util.Rnd;

import events.EventsConfig;

public class SquashEvent extends Quest
{
        private static final String qn = "SquashEvent";
        private static final int MANAGER = 31860;
        private static final int NECTAR_SKILL = 2005;
        private static final int[] CHRONO_LIST = { 4202 , 5133 , 5817 , 7058 , 8350 };
        
        private static final int[] SQUASH_LIST = { 12774 , 12775 , 12776 , 12777 , 12778 , 12779 , 13016 , 13017 };
        
        private static final String[] _NOCHRONO_TEXT = { "You cannot kill me without Chrono", "Hehe...keep trying...", "Nice try...", "Tired ?", "Go go ! haha..." };
    
        private static final String[] _CHRONO_TEXT = { "Arghh... Chrono weapon...", "My end is coming...", "Please leave me!", "Heeellpppp...", "Somebody help me please..." };
    
        private static final String[] _NECTAR_TEXT = { "Yummie... Nectar...", "Plase give me more...", "Hmmm.. More.. I need more...", "I would like you more, if you give me more...", "Hmmmmmmm...", "My favourite..." };
        
        private static final int Adena = 57;
        private static final int Crystal_A_Grade = 1461;
        private static final int Crystal_S_Grade = 1462;
        private static final int Blessed_SOE = 1538;
        private static final int Quick_Healing_Potion = 1540;
        private static final int Gems_A_Grade = 2133;
        private static final int Gems_S_Grade = 2134;
        private static final int Lunargent = 6029;
        private static final int Hellfire_oil = 6033;
        private static final int Firework = 6406;
        private static final int Large_Firework = 6407;
	private static final int Giant_Codex = 6622;
        private static final int High_Grade_LS76 = 8752;
        private static final int Top_Grade_LS76 = 8762;
        private static final int Energy_Ginseng = 20004;
        private static final int Baguette_Herb_1 = 20272;
        private static final int Baguette_Herb_2 = 20273;
        private static final int Baguette_Herb_3 = 20274;
	private static final int Large_Lucky_cub = 22005;
	private static final int Ancient_Enchant_Weapon_A = 22015;
	private static final int Ancient_Enchant_Armour_A = 22017;
        
        private static final int[][] DROPLIST =
        {
                // High Quality Young Squash
                { 12775, Baguette_Herb_2, 100 },
                { 12775, Energy_Ginseng, 100 },
                { 12775, Gems_S_Grade, 80 },
                { 12775, Crystal_S_Grade, 80 },
                { 12775, Quick_Healing_Potion, 75 },
			{ 12775, Large_Lucky_cub, 50 },
                { 12775, Adena, 100 },
                
                // Low Quality Young Squash
                { 12776, Baguette_Herb_3, 100 },
                { 12776, Quick_Healing_Potion, 70 },
                { 12776, Gems_A_Grade, 80 },
                { 12776, Crystal_A_Grade, 100 },
                { 12776, High_Grade_LS76, 10 },
                { 12776, Adena, 100 },
                
                // High Quality Large Squash
                { 12778, Baguette_Herb_2, 100 },
                { 12778, Adena, 100 },
                { 12778, Top_Grade_LS76, 35 },
                { 12778, Giant_Codex, 10 },
                { 12778, Quick_Healing_Potion, 60 },
                { 12778, Gems_S_Grade, 80 },
                { 12778, Crystal_S_Grade, 100 },
			{ 12778, Energy_Ginseng, 100 },
			{ 12778, Large_Lucky_cub, 60 },
                
                // Low Quality Large Squash
                { 12779, Baguette_Herb_3, 100 },
                { 12779, Adena, 100 },
                { 12779, High_Grade_LS76, 10 },
                { 12779, Quick_Healing_Potion, 60 },
                { 12779, Energy_Ginseng, 70 },
                { 12779, Gems_A_Grade, 100 },
                
                // King Squash
                { 13016, Adena, 100 },
                { 13016, Quick_Healing_Potion, 100 },
                { 13016, Crystal_S_Grade, 10 },
                { 13016, Giant_Codex, 10 },
                { 13016, Lunargent, 15 },
                { 13016, High_Grade_LS76, 50 },
                { 13016, Firework, 100 },
                { 13016, Baguette_Herb_1, 100 },
                { 13016, Baguette_Herb_2, 80 },
			{ 13016, Blessed_SOE, 80 },
			{ 13016, Energy_Ginseng, 100 },
			{ 13016, Ancient_Enchant_Weapon_A, 5 },

                
                // Emperor Squash
                { 13017, Adena, 100 },
                { 13017, Top_Grade_LS76, 10 },
                { 13017, Gems_S_Grade, 100 },
                { 13017, Crystal_S_Grade, 100 },
                { 13017, Hellfire_oil, 5 },
                { 13017, Energy_Ginseng, 100 },
                { 13017, Blessed_SOE, 70 },
                { 13017, Giant_Codex, 30 },
                { 13017, Large_Firework, 100 },
			{ 13017, Ancient_Enchant_Armour_A, 10 },
                { 13017, Baguette_Herb_2, 100 },
                { 13017, Baguette_Herb_3, 100 }
        };
        
        @Override
        public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
        {
                if (contains(SQUASH_LIST,npc.getNpcId()))
                {
                        if(isPet)
                        {
                                noChronoText(npc);
                                npc.setIsInvul(true);
                                return null;
                        }
                        if(attacker.getActiveWeaponItem() != null && contains(CHRONO_LIST, attacker.getActiveWeaponItem().getItemId()))
                        {
                                ChronoText(npc);
                                npc.setIsInvul(false);
                                npc.getStatus().reduceHp(10, attacker);
                                return null;
                        }
					noChronoText(npc);
					npc.setIsInvul(true);
					return null;
                }
                return super.onAttack(npc, attacker, damage, isPet);
        }
        
        @Override
	public String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
        {
                if (contains(targets, npc) && contains(SQUASH_LIST, npc.getNpcId()) && (skill.getId() == NECTAR_SKILL))
                {
                        switch(npc.getNpcId())
                        {
                                case 12774:
                                        randomSpawn(12775, 12776, npc, true);
                                        break;
                                case 12777:
                                        randomSpawn(12778, 12779, npc, true);
                                        break;
                                case 12775:
                                        randomSpawn(13016, npc, true);
                                        break;
                                case 12778:
                                        randomSpawn(13017, npc, true);
                                        break;
                        }
                }
                return super.onSkillSee(npc, caster, skill, targets, isPet);
        }
        
        @Override
        public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
        {
                if (EventsConfig.SQUASH_DROP_ACTIVE)
                {
                        for (int ID: SQUASH_LIST)
                        {
                                if (npc.getNpcId() == ID)
                                {
                                        dropItem(npc, killer);
                                }
                        }
                }
                return super.onKill(npc, killer, isPet);
        }
        
        @Override
	public String onSpawn(L2Npc npc) 
        {
                npc.setIsImmobilized(true);
                npc.disableCoreAI(true);
                return null;
        }
        
        private static final void dropItem(L2Npc mob, L2PcInstance player)
        {
                final int npcId = mob.getNpcId();
                final int chance = Rnd.get(100);
                for (int i = 0; i < DROPLIST.length; i++)
                {
                        int[] drop = DROPLIST[i];
                        if (npcId == drop[0])
                        {
                                if (chance < drop[2])
                                {
                                        if(drop[1] > 6000)
                                        {
                                                int adenaCount = Rnd.get(50000,150000);
                                                if (drop[1] == 57)
                                                {
                                                        ((L2MonsterInstance)mob).dropItem(player, drop[1], adenaCount);
                                                }
                                                else
                                                {
                                                        ((L2MonsterInstance)mob).dropItem(player, drop[1], 1);
                                                }
                                        }
                                        else
                                        {
                                                int adenaCount = Rnd.get(50000,200000);
                                                if (drop[1] == 57)
                                                {
                                                        ((L2MonsterInstance)mob).dropItem(player, drop[1], adenaCount);
                                                }
                                                else
                                                {
                                                        ((L2MonsterInstance)mob).dropItem(player, drop[1], Rnd.get(2, 6));
                                                }
                                        }
                                        continue;
                                }
                        }
                        if (npcId < drop[0])
                                return;
                }
        }
        
        private void randomSpawn(int lower, int higher, L2Npc npc, boolean delete)
        {
                final int _random = Rnd.get(100);
                if (_random < 10)
                        spawnNext(lower, npc);
                else if(_random < 30)
                        spawnNext(higher, npc);
                else
                        nectarText(npc);
        }
        
        private void randomSpawn(int npcId, L2Npc npc, boolean delete)
        {
                if(Rnd.get(100) < 10)
                        spawnNext(npcId, npc);
                else
                        nectarText(npc);
        }
        
        private void ChronoText(L2Npc npc)
        {
                if(Rnd.get(100) < 20)
                        npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), _CHRONO_TEXT[Rnd.get(_CHRONO_TEXT.length)]));           
        }
        private void noChronoText(L2Npc npc)
        {
                if(Rnd.get(100) < 20)
                        npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), _NOCHRONO_TEXT[Rnd.get(_NOCHRONO_TEXT.length)]));               
        }
        private void nectarText(L2Npc npc)
        {
                if(Rnd.get(100) < 30)
                        npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), _NECTAR_TEXT[Rnd.get(_NECTAR_TEXT.length)]));
        }
        
        private void spawnNext(int npcId, L2Npc npc)
        {
                addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 60000);
                npc.deleteMe();
        }

        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 boolean contains(int[] array, int obj)
        {
                for (int i = 0; i < array.length; i++)
                {
                        if (array[i] == obj)
                        {
                                return true;
                        }
                }
                return false;
        }
        
        public SquashEvent(int questId, String name, String descr)
        {
                super(questId, name, descr);
                
                for (final int mob : SQUASH_LIST)
                {
                        addAttackId(mob);
                        addKillId(mob);
                        addSpawnId(mob);
                        addSkillSeeId(mob);
                }

                addStartNpc(MANAGER);
                addFirstTalkId(MANAGER);
                addTalkId(MANAGER);
        }
        
        @Override
        public String onFirstTalk(L2Npc npc, L2PcInstance player)
        {
            String htmltext = "";
            QuestState st = player.getQuestState(getName());
            if (st == null)
            {
                final Quest q = QuestManager.getInstance().getQuest(getName());
                st = q.newQuestState(player);
            }
            htmltext = npc.getNpcId() + ".htm";
            return htmltext;
        }
        
        public static void main(String[] args)
        {
            new SquashEvent(-1,qn,"events");
            if (EventsConfig.SQUASH_STARTED)
                _log.info("Event System: Squash Event loaded.");
        }
}

  • 0
Posted

MasterOfEnchanting.java

package events.MasterOfEnchanting;

import events.EventsConfig;
import l2.gp.gameserver.instancemanager.QuestManager;
import l2.gp.gameserver.model.actor.L2Npc;
import l2.gp.gameserver.model.actor.instance.L2PcInstance;
import l2.gp.gameserver.model.quest.Quest;
import l2.gp.gameserver.model.quest.QuestState;
import l2.gp.gameserver.network.SystemMessageId;
import l2.gp.gameserver.network.serverpackets.SystemMessage;
import l2.gp.util.Rnd;

/**
* Event Code for "Master of Enchanting" http://www.lineage2.com/archive/2009/06/master_of_encha.html
* @author Gnacik
*/
public class MasterOfEnchanting extends Quest
{
	private static final String qn = "MasterOfEnchanting";
        private static final int _master_yogi = 32599;

        public MasterOfEnchanting(int questId, String name, String descr)
        {
                super(questId, name, descr);
                addStartNpc(_master_yogi);
                addFirstTalkId(_master_yogi);
                addTalkId(_master_yogi);                
        }

        @Override
	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
        {
                String htmltext = "";
                QuestState st = player.getQuestState(getName());
                Quest q = QuestManager.getInstance().getQuest(getName());

                htmltext = event;
                if (event.equalsIgnoreCase("buy_staff"))
                {
                        if (st.getQuestItemsCount(EventsConfig.MY_STAFF) == 0 && st.getQuestItemsCount(EventsConfig.MY_ADENA) > EventsConfig.MY_STAFF_PRICE)
                        {
                                st.takeItems(EventsConfig.MY_ADENA, EventsConfig.MY_STAFF_PRICE);
                                st.giveItems(EventsConfig.MY_STAFF, 1);
                                htmltext = "32599-staffbuyed.htm";
                        }
                        else
                                htmltext = "32599-staffcant.htm";
                }
                else if (event.equalsIgnoreCase("buy_scroll_24"))
                {
                        long _curr_time = System.currentTimeMillis();
                        String value = q.loadGlobalQuestVar(player.getAccountName());
                        long _reuse_time = value == "" ? 0 : Long.parseLong(value);
                        if (_curr_time > _reuse_time)
                        {
                                if (st.getQuestItemsCount(EventsConfig.MY_ADENA) > EventsConfig.MY_SCROLL_24_PRICE)
                                {
                                        st.takeItems(EventsConfig.MY_ADENA, EventsConfig.MY_SCROLL_24_PRICE);
                                        st.giveItems(EventsConfig.MY_SCROLL, 24);
                                        q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (EventsConfig.MY_SCROLL_24_TIME * 3600000)));
                                        htmltext = "32599-scroll24.htm";
                                }
                                else
                                        htmltext = "32599-s24-no.htm";
                        }
                        else
                        {
                                final long _remaining_time = (_reuse_time - _curr_time) / 1000;
                                final int hours = (int) _remaining_time / 3600;
                                final int minutes = ((int) _remaining_time % 3600) / 60;
                                
                                if (hours > 0)
                                {
                                        SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_HOURS_S2_MINUTES);
                                        sm.addNumber(hours);
                                        sm.addNumber(minutes);
                                        player.sendPacket(sm);
                                        htmltext = "32599-scroll24.htm";
                                }
                                else if (minutes > 0)
                                {
                                        SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ITEM_PURCHASABLE_IN_S1_MINUTES);
                                        sm.addNumber(minutes);
                                        player.sendPacket(sm);
                                        htmltext = "32599-scroll24.htm";
                                }
                                else
                                {
                                        // Little glitch. There is no SystemMessage with seconds only.
                                        // If time is less than 1 minute player can buy scrolls
                                        if (st.getQuestItemsCount(EventsConfig.MY_ADENA) > EventsConfig.MY_SCROLL_24_PRICE)
                                        {
                                                st.takeItems(EventsConfig.MY_ADENA, EventsConfig.MY_SCROLL_24_PRICE);
                                                st.giveItems(EventsConfig.MY_SCROLL, 24);
                                                q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (EventsConfig.MY_SCROLL_24_TIME * 3600000)));
                                                htmltext = "32599-scroll24.htm";
                                        }
                                        else
                                                htmltext = "32599-s24-no.htm";
                                }
                        }
                }
                else if (event.equalsIgnoreCase("buy_scroll_1"))
                {
                        if (st.getQuestItemsCount(EventsConfig.MY_ADENA) > EventsConfig.MY_SCROLL_1_PRICE)
                        {
                                st.takeItems(EventsConfig.MY_ADENA, EventsConfig.MY_SCROLL_1_PRICE);
                                st.giveItems(EventsConfig.MY_SCROLL, 1);
                                htmltext = "32599-scroll-ok.htm";                               
                        }
                        else
                                htmltext = "32599-s1-no.htm";
                }
                else if (event.equalsIgnoreCase("buy_scroll_10"))
                {
                        if (st.getQuestItemsCount(EventsConfig.MY_ADENA) > EventsConfig.MY_SCROLL_10_PRICE)
                        {
                                st.takeItems(EventsConfig.MY_ADENA, EventsConfig.MY_SCROLL_10_PRICE);
                                st.giveItems(EventsConfig.MY_SCROLL, 10);
                                htmltext = "32599-scroll-ok.htm";                               
                        }
                        else
                                htmltext = "32599-s10-no.htm";
                }
                else if (event.equalsIgnoreCase("receive_reward"))
                {
                        if (st.getItemEquipped(EventsConfig.MY_HAND_SLOT) == EventsConfig.MY_STAFF && st.getEnchantLevel(EventsConfig.MY_STAFF) > 3)
                        {
                                switch(st.getEnchantLevel(EventsConfig.MY_STAFF))
                                {
                                        case 4:
                                                st.giveItems(6406, 1);  // Firework
                                                break;
                                        case 5:
                                                st.giveItems(6406, 2);  // Firework
                                                st.giveItems(6407, 1);  // Large Firework
                                                break;
                                        case 6:
                                                st.giveItems(6406, 3);  // Firework
                                                st.giveItems(6407, 2);  // Large Firework
                                                break;
                                        case 7:
                                                st.giveItems(EventsConfig.MY_HAT_SHADOW_REWARD[Rnd.get(3)], 1);
                                                break;
                                        case 8:
                                                st.giveItems(955, 1);   // Scroll: Enchant Weapon (D)
                                                break;
                                        case 9:
                                                st.giveItems(955, 1);   // Scroll: Enchant Weapon (D)
                                                st.giveItems(956, 1);   // Scroll: Enchant Armor (D)
                                                break;
                                        case 10:
                                                st.giveItems(951, 1);   // Scroll: Enchant Weapon (C)
                                                break;
                                        case 11:
                                                st.giveItems(951, 1);   // Scroll: Enchant Weapon (C)
                                                st.giveItems(952, 1);   // Scroll: Enchant Armor (C)
                                                break;
                                        case 12:
                                                st.giveItems(948, 1);   // Scroll: Enchant Armor (B)
                                                break;
                                        case 13:
                                                st.giveItems(729, 1);   // Scroll: Enchant Weapon (A)
                                                break;
                                        case 14:
                                                st.giveItems(EventsConfig.MY_HAT_EVENT_REWARD[Rnd.get(3)], 1);
                                                break;
                                        default:
                                                if(st.getEnchantLevel(EventsConfig.MY_STAFF) > 14)
                                                        st.giveItems(8762, 1);  // Top-Grade Life Stone: level 76
                                                break;
                                }
                                st.takeItems(EventsConfig.MY_STAFF, 1);
                                htmltext = "32599-rewardok.htm";
                        }
                        else
                                htmltext = "32599-rewardnostaff.htm";
                }

                return htmltext;
        }

        @Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
        {
                String htmltext = "";
                QuestState st = player.getQuestState(getName());
                if (st == null)
                {
                        Quest q = QuestManager.getInstance().getQuest(getName());
                        st = q.newQuestState(player);
                }
                if (EventsConfig.MY_STARTED)
                {
                        htmltext = npc.getNpcId() + ".htm";
                }
                else
                {
                        htmltext = EventsConfig.EVENT_DISABLED;
                }
                return htmltext;
        }
        
    	public static void main(String[] args)
    	{
    		new MasterOfEnchanting(-1,qn,"events");
    		_log.warning("Event System: Master Of Enchanting Event loaded ...");
    	}
}

  • 0
Posted

event.sql

-- ----------------------------
-- Table structure for `events`
-- ----------------------------
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
  `id` int(11) NOT NULL,
  `name` varchar(40) NOT NULL,
  `month` int(11) NOT NULL,
  `start_day` int(11) NOT NULL,
  `end_day` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


INSERT INTO `events` VALUES 
('1', 'MasterOfEnchanting', '1', '1', '28'),
('2', 'TheValentineEvent', '2', '1', '26'),
('3', 'HollyCow', '3', '1', '28'),
('4', 'AprilFools', '4', '1', '7'),
('5', 'NinjaAdventures', '9', '8', '28'),
('6', 'SuperStar', '9', '1', '26'),
('7', 'SquashEvent', '10', '1', '28'),
('8', 'L2Day', '5', '1', '30'),
('9', 'NewEra', '8', '1', '30'),
('10', 'SchoolDays', '6', '1', '30'),
('11', 'TrickorTransmutation', '7', '1', '30'),
('12', 'HallowedYou', '11', '1', '30'),
('13', 'ChristmasIsHere', '12', '1', '31');

 

EventConfig.java

package events;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;

import l2.gp.L2DatabaseFactory;
import l2.gp.gameserver.model.quest.Quest;

public class EventsConfig extends Quest
{
        private static final String qn = "EventsConfig";
        
         /*
         * Master of Enchanting date
         */
        public static boolean MY_STARTED = getEvent("MasterOfEnchanting");
        
        /*
         * The Valentine Event date
         */
        public static boolean TVE_STARTED = getEvent("TheValentineEvent");      
        public static boolean TVE_ACTIVE_DROP = getEvent("TheValentineEvent");
        
        /*
         * Holly Cow Event date
         */
        public static boolean HC_STARTED = getEvent("HollyCow");
        
        /*
         * April Fool's Day date
         */
        public static boolean AP_STARTED = getEvent("AprilFools");
        
        /*
         * Ninja Adventures Event date
         */
        public static boolean NA_STARTED = getEvent("NinjaAdventures"); 
        
        /*
         * Super Star Event date
         */
        public static boolean SS_STARTED = getEvent("SuperStar");
        
        /*
         * Squish and Squash Event date
         */
        public static boolean SQUASH_STARTED = getEvent("SquashEvent");
        public static boolean SQUASH_DROP_ACTIVE = getEvent("SquashEvent");
        
        /*
         * L2Day Event date
         */
        public static boolean L2DAY_STARTED = getEvent("L2Day");
        public static boolean L2DAY_ACTIVE_DROP = getEvent("L2Day");
        
        /*
         * New Era Event
         */
        public static boolean NE_STARTED = getEvent("NewEra");
        public static boolean NE_ACTIVE_DROP = getEvent("NewEra");
        
        /* 
         * SchoolDays date
         */
        public static boolean SD_STARTED = getEvent("SchoolDays");
        public static boolean SD_ACTIVE_DROP = getEvent("SchoolDays");
        
        /*
         * Trick or Transmutation Event date
         */
        public static boolean TOT_STARTED = getEvent("TrickorTransmutation");   
        public static boolean TOT_ACTIVE_DROP = getEvent("TrickorTransmutation");
        
        /*
         * Hallowed You Event date
         */
        public static boolean HY_STARTED = getEvent("HallowedYou");
        public static boolean HY_ACTIVE_DROP = getEvent("HallowedYou");
        
        /*
         * Christmas Is Here Event date
         */
        public static boolean CH_STARTED = getEvent("ChristmasIsHere");
        public static boolean CH_ACTIVE_DROP = getEvent("ChristmasIsHere");
        
        /**
         * Get Event data from sql
         * @param eventName 
         * @return 
         */
        private static boolean getEvent(String eventName) 
        {
                boolean state = false;
                int eventMonth = 0;
                int eventStartDay = 0;
                int eventEndDay = 0;
                
                Connection con = null;
                try
                {                       
                con = L2DatabaseFactory.getInstance().getConnection();
                PreparedStatement statement = con.prepareStatement("SELECT * FROM events WHERE name=?");
                statement.setString(1, eventName);
                ResultSet result = statement.executeQuery();
                if (result.next())
                {
                        eventMonth = result.getInt("month");
                        eventStartDay = result.getInt("start_day");
                        eventEndDay = result.getInt("end_day");
                }
                        statement.close();
                }
                catch (Exception e)
                {
                        _log.warning("could not read friend data:" + e);
                }
                finally
                {
                        L2DatabaseFactory.close(con);
                }
                int Month = Integer.valueOf(Calendar.getInstance().get(Calendar.MONTH)) + 1;
                int Day = Integer.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
                try
                {
                        if(eventMonth == Month && Day >= eventStartDay && Day <= eventEndDay)
                        {
                                return true;
                        }
                }
                catch(Exception e)
                {                       
                }
                return state;
        }
        
        /*
	How to change a event?
	1. Change Boolean value of event
	2. Use command //quest_reload EventsConfig   
	3. Use command //quest_reload EventName
	4. Now you can use event.
        */
        
        /**
         * Character Birthday
         */
        public static final int ADVENTURER_HAT = 10250;
        public static final int BIRTHDAY_CAKE_SKILL = 5950;
        /**
         * L2Marks
         */
        public static final boolean L2MARKS_MERCHANT_STARTED = true;
        public static final int L2MARKS_VITAMIN_LEVEL = 77;
        public static final int L2MARKS_COIN  = 13419;
        /**
         * Heavy Medal
         */     
        public static final int HM_MEDAL  = 6392;
        public static final int HM_GLITTERING_MEDAL  = 6393;
        /**
         * Holly Cow 
         */     
        public static final int HC_ADENA = 57;
        public static final int HC_MILK = 14739;
        public static final int HC_MILK_COW_SCROLL = 14724;
        public static final int HC_HEAD_MILK_COW_SCROLL = 14725;
        public static final int HC_GLOOM_MILK_COW_SCROLL = 14726;
        public static final int HC_GLOOM_HEAD_MILK_COW_SCROLL = 14727;
        /**
         * L2 Day
         */
        public static final int L2DAY_A  = 3875;
        public static final int L2DAY_C  = 3876;
        public static final int L2DAY_E  = 3877;
        public static final int L2DAY_F  = 3878;
        public static final int L2DAY_G  = 3879;
        public static final int L2DAY_H  = 3880;
        public static final int L2DAY_I  = 3881;
        public static final int L2DAY_L  = 3882;
        public static final int L2DAY_N  = 3883;
        public static final int L2DAY_O  = 3884;
        public static final int L2DAY_R  = 3885;
        public static final int L2DAY_S  = 3886;
        public static final int L2DAY_T  = 3887;
        public static final int L2DAY_II  = 3888;
        public static final int L2DAY_Y  = 13417;
        public static final int L2DAY_5  = 13418;
        public static final int L2DAY_GUIDANCE = 3926;
        public static final int L2DAY_DEATH_WHISPER = 3927;
        public static final int L2DAY_FOCUS = 3928; 
        public static final int L2DAY_GREATER_ACUMEN = 3929;
        public static final int L2DAY_HASTE = 3930;
        public static final int L2DAY_AGILITY = 3931;
        public static final int L2DAY_MYSTIC_EMPOWER = 3932;
        public static final int L2DAY_MIGHT = 3933;
        public static final int L2DAY_WINDWALK = 3934;
        public static final int L2DAY_SHIELD = 3935;
        public static final int L2DAY_BSOE = 1538;
        public static final int L2DAY_BSOR = 3936;
        public static final int L2DAY_MANA_REGENERATION = 4218;
        public static final int L2DAY_ADENA = 57;
        public static final int L2DAY_ANCIENT_ADENA = 5575;
        public static final int L2DAY_MAGE_COCKTAIL = 20394;
        public static final int L2DAY_FIGHTER_COCKTAIL = 20393;
        /**
         * Master Of Enchanting
         */     
        public static final int MY_STAFF = 13539;
        public static final int MY_SCROLL = 13540;
        public static final int MY_ADENA = 57;
        public static final int MY_STAFF_PRICE  = 1000;
        public static final int MY_SCROLL_24_PRICE      = 6000;
        public static final int MY_SCROLL_24_TIME = 6;
        public static final int MY_SCROLL_1_PRICE = 77777;
        public static final int MY_SCROLL_10_PRICE      = 777770;
        public static final int MY_HAND_SLOT = 16;
        public static final int[] MY_HAT_SHADOW_REWARD  = { 13074, 13075, 13076 };
        public static final int[] MY_HAT_EVENT_REWARD = { 13518, 13519, 13522 };
        public static final int[] MY_CRYSTAL_REWARD = { 9570, 9571, 9572 };
        /**
         * Ninja Adventures
         */     
        public static final int NA_HAIRBAND = 7060;
        public static final int NA_ADENA = 57;
        public static final int NA_ANCIENT_ADENA = 5575;
        /**
         * The Valentine Event
         */
        public static final int TVE_RECIPE = 20191;
        public static final int TVE_REAGENT1 = 20194;
        public static final int TVE_REAGENT2 = 20192;
        public static final int TVE_REAGENT3 = 20193;
        public static final int TVE_CAKE1 = 20195;
        public static final int TVE_CAKE2 = 20196;
        public static final int TVE_CAKE3 = 20197;
        public static final int TVE_CAKE4 = 20198;
        /**
         * Trick or Transmutation
         */
        public static final int TOT_KEY  = 9205;
        public static final int TOT_RED_STONE = 9162;
        public static final int TOT_BLUE_STONE = 9163;
        public static final int TOT_ORANGE_STONE = 9164;
        public static final int TOT_BLACK_STONE = 9165;
        public static final int TOT_WHITE_STONE = 9166;
        public static final int TOT_GREEN_STONE = 9167;
        public static final int TOT_STONE_ORE = 9168;
        public static final int TOT_STONE_FORMULA = 9169;       
        public static final int TOT_MAGIC_REAGENTS = 9170;
        /**
         * HallowedYou
         */
        public static final int HALLOWEEN_CANDY = 15430;
        /**
         * ChristmasIsHere
         */
        public static final int CH_CHRISTMAS_SOCK = 14612;
        /**
         * SchoolDays
         */
        
        /**
         * Super Star
         */
        public static final int SS_BACKUP_STONE_WEP_D = 12362;
        public static final int SS_BACKUP_STONE_WEP_C = 12363;
        public static final int SS_BACKUP_STONE_WEP_B = 12364;
        public static final int SS_BACKUP_STONE_WEP_A = 12365;
        public static final int SS_BACKUP_STONE_WEP_S = 12366;
        public static final int SS_BACKUP_STONE_ARM_D = 12367;
        public static final int SS_BACKUP_STONE_ARM_C = 12368;
        public static final int SS_BACKUP_STONE_ARM_B = 12369;
        public static final int SS_BACKUP_STONE_ARM_A = 12370;
        public static final int SS_BACKUP_STONE_ARM_S = 12371;
        
        /**
         * Text - this event is disabled
         */
        public static final String EVENT_DISABLED = "<html><title>Event Message</title><body><center><img src=\"L2UI_CH3.onscrmsg_pattern01_1\" width=300 height=32 align=left><br>" +
        "<br><br><br><br><br><br><b><font color=LEVEL>THIS EVENT<br>IS<br>NOW<br>DISABLED</font></b><br><br><br><br><br><br><br><br><br><br><br><br>" +
        "<br><img src=\"L2UI_CH3.onscrmsg_pattern01_2\" width=300 height=32 align=left></center></body></html>";
        
        
        public static void setValue(boolean value, boolean status)
        {
                value = status;         
        }
        
        public EventsConfig(int questId, String name, String descr)
        {
                super(questId, name, descr);
        }

        public static void main(String[] args)
        {
                new EventsConfig(-1,qn,"events");               
                _log.info("===============================");
                _log.info("Events System: Configuration for events:");
                _log.info("NewEra value " + String.valueOf(NE_STARTED));
                _log.info("HollyCow value " + String.valueOf(HC_STARTED));
                _log.info("L2Day value " + String.valueOf(L2DAY_STARTED));
                _log.info("MasterOfEnchanting value " + String.valueOf(MY_STARTED));
                _log.info("NinjaAdventures value " + String.valueOf(NA_STARTED));
                _log.info("SuperStar value " + String.valueOf(SS_STARTED));
                _log.info("TheValentineEvent value " + String.valueOf(TVE_STARTED));
                _log.info("TrickorTransmutation value " + String.valueOf(TOT_STARTED));
                _log.info("HallowedYou value " + String.valueOf(HY_STARTED));
                _log.info("ChristmasIsHere value " + String.valueOf(CH_STARTED));
                _log.info("SquashEvent value " + String.valueOf(SQUASH_STARTED));
                _log.info("AprillFools value " + String.valueOf(AP_STARTED));
                _log.info("SchoolDays value " + String.valueOf(SD_STARTED));
                _log.info("===============================");                
        }
}

  • 0
Posted

Script.cfg file on gameserver/data.

 

On #Events add this

events/MasterOfEnchanting/MasterOfEnchanting.java

 

Also remove on # Disabled by default events

#events/MasterOfEnchanting/MasterOfEnchanting.java

 

Don`t know about SquashEvent.

 

  • 0
Posted

Events are activated via database...

 

Events are activated via database...

 

 

Events are activated via database...

 

 

Events are activated via database...

 

 

as i told you just activate the event, and it will work

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...