Witam mam straszny problem zrobiłem questa Path To Hellbound
zwykła postacią i GM
Ale jak klikam na NPC: Warpgate w mieście Heine! to nic się nie dzieje a powinno mnie przenieść i pisze mi cały czas
The Warpgate is not operational. Something seems to be needed to open it.
:(:( w czym problem jestem początkujący proszę o pełną pomoc i wyrozumiałość :D szybko się uczę
postanowiłem pokombinować
data/scripts/teleports/Warpgate/Warpgate.java Edytowałem te plik programem Nottepad++
Ale za cholerę nie wiem co zrobić żeby to działało :(( wiadomo każdy chce gotowca ! ale jak pisałem proszę o wyrozumiałość a nie pokazywać jaki jestem mądry zajebisty Regulamin z góry dziękuję :)
Warpgate.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 teleports.Warpgate;
import com.l2dc.Config;
import com.l2dc.gameserver.ThreadPoolManager;
import com.l2dc.gameserver.instancemanager.HellboundManager;
import com.l2dc.gameserver.model.actor.L2Character;
import com.l2dc.gameserver.model.actor.L2Npc;
import com.l2dc.gameserver.model.actor.instance.L2PcInstance;
import com.l2dc.gameserver.model.quest.Quest;
import com.l2dc.gameserver.model.quest.QuestState;
import com.l2dc.gameserver.model.quest.State;
import com.l2dc.gameserver.model.zone.L2ZoneType;
public class Warpgate extends Quest
{
private static final String THATS_BLOODY_HOT = "133_ThatsBloodyHot";
private static final String PATH_TO_HELLBOUND = "130_PathToHellbound";
private static final int MAP = 9994;
private static final int ZONE = 17906;
private static final int[] WARPGATES =
{
32314, 32315, 32316, 32317, 32318, 32319
};
private static final boolean canEnter(L2PcInstance player)
{
if (player.isFlying())
return false;
QuestState st;
if (HellboundManager.getInstance().checkIsOpen())
{
st = player.getQuestState(PATH_TO_HELLBOUND);
if (st != null && st.getState() == State.COMPLETED)
{
if (player.getLevel() > 77)
{
return true;
}
else
{
if (!Config.HB_LVL_CHECK)
{
return true;
}
else
{
return false;
}
}
}
}
st = player.getQuestState(THATS_BLOODY_HOT);
if (st != null && st.getState() == State.COMPLETED)
{
if (!HellboundManager.getInstance().checkIsOpen())
HellboundManager.getInstance().unlockHellbound();
return true;
}
return false;
}
public final String onFirstTalk(L2Npc npc, L2PcInstance player)
{
if (!canEnter(player))
{
if (!HellboundManager.getInstance().checkIsOpen())
return "warpgate-locked.htm";
}
return npc.getNpcId() + ".htm";
}
public final String onTalk(L2Npc npc, L2PcInstance player)
{
if (!canEnter(player))
return "warpgate-no.htm";
player.teleToLocation(-11272, 236464, -3248, true);
return null;
}
public final String onEnterZone(L2Character character, L2ZoneType zone)
{
if (character instanceof L2PcInstance)
{
if (!canEnter((L2PcInstance)character) && !character.isGM())
ThreadPoolManager.getInstance().scheduleGeneral(new Teleport(character), 1000);
else if (!((L2PcInstance)character).isMinimapAllowed())
{
if (character.getInventory().getItemByItemId(MAP) != null)
((L2PcInstance)character).setMinimapAllowed(true);
}
}
return null;
}
static final class Teleport implements Runnable
{
private final L2Character _char;
public Teleport(L2Character c)
{
_char = c;
}
public void run()
{
try
{
_char.teleToLocation(-16555, 209375, -3670, true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public Warpgate(int questId, String name, String descr)
{
super(questId, name, descr);
for (int id : WARPGATES)
{
addStartNpc(id);
addFirstTalkId(id);
addTalkId(id);
}
addEnterZoneId(ZONE);
}
public static void main(String[] args)
{
new Warpgate(-1, "Warpgate", "teleports");
}
}
130_PathToHellbound.py
# Made by Cromir Version 0.1
import sys
from com.l2dc.gameserver.model.quest import State
from com.l2dc.gameserver.model.quest import QuestState
from com.l2dc.gameserver.model.quest.jython import QuestJython as JQuest
qn = "130_PathToHellbound"
#NPCs
GALATE = 32292
CASIAN = 30612
#ITEMS
CASIAN_BLUE_CRY = 12823
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [CASIAN_BLUE_CRY]
def onEvent (self,event,st) :
htmltext = event
if event == "30612-03.htm" :
st.set("cond","1")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
elif event == "32292-03.htm" :
st.set("cond","2")
st.playSound("ItemSound.quest_middle")
elif event == "30612-05.htm" :
st.set("cond","3")
st.giveItems(CASIAN_BLUE_CRY,1)
st.playSound("ItemSound.quest_middle")
elif event == "32292-06.htm" :
st.takeItems(CASIAN_BLUE_CRY,-1)
st.playSound("ItemSound.quest_finish")
st.exitQuest(False)
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
if not st: return htmltext
npcId = npc.getNpcId()
id = st.getState()
cond = st.getInt("cond")
if id == State.COMPLETED :
htmltext = "<html><body>This quest has already been completed.</body></html>"
elif npcId == CASIAN :
if cond == 0 :
if player.getLevel() >= 78 :
htmltext = "30612-01.htm"
else :
htmltext = "30612-00.htm"
st.exitQuest(1)
elif cond == 1 :
htmltext = "30612-03a.htm"
elif cond == 2 :
htmltext = "30612-04.htm"
elif cond == 3 :
htmltext = "30612-05a.htm"
elif npcId == GALATE :
if cond == 1 :
htmltext = "32292-01.htm"
elif cond == 2 :
htmltext = "32292-03a.htm"
elif cond == 3 :
if st.getQuestItemsCount(CASIAN_BLUE_CRY) == 1 :
htmltext = "32292-04.htm"
else :
htmltext = "Incorrect item count."
return htmltext
QUEST = Quest(130,qn,"Path to Hellbound")
QUEST.addStartNpc(CASIAN)
QUEST.addTalkId(CASIAN)
QUEST.addTalkId(GALATE)
Nie wiem jak to mozna wlaczyc od strony programisty/admina, ale Hellbound jak wszedl musial byc otwarty przez graczy - odpowiednia ilosc osob musiala miec ukonczona serie questow otwierajacych lokacje.
Path to Hellbound dzialal dla pozostalych graczy - tylko wtedy jak Hellbound juz byl otwarty.
Pozdrawiam