Seven Sign Seal Of The Emperor - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:Помогите квест намутить :)

Ответ
Опции темы
Непрочитано 31.01.2012, 20:53   #1
Аватар для Puma1414
Пользователь

Автор темы (Топик Стартер) Seven Sign Seal Of The Emperor

Не пускает меня Promise of mammon внутря, говорит не подхожу по мин требованиям..
квест:
Свернуть ↑Развернуть ↓


инстанс:
Свернуть ↑Развернуть ↓


инстанс хмл:
Свернуть ↑Развернуть ↓

инстанснейм хмл:
Свернуть ↑Развернуть ↓

что не так ?
__________________
Бешенство, это не болезнь © Pumo4ka
Puma1414 вне форума Отправить сообщение для Puma1414 с помощью ICQ Ответить с цитированием
Непрочитано 31.01.2012, 21:02   #2
Аватар для LestatL
Пользователь

Exclamation Re: Seven Sign Seal Of The Emperor

на питоне что ли, ну что ж
вот рабочий квест
Цитата:
# by knoxville OpenTeamFree 03.09.2010
# based on Freya PTS

import sys
from l2.universe.gameserver.ai import CtrlIntention
from l2.universe.gameserver.model.quest import State
from l2.universe.gameserver.model.quest import QuestState
from l2.universe.gameserver.model.quest.jython import QuestJython as JQuest
from l2.universe.gameserver.network.serverpackets import NpcSay
from l2.universe.gameserver.network.serverpackets import ExStartScenePlayer

qn = "196_SevenSignSealOfTheEmperor"

# NPCs
HEINE = 30969
MAMMON = 32584
SHUNAIMAN = 32586
SEALDEVICE = 27384
MAGICAN = 32598
WOOD = 32593


# ITEMS
STONE = 13824
WATER = 13808
SWORD = 15310
SEAL = 13846
STAFF = 13809

class PyObject :
pass

class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.mammon = 0
self.questItemIds = [STONE, SWORD, WATER, SEAL, STAFF]

def onAdvEvent(self, event, npc, player) :
htmltext = event
st = player.getQuestState(qn)
if not st : return
if event == "30969-05.htm" :
st.set("cond","1")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
elif event == "32598-02.htm" :
st.giveItems(STAFF, 1)
st.playSound("ItemSound.quest_middle")
elif event == "30969-11.htm" :
st.set("cond","6")
st.playSound("ItemSound.quest_middle")
elif event == "32584-05.htm" :
st.set("cond","2")
st.giveItems(STONE, 1)
st.playSound("ItemSound.quest_middle")
elif event == "32586-06.htm" :
st.set("cond","4")
st.takeItems(STONE, 1)
st.giveItems(SWORD, 1)
st.giveItems(WATER, 1)
st.playSound("ItemSound.quest_middle")
elif event == "32586-12.htm" :
st.set("cond","5")
st.takeItems(SEAL, 4)
st.takeItems(SWORD, 1)
st.takeItems(WATER, 1)
st.takeItems(STAFF, 1)
st.playSound("ItemSound.quest_middle")
elif event == "32593-02.htm" :
st.addExpAndSp(52518015,5817676)
st.unset("cond")
st.setState(State.COMPLETED)
st.exitQuest(False)
st.playSound("ItemSound.quest_finish")
elif event == "30969-06.htm" :
if not self.mammon :
npc = st.addSpawn(MAMMON,60000)
self.mammon = 1
st.startQuestTimer("Despawn_Mammon",60000)
npc.broadcastPacket(NpcSay(npc.getObjectId(),0,npc .getNpcId(),"Who dares summon the Merchant of Mammon?!"))
elif event == "Despawn_Mammon" :
self.mammon = 0
return
return htmltext

