Перейти к содержанию
Авторизация  
PSInDIGO

Помогите со скриптами

Рекомендуемые сообщения

Здравствуйте !
​Я как всегда туплю... и не могу разобраться уже очень долго...

​Напишите пожалуйста поподробнее как например в сборку Rebellion или какую либо другую (ХФ) добавить свой скрипт и превязать его к какому нибудь нпс...  например (подходишь к нпс он просит у тебя аден забирает и говорит спасибо...) Я не могу подключить скрипты и меня это убивает ! Объясните мне пожалуйста, За пиво объясните мне доходчиво.

​Пробовал скопировать квест из сборки и на какого ни будь другого нпс направить... Но нет ! 

​Спасибо тем кто откликнется )!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте !

​Я как всегда туплю... и не могу разобраться уже очень долго...

 

​Напишите пожалуйста поподробнее как например в сборку Rebellion или какую либо другую (ХФ) добавить свой скрипт и превязать его к какому нибудь нпс...  например (подходишь к нпс он просит у тебя аден забирает и говорит спасибо...) Я не могу подключить скрипты и меня это убивает ! Объясните мне пожалуйста, За пиво объясните мне доходчиво.

 

​Пробовал скопировать квест из сборки и на какого ни будь другого нпс направить... Но нет ! 

 

​Спасибо тем кто откликнется )!

Стукни в ЛС или ICQ 12-13-87 помогу)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Импорты исправь в первую очередь.

Как именно это делается ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как именно это делается ?

Ядро смотреть, или посмотреть как в родных скриптах и путем сравнения:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

package quests;



import org.mmocore.gameserver.Config;
import org.mmocore.gameserver.model.base.ClassLevel;
import org.mmocore.gameserver.model.instances.NpcInstance;
import org.mmocore.gameserver.model.quest.Quest;
import org.mmocore.gameserver.model.quest.QuestState;
import org.mmocore.gameserver.serverpackets.ExShowScreenMessage;
import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;
import org.mmocore.gameserver.serverpackets.components.NpcString;
import org.mmocore.gameserver.scripts.ScriptFile;

public class Lalala extends Quest implements ScriptFile
{
private final static int DARIN = 36699;
private final static int ADENA = 57;

@Override
public void onLoad()
{
}

@Override
public void onReload()
{
}

@Override
public void onShutdown()
{
}

public Lalala()
{
super(false);

addStartNpc(DARIN);
addTalkId(DARIN);
addTalkId(DARIN);
addTalkId(DARIN);
addTalkId(DARIN);
addQuestItem(ADENA);
}

@Override
public String onEvent(String event, QuestState qs, NpcInstance npc)
{
String htmltext = event;
if(event.equalsIgnoreCase("quest_accept"))
{
htmltext = "daring_q0001_06.htm";
qs.setCond(1);
qs.setState(STARTED);
qs.giveItems(ADENA, 1, false, false);
qs.playSound(SOUND_ACCEPT);
}
return htmltext;
}

@Override
public String onTalk(NpcInstance npc, QuestState st)
{
String htmltext = "noquest";
int npcId = npc.getNpcId();
int cond = st.getCond();
switch(npcId)
{
case DARIN:
if(cond == 0)
{
if(st.getPlayer().getLevel() >= 2)
htmltext = "daring_q0001_02.htm";
else
{
htmltext = "daring_q0001_01.htm";
st.exitCurrentQuest(true);
}
}
else if(cond == 1)
htmltext = "daring_q0001_07.htm";
else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1)
{
htmltext = "daring_q0001_08.htm";
st.takeItems(ADENA, -1);
st.giveItems(ADENA, 1, false, false);
st.setCond(3);
st.playSound(SOUND_MIDDLE);
}
else if(cond == 3)
htmltext = "daring_q0001_09.htm";
else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1)
{
htmltext = "daring_q0001_10.htm";
st.takeItems(ADENA, -1);
st.giveItems(ADENA, 1, false, false);
if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))
st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));
st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2
st.getPlayer().addExpAndSp(5672, 446);
st.playSound(SOUND_FINISH);
st.exitCurrentQuest(false);
}
break;


}
return htmltext;
}
}

 

 

