Author Topic: Создал считалку урона для игры , немогу доделать .  (Read 1268 times)

0 Members and 1 Guest are viewing this topic.

maxempolk

  • Зашел в гости
  • *
  • Posts: 6
  • Clickermann Превыше всего
    • View Profile
Проблема в том что нужно поставить лимит для переменных для $lvl максимум 3 и минимум 0 , для $Mine минимум 0. Если я сам ставлю минимумы и максимумы работает но сбивает Скрипты для повышения и понижения количевства и уровня мин , они то перескакивают через число то вообще не работаеют прошу помочь , буду очень признателен .
Code: [Select]
start::
IF (ISKEYDOWN(#U)=1)
   $Mine=$Mine+1
   HINTPOPUP($Mine, "TechieScript Количевство мин")
   WAIT(1)
END_IF   //На U +1 мина

IF (ISKEYDOWN(#I)=1)
   $lvl=$lvl+1
   HINTPOPUP($lvl, "TechieScript Уровень мин")
   WAIT(1)
END_IF //на I +1 лвл мины.

IF (ISKEYDOWN(#J)=1)
   $Mine=$Mine-1
   HINTPOPUP($Mine, "TechieScript Количевство мин")
   WAIT(1)
END_IF //на J -1 мина

IF (ISKEYDOWN(#K)=1)
   $lvl=$lvl-1
   HINTPOPUP($lvl, "TechieScript Уровень мин")
   WAIT(1)
END_IF //на K -1 лвл мины.
//Скрипты для повышения и понижения количевства и уровня мин.




IF ($mine=0)
   $damage=$Mine*0
END_IF

IF ($lvl=0)
   $damage=$Mine*0
END_IF

IF ($lvl=1)
   $damage=($Mine*300)-((300/100*25)*$Mine)
END_IF //если мины 1 лвла то умножмается количевство мин на 200(1лвл)
IF ($lvl=2)
   $damage=($Mine*450)-((450/100*25)*$Mine)
END_IF //если мины 2 лвла то умножмается количевство мин на 450(2лвл)

IF ($lvl=3)
   $damage=($Mine*600)-((600/100*25)*$Mine)
END_IF //если мины 3 лвла то умножмается количевство мин на 600(3лвл)
//Условия подсчёта

HINTPOPUP($damage ,"Techis(Сумарный урон мин)")
//Макс лвл и мин количевство мин
goto start

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ошибки
Не start:: а start:
Не goto start а goto (start)
Не говоря уже что гото тут не нужны

Лучше выводить инфу в лог
Code: (clickermann) [Select]
IF (ISKEYDOWN(#U)=1)
   WHILE(ISKEYDOWN(#U)=1)
      WAITMS(5)
   END_CYC
   INC($Mine,1)
END_IF   //На U +1 мина

IF (ISKEYDOWN(#I)=1)
   WHILE(ISKEYDOWN(#I)=1)
      WAITMS(5)
   END_CYC
   IF($lvl < 3)
      INC($lvl,1)
   END_IF
END_IF //на I +1 лвл мины.

IF (ISKEYDOWN(#J)=1)
   WHILE(ISKEYDOWN(#J)=1)
      WAITMS(5)
   END_CYC
   IF($Mine > 0)
      INC($Mine,-1)
   END_IF
END_IF //на J -1 мина

IF (ISKEYDOWN(#K)=1)
   WHILE(ISKEYDOWN(#K)=1)
      WAITMS(5)
   END_CYC
   IF($lvl > 0)
      INC($lvl,-1)
   END_IF
END_IF //на K -1 лвл мины.

WAITMS(20) // общая задержка

THREAD(t1, 1) // отдельный поток
   
   IF ($mine=0)
      $damage=0
   END_IF
   
   IF ($lvl=0)
      $damage=0
   END_IF
   
   IF ($lvl=1)
      $damage=($Mine*300)-((300/100*25)*$Mine)
   END_IF //если мины 1 лвла то умножмается количевство мин на 200(1лвл)
   
   IF ($lvl=2)
      $damage=($Mine*450)-((450/100*25)*$Mine)
   END_IF //если мины 2 лвла то умножмается количевство мин на 450(2лвл)
   
   IF ($lvl=3)
      $damage=($Mine*600)-((600/100*25)*$Mine)
   END_IF //если мины 3 лвла то умножмается количевство мин на 600(3лвл)
   //Условия подсчёта
   
   LOGCLEAR
   LOGWRITE ("Количевство мин: ", $Mine)
   LOGWRITE ("Уровень мин:     ", $lvl)
   LOGWRITE ("Урон:            ", $damage)
   
   WAITMS(100) // общая задержка потока
   
END_THREAD

maxempolk

  • Зашел в гости
  • *
  • Posts: 6
  • Clickermann Превыше всего
    • View Profile
мне немного не то нужно было
Code: [Select]
IF (ISKEYDOWN(#U)=1)
   WHILE(ISKEYDOWN(#U)=1)
      WAITMS(5)
   END_CYC
   INC($Mine,1)
   HINTPOPUP($Mine,"Techis(мины)")
   WAIT(1.5)
END_IF   //На U +1 мина

IF (ISKEYDOWN(#I)=1)
   WHILE(ISKEYDOWN(#I)=1)
      WAITMS(5)
   END_CYC
   IF($lvl < 3)
      INC($lvl,1)
      HINTPOPUP($lvl,"Techis(мины)")
      WAIT(1.5)
   END_IF
END_IF //на I +1 лвл мины.

IF (ISKEYDOWN(#J)=1)
   WHILE(ISKEYDOWN(#J)=1)
      WAITMS(5)
   END_CYC
   IF($Mine > 0)
      INC($Mine,-1)
      HINTPOPUP($Mine,"Techis(мины)")
      WAIT(1.5)
   END_IF
END_IF //на J -1 мина
   IF (ISKEYDOWN(#K)=1)
      WHILE(ISKEYDOWN(#K)=1)
         WAITMS(5)
      END_CYC
      IF($lvl > 0)
         INC($lvl,-1)
         HINTPOPUP($lvl,"Techis(мины)")
         WAIT(1.5)
      END_IF
   END_IF //на K -1 лвл мины.
   WAITMS(20) // общая задержка
      IF ($mine=0)
         $damage=0
      END_IF
      IF ($lvl=0)
         $damage=0
      END_IF
      IF ($lvl=1)
         $damage=($Mine*300)-((300/100*25)*$Mine)
      END_IF //если мины 1 лвла то умножмается количевство мин на 200(1лвл)
      IF ($lvl=2)
         $damage=($Mine*450)-((450/100*25)*$Mine)
      END_IF //если мины 2 лвла то умножмается количевство мин на 450(2лвл)
      IF ($lvl=3)
         $damage=($Mine*600)-((600/100*25)*$Mine)
      END_IF //если мины 3 лвла то умножмается количевство мин на 600(3лвл)   
//Условия подсчёта
HINTPOPUP($damage ,"Techis(Сумарный урон мин)")

      WAITMS(100) // общая задержка потока
я переделал

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Зачем ты поток то удалил? Смысл в том что бы анализировать клавиши каждые 20 мс а инфу выводить гораздо реже
Вот так можно собрать инфу в единую строку и выводить в трей с обновлением каждые 500 мс. При этом клавиши все также будут проверяться каждые 20 мс

Code: (clickermann) [Select]
IF (ISKEYDOWN(#U)=1)
   WHILE(ISKEYDOWN(#U)=1)
      WAITMS(5)
   END_CYC
   INC($Mine,1)
END_IF   //На U +1 мина

IF (ISKEYDOWN(#I)=1)
   WHILE(ISKEYDOWN(#I)=1)
      WAITMS(5)
   END_CYC
   IF($lvl < 3)
      INC($lvl,1)
   END_IF
END_IF //на I +1 лвл мины.

IF (ISKEYDOWN(#J)=1)
   WHILE(ISKEYDOWN(#J)=1)
      WAITMS(5)
   END_CYC
   IF($Mine > 0)
      INC($Mine,-1)
   END_IF
END_IF //на J -1 мина

IF (ISKEYDOWN(#K)=1)
   WHILE(ISKEYDOWN(#K)=1)
      WAITMS(5)
   END_CYC
   IF($lvl > 0)
      INC($lvl,-1)
   END_IF
END_IF //на K -1 лвл мины.

WAITMS(20) // общая задержка

THREAD(t1, 1) // отдельный поток
   
   IF ($mine=0)
      $damage=0
   END_IF
   
   IF ($lvl=0)
      $damage=0
   END_IF
   
   IF ($lvl=1)
      $damage=($Mine*300)-((300/100*25)*$Mine)
   END_IF //если мины 1 лвла то умножмается количевство мин на 200(1лвл)
   
   IF ($lvl=2)
      $damage=($Mine*450)-((450/100*25)*$Mine)
   END_IF //если мины 2 лвла то умножмается количевство мин на 450(2лвл)
   
   IF ($lvl=3)
      $damage=($Mine*600)-((600/100*25)*$Mine)
   END_IF //если мины 3 лвла то умножмается количевство мин на 600(3лвл)
   //Условия подсчёта
   
   HINTPOPUP(STRCONCAT("Кол-во: ", $Mine, " Уровень: ", $lvl, " Урон: ", $damage),"Techis(Урон мин)")
   
   WAITMS(500) // общая задержка потока
   
END_THREAD

maxempolk

  • Зашел в гости
  • *
  • Posts: 6
  • Clickermann Превыше всего
    • View Profile
У меня не работают твои потоки , удалил ничего не поменялось . Попробовал на всех своих версиях 4.12 , 4.7, 3.X не ввыделяются потоки.
« Last Edit: June 27, 2017, 08:20:25 AM by maxempolk »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Потоки появились в версии 4.11.
Какая 4.7 и тем более 3.х