Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Проблема с скриптом (https://forum.zone-game.info/showthread.php?t=38815)

ownedbyhard 16.07.2015 15:48

Проблема с скриптом
 
Есть скрипт-квест на добычу ресурсов. Поменял импорты, все прописал на уровне сборки. В гс пишет failed to import custom: 9990_CraftSystem
Сборка пфсофт. Квест такой был на Ла2Ониксе (не реклама). Если есть у кого рабочий, буду очень благодарен.

[spoiler]
# Made by disKret
import sys
from net.sf.l2j import System
from net.sf.l2j.util.random import Rnd
from net.sf.l2j.gameserver.model import Inventory
from net.sf.l2j.gameserver.model.actor.instance import L2ItemInstance
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

qn = "9990_CraftSystem"

#NPC
NPC_ID = 30086

#QUEST ITEM
PACKAGE = 7263

ONE_TYPE_WEAPON = [1, 2, 3, 4]
ONE_TYPE_DROP_ID = [4037, 57, 4356, 4357, 6673]
ONE_TYPE_DROP_COUNT = 1
ONE_TYPE_DROP_CHANCE = 100
ONE_MOB_ID = [18342, 18341, 18343, 18330, 18331]

TWO_TYPE_WEAPON = [1, 2, 3, 4]
TWO_TYPE_DROP_ID = [1, 2, 3, 4, 5]
TWO_TYPE_DROP_COUNT = 1
TWO_TYPE_DROP_CHANCE = 100
TWO_MOB_ID = [111, 111, 111, 111, 111]

THREE_TYPE_WEAPON = [1, 2, 3, 4]
THREE_TYPE_DROP_ID = [1, 2, 3, 4, 5]
THREE_TYPE_DROP_COUNT = 1
THREE_TYPE_DROP_CHANCE = 100
THREE_MOB_ID = [111, 111, 111, 111, 111]

FO_TYPE_WEAPON = [1, 2, 3, 4]
FO_TYPE_DROP_ID = [1, 2, 3, 4, 5]
FO_TYPE_DROP_COUNT = 1
FO_TYPE_DROP_CHANCE = 100
FO_MOB_ID = [111, 111, 111, 111, 111]

FIVE_TYPE_WEAPON = [1, 2, 3, 4]
FIVE_TYPE_DROP_ID = [1, 2, 3, 4, 5]
FIVE_TYPE_DROP_COUNT = 1
FIVE_TYPE_DROP_CHANCE = 100
FIVE_MOB_ID = [111, 111, 111, 111, 111]


print "Up drop quest ACTIVE"

class Quest (JQuest) :

def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [PACKAGE]

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
st.setState(State('Started', QUEST))
return

def onAttack (self, npc, player, damage, isPet):
st = player.getQuestState(qn)
if not st : return
player = st.getPlayer()
npcId = npc.getNpcId()
if player.getInventory().getPaperdollItem(Inventory.P APERDOLL_LRHAND) != None:
type = player.getInventory().getPaperdollItem(Inventory.P APERDOLL_LRHAND)
elif player.getInventory().getPaperdollItem(Inventory.P APERDOLL_RHAND) != None:
type = player.getInventory().getPaperdollItem(Inventory.P APERDOLL_RHAND)
else :
return

itemId = type.getItemId()
if itemId in ONE_TYPE_WEAPON and npcId in ONE_MOB_ID:
if itemId == ONE_TYPE_WEAPON[0] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[1] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[2] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[3], ONE_TYPE_DROP_COUNT)
elif itemId == ONE_TYPE_WEAPON[3] :
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[0], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[1], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[2], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[3], ONE_TYPE_DROP_COUNT)
if ONE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(ONE_TYPE_DROP_ID[4], ONE_TYPE_DROP_COUNT)
elif itemId in TWO_TYPE_WEAPON and npcId in TWO_MOB_ID:
if itemId == TWO_TYPE_WEAPON[0] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[1] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[2] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[3], TWO_TYPE_DROP_COUNT)
elif itemId == TWO_TYPE_WEAPON[3] :
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[0], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[1], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[2], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[3], TWO_TYPE_DROP_COUNT)
if TWO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(TWO_TYPE_WEAPON[4], TWO_TYPE_DROP_COUNT)
elif itemId in THREE_TYPE_WEAPON and npcId in THREE_MOB_ID:
if itemId == THREE_TYPE_WEAPON[0] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[1] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[2] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[3], THREE_TYPE_DROP_COUNT)
elif itemId == THREE_TYPE_WEAPON[3] :
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[0], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[1], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[2], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[3], THREE_TYPE_DROP_COUNT)
if THREE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(THREE_TYPE_WEAPON[4], THREE_TYPE_DROP_COUNT)
elif itemId in FO_TYPE_WEAPON and npcId in FO_MOB_ID:
if itemId == FO_TYPE_WEAPON[0] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[1] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[2] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT) if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[2], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[3], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[4], FO_TYPE_DROP_COUNT)
elif itemId in FIVE_TYPE_WEAPON and npcId in FIVE_MOB_ID:
if itemId == FIVE_TYPE_WEAPON[0] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[1] :

if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[3], FO_TYPE_DROP_COUNT)
elif itemId == FO_TYPE_WEAPON[3] :
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[0], FO_TYPE_DROP_COUNT)
if FO_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FO_TYPE_WEAPON[1], FO_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[2] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[3], FIVE_TYPE_DROP_COUNT)
elif itemId == FIVE_TYPE_WEAPON[3] :
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[0], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[1], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[2], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[3], FIVE_TYPE_DROP_COUNT)
if FIVE_TYPE_DROP_CHANCE > Rnd.get(1, 100):
st.giveItems(FIVE_TYPE_WEAPON[4], FIVE_TYPE_DROP_COUNT)
else :
return

return


QUEST = Quest(9990, qn, "Craft System")

for i in ONE_MOB_ID :
QUEST.addAttackId(i)
for i in TWO_MOB_ID :
QUEST.addAttackId(i)
for i in THREE_MOB_ID :
QUEST.addAttackId(i)
for i in FO_MOB_ID :
QUEST.addAttackId(i)
for i in FIVE_MOB_ID :
QUEST.addAttackId(i)

QUEST.addStartNpc(NPC_ID)
QUEST.addTalkId(NPC_ID)
[/spoiler]


Текущее время: 17:28. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot