[help] Квестрейты, дроплист.
Сборка:l2emu Gracia part2 rev 13..
Краткое изложение СУТИ проблемы:
Помогите пожалуйсто уже незнаю что делать !!! ЭТО УЖОС!!! собственно
Квест рейты:
Меняеш в конфиге у сервера на это реакции 0!! Читал на форуме у всех это так!!! КАК ЭТО ИСПРАВИТЬ игроки у меня орут и жалуються на это а сервер х100 и это важно!!!
Дроплист:
Дроп лист у них вообще кривой! Может у когонить есть норм дроп лист? тк с баюма падает ток 1 кольцо И шанс ОЧЕНЬ МАЛЕНЬКИЙ
Очень прошу вашей помощи!!!!
Вопрос: в чем причина и как исправить?
Мои соображения по этому поводу: толи нада править ЯДРО но я НЕУМЕЮ может кто скажет как исправить БУДУ ОЧЕНЬ БЛАГОДАРЕН!!!!!
По квестам : надо править в самих евестах
По епикрб : в настройках рейтов (не помню точно где но я менял так,что у меня падало по 100 колец ))
Nice42ru: По квестам : надо править в самих евестах
КАК ?????
http://la2base.ru/forum/index.php?showtopic=38563 почитай тут вроде раскрыли этот вопрос , спасибку тыкай
# Created by t0rm3nt0r
import sys
from net.l2emuproject.gameserver.model.quest import State
from net.l2emuproject.gameserver.model.quest import QuestState
from net.l2emuproject.gameserver.model.quest.jython import QuestJython as JQuest
qn = "619_RelicsOfTheOldEmpire"
RELICS = 7254
ENTRANCE = 7075
GHOST = 31538
MOBS = [ 21396,21397,21398,21399,21400,21401,21402,21403,21404,21405,21406,21407,21408,21
409,21410,21411,21412,21413,21414, \
21415,21416,21417,21418,21419,21420,21421,21422,21423,21424,21425,21426,21427,21
428,21429,21430,21431,21432,21433,21434,21798, \
21799,21800,18120,18121,18122,18123,18124,18125,18126,18127,18128,18129,18130,18
131,18132,18133,18134,18135,18136,18137,18138, \
18139,18140,18141,18142,18143,18144,18145,18146,18147,18148,18149,18150,18151,18
152,18153,18154,18155,18156,18157,18158,18159, \
18160,18161,18162,18163,18164,18165,18166,18167,18168,18169,18170,18171,18172,18
173,18174,18175,18176,18177,18178,18179,18180, \
18181,18182,18183,18184,18185,18186,18187,18188,18189,18190,18191,18192,18193,18
194,18195,18196,18197,18198,18199,18200,18201, \
18202,18203,18204,18205,18206,18207,18208,18209,18210,18211,18212,18213,18214,18
215,18216,18217,18218,18219,18220,18221,18222, \
18223,18224,18225,18226,18227,18228,18229,18230,18231,18232,18233,18234,18235,18
236,18237,18238,18239,18240,18241,18242,18243, \
18244,18245,18246,18247,18248,18249,18250,18251,18252,18253,18254,18255,18256,13
008,13009,13010,13011,13012,13013,13016,13017]
REWARDS = [ 6881,6883,6885,6887,6891,6893,6895,6897,6899,7580 ]
REWARDS2= [ 6882,6884,6886,6888,6892,6894,6896,6898,6900,7581 ]
#Change this value to 1 if you wish 100% recipes, default 60%
ALT_RP100=0
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [RELICS, ENTRANCE]
def onEvent (self,event,st) :
htmltext = event
relics = st.getQuestItemsCount(RELICS)
if event == "31538-03.htm" :
if st.getPlayer().getLevel() >= 75 :
st.set("cond","1")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
else :
htmltext = "31538-02.htm"
st.exitQuest(1)
elif event == "31538-07.htm" :
if relics >= 1000 :
htmltext = "31538-07.htm"
st.takeItems(RELICS,1000)
if ALT_RP100 == 1:
st.giveItems(REWARDS2[st.getRandom(len(REWARDS2))],1)
else:
st.giveItems(REWARDS[st.getRandom(len(REWARDS))],1)
else :
htmltext = "31538-05.htm"
elif event == "31538-08.htm" :
st.exitQuest(1)
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 st :
id = st.getState()
cond = st.getInt("cond")
relics = st.getQuestItemsCount(RELICS)
entrance = st.getQuestItemsCount(ENTRANCE)
if id==State.CREATED:
if player.getLevel() >= 75 :
htmltext="31538-01.htm"
else :
htmltext="31538-02.htm"
st.exitQuest(1)
else :
if cond == 1 and relics >= 1000 :
htmltext = "31538-04.htm"
elif entrance :
htmltext = "31538-05.htm"
else :
htmltext = "31538-05a.htm"
return htmltext
def onKill(self,npc,player,isPet):
partyMember = self.getRandomPartyMember(player, "1")
if not partyMember: return
st = partyMember.getQuestState(qn)
if st :
if st.getState() == State.STARTED :
numItems, chance = divmod(100,100)
if st.getRandom(100) < chance :
numItems += 1
st.giveItems(RELICS,int(numItems))
st.playSound("ItemSound.quest_itemget")
if st.getRandom(100) < 5 :
st.giveItems(ENTRANCE,1)
st.playSound("ItemSound.quest_middle")
return
QUEST = Quest(619, qn, "Relics of the Old Empire")
QUEST.addStartNpc(GHOST)
QUEST.addTalkId(GHOST)
for mobId in MOBS :
QUEST.addKillId(mobId)
КАК В ЭТОМ КВЕСТЕ увеличить дроп итемов чтобы дроп был не 1 а 10 подскажите ПЛЗ Спасибка обеспечена
Ешё 1-ин "АП" не через положенное время дам предупреждение.
valik-02 продаём прогу в другом месте.
Отписываемся только по теме за флуд будут наказания.
вопроса по квестам я непонял, а нащьот шанса выпадения, можно поставить в конфигах в гейм сервер. там есть,
а если проваельно понял шанс выпадение вест вищей там тоже настраюется )
и ищо рейдов можеш настроить в ручную с игры, добавить в дроп лист больший шанс выпадение колец, и настроить чтоб падало от 1-3
Я кидал ИНИТ квест прошу его разобрать и где нада изминить значение чтобы падала не по 1 а по 10
Меняем
Код
st.giveItems(ENTRANCE,1)
на
Код
st.giveItems(ENTRANCE,10)
Пробывал, 0 реакции
ps прошу тему АПнуть тк проблема нерешена =\
Скажи ид того, что является призом за квест, т.к. в квесте дают много чего, а что именно приз - неизвестно.
ENTRANCE = 7075
либо 7254, либо 7075
#Made by Emperorc
import sys
from net.l2emuproject.gameserver.model.quest import State
from net.l2emuproject.gameserver.model.quest import QuestState
from net.l2emuproject.gameserver.model.quest.jython import QuestJython as JQuest
qn = "611_AllianceWithVarkaSilenos"
#NPC
Naran_Ashanuk = 31378
#MOB
#mobs for Alliance lvl 1:Ketra Orc footmen, raiders, scouts, shamans and war hounds
Ketra_One = [ 21324, 21325, 21327, 21328, 21329 ]
#mobs for Alliance lvl 2 : Ketra Orc-warriors, Lieutenants, mediums, Elite Soldiers,\
#White Captains, Seers, Commanders, Elite Guards
Ketra_Two = [ 21331, 21332, 21334, 21335, 21336, 21338, 21343, 21344 ]
#mobs for Alliance lvl 3 and up SHOULD BE:Ketra Orc captains, battalion commanders, \
#grand seers, chief shamans, chief royal guards, prophets, Prophet's Guards, and Prophet's Aides
#AS LISTED in npc.sql: Ketra Orc-General, Battalion Commander, Grand Seer, \
#Ketra's - Head Shaman, Head Guard, Prophet, Prophet's Guard, and Prophet's Aide
Ketra_Three = [ 21339, 21340, 21342, 21345, 21346, 21347, 21348, 21349 ]
#All Varka Silenos mobs
Varka_Silenos = [ 21350, 21351, 21353, 21354, 21355, 21357, 21358, 21360, 21361, \
21362, 21369, 21370, 21364, 21365, 21366, 21368, 21371, 21372, 21373, 21374, 21375 ]
Chance = {
21325:500,
21339:500,
21340:500,
21324:500,
21336:500,
21331:500,
21342:508,
21327:509,
21334:509,
21335:518,
21343:518,
21329:519,
21328:521,
21338:527,
21344:604,
21346:604,
21348:626,
21349:626,
21345:627,
21332:628,
21347:649
}
Chance_molar = {
21339:568,
21340:568,
21324:500,
21336:529,
21331:529,
21342:578,
21327:510,
21334:539,
21343:548,
21329:519,
21328:522,
21338:558,
21345:713,
21332:664,
21347:638
}
#Quest Items
Varka_Badge_Soldier, Varka_Badge_Officer, Varka_Badge_Captain = [7216, 7217, 7218]
Ketra_Alliance_One, Ketra_Alliance_Two, Ketra_Alliance_Three, \
Ketra_Alliance_Four, Ketra_Alliance_Five = [7211, 7212, 7213, 7214, 7215]
Varka_Alliance_One, Varka_Alliance_Two, Varka_Alliance_Three, \
Varka_Alliance_Four, Varka_Alliance_Five = [7221, 7222, 7223, 7224, 7225]
Ketra_Badge_Soldier, Ketra_Badge_Officer, Ketra_Badge_Captain = [7226, 7227,7228]
Valor_Feather, Wisdom_Feather = [ 7229, 7230 ]
Molar = 7234
#drop system - cond:[item_id,max,drop_id]
One ={
1:[57,100,Ketra_Badge_Soldier],
2:[Varka_Alliance_One,200,Ketra_Badge_Soldier],
3:[Varka_Alliance_Two,300,Ketra_Badge_Soldier],
4:[Varka_Alliance_Three,300,Ketra_Badge_Soldier],
5:[Varka_Alliance_Four,400,Ketra_Badge_Soldier]
}
Two ={
2:[Varka_Alliance_One,100,Ketra_Badge_Officer],
3:[Varka_Alliance_Two,200,Ketra_Badge_Officer],
4:[Varka_Alliance_Three,300,Ketra_Badge_Officer],
5:[Varka_Alliance_Four,400,Ketra_Badge_Officer]
}
Three ={
3:[Varka_Alliance_Two,100,Ketra_Badge_Captain],
4:[Varka_Alliance_Three,200,Ketra_Badge_Captain],
5:[Varka_Alliance_Four,200,Ketra_Badge_Captain]
}
def decreaseAlliance(st) :
if st.getPlayer().isAlliedWithVarka() :
cond = st.getInt("cond")
id = st.getInt("id")
st.takeItems(Ketra_Badge_Soldier,-1)
st.takeItems(Ketra_Badge_Officer,-1)
st.takeItems(Ketra_Badge_Captain,-1)
st.takeItems(Valor_Feather,-1)
st.takeItems(Wisdom_Feather,-1)
st.getPlayer().setAllianceWithVarkaKetra(0)
st.exitQuest(1)
if cond == 2 :
if id == 2 :
st.takeItems(Varka_Alliance_One,-1)
else :
st.takeItems(Varka_Alliance_Two,-1)
st.giveItems(Varka_Alliance_One,1)
elif cond == 3 :
if id == 2:
st.takeItems(Varka_Alliance_Two,-1)
st.giveItems(Varka_Alliance_One,1)
else :
st.takeItems(Varka_Alliance_Three,-1)
st.giveItems(Ketra_Alliance_Two,1)
elif cond == 4 :
if id == 2 :
st.takeItems(Varka_Alliance_Three,-1)
st.giveItems(Varka_Alliance_Two,1)
else :
st.takeItems(Varka_Alliance_Four,-1)
st.giveItems(Varka_Alliance_Three,1)
elif cond == 5 :
if id == 2 :
st.takeItems(Varka_Alliance_Four,-1)
st.giveItems(Varka_Alliance_Three,1)
else :
st.takeItems(Varka_Alliance_Five,-1)
st.giveItems(Varka_Alliance_Four,1)
elif cond == 6 :
st.takeItems(Varka_Alliance_Five,-1)
st.giveItems(Varka_Alliance_Four,1)
def giveReward(st,item,chance,MAX,drop) :
if st.getQuestItemsCount(item) > 0 :
count = st.getQuestItemsCount(drop)
if count < MAX or drop == Molar :
numItems,chance = divmod(chance,1000)
if st.getRandom(1000) < chance :
numItems += 1
numItems = int(numItems)
if numItems != 0 :
if count + numItems >= MAX and drop != Molar :
numItems = MAX - count
st.playSound("ItemSound.quest_middle")
elif drop == Molar and int((count+numItems)/100) > int(count/100) :
st.playSound("ItemSound.quest_middle")
else :
st.playSound("ItemSound.quest_itemget")
st.giveItems(drop,numItems)
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
self.questItemIds = [Ketra_Badge_Soldier, Ketra_Badge_Officer, Ketra_Badge_Captain]
def onEvent (self,event,st) :
cond = st.getInt("cond")
id = st.getInt("id")
htmltext = event
player = st.getPlayer()
if event == "31378-03a.htm" :
if player.getLevel() >= 74 :
st.set("cond","1")
st.set("id","2")
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
htmltext = "31378-03a.htm"
else :
htmltext = "31378-02b.htm"
player.setAllianceWithVarkaKetra(0)
st.exitQuest(1)
elif event == "31378-10-1.htm" :
htmltext = "31378-10-1.htm"
st.set("id","3")
st.takeItems(Ketra_Badge_Soldier, 100)
st.giveItems(Varka_Alliance_One, 1)
player.setAllianceWithVarkaKetra(-1)
st.playSound("ItemSound.quest_middle")
elif event == "31378-10-2.htm" :
htmltext = "31378-10-2.htm"
st.set("id","3")
st.takeItems(Ketra_Badge_Soldier, 200)
st.takeItems(Ketra_Badge_Officer, 100)
st.takeItems(Varka_Alliance_One, -1)
st.giveItems(Varka_Alliance_Two, 1)
player.setAllianceWithVarkaKetra(-2)
st.playSound("ItemSound.quest_middle")
elif event == "31378-10-3.htm" :
htmltext = "31378-10-3.htm"
st.set("id","3")
st.takeItems(Ketra_Badge_Soldier, 300)
st.takeItems(Ketra_Badge_Officer, 200)
st.takeItems(Ketra_Badge_Captain, 100)
st.takeItems(Varka_Alliance_Two, -1)
st.giveItems(Varka_Alliance_Three, 1)
player.setAllianceWithVarkaKetra(-3)
st.playSound("ItemSound.quest_middle")
elif event == "31378-10-4.htm" :
htmltext = "31378-10-4.htm"
st.set("id","3")
st.takeItems(Ketra_Badge_Soldier, 300)
st.takeItems(Ketra_Badge_Officer, 300)
st.takeItems(Ketra_Badge_Captain, 200)
st.takeItems(Varka_Alliance_Three, -1)
st.takeItems(Valor_Feather,-1)
st.giveItems(Varka_Alliance_Four, 1)
player.setAllianceWithVarkaKetra(-4)
st.playSound("ItemSound.quest_middle")
elif event == "31378-11a.htm" :
htmltext = "31378-11a.htm"
elif event == "31378-19.htm" :
htmltext = "31378-19.htm"
elif event == "31378-11b.htm" :
htmltext = "31378-11b.htm"
elif event == "31378-20.htm" :
htmltext = "31378-20.htm"
st.takeItems(Ketra_Badge_Soldier, -1)
st.takeItems(Ketra_Badge_Officer, -1)
st.takeItems(Ketra_Badge_Captain, -1)
st.takeItems(Varka_Alliance_One, -1)
st.takeItems(Varka_Alliance_Two, -1)
st.takeItems(Varka_Alliance_Three, -1)
st.takeItems(Varka_Alliance_Four, -1)
st.takeItems(Varka_Alliance_Five, -1)
st.takeItems(Valor_Feather,-1)
st.takeItems(Wisdom_Feather,-1)
player.setAllianceWithVarkaKetra(0)
st.exitQuest(1)
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 st :
npcId = npc.getNpcId()
cond = st.getInt("cond")
id = st.getInt("id")
KBadgeS = st.getQuestItemsCount(Ketra_Badge_Soldier)
KBadgeO = st.getQuestItemsCount(Ketra_Badge_Officer)
KBadgeC = st.getQuestItemsCount(Ketra_Badge_Captain)
VAlliance1 = st.getQuestItemsCount(Varka_Alliance_One)
VAlliance2 = st.getQuestItemsCount(Varka_Alliance_Two)
VAlliance3 = st.getQuestItemsCount(Varka_Alliance_Three)
VAlliance4 = st.getQuestItemsCount(Varka_Alliance_Four)
VAlliance5 = st.getQuestItemsCount(Varka_Alliance_Five)
VAlliance = VAlliance1 + VAlliance2 + VAlliance3 + VAlliance4 + VAlliance5
KAlliance = st.getQuestItemsCount(Ketra_Alliance_One) + \
st.getQuestItemsCount(Ketra_Alliance_Two) + st.getQuestItemsCount(Ketra_Alliance_Three) + \
st.getQuestItemsCount(Ketra_Alliance_Four) + st.getQuestItemsCount(Ketra_Alliance_Five)
Valor = st.getQuestItemsCount(Valor_Feather)
Wisdom = st.getQuestItemsCount(Wisdom_Feather)
if npcId == Naran_Ashanuk :
st.set("id","1")
if player.isAlliedWithKetra() or KAlliance :
htmltext= "31378-02a.htm"
st.exitQuest(1)
elif VAlliance == 0 :
if cond != 1 :
htmltext = "31378-01.htm"
else :
st.set("id","2")
if KBadgeS < 100 :
htmltext= "31378-03b.htm"
elif KBadgeS >= 100 :
htmltext = "31378-09.htm"
elif VAlliance :
st.setState(State.STARTED)
st.set("id","2")
if VAlliance1 :
if cond != 2 :
htmltext = "31378-04.htm"
st.set("cond","2")
player.setAllianceWithVarkaKetra(-1)
else :
if KBadgeS < 200 or KBadgeO < 100 :
htmltext = "31378-12.htm"
elif KBadgeS >= 200 and KBadgeO >= 100 :
htmltext = "31378-13.htm"
elif VAlliance2 :
if cond != 3 :
htmltext = "31378-05.htm"
st.set("cond","3")
player.setAllianceWithVarkaKetra(-2)
else :
if KBadgeS < 300 or KBadgeO < 200 or KBadgeC < 100 :
htmltext = "31378-15.htm"
elif KBadgeS >= 300 and KBadgeO >= 200 and KBadgeC >= 100 :
htmltext = "31378-16.htm"
elif VAlliance3 :
if cond != 4 :
htmltext = "31378-06.htm"
st.set("cond","4")
player.setAllianceWithVarkaKetra(-3)
else:
if KBadgeS < 300 or KBadgeO < 300 or KBadgeC < 200 or Valor == 0 :
htmltext = "31378-21.htm"
elif KBadgeS >= 300 and KBadgeO >= 300 and KBadgeC >= 200 and Valor > 0 :
htmltext = "31378-22.htm"
elif VAlliance4 :
if cond != 5 :
htmltext = "31378-07.htm"
st.set("cond","5")
player.setAllianceWithVarkaKetra(-4)
else :
if KBadgeS < 400 or KBadgeO < 400 or KBadgeC < 200 or Wisdom == 0 :
htmltext = "31378-17.htm"
elif KBadgeS >= 400 and KBadgeO >= 400 and KBadgeC >= 200 and Wisdom > 0 :
htmltext = "31378-10-5.htm"
st.takeItems(Ketra_Badge_Soldier, 400)
st.takeItems(Ketra_Badge_Officer, 400)
st.takeItems(Ketra_Badge_Captain, 200)
st.takeItems(Varka_Alliance_Four, -1)
st.takeItems(Wisdom_Feather,-1)
st.giveItems(Varka_Alliance_Five, 1)
player.setAllianceWithVarkaKetra(-5)
st.set("id","3")
st.playSound("ItemSound.quest_middle")
elif VAlliance5 :
if cond != 6 :
htmltext = "31378-18.htm"
st.set("cond","6")
player.setAllianceWithVarkaKetra(-5)
else:
htmltext = "31378-08.htm"
return htmltext
def onKill(self,npc,player,isPet):
partyMember = self.getRandomPartyMemberState(player,State.STARTED)
if not partyMember: return
st = partyMember.getQuestState(qn)
if st :
if st.getState() == State.STARTED :
npcId = npc.getNpcId()
cond = st.getInt("cond")
id = st.getInt("id")
st2 = partyMember.getQuestState("612_WarWithKetraOrcs")
if not partyMember.isAlliedWithKetra() :
if (npcId in Ketra_One) or (npcId in Ketra_Two) or (npcId in Ketra_Three):
item = 0
if cond <= 5 :
if npcId in Ketra_One :
item,MAX,drop = One[cond]
elif npcId in Ketra_Two and cond > 1:
item,MAX,drop = Two[cond]
elif npcId in Ketra_Three and cond > 2 :
item,MAX,drop = Three[cond]
if item != 0 :
if st.getQuestItemsCount(drop) == MAX :
item = 0
chance = Chance[npcId]
if st2 :
if (st.getRandom(2) == 1 or item == 0) and npcId in Chance_molar.keys() :
item = 57
MAX = 100
drop = Molar
chance = Chance_molar[npcId]
giveReward(st,item,chance,MAX,drop)
elif id == 2 and item != 0 :
giveReward(st,item,chance,MAX,drop)
elif id == 2 and item != 0 :
giveReward(st,item,chance,MAX,drop)
elif npcId in Varka_Silenos :
decreaseAlliance(st)
party = partyMember.getParty()
if party :
for player in party.getPartyMembers().toArray() :
pst = player.getQuestState(qn)
if pst :
decreaseAlliance(pst)
return
QUEST = Quest(611,qn,"Alliance With Varka Silenos")
QUEST.addStartNpc(Naran_Ashanuk)
QUEST.addTalkId(Naran_Ashanuk)
for mobId in Chance.keys() :
QUEST.addKillId(mobId)
for mobId in Varka_Silenos :
QUEST.addKillId(mobId)
Помогите пожалуйсто Где тут изминять шанс и поставить ШАНС выпадения 100% ато он вообще УБОГИЙ!!!!!! =((
сюда глянь http://la2base.ru/forum/index.php?showtopic=38563
Остальное правится по тому же принципу
Ну уж если совсем на твоём примере то правь тут:
def giveReward(st,item,chance,MAX,drop) :
if st.getQuestItemsCount(item) > 0 :
count = st.getQuestItemsCount(drop)
if count < MAX or drop == Molar :
numItems,chance = divmod(10*chance,1000) <-- Число 10 и есть множитель!
if st.getRandom(1000) < chance :
numItems += 1