def onTalk (self, npc, player) :
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>"
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
cond = st.getInt("cond")
id = st.getState()
if npcId == HEINE :
first = player.getQuestState("_195_SecretRitualOfThePriest s")
if first and first.getState() == State.COMPLETED and id == State.CREATED and player.getLevel() >= 79 :
htmltext = "30969-01.htm"
elif cond == 1 :
htmltext = "30969-05.htm"
elif cond == 2 :
htmltext = "30969-08.htm"
st.set("cond", "3")
elif cond == 0 :
htmltext = "30969-00.htm"
st.exitQuest(True)
elif cond == 5 :
htmltext = "30969-09.htm"
elif cond == 6 :
htmltext = "30969-11.htm"
elif npcId == MAMMON :
if cond == 1 :
htmltext = "32584-01.htm"
elif cond == 2 :
htmltext = "32584-05.htm"
elif npcId == SHUNAIMAN :
if cond == 3 :
htmltext = "32586-01.htm"
elif cond == 4 and st.getQuestItemsCount(SEAL)==0 :
htmltext = "32586-07.htm"
elif cond == 4 and st.getQuestItemsCount(SEAL)==4 :
htmltext = "32586-08.htm"
elif cond == 5 :
htmltext = "32586-12.htm"
elif npcId == MAGICAN :
if cond == 4 and st.getQuestItemsCount(STAFF)==0 :
htmltext = "32598-01.htm"
elif cond == 4 and st.getQuestItemsCount(STAFF)==1 :
htmltext = "32598-03.htm"
elif npcId == WOOD :
if cond == 6 :
htmltext = "32593-01.htm"
return htmltext

def onKill(self, npc, player, isPet) :
st = player.getQuestState(qn)
if not st : return
if npc.getNpcId() == SEALDEVICE :
st.giveItems(SEAL, 1)
if st.getQuestItemsCount(SEAL) < 4:
st.playSound("ItemSound.quest_itemget")
else:
st.playSound("ItemSound.quest_middle")
if st.getQuestItemsCount(SEAL)>=4:
player.showQuestMovie(13)
return

QUEST = Quest(196,qn,"Seven Signs Seal Of The Emperor")

QUEST.addStartNpc(HEINE)
QUEST.addTalkId(HEINE)
QUEST.addTalkId(WOOD)
QUEST.addTalkId(MAMMON)
QUEST.addTalkId(MAGICAN)
QUEST.addTalkId(SHUNAIMAN)
QUEST.addKillId(SEALDEVICE)
Цитата:
Не пускает меня Promise of mammon внутря, говорит не подхожу по мин требованиям..
а мб и не подходите
__________________
Улыбаемся и машем
LestatL вне форума Ответить с цитированием
Непрочитано 31.01.2012, 21:04   #3
Аватар для Puma1414
Пользователь

Автор темы (Топик Стартер) Re: Seven Sign Seal Of The Emperor

щас попробую ... я уже около 7-8 квестов перебрал ... и дажва и питон ...
__________________
Бешенство, это не болезнь © Pumo4ka
Puma1414 вне форума Отправить сообщение для Puma1414 с помощью ICQ Ответить с цитированием
Непрочитано 31.01.2012, 21:08   #4
Аватар для LestatL
Пользователь

Exclamation Re: Seven Sign Seal Of The Emperor

Цитата:
Сообщение от Puma1414 Посмотреть сообщение
щас попробую ... я уже около 7-8 квестов перебрал ... и дажва и питон ...
да я просто на ваш квест смотрю, он на питоне написан ... норм исходники, в вашем случае (чтобы вырвать что вам надо) использовать команды "инфинити"
__________________
Улыбаемся и машем
LestatL вне форума Ответить с цитированием
Непрочитано 31.01.2012, 21:09   #5
Аватар для Puma1414
Пользователь

Автор темы (Топик Стартер) Re: Seven Sign Seal Of The Emperor

а можно ещё и скрипт инстанса ?

Добавлено через 1 минуту
в принципе не проблема прикрутить и джаву, главное чтобы работало, я не сторонник джавы или питона) я сторонник работоспособности)
__________________
Бешенство, это не болезнь © Pumo4ka

Последний раз редактировалось Puma1414; 31.01.2012 в 21:10. Причина: Добавлено сообщение
Puma1414 вне форума Отправить сообщение для Puma1414 с помощью ICQ Ответить с цитированием
Непрочитано 31.01.2012, 21:24   #6
Аватар для LestatL
Пользователь

По умолчанию Re: Seven Sign Seal Of The Emperor

Цитата:
Сообщение от Puma1414 Посмотреть сообщение
а можно ещё и скрипт инстанса ?

Добавлено через 1 минуту
в принципе не проблема прикрутить и джаву, главное чтобы работало, я не сторонник джавы или питона) я сторонник работоспособности)
/*
By knoxville OpenTeamFree 14.09.2010, Based on PTS Freya.
TODO: Lilith and Anakim Attack.
 */
