Сообщений: 2
Тем: 2
Зарегистрирован: May 2011
Репутация:
0
При проверки квестов столкнулся с проблемой нету квестов в ингисоне...
\gameserver\data\scripts\system\handlers\quest\ inggison
в новой сборке отсутствуют миссии в ингисоне которые доступны после квеста "Тайна Ингисона"
искал сборки с квестами поиски были неудачны.... помогите кто сможет выложите файлы этих миссий.
Сообщений: 202
Тем: 7
Зарегистрирован: Dec 2010
Репутация:
54
за монету может кто-то выложит , а вобще их написать пару часов делов если возится с квест варами и делать всё как положено.
Дверь запили!
Сообщений: 450
Тем: 24
Зарегистрирован: Feb 2010
Репутация:
139
флеш, писать, если знать что
Bloomers --> ??? --> Profit
Сообщений: 202
Тем: 7
Зарегистрирован: Dec 2010
Репутация:
54
Ну вот например квест "Первое задание в Ингисоне" , ничего сложно.
Для нпс 730223,730224,730225 в файле npc_templates.xml нужно сменить их тип USEITEM на NON_ ATTACKABLE
Первое задание в Ингисоне
PHP код: <?php
package system.handlers.quest.inggison;
import com.aionengine.gameserver.model.gameobjects.Npc;
import com.aionengine.gameserver.model.gameobjects.player.Player;
import com.aionengine.gameserver.questEngine.handlers.QuestHandler;
import com.aionengine.gameserver.questEngine.model.QuestCookie;
import com.aionengine.gameserver.questEngine.model.QuestState;
import com.aionengine.gameserver.questEngine.model.QuestStatus;
import com.aionengine.gameserver.services.ItemService;
/**
*
* @author flashman
*/
public class _10020ProvingYourselftoOutremus extends QuestHandler {
private final static int questId = 10020;
private final static int[] npc_ids = {
798926, // Kainus
798928, // Ulia
798927, // Versetty
798955, // Marika
700628, // eastern obelisk
700629, // western Obelisk
700630, // northern Obelisk
730223, // Disabled obelisk
730224, // Overheated obelisk
730225, // Faulty obelisk
};
private final static int[] mobs = {
215504,
215505,
216463,
215517,
215516,
215508,
215509,
};
public _10020ProvingYourselftoOutremus() {
super(questId);
}
@Override
public void register() {
qe.addQuestLvlUp(questId);
for (int npc_id : npc_ids)
qe.setNpcQuestData(npc_id).addOnTalkEvent(questId);
for (int mobId : mobs)
qe.setNpcQuestData(mobId).addOnKillEvent(questId);
}
@Override
public boolean onKillEvent(QuestCookie env) {
Player player = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
int targetId = 0;
if (env.getVisibleObject() instanceof Npc)
targetId = ((Npc) env.getVisibleObject()).getNpcId();
if (qs != null && qs.getStatus() == QuestStatus.START){
if (qs.getQuestVarById(0) == 3)
{
switch(targetId)
{
case 215504:
case 215505:
case 216463:
case 215517:
case 215516:
if (qs.getQuestVarById(1) < 23)
{
qs.setQuestVarById(1, qs.getQuestVarById(1) + 1);
this.updateQuestStatus(env);
}
break;
case 215508:
case 215509:
if (qs.getQuestVarById(2) < 4)
{
qs.setQuestVarById(2, qs.getQuestVarById(2) + 1);
this.updateQuestStatus(env);
}
break;
}
if (qs.getQuestVarById(1) == 23 && qs.getQuestVarById(2) == 4)
{
qs.setQuestVarById(0, 4);
qs.setQuestVarById(1, 0);
qs.setQuestVarById(2, 0);
this.updateQuestStatus(env);
}
}
}
return false;
}
@Override
public boolean onLvlUpEvent(QuestCookie env) {
return defaultQuestOnLvlUpEvent(env, 10026);
}
@Override
public boolean onDialogEvent(QuestCookie env) {
Player player = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
if (qs != null && qs.getStatus() == QuestStatus.START)
{
switch (env.getTargetId())
{
case 798926:
switch (env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 0)
return this.sendQuestDialog(env, 1011);
break;
case 10000:
if (qs.getQuestVarById(0) == 0)
{
qs.setQuestVarById(0, 1);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798928:
switch(env.getDialogId())
{
case 25:
if(qs.getQuestVarById(0) == 1)
return this.sendQuestDialog(env, 1352);
else if (qs.getQuestVarById(0) == 4)
return this.sendQuestDialog(env, 2375);
break;
case 10001:
if (qs.getQuestVarById(0) == 1)
{
if (!player.getInventory().isFull() && player.getInventory().getNumberOfFreeSlots() >= 3)
{
qs.setQuestVarById(0, 2);
this.updateQuestStatus(env);
ItemService.addItem(player, 182206600, 3);
}
return this.sendQuestDialog(env, 0);
}
break;
case 10004:
if (qs.getQuestVarById(0) == 4)
{
qs.setQuestVarById(0, 5);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798927:
switch(env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 5)
return this.sendQuestDialog(env, 2716);
else if (qs.getQuestVarById(0) == 10)
return this.sendQuestDialog(env, 3398);
break;
case 10005:
if (qs.getQuestVarById(0) == 5)
{
qs.setQuestVarById(0, 6);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
case 10255:
if (qs.getQuestVarById(0) == 10)
{
qs.setStatus(QuestStatus.REWARD);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798955:
switch(env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 6)
return this.sendQuestDialog(env, 3057);
break;
case 10006:
if (qs.getQuestVarById(0) == 6)
{
qs.setQuestVarById(0, 7);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
break;
// Quest Special Npc
case 700628:
if (qs.getQuestVarById(0) == 7)
{
qs.setQuestVarById(0, 8);
this.updateQuestStatus(env);
return true;
}
return false;
case 700629:
if (qs.getQuestVarById(0) == 8)
{
qs.setQuestVarById(0, 9);
this.updateQuestStatus(env);
return true;
}
return false;
case 700630:
if (qs.getQuestVarById(0) == 9)
{
qs.setQuestVarById(0, 10);
this.updateQuestStatus(env);
return true;
}
return false;
case 730223:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(1) == 0){
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(1, 1);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
if (qs.getQuestVarById(1) == 1
&& qs.getQuestVarById(2) == 1
&& qs.getQuestVarById(3) == 1 )
{
qs.setQuestVarById(0, 3);
this.updateQuestStatus(env);
}
break;
case 730224:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(2) == 0){
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(2, 1);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
if (qs.getQuestVarById(1) == 1
&& qs.getQuestVarById(2) == 1
&& qs.getQuestVarById(3) == 1 )
{
qs.setQuestVarById(0, 3);
this.updateQuestStatus(env);
}
break;
case 730225:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(3) == 0)
{
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(3, 1);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
if (qs.getQuestVarById(1) == 1
&& qs.getQuestVarById(2) == 1
&& qs.getQuestVarById(3) == 1 )
{
qs.setQuestVarById(0, 3);
qs.setQuestVarById(1, 0);
qs.setQuestVarById(2, 0);
qs.setQuestVarById(3, 0);
this.updateQuestStatus(env);
}
break;
}
}
if (qs != null && qs.getStatus() == QuestStatus.REWARD)
{
if (env.getTargetId() == 798926)
{
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 10002);
default:
return this.defaultQuestEndDialog(env);
}
}
}
return false;
}
}
Дверь запили!
Сообщений: 202
Тем: 7
Зарегистрирован: Dec 2010
Репутация:
54
Кое где обнаружился недостижимый код в следствии чего квест нельзя было пройти дальше третей стадии, привожу исправленую версию, плюс добавлено несколько мобов для кил эвента.
Исправленая версия
PHP код: <?php
package system.handlers.quest.inggison;
import com.aionengine.gameserver.model.gameobjects.Npc;
import com.aionengine.gameserver.model.gameobjects.player.Player;
import com.aionengine.gameserver.questEngine.handlers.QuestHandler;
import com.aionengine.gameserver.questEngine.model.QuestCookie;
import com.aionengine.gameserver.questEngine.model.QuestState;
import com.aionengine.gameserver.questEngine.model.QuestStatus;
import com.aionengine.gameserver.services.ItemService;
/**
*
* @author flashman
*/
public class _10020ProvingYourselftoOutremus extends QuestHandler {
private final static int questId = 10020;
private final static int[] npc_ids = {
798926, // Kainus
798928, // Ulia
798927, // Versetty
798955, // Marika
700628, // eastern obelisk
700629, // western Obelisk
700630, // northern Obelisk
730223, // Disabled obelisk
730224, // Overheated obelisk
730225, // Faulty obelisk
};
private final static int[] mobs = {
216783,
216648,
216647,
216692,
215504,
215505,
216463,
215517,
215516,
215508,
215509,
};
public _10020ProvingYourselftoOutremus() {
super(questId);
}
@Override
public void register() {
qe.addQuestLvlUp(questId);
for (int npc_id : npc_ids)
qe.setNpcQuestData(npc_id).addOnTalkEvent(questId);
for (int mobId : mobs)
qe.setNpcQuestData(mobId).addOnKillEvent(questId);
}
@Override
public boolean onKillEvent(QuestCookie env) {
Player player = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
int targetId = 0;
if (env.getVisibleObject() instanceof Npc)
targetId = ((Npc) env.getVisibleObject()).getNpcId();
if (qs != null && qs.getStatus() == QuestStatus.START){
if (qs.getQuestVarById(0) == 3)
{
switch(targetId)
{
case 216783:
case 216648:
case 216647:
case 216692:
case 215504:
case 215505:
case 216463:
case 215517:
case 215516:
if (qs.getQuestVarById(1) < 23)
{
qs.setQuestVarById(1, qs.getQuestVarById(1) + 1);
this.updateQuestStatus(env);
}
break;
case 215508:
case 215509:
if (qs.getQuestVarById(2) < 4)
{
qs.setQuestVarById(2, qs.getQuestVarById(2) + 1);
this.updateQuestStatus(env);
}
break;
}
if (qs.getQuestVarById(1) == 23 && qs.getQuestVarById(2) == 4)
{
qs.setQuestVarById(0, 4);
qs.setQuestVarById(1, 0);
qs.setQuestVarById(2, 0);
this.updateQuestStatus(env);
}
}
}
return false;
}
@Override
public boolean onLvlUpEvent(QuestCookie env) {
return defaultQuestOnLvlUpEvent(env, 10026);
}
@Override
public boolean onDialogEvent(QuestCookie env) {
Player player = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
if (qs != null && qs.getStatus() == QuestStatus.START)
{
switch (env.getTargetId())
{
case 798926:
switch (env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 0)
return this.sendQuestDialog(env, 1011);
break;
case 10000:
if (qs.getQuestVarById(0) == 0)
{
qs.setQuestVarById(0, 1);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798928:
switch(env.getDialogId())
{
case 25:
if(qs.getQuestVarById(0) == 1)
return this.sendQuestDialog(env, 1352);
else if (qs.getQuestVarById(0) == 4)
return this.sendQuestDialog(env, 2375);
break;
case 10001:
if (qs.getQuestVarById(0) == 1)
{
if (!player.getInventory().isFull() && player.getInventory().getNumberOfFreeSlots() >= 3)
{
qs.setQuestVarById(0, 2);
this.updateQuestStatus(env);
ItemService.addItem(player, 182206600, 3);
}
return this.sendQuestDialog(env, 0);
}
break;
case 10004:
if (qs.getQuestVarById(0) == 4)
{
qs.setQuestVarById(0, 5);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798927:
switch(env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 5)
return this.sendQuestDialog(env, 2716);
else if (qs.getQuestVarById(0) == 10)
return this.sendQuestDialog(env, 3398);
break;
case 10005:
if (qs.getQuestVarById(0) == 5)
{
qs.setQuestVarById(0, 6);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
case 10255:
if (qs.getQuestVarById(0) == 10)
{
qs.setStatus(QuestStatus.REWARD);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
break;
}
break;
case 798955:
switch(env.getDialogId())
{
case 25:
if (qs.getQuestVarById(0) == 6)
return this.sendQuestDialog(env, 3057);
break;
case 10006:
if (qs.getQuestVarById(0) == 6)
{
qs.setQuestVarById(0, 7);
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
break;
// Quest Special Npc
case 700628:
if (qs.getQuestVarById(0) == 7)
{
qs.setQuestVarById(0, 8);
this.updateQuestStatus(env);
return true;
}
return false;
case 700629:
if (qs.getQuestVarById(0) == 8)
{
qs.setQuestVarById(0, 9);
this.updateQuestStatus(env);
return true;
}
return false;
case 700630:
if (qs.getQuestVarById(0) == 9)
{
qs.setQuestVarById(0, 10);
this.updateQuestStatus(env);
return true;
}
return false;
case 730223:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(1) == 0){
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(1, 1);
this.updateQuestStatus(env);
if (CheckOblesik(qs))
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
break;
case 730224:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(2) == 0){
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(2, 1);
this.updateQuestStatus(env);
if (CheckOblesik(qs))
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
break;
case 730225:
if (qs.getQuestVarById(0) == 2 && qs.getQuestVarById(3) == 0)
{
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 1693);
case 10002:
player.getInventory().removeFromBagByItemId(182206600, 1);
qs.setQuestVarById(3, 1);
this.updateQuestStatus(env);
if (CheckOblesik(qs))
this.updateQuestStatus(env);
return this.sendQuestDialog(env, 0);
}
}
break;
}
}
if (qs != null && qs.getStatus() == QuestStatus.REWARD)
{
if (env.getTargetId() == 798926)
{
switch (env.getDialogId())
{
case -1:
return this.sendQuestDialog(env, 10002);
default:
return this.defaultQuestEndDialog(env);
}
}
}
return false;
}
//=== support methods ===//
/**
*
* @param qs = QuestState
* @return true if check was successful or false otherwise
*/
private boolean CheckOblesik(QuestState qs)
{
if (qs.getQuestVarById(1) == 1
&& qs.getQuestVarById(2) == 1
&& qs.getQuestVarById(3) == 1 )
{
qs.setQuestVarById(0, 3);
qs.setQuestVarById(1, 0);
qs.setQuestVarById(2, 0);
qs.setQuestVarById(3, 0);
return true;
}
else
return false;
}
}
Дверь запили!
|