Сообщений: 10
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
1
Такс пишу евент аля ДоТа.
За исходник взял ctf евент так как больше всего подходит.
Сделал спавн турелек и зданий. Защитил их.
1 что мне надо помочь:
Код: def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId == BASE2 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
Как мне сделеать нечто похожее
Код: def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId == BASE2 and npcId == TURD1 [color=Red]"Как написать тут проверку на то жив ли тот нпц или нет"[/color] :
player.reduceCurrentHp(9999,player)
Мне надо сделать так чтобы люди не били базу пока Турельки живи.
сли нпцид == база2 и нпцид == турелька1 жива
то хп чудика который атакует ее -9999
Сообщений: 1,883
Тем: 53
Зарегистрирован: Feb 2011
npcId == BASE2 and npcId == TURD1
Так не будет никогда если BASE2 != TURD1
А вообще возможно проверить если жив или нет с помощью !npc.isDead()
Может помочь.
Сообщений: 10
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
1
iqman, это что такое? О_О
Сообщений: 1,883
Тем: 53
Зарегистрирован: Feb 2011
04-01-2012, 05:30 PM
(Сообщение последний раз редактировалось: 04-01-2012, 05:32 PM L2scripts-Guard.)
Опять не совсем то пишу, что же такое со мной сегодня ))
Добавлено через 2 минуты
У меня вопрос, турелька одна в мире или несколько?
Добавлено через 2 минуты
Так-же в скрипте ее спавните? вообще как ее спавн происходит?
Сообщений: 10
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
1
04-01-2012, 05:34 PM
(Сообщение последний раз редактировалось: 04-01-2012, 05:35 PM La2Riviera.)
еще вопрос.
Код: def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId == BASE2 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
if npcId == TURD1 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
if npcId == TURD2 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
if npcId == TURD3 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
if npcId == INHD and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
if npcId == BASE1 and player.getName() not in TEAM2 :
player.reduceCurrentHp(9999,player)
if npcId == TURL1 and player.getName() not in TEAM2 :
player.reduceCurrentHp(9999,player)
if npcId == TURL2 and player.getName() not in TEAM2 :
player.reduceCurrentHp(9999,player)
if npcId == TURL3 and player.getName() not in TEAM2 :
player.reduceCurrentHp(9999,player)
if npcId == INHL and player.getName() not in TEAM2 :
player.reduceCurrentHp(9999,player)
return
Почему эта фишка работает ток на BASE1/2.
Просто когда я в команде 1 и бью свою вышку то мну не убивает 0_0 (думал мб напутал тим1/2 но нет когда бью вышку противника то тоже не убивает)
Добавлено через 48 секунд
iqman, Спавн вот так.
Код: Announcements.getInstance().announceToAll("Event "+str(NAME)+" has started!")
npc.deleteMe()
npc1=self.addSpawn(BASE1,t1[0],t1[1],t1[2],30000,False,0)
npc2=self.addSpawn(BASE2,t2[0],t2[1],t2[2],30000,False,0)
npc3=self.addSpawn(TURL1,lt1[0],lt1[1],lt1[2],3600000,False,0)
npc4=self.addSpawn(TURL2,lt2[0],lt2[1],lt2[2],3600000,False,0)
npc5=self.addSpawn(TURL3,lt3[0],lt3[1],lt3[2],3600000,False,0)
npc6=self.addSpawn(INHL,li[0],li[1],li[2],900000,False,0)
npc7=self.addSpawn(TURD1,dt1[0],dt1[1],dt1[2],3600000,False,0)
npc8=self.addSpawn(TURD2,dt2[0],dt2[1],dt2[2],3600000,False,0)
npc9=self.addSpawn(TURD3,dt3[0],dt3[1],dt3[2],3600000,False,0)
npc10=self.addSpawn(INHD,di[0],di[1],di[2],900000,False,0)
И их всего 6 + инхибитора 2 + 2 базы
Сообщений: 1,883
Тем: 53
Зарегистрирован: Feb 2011
04-01-2012, 05:36 PM
(Сообщение последний раз редактировалось: 04-01-2012, 05:38 PM L2scripts-Guard.)
Я с путонам правда долго не работал, но помню что там надо глобалы обозначать над каждым методом что бы они нормально работали.
Ну и естественно регистрацию всех участвующих НПЦ делать при загрузки скрипта.
Добавлено через 2 минуты
Ок, обозначаем спавны как глобалы, и тогда можем ими пользоваться в любом методе (нужно вроде в каждом методе их декларировать), и используем !npcX.isDead()
X = Ваш обозначенный НПЦ
НЕ работал года 2 с путоном, забыл уже почти все, буду рад если кто-то сможет помочь тут больше меня =)
Сообщений: 10
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
1
04-01-2012, 05:42 PM
(Сообщение последний раз редактировалось: 04-01-2012, 06:11 PM La2Riviera.)
iqman, спс щас попробуем )
Добавлено через 1 минуту
У нас тут ! задает параметр НЕ да?
Добавлено через 7 минут
Разобрался почему не работало
Код: if npcId == TURD3 and player.getName() not in TEAM1 :
player.reduceCurrentHp(9999,player)
Забыл
Код: QUEST.addKillId(int(TURD3))
QUEST.addAttackId(int(TURD3))
QUEST.addSkillUseId(int(TURD3))
Добавлено через 29 минут
!npcX.isDead()
Вместо Х
должен быть именно ИД нпц да? нельзя вписать переменную что я ввел
TURD3
Сообщений: 1,883
Тем: 53
Зарегистрирован: Feb 2011
npc1 - npc10
Смотря какой НПЦ инстанс проверяете.
Сообщений: 10
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
1
|