НПС 36699 создан как "NPC" имя такое же "Darin"

 

В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют !

 

Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс...

Изменено пользователем PSInDIGO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

package quests;

 

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.model.base.ClassLevel;

import org.mmocore.gameserver.model.instances.NpcInstance;

import org.mmocore.gameserver.model.quest.Quest;

import org.mmocore.gameserver.model.quest.QuestState;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;

import org.mmocore.gameserver.serverpackets.components.NpcString;

import org.mmocore.gameserver.scripts.ScriptFile;

 

public class Lalala extends Quest implements ScriptFile

{

private final static int DARIN = 36699;

private final static int ADENA = 57;

 

@Override

public void onLoad()

{

}

 

@Override

public void onReload()

{

}

 

@Override

public void onShutdown()

{

}

 

public Lalala()

{

super(false);

 

addStartNpc(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addQuestItem(ADENA);

}

 

@Override

public String onEvent(String event, QuestState qs, NpcInstance npc)

{

String htmltext = event;

if(event.equalsIgnoreCase("quest_accept"))

{

htmltext = "daring_q0001_06.htm";

qs.setCond(1);

qs.setState(STARTED);

qs.giveItems(ADENA, 1, false, false);

qs.playSound(SOUND_ACCEPT);

}

return htmltext;

}

 

@Override

public String onTalk(NpcInstance npc, QuestState st)

{

String htmltext = "noquest";

int npcId = npc.getNpcId();

int cond = st.getCond();

switch(npcId)

{

case DARIN:

if(cond == 0)

{

if(st.getPlayer().getLevel() >= 2)

htmltext = "daring_q0001_02.htm";

else

{

htmltext = "daring_q0001_01.htm";

st.exitCurrentQuest(true);

}

}

else if(cond == 1)

htmltext = "daring_q0001_07.htm";

else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_08.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

st.setCond(3);

st.playSound(SOUND_MIDDLE);

}

else if(cond == 3)

htmltext = "daring_q0001_09.htm";

else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_10.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))

st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));

st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2

st.getPlayer().addExpAndSp(5672, 446);

st.playSound(SOUND_FINISH);

st.exitCurrentQuest(false);

}

break;

 

 

}

return htmltext;

}

}

 

 

НПС 36699 создан как "NPC" имя такое же "Darin"

 

В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют !

 

Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс...

 

package quests;

 

package quests;

а HTML файлы все перенесли туда?

и в scritps.cfg занесен этот скрипт? он точно грузится? 

 

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.model.base.ClassLevel;

import org.mmocore.gameserver.model.instances.NpcInstance;

import org.mmocore.gameserver.model.quest.Quest;

import org.mmocore.gameserver.model.quest.QuestState;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;

import org.mmocore.gameserver.serverpackets.components.NpcString;

import org.mmocore.gameserver.scripts.ScriptFile;

 

public class Lalala extends Quest implements ScriptFile

{

private final static int DARIN = 36699;

private final static int ADENA = 57;

 

@Override

public void onLoad()

{

}

 

@Override

public void onReload()

{

}

 

@Override

public void onShutdown()

{

}

 

public Lalala()

{

super(false);

 

addStartNpc(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addQuestItem(ADENA);

}

 

@Override

public String onEvent(String event, QuestState qs, NpcInstance npc)

{

String htmltext = event;

if(event.equalsIgnoreCase("quest_accept"))

{

htmltext = "daring_q0001_06.htm";

qs.setCond(1);

qs.setState(STARTED);

qs.giveItems(ADENA, 1, false, false);

qs.playSound(SOUND_ACCEPT);

}

return htmltext;

}

 

@Override

public String onTalk(NpcInstance npc, QuestState st)

{

String htmltext = "noquest";

int npcId = npc.getNpcId();

int cond = st.getCond();

switch(npcId)

{

case DARIN:

if(cond == 0)

{

if(st.getPlayer().getLevel() >= 2)

htmltext = "daring_q0001_02.htm";

else

{

htmltext = "daring_q0001_01.htm";

st.exitCurrentQuest(true);

}

}

else if(cond == 1)

htmltext = "daring_q0001_07.htm";

else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_08.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

st.setCond(3);

st.playSound(SOUND_MIDDLE);

}

else if(cond == 3)

htmltext = "daring_q0001_09.htm";

else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_10.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))

st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));

