Public feed #380227

Miscellany

public java v1 · immutable
Raw Edit
·published 2007-03-03 21:54 UTC
rendered paste body
/* * $Author: AresXP * $Date: -- * $Revision: 4 * *  * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */package net.sf.l2j.gameserver.model.actor.instance;import java.util.StringTokenizer;import javolution.text.TextBuilder;//import net.sf.l2j.gameserver.model.L2ItemInstance;import net.sf.l2j.gameserver.serverpackets.ActionFailed;import net.sf.l2j.gameserver.serverpackets.MyTargetSelected;import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;//import net.sf.l2j.gameserver.serverpackets.PlaySound;import net.sf.l2j.gameserver.serverpackets.SystemMessage;import net.sf.l2j.gameserver.model.quest.QuestState;import net.sf.l2j.gameserver.model.actor.instance.L2FolkInstance;import net.sf.l2j.gameserver.templates.L2NpcTemplate;import net.sf.l2j.gameserver.model.quest.State;import net.sf.l2j.gameserver.lib.Rnd;/** * This class ... *  * @version $Revision: $ $Date: $ * @author  AresXP */public class L2HelperInstance extends L2FolkInstance{    public L2HelperInstance(int objectId, L2NpcTemplate template)    {        super(objectId, template);    }        private static String _mimirs_elixir = "235_MimirsElixir";    private static String _fates_whisper = "234_FatesWhisper";    private static boolean _mimir_completed = false;    private static boolean _fates_completed = false;    private static int _adena_needed = 125000000;    public void onAction(L2PcInstance player)    {        player.sendPacket(new ActionFailed());        player.setTarget(this);        player.sendPacket(new MyTargetSelected(getObjectId(), -15));        setMimir(player);        setFates(player);        if (isInsideRadius(player, INTERACTION_DISTANCE, false, false))            showMessageWindow(player);       }    public void onBypassFeedback(L2PcInstance player, String command)    {        if (!isInsideRadius(player, INTERACTION_DISTANCE, false, false)) return;        player.sendPacket(new ActionFailed());                StringTokenizer st = new StringTokenizer(command, " ");        String actualCommand = st.nextToken(); // Get actual command        String val = "";        if (st.countTokens() >= 1)        {            val = st.nextToken();        }        if(actualCommand.equals("complete_mimir0"))            completeMimir(player, 0);        if(actualCommand.equals("complete_mimir1"))            completeMimir(player, 1);        if(actualCommand.equals("complete_fates0"))            completeFates(player, 0);        if(actualCommand.equals("complete_fates1"))            completeFates(player, 1);    }    public void setMimir(L2PcInstance player) {        QuestState qs = player.getQuestState(_mimirs_elixir);        if(qs == null || !qs.isCompleted())            _mimir_completed = false;        else            _mimir_completed = true;            }    public boolean isMimirCompleted() {        return _mimir_completed;    }    public void setFates(L2PcInstance player) {        QuestState qs = player.getQuestState(_fates_whisper);        if(qs == null || !qs.isCompleted())            _fates_completed = false;        else            _fates_completed = true;    }    public boolean isFatesCompleted() {        return _fates_completed;    }        public void showMessageWindow(L2PcInstance player)    {        TextBuilder msg = new TextBuilder("<html><body>");        if(isFatesCompleted() && isMimirCompleted()) {            msg.append("%npcname%:<br><br>");            msg.append("You've already completed the quests!");            msg.append("</body></html>");        } else {            msg.append("%npcname%:<br><br>");            msg.append("I am here to help you complete your subclass quests.<br>");            if(!isMimirCompleted())            {                msg.append("<br>Mimir's Elixir (100%): <button value=\"mimir\" action=\"bypass -h npc_"+ + getObjectId()+"_complete_mimir0\">");                msg.append("<br>Mimir's Elixir (rnd): <button value=\"mimir\" action=\"bypass -h npc_"+getObjectId()+"_complete_mimir1\">");            }            if(!isFatesCompleted())            {                msg.append("<br>Mimir's Elixir (100%): <button value=\"mimir\" action=\"bypass -h npc_"+getObjectId()+"_complete_fates0\">");                msg.append("<br>Mimir's Elixir (rnd): <button value=\"mimir\" action=\"bypass -h npc_"+getObjectId()+"_complete_fates1\">");            }            msg.append("</body></html>");        }        this.sendHtmlMessage(player, msg.toString());    }    private void sendHtmlMessage(L2PcInstance player, String htmlMessage)    {        NpcHtmlMessage html = new NpcHtmlMessage(1);        html.setHtml(htmlMessage);        html.replace("%objectId%", String.valueOf(getObjectId()));        html.replace("%npcname%", getName());        player.sendPacket(html);    }    /**     *      * @param player     * @param type -> 0 = normal, 1 = low alternative     */    private void completeMimir(L2PcInstance player, int type) {        if(type == 0)        {            if(player.getInventory().getAdena() >= _adena_needed) {                player.getInventory().reduceAdena("Quest", _adena_needed, player, null);                QuestState qs = player.getQuestState(_mimirs_elixir);                State state = new State("Completed", qs.getQuest());                qs.setState(state);            } else {                player.sendMessage("You need "+_adena_needed+ " adena to complete Mimir's Elixir");            }        } else if(type == 1)        {            int _percent = Rnd.get(40,90);            if(player.getInventory().getAdena() >= (_adena_needed/2)) {                player.sendMessage("You would have enough adena.");                if(Rnd.get(100) < _percent) {                    player.sendMessage("And would've succeeded :P");                                    } else {                    player.sendMessage("But would've failed :(");                }                        }            else {                player.sendMessage("No luck tehee");            }        }    }    /**     * @param player     * @param type -> 0 for expensive (100%), 1 for inexpensive (random percent)     */    private void completeFates(L2PcInstance player, int type)    {        if(type == 0)        {            if(player.getInventory().getAdena() >= _adena_needed) {                player.getInventory().reduceAdena("Quest", _adena_needed, player, null);                QuestState qs = player.getQuestState(_fates_whisper);                State state = new State("Completed", qs.getQuest());                qs.setState(state);            } else {                player.sendMessage("You need "+_adena_needed+ " adena to complete the Fates Whisper quest.");            }        } else if(type == 1)        {            int _percent = Rnd.get(40,90);            if(player.getInventory().getAdena() >= (_adena_needed/2)) {                player.sendMessage("You would have enough adena.");                if(Rnd.get(100) < _percent) {                    player.sendMessage("And would've succeeded :P");                                    } else {                    player.sendMessage("But would've failed :(");                }            }            else {                player.sendMessage("No luck tehee");            }        }    }}