Сейчас 08:06:10 Вторник, 2 июля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Изредка рабоатет таймер
DreiiДата: Пятница, 27 Января 2012, 20:27:12 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Code
void Trig_KillHero_Timer( ) {  
  timer t = GetExpiredTimer( )  
  int i = 0  
  whilenot t==KillTimer[i]  
  {  
  kill[i] = 0  
  i++   
  }
  t = null  
  }  
  void Trig_KillHero_Actions( )  
  {  
  int i = 0 ,x = 0,r = 0,f = 6
  int min=GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_FOOD_USED),sec=GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_FOOD_CAP)
  unit k = GetKillingUnit( ), d = GetTriggerUnit( )  
  player pk = GetOwningPlayer( k ), pd = GetOwningPlayer( d )  
  int idpk = GetPlayerId( pk ), idpd = GetPlayerId( pd ), gold = 55+25*GetHeroLevel(d), goldfb = 100
  string  m= I2S(min)
  string  s= I2S(sec)
  string time
  if min < 10  
  {  
  m = "0" + m    
  time=m+" : "+s
  }
    if sec < 10  
    {
    s = "0" + s
    time=m+" : "+s    
    }

  multiboarditem mbitem
if IsUnitType( d, UNIT_TYPE_HERO )  
{
  if GetRandomReal(0.,1.)>=.45
  {
SetPlayerState( pk, PLAYER_STATE_RESOURCE_LUMBER, GetPlayerState( pk, PLAYER_STATE_RESOURCE_LUMBER )+1)  
TT(pc[GetPlayerId(pk)]+"+1",k)
}  
spree[idpk] ++
kill[idpk] ++   
      if fb==false {  
          SetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD ) + gold+goldfb )  
          DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+pc[idpk]+GetPlayerName(pk)+"|r" + " pwned " + pc[idpd]+GetPlayerName(pd)+"|r's"+" head  for " + "|c00FFFF00" + I2S( R2I( gold) ) + " + " + I2S( R2I( goldfb ) ) + " gold!  -  |cFFFF0303First blood!|r" )  
          StartSound(gg_snd_firstblood)  
          fb = true  
          else
           if spree[idpk] > 2 and  spree[idpk]<=10
      {  
           StartSound( KS_Sound[spree[idpk]] )  
           DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+pc[idpk]+GetPlayerName(pk)+"|r"+" pwned " + pc[idpd]+GetPlayerName(pd)+"|r's" + " head  for " + "|c00FFFF00" + I2S( R2I( gold ) ) + "|r gold!  - " +ape[spree[idpk]]+ KS_Text[spree[idpk]])  
           elseif spree[idpk]>10
               spree[idpk]=10
               StartSound( KS_Sound[10] )  
               DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+pc[idpk]+GetPlayerName(pk)+"|r"+" pwned " + pc[idpd]+GetPlayerName(pd)+"|r's" + " head  for " + "|c00FFFF00" + I2S( R2I( gold ) ) + "|r gold!  - " +ape[10]+ KS_Text[10])  
              else
             DisplayTextToPlayer( GetLocalPlayer( ), 0., 0., "["+time+"] "+pc[idpk]+GetPlayerName(pk)+"|r" + " pwned " + pc[idpd]+GetPlayerName(pd)+"|r's" + " head  for " + "|c00FFFF00" + I2S( R2I( gold ) ) + "|r gold!")
             }  

           SetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD )+gold)  
           SetPlayerState( pd, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( pd, PLAYER_STATE_RESOURCE_GOLD )-gold / 2)  
           if spree[idpd] > 2  and spree[idpd]<=10
           {
           DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+pc[idpk]+GetPlayerName(pk)+"|r" + " has just ended "+pc[idpd]+GetPlayerName(pd)+"|r's"  + KS_Text[spree[idpd]]+ " streak for  "+"|c00FFFF00" + I2S( R2I(spree[idpd]*40 ) ) + "|r gold!")
           SetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( pk, PLAYER_STATE_RESOURCE_GOLD )+spree[idpd]*30)  
           }
          if kill[idpk] > 1 and kill[idpk]<=5  
          {  
              StartSound(SoundS[kill[idpk]])  
              DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+ pc[idpk]+GetPlayerName(pk)+"|r"  + TextS[kill[idpk]] )  
          }  
          if kill[idpk]>5  
          {
          StartSound(SoundS[5])  
          DisplayTextToPlayer( GetLocalPlayer( ), 0., 0.,"["+time+"] "+ pc[idpk]+GetPlayerName(pk)+"|r"  + TextS[5] )  
          }
                    
                      }
                      
             spree[idpd] = 0  
                    }
             TimerStart(KillTimer[idpk], 9., false, function Trig_KillHero_Timer )  
             flush locals
                    }

Почему то таймер иногда не сбрасывает kill[massive]


 

lawsonДата: Пятница, 27 Января 2012, 20:55:36 | Сообщение # 2
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Дрюша, все уже видели, какой ты кодер, зачем постить сюда весь код, которого большая часть вообще к ошибке не относится?

Добавлено (27 Январь 2012, 20:53:55)
---------------------------------------------
Quote (Dreii)
 whilenot t==KillTimer[i]  

а можно ли так делать? И зачем вообще их сравнивать?

Добавлено (27 Январь 2012, 20:55:36)
---------------------------------------------
Не понятно по какому условию запускаешь таймер.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

DreiiДата: Пятница, 27 Января 2012, 22:13:31 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, вроде испарвил
Code
void Trig_KillHero_Timer( ) {   
   timer t = GetExpiredTimer( )   
   int i = 0   
   whilenot t==KillTimer[i]   
   {   
   i++    
   }  
   kill[i] = 0   
   t = null   
   }  


 

SirNikolasДата: Суббота, 28 Января 2012, 14:46:40 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
^ Вот правильный вариант.

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz