Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Неработает коректно квест Book Of Giants
#1
после выполнения данного действия:
PHP код:
<?php 
Pantheon
:Thank you!When you get to the museum, you should see a number of desks - one of them has The War of Giants and Godson it. Find it, and bring it to me.<br>Would you like to go to the museum?[Quest _10327_BookOfGiants enter_instance|"Yes."]
получаю квест и должно портануть в музей но не че не происходит при попытке поговорить с NPC этот же квест можно опять взять и так без конечно хотя в базе прописано что квест уже взят портанулся я через корды Гмом книги нигде нету ну и соответственно нету мобов которые дожны напасть вот скрипт :
PHP код:
<?php 
package quests
;

import java.util.List;
import l2p.commons.util.Rnd;
import l2p.gameserver.ai.CtrlIntention;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.model.quest.Quest;
import l2p.gameserver.model.quest.QuestState;
import l2p.gameserver.scripts.ScriptFile;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Skill;
import l2p.gameserver.model.entity.Reflection;
import l2p.gameserver.utils.Location;
import l2p.gameserver.utils.ReflectionUtils;

/**
* Quest "Intruder Who Wants the Book of Giants"
*
* @author Yorie
*/
public class _10327_BookOfGiants extends Quest implements ScriptFile
{
private static final
int PANTHEON = 32972;
private static final
int DESK = 33126;
private static final
int THIEF = 23121;
private static final
int TOYRON = 33004;

private static final
int APPRENTICE_EARRING = 112;
// Desk that have the book of giants
private int bookDeskObjectId = 0;
private
boolean bookTaken = false;
private
int thievesKilled = 0;
private
NpcInstance toyron = null;

private static final
int BOOK_OF_GIANTS = 17575;

private static final
int INSTANCE_ID = 182;

public
_10327_BookOfGiants()
{
super(false);

addStartNpc(PANTHEON);
addFirstTalkId(DESK);
addQuestItem(BOOK_OF_GIANTS);
addAttackId(THIEF);
addSkillUseId(THIEF);
addKillId(THIEF);
addFirstTalkId(TOYRON);
}

@
Override
public String onEvent(String event, QuestState st, NpcInstance npc)
{
String htmltext = event;

if(
event.equalsIgnoreCase("enter_instance"))
{
htmltext = "";
st.setState(STARTED);
st.setCond(1);
st.playSound(SOUND_ACCEPT);
bookTaken = false;
enterInstance(st.getPlayer());
st.startQuestTimer("follow_player", 5000);
toyron = st.getPlayer().getActiveReflection().getAllByNpcId(TOYRON, true).get(0);
if (
toyron != null)
toyron.setRunning();
}
else if (
st.getCond() == 3 && event.equalsIgnoreCase("quest_done"))
{
htmltext = "pantheon_q10327_5.htm";
st.getPlayer().addExpAndSp(7800, 3500);
st.giveItems(ADENA_ID, 16000);
st.giveItems(APPRENTICE_EARRING, 2);
st.exitCurrentQuest(false);
st.playSound(SOUND_FINISH);
}
else if (
event.equalsIgnoreCase("follow_player"))
{
htmltext = "";
if (
st.getCond() == 2)
{
if (
toyron != null)
{
toyron.setRunning();
toyron.moveToLocation(st.getPlayer().getLoc(), Rnd.get(0, 50), true);
}
st.startQuestTimer("follow_player", 5000);
}
}

return
htmltext;
}

@
Override
public String onTalk(NpcInstance npc, QuestState st)
{
String htmltext = "noquest";
int npcId = npc.getNpcId();
int cond = st.getCond();
QuestState reqQuest = st.getPlayer().getQuestState("_10326_RespectYourElders");

switch(
npcId)
{
case
PANTHEON:
htmltext = "pantheon_q10327_1.htm";
if (
cond == 3)
htmltext = "pantheon_q10327_4.htm";

break;
}
return
htmltext;
}

@
Override
public String onFirstTalk(NpcInstance npc, Player player)
{
String htmltext = "noquest";

int npcId = npc.getNpcId();
switch (
npcId)
{
case
DESK:
if (
npc.getObjectId() == bookDeskObjectId && !bookTaken)
{
bookTaken = true;
htmltext = "desk_q10327_book.htm";
QuestState qs = player.getQuestState(_10327_BookOfGiants.class);
player.getActiveReflection().addSpawnWithoutRespawn(THIEF, new Location(-114835, 244966, -7976, 16072), 0);
player.getActiveReflection().addSpawnWithoutRespawn(THIEF, new Location(-114564, 244954, -7976, 16072), 0);
qs.takeAllItems(BOOK_OF_GIANTS); // Don't let to have more than one item
qs.giveItems(BOOK_OF_GIANTS, 1);
qs.setCond(2);
}
else
htmltext = "desk_q10327_nobook.htm";
break;
case
TOYRON:
if (
player.getQuestState(_10327_BookOfGiants.class) != null &&
player.getQuestState(_10327_BookOfGiants.class).getCond() == 3)
htmltext = "toyron_q10327_1.htm";
break;
}

return
htmltext;
}

/**
* Toyron will attack only target, that is THIEF and only if target was attacked with magic by player
*
* @param npc Attacked NPC
* @param qs Current quest state
* @return HTML message
*/
@Override
public String onSkillUse(NpcInstance npc, Skill skill, QuestState qs)
{
if (
npc.getNpcId() == THIEF)
{
if (
toyron != null)
{
toyron.setRunning();
toyron.getAggroList().addDamageHate(npc, 0, 10000);
toyron.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK);
++
thievesKilled;
if (
thievesKilled >= 2)
qs.setCond(3);
}
}

return
"";
}