st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2

st.getPlayer().addExpAndSp(5672, 446);

st.playSound(SOUND_FINISH);

st.exitCurrentQuest(false);

}

break;

 

 

}

return htmltext;

}

}

 

 

НПС 36699 создан как "NPC" имя такое же "Darin"

 

В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют !

 

Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс...

 

import org.mmocore.gameserver.Config;

import org.mmocore.gameserver.model.base.ClassLevel;

import org.mmocore.gameserver.model.instances.NpcInstance;

import org.mmocore.gameserver.model.quest.Quest;

import org.mmocore.gameserver.model.quest.QuestState;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage;

import org.mmocore.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;

import org.mmocore.gameserver.serverpackets.components.NpcString;

import org.mmocore.gameserver.scripts.ScriptFile;

 

public class Lalala extends Quest implements ScriptFile

{

private final static int DARIN = 36699;

private final static int ADENA = 57;

 

@Override

public void onLoad()

{

}

 

@Override

public void onReload()

{

}

 

@Override

public void onShutdown()

{

}

 

public Lalala()

{

super(false);

 

addStartNpc(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addTalkId(DARIN);

addQuestItem(ADENA);

}

 

@Override

public String onEvent(String event, QuestState qs, NpcInstance npc)

{

String htmltext = event;

if(event.equalsIgnoreCase("quest_accept"))

{

htmltext = "daring_q0001_06.htm";

qs.setCond(1);

qs.setState(STARTED);

qs.giveItems(ADENA, 1, false, false);

qs.playSound(SOUND_ACCEPT);

}

return htmltext;

}

 

@Override

public String onTalk(NpcInstance npc, QuestState st)

{

String htmltext = "noquest";

int npcId = npc.getNpcId();

int cond = st.getCond();

switch(npcId)

{

case DARIN:

if(cond == 0)

{

if(st.getPlayer().getLevel() >= 2)

htmltext = "daring_q0001_02.htm";

else

{

htmltext = "daring_q0001_01.htm";

st.exitCurrentQuest(true);

}

}

else if(cond == 1)

htmltext = "daring_q0001_07.htm";

else if(cond == 2 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_08.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

st.setCond(3);

st.playSound(SOUND_MIDDLE);

}

else if(cond == 3)

htmltext = "daring_q0001_09.htm";

else if(cond == 4 && st.getQuestItemsCount(ADENA) >= 1)

{

htmltext = "daring_q0001_10.htm";

st.takeItems(ADENA, -1);

st.giveItems(ADENA, 1, false, false);

if(st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))

st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));

st.giveItems(ADENA_ID, (int) ((Config.RATE_QUESTS_REWARD - 1) * 1200 + 2466 * Config.RATE_QUESTS_REWARD), false, false); // T2

st.getPlayer().addExpAndSp(5672, 446);

st.playSound(SOUND_FINISH);

st.exitCurrentQuest(false);

}

break;

 

 

}

return htmltext;

}

}

 

 

НПС 36699 создан как "NPC" имя такое же "Darin"

 

В папке под названием "Lalala" в Data->Html->Lalala все файлы Html присутствуют !

 

Подхожу в НПС он мне выдает HTML файл "npcdefault.htm" и когда нажимаю на квест то "no-quest.htm".... как мне сделать что бы этот скрипт вызывался при нажатии на нужного нпс...

Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а HTML файлы все перенесли туда?

и в scritps.cfg занесен этот скрипт? он точно грузится? 

А где этот scripts.cfg ?

 

​Когда скрипт писал с ошибками то при загрузке ГС мне не мог скомпилить код...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а HTML файлы все перенесли туда?

и в scritps.cfg занесен этот скрипт? он точно грузится? 

 

Да в Data->Html->Quest->Lalala есть Html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да в Data->Html->Quest->Lalala есть Html

я просто хз где в этой сборке загружаются квесты 

Так же рекомендую сверить ID & TYPE вашего NPC

