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

Эвент

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

Залил себе эвент пекло,столкнулся с проблемкой, когда тебя тпшит на эвент все бафы слетают,как сделать чтобы баф оставался?

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


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

а конткретнее можно?

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


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

Для начала выставь скрипт, тут же не телепаты...

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


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

class Quest (JQuest) :

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

 

def init_LoadGlobalData(self) :

self.startQuestTimer("open", AFTER_RESTART *60000, None, None)

return

 

def onTalk (Self,npc,player):

global closed

st = player.getQuestState(qn)

global ATTAKERS

npcId = npc.getNpcId()

if npcId == REGISTER:

if closed<>1 and int(Date().getHours()) not in TIM :

if not player.isInOlympiadMode() :

if player.getLevel() >= LEVEL:

if player.getName() not in ATTAKERS :

kolych = len(ATTAKERS)

if kolych <= YCH_MAX :

if PENI_KOL<>0:

if st.getQuestItemsCount(PENI)>PENI_KOL:

st.takeItems(PENI,PENI_KOL)

ATTAKERS.append(player.getName())

return "reg.htm"

else:

return "nopeni.htm"

else:

ATTAKERS.append(player.getName())

return "reg.htm"

else:

return "max.htm"

else:

return "yje.htm"

else:

return "lvl.htm"

else:

return "You register in olympiad games now"

else:

return "noreg.htm"

return

 

def onAdvEvent (self,event,npc,player):

global tek,nyj,ATTAKERS,kolych,annom,closed

if event == "open" :

ATTAKERS=[]

closed=0

annom=1

spawncoord=locr[Rnd.get(len(locr))]

npc=self.addSpawn(REGISTER,spawncoord[0],spawncoord[1],spawncoord[2],30000,False

,0)

npc.startAbnormalEffect(8192)

self.startQuestTimer("close", TIME_FOR_REG*60000, npc, None)

self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)

Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".")

annom=annom+1

if event == "close":

tek=0

nyj=1

self.startQuestTimer("open", TIME_FOR_WAIT*60000, None, None)

kolych = len(ATTAKERS)

if kolych < YCH_MIN :

npc.deleteMe()

closed=1

Announcements.getInstance().announceToAll("Event "+str(NAME)+" was canceled due lack of participation.")

else:

closed=1

Announcements.getInstance().announceToAll("Event "+str(NAME)+" has started!")

npc.deleteMe()

self.addSpawn(MOB,locf[0],locf[1],locf[2],30000,False,CANCEL_TIME*60000)

self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None)

for nm in ATTAKERS :

i=L2World.getInstance().getPlayer(nm)

try :

if i.isOnline() :

i.stopAllEffects()

i.teleToLocation(locfp[0],locfp[1],locfp[2])

except : pass

if event == "announce" and closed==0 and (TIME_FOR_REG - ANNOUNCE_INTERVAL * annom)<>0:

Announcements.getInstance().announceToAll(str(TIME_FOR_REG - ANNOUNCE_INTERVAL * annom ) + " minutes until event "+str(NAME)+" will start! You can register in "+str(LOC)+".")

annom=annom+1

self.startQuestTimer("announce", ANNOUNCE_INTERVAL*60000, None, None)

if event == "return" :

Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Players win!")

for nm in ATTAKERS :

i=L2World.getInstance().getPlayer(nm)

try :

if i.isOnline() :

i.teleToLocation(83456,148208,-3406)

except : pass

if event == "return_l" :

Announcements.getInstance().announceToAll("Event "+str(NAME)+" has ended. Monsters win!")

for nm in ATTAKERS :

i=L2World.getInstance().getPlayer(nm)

try :

if i.isOnline() :

i.teleToLocation(83456,148208,-3406)

except : pass

if event == "exit" :

ATTAKERS.remove(player.getName())

return "exit.htm"

return

 

def onAttack (self,npc,player,damage,isPet):

if player.getName() not in ATTAKERS :

try:

player.teleToLocation(147725,-56517,9999)

except : pass

return

 

def onKill(self,npc,player,isPet):

global tek,nyj,kolych

mobcount=(MOBS_TO_CHEL * kolych)+15

tek=tek+1

if tek==nyj and (2*nyj) < mobcount:

for i in range(0,2*tek) :

randx = 25*(20-Rnd.get(40))

randy = 25*(20-Rnd.get(40))

self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000)

nyj=2*tek

tek=0

self.cancelQuestTimer("return_l",None,None)

self.startQuestTimer("return_l", CANCEL_TIME*60000, None, None)

npcppc=self.addSpawn(MOB,locf[0],locf[1],locf[2]+100,30000,False,CANCEL_TIME*600

00)

npcppc.broadcastPacket(CreatureSay(npcppc.getObjectId(), 1, "Event "+str(NAME)+": ","You have "+str(CANCEL_TIME)+" minutes for kill this monsters!"))

npcppc.deleteMe()

elif tek==nyj and (2*nyj) >= mobcount:

for i in range(0,mobcount) :

randx = 25*(20-Rnd.get(40))

randy = 25*(20-Rnd.get(40))

mobb=self.addSpawn(MOB,locf[0] + randx, locf[1] + randy, locf[2]+100,30000,False,CANCEL_TIME*60000)

mobb.startAbnormalEffect(8192)

nyj=mobcount+1

tek=0

self.cancelQuestTimer("return_l",None,None)

self.startQuestTimer("return_l", (CANCEL_TIME)*60000, None, None)

npcppc=self.addSpawn(MOB,locf[0],locf[1],locf[2]+100,30000,False,CANCEL_TIME*600

00)

npcppc.broadcastPacket(CreatureSay(npcppc.getObjectId(), 1, "Event "+str(NAME)+": ","You have "+str(CANCEL_TIME)+" minutes for kill this monsters!"))

npcppc.deleteMe()

elif tek==mobcount:

for nm in ATTAKERS :

player=L2World.getInstance().getPlayer(nm)

if player<>None:

if abs(abs(player.getX())-abs(locf[0]))>RAD or abs(abs(player.getY())-abs(locf[1]))>RAD :

ATTAKERS.remove(nm)

else:

ATTAKERS.remove(nm)

for nm in ATTAKERS :

i=L2World.getInstance().getPlayer(nm)

try:

for id, countmin, countmax, chance in REWARD :

if Rnd.get(100)<=chance :

count=Rnd.get(countmin,countmax)

i.getQuestState(qn).giveItems(id,count)

except : pass

self.startQuestTimer("return", 30000, None, None)

self.cancelQuestTimer("return_l",None,None)

return

 

QUEST = Quest(5555, qn, "Custom")

 

CREATED = State('Start', QUEST)

QUEST.setInitialState(CREATED)

 

QUEST.addStartNpc(int(REGISTER))

QUEST.addTalkId(int(REGISTER))

 

QUEST.addKillId(int(MOB))

QUEST.addAttackId(int(MOB))

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


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

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

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

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