Jump to content

Recommended Posts

Posted

Hi, I have been recoding quest from jython to java but stucked at one thing :/

idk how to rewrite this lines; especially  middle one:

 

jython

elif npcId == 30650 and st.getInt("cond")==2 :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) :
                    htmltext = "30650-01.htm"

 

into java:

 

thanks...

Posted

else if (npcId == 30650 && st.getInt("cond") == 2)

{

          if (st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) > 1)

          {

                  htmltext = "30650-01.htm";

          }

}

Posted

thanks for reply but it still doesn't work :/ problem is that if i try to talk to Gerald system says that .... "You are either not on a quest ....."

i will post here whole code:

jython:

# Created by CubicVirtuoso
# Any problems feel free to drop by #l2j-datapack on irc.freenode.net
import sys
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest

qn = "10_IntoTheWorld"

VERY_EXPENSIVE_NECKLACE = 7574
SCROLL_OF_ESCAPE_GIRAN = 7559
MARK_OF_TRAVELER = 7570

class Quest (JQuest) :

    def __init__(self,id,name,descr):
        JQuest.__init__(self,id,name,descr)
        self.questItemIds = [VERY_EXPENSIVE_NECKLACE]

    def onAdvEvent (self,event,npc, player) :
        htmltext = event
        st = player.getQuestState(qn)
        if not st : return
        if event == "30533-03.htm" :
            st.set("cond","1")
            st.setState(State.STARTED)
            st.playSound("ItemSound.quest_accept")
        elif event == "30520-02.htm" :
            st.set("cond","2")
            st.giveItems(VERY_EXPENSIVE_NECKLACE,1)
        elif event == "30650-02.htm" :
            st.set("cond","3")
            st.takeItems(VERY_EXPENSIVE_NECKLACE,1)
        elif event == "30533-06.htm" :
            st.rewardItems(SCROLL_OF_ESCAPE_GIRAN,1)
            st.giveItems(MARK_OF_TRAVELER, 1)
            st.unset("cond")
            st.exitQuest(False)
            st.playSound("ItemSound.quest_finish")
        return htmltext

    def onTalk (self,npc,player):
        npcId = npc.getNpcId()
        htmltext = Quest.getNoQuestMsg(player)
        st = player.getQuestState(qn)
        if not st: return htmltext
        id = st.getState()
        if npcId == 30533 and id == State.COMPLETED :
            htmltext = "<html><body>I can't supply you with another Giran Scroll of Escape. Sorry traveller.</body></html>"
        elif id == State.CREATED :
            if player.getRace().ordinal() == 4 :
                htmltext = "30533-02.htm"
            else :
                htmltext = "30533-01.htm"
                st.exitQuest(1)
        elif id == State.STARTED: 
            if npcId == 30533 and st.getInt("cond")==1 :
                htmltext = "30533-04.htm"
            elif npcId == 30520 and st.getInt("cond") == 3 :
                htmltext = "30520-04.htm"
                st.set("cond","4")
            elif npcId == 30520 and st.getInt("cond") :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) == 0 :
                    htmltext = "30520-01.htm"
                else :
                    htmltext = "30520-03.htm"
            elif npcId == 30650 and st.getInt("cond")==2 :
                if st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) :
                    htmltext = "30650-01.htm"
            elif npcId == 30533 and st.getInt("cond")==4 :
                htmltext = "30533-05.htm"
        return htmltext

QUEST       = Quest(10,qn,"Into The World")

QUEST.addStartNpc(30533)

QUEST.addTalkId(30533)
QUEST.addTalkId(30520)
QUEST.addTalkId(30650)

 

 

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 quests.Q10_IntoTheWorld;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
/**
* Into The World (10). Original jython script by CubicVirtuoso
* @author pajington
*/
public class Q10_IntoTheWorld extends Quest
{
private static final String qn = "10_IntoTheWorld";

//NPCs
private static final int BALANKI = 30533;
private static final int REED = 30520;
private static final int GERALD = 30650;

//Items
private static final int VERY_EXPENSIVE_NECKLACE = 7574;
private static final int SCROLL_OF_ESCAPE_GIRAN = 7559;
private static final int MARK_OF_TRAVELER = 7570;

@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
	String htmltext = getNoQuestMsg(player);
	QuestState st = player.getQuestState(qn);

	int npcId = npc.getNpcId();

	if (st == null)
	{
		return htmltext;
	}

	switch (st.getState())
	{
		case State.COMPLETED:
			if (npcId == BALANKI)
			{
				htmltext = "I can't supply you with another Giran Scroll of Escape. Sorry traveller.";
			}
			break;
		case State.CREATED:
			if (player.getRace().ordinal() == 4)
			{
				htmltext = "30533-02.htm";
			}
			else
			{
				htmltext = "30533-01.htm";
				st.exitQuest(true);
			}
			break;
		case State.STARTED:
			if (npcId == BALANKI)
			{
				if (Integer.valueOf(st.get("cond")) == 1)
				{
					htmltext = "30533-04.htm";
				}
			}

			else if (npcId == REED)
			{
				if (Integer.valueOf(st.get("cond")) == 3)
				{
					htmltext = "30520-04.htm";
					st.set("cond", "4");
				}

			else if (npcId == REED)
			{
				if (String.valueOf(st.get("cond")) != null)
				{
					if (st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) == 0)
					{
						htmltext = "30520-01.htm";
					}
					else
					{
						htmltext = "30520-03.htm";
					}
				}
			}

			else if (npcId == GERALD)
			{
				if (Integer.valueOf(st.get("cond")) == 2)
				{
					if (st.getQuestItemsCount(VERY_EXPENSIVE_NECKLACE) > 0 )
					{
						htmltext = "30650-01.htm";
					}
				}
			}

			else if (npcId == BALANKI)
			{
				if (Integer.valueOf(st.get("cond")) == 4)
				{
					htmltext = "30533-05.htm";
				}
			}
			break;
		}
	}
return htmltext;
}

@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
	String htmltext = event;
	QuestState st = player.getQuestState(qn);

	if (st == null)
	{
		return htmltext;
	}

	switch (event)
	{
		case "30533-03.htm":
			st.set("cond", "1");
			st.setState(State.STARTED);
			st.playSound("ItemSound.quest_accept");
			break;
		case "30520-02.htm":
			st.set("cond", "2");
			st.giveItems(VERY_EXPENSIVE_NECKLACE, 1);
			break;
		case "30650-02.htm":
			st.set("cond", "3");
			st.takeItems(VERY_EXPENSIVE_NECKLACE, 1);
			break;
		case "30533-06.htm":
			st.rewardItems(SCROLL_OF_ESCAPE_GIRAN, 1);
			st.giveItems(MARK_OF_TRAVELER, 1);
			st.unset("cond");
			st.exitQuest(false);
			st.playSound("ItemSound.quest_finish");
			break;
	}
	return htmltext;
}

public Q10_IntoTheWorld(int questId, String name, String descr)
{
	super(questId, name, descr);

	addStartNpc(BALANKI);

	addTalkId(BALANKI);
	addTalkId(REED);
	addTalkId(GERALD);

	questItemIds = new int[]
		{
			VERY_EXPENSIVE_NECKLACE,
			SCROLL_OF_ESCAPE_GIRAN,
			MARK_OF_TRAVELER,
		};
}

public static void main(String[] args)
{
	new Q10_IntoTheWorld(10, qn, "Into The World");
}
}

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
Reply to this topic...

×   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...