<set name="ai_type" value="CharacterAI" />
<set name="type" value="Npc" />

_666_Lalala.7z

Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

я просто хз где в этой сборке загружаются квесты 

Так же рекомендую сверить ID & TYPE вашего NPC

<set name="ai_type" value="CharacterAI" />
<set name="type" value="Npc" />

<npc id="36699" name="Darin" title="">

  <set name="displayId" value="30048"/>

  <set name="aggroRange" value="0" />

  <set name="ai_type" value="CharacterAI" />

  <set name="baseAtkRange" value="40" />

  <set name="baseCON" value="43" />

  <set name="baseCritRate" value="40" />

  <set name="baseDEX" value="30" />

  <set name="baseHpMax" value="2444.468" />

  <set name="baseHpRate" value="1" />

  <set name="baseHpReg" value="7.5" />

  <set name="baseINT" value="21" />

  <set name="baseMAtk" value="780" />

  <set name="baseMAtkSpd" value="500" />

  <set name="baseMDef" value="382" />

  <set name="baseMEN" value="20" />

  <set name="baseMpMax" value="1345.8" />

  <set name="baseMpReg" value="2.7" />

  <set name="basePAtk" value="1303" />

  <set name="basePAtkSpd" value="253" />

  <set name="basePDef" value="471" />

  <set name="baseRunSpd" value="120" />

  <set name="baseSTR" value="40" />

  <set name="baseShldDef" value="0" />

  <set name="baseShldRate" value="0" />

  <set name="baseWIT" value="20" />

  <set name="baseWalkSpd" value="50" />

  <set name="castle_id" value="1" />

  <set name="collision_height" value="22.0" />

  <set name="collision_radius" value="8.0" />

  <set name="level" value="70" />

  <set name="rewardExp" value="0" />

  <set name="rewardRp" value="0" />

  <set name="rewardSp" value="0" />

  <set name="shots" value="NONE" />

  <set name="texture" value="" />

  <set name="type" value="Npc" />

  <skills>

   <skill id="4416" level="14" /> <!--Humans-->

  </skills>

  <attributes>

   <defence attribute="fire" value="150" />

   <defence attribute="water" value="150" />

   <defence attribute="wind" value="150" />

   <defence attribute="earth" value="150" />

   <defence attribute="holy" value="150" />

   <defence attribute="unholy" value="150" />

  </attributes>

 </npc>

 

Изменено пользователем PSInDIGO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<npc id="36699" name="Darin" title="">

  <set name="displayId" value="30048"/>

  <set name="aggroRange" value="0" />

  <set name="ai_type" value="CharacterAI" />

  <set name="baseAtkRange" value="40" />

  <set name="baseCON" value="43" />

  <set name="baseCritRate" value="40" />

  <set name="baseDEX" value="30" />

  <set name="baseHpMax" value="2444.468" />

  <set name="baseHpRate" value="1" />

  <set name="baseHpReg" value="7.5" />

  <set name="baseINT" value="21" />

  <set name="baseMAtk" value="780" />

  <set name="baseMAtkSpd" value="500" />

  <set name="baseMDef" value="382" />

  <set name="baseMEN" value="20" />

  <set name="baseMpMax" value="1345.8" />

  <set name="baseMpReg" value="2.7" />

  <set name="basePAtk" value="1303" />

  <set name="basePAtkSpd" value="253" />

  <set name="basePDef" value="471" />

  <set name="baseRunSpd" value="120" />

  <set name="baseSTR" value="40" />

  <set name="baseShldDef" value="0" />

  <set name="baseShldRate" value="0" />

  <set name="baseWIT" value="20" />

  <set name="baseWalkSpd" value="50" />

  <set name="castle_id" value="1" />

  <set name="collision_height" value="22.0" />

  <set name="collision_radius" value="8.0" />

  <set name="level" value="70" />

  <set name="rewardExp" value="0" />

  <set name="rewardRp" value="0" />

  <set name="rewardSp" value="0" />

  <set name="shots" value="NONE" />

  <set name="texture" value="" />

  <set name="type" value="Npc" />

  <skills>

   <skill id="4416" level="14" /> <!--Humans-->

  </skills>

  <attributes>

   <defence attribute="fire" value="150" />

   <defence attribute="water" value="150" />

   <defence attribute="wind" value="150" />

   <defence attribute="earth" value="150" />

   <defence attribute="holy" value="150" />

   <defence attribute="unholy" value="150" />

  </attributes>

 </npc>

 