package l2.universe.scripts.instances;
 
import l2.universe.gameserver.ai.CtrlIntention;
import l2.universe.gameserver.instancemanager.InstanceManager;
import l2.universe.gameserver.instancemanager.InstanceManager.InstanceWorld;
import l2.universe.gameserver.model.L2World;
import l2.universe.gameserver.model.actor.L2Npc;
import l2.universe.gameserver.model.actor.instance.L2DoorInstance;
import l2.universe.gameserver.model.actor.instance.L2PcInstance;
import l2.universe.gameserver.model.quest.Quest;
import l2.universe.gameserver.model.quest.QuestState;
import l2.universe.gameserver.network.SystemMessageId;
import l2.universe.gameserver.network.serverpackets.ExStartScenePlayer;
import l2.universe.gameserver.network.serverpackets.SystemMessage;
 
public class Disciple extends Quest
{
	private class DiSWorld extends InstanceWorld
	{
		public           long[] storeTime                                = {0,0}; 
		public DiSWorld()
		{
		}
	}
 
	private static final String qn = "Disciple";
	private static final int INSTANCEID = 112; 
 
	private static final int PROMISE = 32585;
	private static final int LEON = 32587;  
	private static final int DOOR = 17240111;
	private static final int GATEKEEPER = 32657; 
 
	private class teleCoord {int instanceId; int x; int y; int z;}
 
	private void teleportplayer(L2PcInstance player, teleCoord teleto)
	{
		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
		player.setInstanceId(teleto.instanceId);
		player.teleToLocation(teleto.x, teleto.y, teleto.z);
	}
 
	protected void exitInstance(L2PcInstance player, teleCoord tele)
	{
		player.setInstanceId(0);
		player.teleToLocation(tele.x, tele.y, tele.z);
	}
 
	protected int enterInstance(L2PcInstance player, String template, teleCoord teleto)
	{
		int instanceId = 0;
		InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
		if (world != null)
		{
			if (!(world instanceof DiSWorld))
			{
				player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ALREADY_ENTERED_ANOTHER_INSTANCE_CANT_ENTER));
				return 0;
			}
			teleto.instanceId = world.instanceId;
			teleportplayer(player,teleto);
			return instanceId;
		}
		else
		{
			instanceId = InstanceManager.getInstance().createDynamicInstance(template);
			world = new DiSWorld();
			world.instanceId = instanceId;
			world.templateId = INSTANCEID;
			world.status = 0;
			((DiSWorld)world).storeTime[0] = System.currentTimeMillis();
			InstanceManager.getInstance().addWorld(world);
			_log.info("Disciple started " + template + " Instance: " + instanceId + " created by player: " + player.getName());
			teleto.instanceId = instanceId;
			teleportplayer(player,teleto);
			world.allowed.add(player.getObjectId());
			return instanceId;
		}
	}
	protected void openDoor(int doorId,int instanceId)
	{
		for (L2DoorInstance door : InstanceManager.getInstance().getInstance(instanceId).getDoors())
		{
			if (door.getDoorId() == doorId)
				door.openMe();
		}
	} 
 
	@Override
	public String onTalk ( L2Npc npc, L2PcInstance player)
	{	
		QuestState st = player.getQuestState(qn);
		if (st == null)
			st = newQuestState(player);
 
		switch (npc.getNpcId())
		{
			case PROMISE:
				teleCoord tele = new teleCoord();
				tele.x = -89559;      
				tele.y = 216030;
				tele.z = -7488;
				enterInstance(player, "Disciple.xml", tele);
				break;
			case LEON:
				InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
				world.allowed.remove(world.allowed.indexOf(player.getObjectId()));
				tele = new teleCoord();
				tele.instanceId = 0;
				tele.x = 171782;    
				tele.y = -17612;
				tele.z = -4901;
				exitInstance(player,tele);
				break;
			case GATEKEEPER:
				final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
				if (tmpworld instanceof DiSWorld)
				{
					world = (DiSWorld) tmpworld;  	
					openDoor(DOOR,world.instanceId);
					for (int objId : world.allowed)
					{
						final L2PcInstance pl = L2World.getInstance().getPlayer(objId);
						if (pl != null)
							pl.showQuestMovie(ExStartScenePlayer.SSQ_SEALING_EMPEROR_1ST);					          
					}		
				}
				break;
		}
 
		return "";
	}
 
	public Disciple(int questId, String name, String descr)
	{
		super(questId, name, descr);
 
		addStartNpc(PROMISE);
		addTalkId(PROMISE);
		addTalkId(LEON);
		addTalkId(GATEKEEPER);
	}
 
	public static void main(String[] args)
	{
		new Disciple(-1, qn, "instances");
	}
}
Code: Java
и вообще я спать потопал, качайте исходники инфинити, так проще
__________________
Улыбаемся и машем
LestatL вне форума Ответить с цитированием
Непрочитано 31.01.2012, 21:27   #7
Аватар для pchayka
Какие бекапы? О_о