private
void enterInstance(Player player)
{
Reflection reflection = player.getActiveReflection();
if(
reflection != null)
{
if(
player.canReenterInstance(INSTANCE_ID))
player.teleToLocation(reflection.getTeleportLoc(), reflection);
}
else if(
player.canEnterInstance(INSTANCE_ID))
ReflectionUtils.enterReflection(player, INSTANCE_ID);

List<
NpcInstance> desks = player.getActiveReflection().getAllByNpcId(DESK, true);
double seed = Math.random();
int counter = 0;
// Selecting one of desks to contain book of giants
for (NpcInstance desk : desks)
{
if ((
seed <= 0.25 && counter == 0) ||
(
seed > 0.25 && seed <= 0.5 && counter == 1) ||
(
seed > 0.5 && seed <= 0.75 && counter == 2) ||
(
seed > 0.75 && counter == 3))
bookDeskObjectId = desk.getObjectId();
++
counter;
}
// In some unusual cases we might have not 4 spawned desks, preventing from errors
if (bookDeskObjectId == 0 && desks.size() > 0)
bookDeskObjectId = desks.get(0).getObjectId();
}

@
Override
public void onLoad() {}

@
Override
public void onReload() {}

@
Override
public void onShutdown() {}
}
Ответ
#2
Варнинги в консоли есть?
С [182] Museum Dungeon.xml по пути \dist\gameserver\data\locations\instances\ все впорядке?
Ответ
#3
coldy Написал:Варнинги в консоли есть?
С [182] Museum Dungeon.xml по пути \dist\gameserver\data\locations\instances\ все впорядке?

PHP код:
<?php 
<list>
<!--
by Yorie -->
<!--
Intruder Who Wants the Book of Giants (Level 1+) -->
<
instance id="182" name="Museum Dungeon" maxChannels="25" collapseIfEmpty="10" timelimit="10">
<
collapse on-party-dismiss="true" timer="60"/>
<
level min="1" max="20"/>
<
party min="1" max="1"/>
<return
loc="-114371 260183 -1192"/>
<
teleport loc="-114709 243907 -7968"/>
<
remove itemId="0" count="0" necessary="false"/>
<
give itemId="0" count="0"/>
<
quest id="10327"/>
<
reuse resetReuse="1 15 * * *" setUponEntry="false" sharedReuseGroup="0"/>
<
spawns>
<!--
Toyron -->
<
spawn mobId="33004" type="point" respawn="0">
<
coords loc="-114710 245457 -7968 49152"/>
</
spawn>

<!--
Desks -->
<
spawn mobId="33126" type="point" respawn="0">
<
coords loc="-115672 244683 -7952 0"/>
<
coords loc="-114714 245750 -7952 0"/>
<
coords loc="-113757 244686 -7952 0"/>
<
coords loc="-114706 243605 -7952 0"/>
</
spawn>
</
spawns>
</
instance>
</list>
Ответ
#4
У инкора этот квест был не доделан.
Ответ
#5
Все теперь вроде работает только проблема что его можно взять даже если лвл больше 20
Ответ
#6
смотрите этот кусок. проверяйте на st.getPlayer().getLevel() <= 20

Код:
switch(npcId)
        {
        case PANTHEON:
            htmltext = "pantheon_q10327_1.htm";
            if (cond == 3)
                htmltext = "pantheon_q10327_4.htm";
        
            break;
        }
Ответ
#7
coldy Написал:смотрите этот кусок. проверяйте на st.getPlayer().getLevel() <= 20

Код:
switch(npcId)
        {
        case PANTHEON:
            htmltext = "pantheon_q10327_1.htm";
            if (cond == 3)
                htmltext = "pantheon_q10327_4.htm";
        
            break;
        }

спасибо помогло
Ответ
#8
Столкнулся с еще одной проблемой расса камель находит книгу постоянно со 2-го стола всегда , расса гномов на 4 столе , а когда нападут двое воров Thief Какмель за пару ударов проходит этот квест даже не убив не одного а вот гномы убив двух Thief эту часть квеста так и не проходит почему так игде оно распределение по расам этот квес как Исправить
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  НПС не дает квест Dilar 1 1,623 03-20-2018, 08:17 PM
Последний пост: Emperor
  Квест 7 печатей как включить, как управлять! v1kt0r 5 2,936 04-29-2017, 01:17 PM
Последний пост: zGoSu
  Квест 7 печатей. Гварды не видят под шд CKREPKA 3 1,978 08-06-2015, 02:49 AM
Последний пост: Deazer
  квест, концепция, структура, логика mountaineer 2 1,746 07-31-2015, 08:01 PM
Последний пост: DroNik
  Квест JokerMaxi 8 2,447 09-03-2014, 04:30 AM
Последний пост: JokerMaxi
  Не отображается квест в квестах, помогите. the2fantasy 6 1,693 11-27-2013, 10:32 AM
Последний пост: the2fantasy
  Вопрос о скрипте java (квест\аи) Main 14 3,128 11-02-2013, 01:54 PM
Последний пост: Main
  Укороченный Квест На Нубл Saintly 3 3,928 10-06-2013, 01:10 PM
Последний пост: Saintly
  Квест 1megalord1 5 2,041 02-01-2013, 12:10 AM
Последний пост: ExLite
  Jython ошибка синтакса(клан квест) GRAFOON 13 2,466 01-09-2013, 04:33 PM
Последний пост: Anikey

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


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