еще перепиши метод onTalk.  

String htmltext = "noquest";

идет по дефолту. Условия не выполняются чтобы загрузить следующие html:

htmltext = "daring_q0001_02.htm";
htmltext = "daring_q0001_01.htm";
htmltext = "daring_q0001_07.htm";
htmltext = "daring_q0001_08.htm";
htmltext = "daring_q0001_09.htm";
htmltext = "daring_q0001_10.htm";

Лучше возьми в пример другой кв, а то что за хрень:

		addStartNpc(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);
Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

еще перепиши метод onTalk.  

String htmltext = "noquest";

идет по дефолту. Условия не выполняются чтобы загрузить следующие html:

htmltext = "daring_q0001_02.htm";
htmltext = "daring_q0001_01.htm";
htmltext = "daring_q0001_07.htm";
htmltext = "daring_q0001_08.htm";
htmltext = "daring_q0001_09.htm";
htmltext = "daring_q0001_10.htm";

Лучше возьми в пример другой кв, а то что за хрень:

		addStartNpc(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);
		addTalkId(DARIN);

Это по сути квест Письмо о любви ! самый первый квест берется в деревне людей....

​Я не понимаю как он может не работать... ведь оригинальный квест работает...

 

​И он даже начальную Хтмл не показывает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это по сути квест Письмо о любви ! самый первый квест берется в деревне людей....

​Я не понимаю как он может не работать... ведь оригинальный квест работает...

 

​И он даже начальную Хтмл не показывает

 

 

package quests;

import org.mmocore.gameserver.Config;
import org.mmocore.gameserver.model.base.ClassLevel;
import org.mmocore.gameserver.model.instances.NpcInstance;
import org.mmocore.gameserver.model.quest.Quest;
import org.mmocore.gameserver.model.quest.QuestState;
import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage;
import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage.ScreenMessageAlign;
import org.mmocore.gameserver.serverpackets.components.NpcString;

public class _666_Lalala extends Quest
{
	private final static int DARIN = 900004;
	private final static int ADENA = 57;
	
	public _666_Lalala()
	{
		super(false);
		
		addStartNpc(DARIN);
		addQuestItem(ADENA);
	}
	
	@Override
	public String onEvent(String event, QuestState qs, NpcInstance npc)
	{
		String htmltext = event;
		if (event.equalsIgnoreCase("quest_accept"))
		{
			htmltext = "daring_q0001_06.htm";
			qs.giveItems(ADENA, 1, false);
			qs.playSound(SOUND_ACCEPT);
			qs.setCond(1);
			qs.setState(STARTED);
		}
		return htmltext;
	}
	
	@Override
	public String onTalk(NpcInstance npc, QuestState st)
	{
		String htmltext = "noquest";
		int npcId = npc.getNpcId();
		int cond = st.getCond();
		if(npcId == DARIN)
		{
				if (cond == 0)
				{
					if (st.getPlayer().getLevel() >= 2)
					{
						htmltext = "daring_q0001_02.htm";
					}
					else
					{
						htmltext = "daring_q0001_01.htm";
						st.exitCurrentQuest(true);
					}
				}
				else if (cond == 1)
				{
					htmltext = "daring_q0001_07.htm";
				}
				else if ((cond == 2) && (st.getQuestItemsCount(ADENA) >= 1))
				{
					htmltext = "daring_q0001_08.htm";
					st.takeItems(ADENA, -1);
					st.giveItems(ADENA, 1, false, false);
					st.setCond(3);
					st.playSound(SOUND_MIDDLE);
				}
				else if (cond == 3)
				{
					htmltext = "daring_q0001_09.htm";
				}
				else if ((cond == 4) && (st.getQuestItemsCount(ADENA) >= 1))
				{
					htmltext = "daring_q0001_10.htm";
					st.takeItems(ADENA, -1);
					st.giveItems(ADENA, 1, false, false);
					if (st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))
					{
						st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));
					}
					st.giveItems(ADENA_ID, (int) (((Config.RATE_QUESTS_REWARD - 1) * 1200) + (2466 * Config.RATE_QUESTS_REWARD)), false, false); // T2
					st.getPlayer().addExpAndSp(5672, 446);
					st.playSound(SOUND_FINISH);
					st.exitCurrentQuest(false);
				}
		}
		return htmltext;
	}
} 

Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
package quests;