По умолчанию Re: Seven Sign Seal Of The Emperor

Какой жуткий у вас код у всех. Просто отвратительный.

И проверять нужно не квест, а данж.
pchayka вне форума Ответить с цитированием
Непрочитано 31.01.2012, 21:51   #8
Аватар для Puma1414
Пользователь

Автор темы (Топик Стартер) Re: Seven Sign Seal Of The Emperor

эээ:
Свернуть ↑Развернуть ↓



это типа должно работать ? у меня не запускается дисцайпл ... куча ошибок....после удаления пробелов осталось 13 ошибок ...пошёл дальше капаться ....

Добавлено через 4 минуты
import ru.l2open.gameserver.instancemanager.InstanceMange r.InstanceWorld;
на эту строчку ругаеццо , чо делать ?
__________________
Бешенство, это не болезнь © Pumo4ka

Последний раз редактировалось Puma1414; 31.01.2012 в 21:56. Причина: Добавлено сообщение
Puma1414 вне форума Отправить сообщение для Puma1414 с помощью ICQ Ответить с цитированием
Непрочитано 31.01.2012, 22:02   #9
Аватар для Ro_0TT
Супергерой

По умолчанию Re: Seven Sign Seal Of The Emperor

Выкладывайте код под:
PHP код:
[src=java] ...... [/src
иначе - не читаемо.

Добавлено через 1 минуту
Цитата:
Сообщение от Puma1414 Посмотреть сообщение
import ru.l2open.gameserver.instancemanager.InstanceMange r.InstanceWorld;
на эту строчку ругаеццо , чо делать ?
Отсутствует класс по импорту.. )
__________________
Ищу работу: Java-разработчик Skype: ro_0tt

Последний раз редактировалось Ro_0TT; 31.01.2012 в 22:04. Причина: Добавлено сообщение
Ro_0TT вне форума Отправить сообщение для Ro_0TT с помощью ICQ Отправить сообщение для Ro_0TT с помощью Skype™ Ответить с цитированием
Непрочитано 31.01.2012, 23:36   #10
Аватар для Puma1414
Пользователь

Автор темы (Топик Стартер) Re: Seven Sign Seal Of The Emperor

ну правильно, вот в цитате я и заметил что там пробел , не получилось у меня это скомпилировать ...мызгаю другие скрипты ... охххх ....

Добавлено через 1 минуту
блин, что я делаю не так ? до этого , у меня небыло в сборке этого квеста, я добавляю его руками, что я не сделал ?

Добавлено через 18 минут
нашёл в какой то сборке файлик сlass на сколько я понял нужно его запихнуть в папочку бин ? или как ?

Код:
The packge instance.disciple collides with a type


Добавлено через 21 час 6 минут
чо делать с этим то ? обьясните как добавлять импорты пожалуйсто, и как впихивать невпихуемое ) тоесть есть такая тема как
Код:
SystemMessageId.ALREADY_ENTERED_ANOTHER_INSTANCE_CANT_ENTER
а так же
Код:
pl.showQuestMovie(ExStartScenePlayer.SSQ_SEALING_EMPEROR_1ST);
у меня их нет, как их впихануть ?
__________________
Бешенство, это не болезнь © Pumo4ka

Последний раз редактировалось Puma1414; 01.02.2012 в 20:43. Причина: Добавлено сообщение
Puma1414 вне форума Отправить сообщение для Puma1414 с помощью ICQ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Epic Quest - The Emperor's Seals weTr1k Lineage II 1 15.01.2011 10:03
[spell=27158] Seal of the crusader FenixSlap World of WarCraft 0 28.11.2010 22:26


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 02:09. Часовой пояс GMT +3.

Вверх