Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Пишу евент (Буду просби помощи писать сюда)
#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
Ответ
#2
npcId == BASE2 and npcId == TURD1

Так не будет никогда если BASE2 != TURD1

А вообще возможно проверить если жив или нет с помощью !npc.isDead()
Может помочь.
Ответ
#3
iqman, это что такое? О_О
Код:
//delete 2min
Ответ
#4
Опять не совсем то пишу, что же такое со мной сегодня ))

Добавлено через 2 минуты
У меня вопрос, турелька одна в мире или несколько?

Добавлено через 2 минуты
Так-же в скрипте ее спавните? вообще как ее спавн происходит?
Ответ
#5
еще вопрос.
Код:
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 базы
Ответ
#6
Я с путонам правда долго не работал, но помню что там надо глобалы обозначать над каждым методом что бы они нормально работали.
Ну и естественно регистрацию всех участвующих НПЦ делать при загрузки скрипта.

Добавлено через 2 минуты
Ок, обозначаем спавны как глобалы, и тогда можем ими пользоваться в любом методе (нужно вроде в каждом методе их декларировать), и используем !npcX.isDead()
X = Ваш обозначенный НПЦ
НЕ работал года 2 с путоном, забыл уже почти все, буду рад если кто-то сможет помочь тут больше меня =)
Ответ
#7
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
Ответ
#8
npc1 - npc10
Смотря какой НПЦ инстанс проверяете.
Ответ
#9
А все врубился спс )
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Коллеги прошу помощи в поисках. IceWind 3 3,439 07-24-2021, 04:50 AM
Последний пост: Shargon
  Ракообразный хочет помощи!) LastStand 0 1,174 11-10-2013, 12:15 PM
Последний пост: LastStand
  Нужна помощь? Тебе сюда! CSharpRU 23 5,565 02-14-2012, 11:25 PM
Последний пост: zag22
  Евент валентинки для ребы cinex 13 4,619 11-22-2009, 11:53 PM
Последний пост: blTb
  La Gracia Final прошу помощи kpuc 1 4,028 09-13-2009, 02:24 PM
Последний пост: Tonchi

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)