import org.mmocore.gameserver.Config;
import org.mmocore.gameserver.model.base.ClassLevel;
import org.mmocore.gameserver.model.instances.NpcInstance;
import org.mmocore.gameserver.model.quest.Quest;
import org.mmocore.gameserver.model.quest.QuestState;
import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage;
import org.mmocore.gameserver.network.l2.s2c.ExShowScreenMessage.ScreenMessageAlign;
import org.mmocore.gameserver.serverpackets.components.NpcString;

public class _666_Lalala extends Quest
{
	private final static int DARIN = 900004;
	private final static int ADENA = 57;
	
	public _666_Lalala()
	{
		super(false);
		
		addStartNpc(DARIN);
		addQuestItem(ADENA);
	}
	
	@Override
	public String onEvent(String event, QuestState qs, NpcInstance npc)
	{
		String htmltext = event;
		if (event.equalsIgnoreCase("quest_accept"))
		{
			htmltext = "daring_q0001_06.htm";
			qs.giveItems(ADENA, 1, false);
			qs.playSound(SOUND_ACCEPT);
			qs.setCond(1);
			qs.setState(STARTED);
		}
		return htmltext;
	}
	
	@Override
	public String onTalk(NpcInstance npc, QuestState st)
	{
		String htmltext = "noquest";
		int npcId = npc.getNpcId();
		int cond = st.getCond();
		if(npcId == DARIN)
		{
				if (cond == 0)
				{
					if (st.getPlayer().getLevel() >= 2)
					{
						htmltext = "daring_q0001_02.htm";
					}
					else
					{
						htmltext = "daring_q0001_01.htm";
						st.exitCurrentQuest(true);
					}
				}
				else if (cond == 1)
				{
					htmltext = "daring_q0001_07.htm";
				}
				else if ((cond == 2) && (st.getQuestItemsCount(ADENA) >= 1))
				{
					htmltext = "daring_q0001_08.htm";
					st.takeItems(ADENA, -1);
					st.giveItems(ADENA, 1, false, false);
					st.setCond(3);
					st.playSound(SOUND_MIDDLE);
				}
				else if (cond == 3)
				{
					htmltext = "daring_q0001_09.htm";
				}
				else if ((cond == 4) && (st.getQuestItemsCount(ADENA) >= 1))
				{
					htmltext = "daring_q0001_10.htm";
					st.takeItems(ADENA, -1);
					st.giveItems(ADENA, 1, false, false);
					if (st.getPlayer().getClassId().isOfLevel(ClassLevel.NONE) && !st.getPlayer().getVarB("ng1"))
					{
						st.getPlayer().sendPacket(new ExShowScreenMessage(NpcString.DELIVERY_DUTY_COMPLETE, 5000, ExShowScreenMessage.ScreenMessageAlign.TOP_CENTER, true));
					}
					st.giveItems(ADENA_ID, (int) (((Config.RATE_QUESTS_REWARD - 1) * 1200) + (2466 * Config.RATE_QUESTS_REWARD)), false, false); // T2
					st.getPlayer().addExpAndSp(5672, 446);
					st.playSound(SOUND_FINISH);
					st.exitCurrentQuest(false);
				}
		}
		return htmltext;
	}
} 

 

ERROR Scripts: Failed running quests.Lalala.onLoad()

java.lang.ArrayIndexOutOfBoundsException: 1

        at org.mmocore.gameserver.model.quest.Quest.<init>(Quest.java:343)

        at org.mmocore.gameserver.model.quest.Quest.<init>(Quest.java:335)

        at quests.Lalala.<init>(Lalala.java:35)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

        at java.lang.reflect.Constructor.newInstance(Unknown Source)

        at java.lang.Class.newInstance0(Unknown Source)

        at java.lang.Class.newInstance(Unknown Source)

        at org.mmocore.gameserver.scripts.Scripts.init(Scripts.java:148)

        at org.mmocore.gameserver.GameServer.<init>(GameServer.java:213)

        at org.mmocore.gameserver.GameServer.main(GameServer.java:405)

 

Скрипты проверил и начал запускать ГС дальше... но потом выдал это и на сервер пустил но кв не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Failed running quests.Lalala.onLoad()

Я вам готовый код скинул!

Вам останется

1) создать просто файл с названием _666_Lalala.java

2) засунуть туда последний код

3) переименовать папку data\html-en\quests\_001_LettersOfLove в data\html-en\quests\_666_Lalala

 

И всё работает збс

		// If the file is not found, the standard message "I have nothing to say to you" is returned
		return "npcdefault.htm";

если не известно, почему вылезает одна html (гугл переводчик в помощь) "не загружен ваш html"

Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Failed running quests.Lalala.onLoad()

Я вам готовый код скинул!

Вам останется

1) создать просто файл с названием _666_Lalala.java

2) засунуть туда последний код

3) переименовать папку data\html-en\quests\_001_LettersOfLove в data\html-en\quests\_666_Lalala

 

И всё работает збс

 

Я так и сделал создал файл _666_Lalala.java и поместил туда ваш код поменяв id Нпс при этом и поместил этот файл в Data-> Sqripts-> Quest

​Так же перекинул htm файлы из папки _001_LettersOfLove в созданную папку _666_Lalala

 

Но не идет...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня идет, а у Вас нет? это как? 

 

Последняя подсказка:

	public String getHtmlPath(int npcId, int val, Player player)
	{
		String pom;
		if(val == 0)
			pom = "" + npcId;
		else
			pom = npcId + "-" + val;

 		if(getTemplate().getHtmRoot() != null)
			return getTemplate().getHtmRoot() + pom + ".htm";

		String temp = "default/" + pom + ".htm";
		if(HtmCache.getInstance().getIfExists(temp, player) != null)
			return temp;

		temp = "trainer/" + pom + ".htm";
		if(HtmCache.getInstance().getIfExists(temp, player) != null)
			return temp;

		// If the file is not found, the standard message "I have nothing to say to you" is returned
		return "npcdefault.htm";
	}
Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас)

2) Добавить html не только в quests (код выше)

3) Всё работает, Ура! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас)

2) Добавить html не только в quests (код выше)

3) Всё работает, Ура! 

Дело с npcdefault.htm то убрал... ( просто забрал htm у настоящего нпс Дарина и переименовал на 36699....) Но вот при нажатии на квест вылетает html-ка no-quest.htm....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело с npcdefault.htm то убрал... ( просто забрал htm у настоящего нпс Дарина и переименовал на 36699....) Но вот при нажатии на квест вылетает html-ка no-quest.htm....

Смотрите метод onTalk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Если вылетает ошибка - поменяйте импорты (брал со сборки ЛВ, но исходники те же, что и у Вас)

2) Добавить html не только в quests (код выше)

3) Всё работает, Ура! 

Правда я на сборке L2j-Dev и как то Alex(Создатель сборки) говорил что у него(в 761 сборке) новые скрипты не подгружаются... но я этот квест делал на более менее старой сборке(Не помню ревизию) но тут по сравнению с новыми 761 или 800+ в Quest файлы джава файлы квестов имеются....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда я на сборке L2j-Dev и как то Alex(Создатель сборки) говорил что у него(в 761 сборке) новые скрипты не подгружаются... но я этот квест делал на более менее старой сборке(Не помню ревизию) но тут по сравнению с новыми 761 или 800+ в Quest файлы джава файлы квестов имеются....

Не, кв грузит. просто гляньте метод onEvent и onTalk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для проверки замените 

String htmltext = "noquest";

на 

	String htmltext = "This person inaccessible and does not want with you to talk!<br>Are they please returned later...";
	

Если This person inaccessible and does not want with you to talk!<br>Are they please returned later... Не появится, то правьте метод onEvent

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...