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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Плавный переход тумана из одного цвета в другой
[DUОS]Дата: Четверг, 13 Января 2011, 17:06:10 | Сообщение # 1
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Помогите найти ошибку в системе.
Code
function SetTerrainFogSlight_Timer takes nothing returns nothing
     local timer t = GetExpiredTimer()     
     local integer pid = LoadInteger(udg_H,GetHandleId(t),0)
     local integer s = LoadInteger(udg_FuncHash[1],pid,3)
     local real zs = LoadReal(udg_FuncHash[1],pid,4)
     local real ze = LoadReal(udg_FuncHash[1],pid,5)
     local real d = LoadReal(udg_FuncHash[1],pid,6)
     local real r = LoadReal(udg_FuncHash[1],pid,0)
     local real g = LoadReal(udg_FuncHash[1],pid,1)
     local real b = LoadReal(udg_FuncHash[1],pid,2)
      
     local integer style = LoadInteger(udg_H,GetHandleId(t),1)
     local real zstart = LoadReal(udg_H,GetHandleId(t),2)
     local real zend = LoadReal(udg_H,GetHandleId(t),3)
     local real density = LoadReal(udg_H,GetHandleId(t),4)
     local real red = LoadReal(udg_H,GetHandleId(t),5)
     local real green = LoadReal(udg_H,GetHandleId(t),6)
     local real blue = LoadReal(udg_H,GetHandleId(t),7)
      
     if s == style and zs == zstart and ze == zend and d == density and r == red and g == green and b == blue then  
         call FlushChildHashtable(udg_H,GetHandleId(t))
         call PauseTimer(t)
         call DestroyTimer(t)
     else
         if s < style then
             set s = s + 1
         elseif s > style then
             set s = s - 1
         endif
          
         if zs < zstart then
             set zs = zs + .01
         elseif zs > zstart then
             set zs = zs - .01
         endif
          
         if ze < zend then
             set ze = ze + .01
         elseif ze > zend then
             set ze = ze - .01
         endif
          
         if d < density then
             set d = d + .01
         elseif d > density then
             set d = d - .01
         endif
          
         if g < green then
             set g = g + .01
         elseif g > green then
             set g = g - .01
         endif
          
         if b < blue then
             set b = b + .01
         elseif b > blue then
             set b = b - .01
         endif
          
         call SaveReal(udg_FuncHash[1],pid,0,r)
         call SaveReal(udg_FuncHash[1],pid,1,g)
         call SaveReal(udg_FuncHash[1],pid,2,b)
         call SaveInteger(udg_FuncHash[1],pid,3,s)
         call SaveReal(udg_FuncHash[1],pid,4,zs)
         call SaveReal(udg_FuncHash[1],pid,5,ze)
         call SaveReal(udg_FuncHash[1],pid,6,d)
     endif
      
     if GetLocalPlayer() == Player(pid) then
         call SetTerrainFogEx(s,zs,ze,d,r,g,b)     
     endif
      
     set t = null
endfunction

function SetTerrainFogSlight takes integer pid, integer style, real zstart, real zend, real density, real red, real green, real blue returns nothing
     local timer t = CreateTimer()
      
     call SaveInteger(udg_H,GetHandleId(t),0,pid)
     call SaveInteger(udg_H,GetHandleId(t),1,style)
     call SaveReal(udg_H,GetHandleId(t),2,zstart)
     call SaveReal(udg_H,GetHandleId(t),3,zend)
     call SaveReal(udg_H,GetHandleId(t),4,density)
     call SaveReal(udg_H,GetHandleId(t),5,red)
     call SaveReal(udg_H,GetHandleId(t),6,green)
     call SaveReal(udg_H,GetHandleId(t),7,blue)
      
     call TimerStart(t,.02,true,function SetTerrainFogSlight_Timer)
      
     set t = null
endfunction
Работает это дело очень криво. Хеши проинициализированный, в FuncHash[1] забиты нули по умолчанию.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

SirNikolasДата: Четверг, 13 Января 2011, 17:24:30 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
А в чем заключается кривизна?

 

[DUОS]Дата: Четверг, 13 Января 2011, 17:31:25 | Сообщение # 3
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
SirNikolas,
Туман не работает так, как надо. Он вообще становится жёлтым и....охохохохохохохохохо... мерцает...


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

rixt7956Дата: Четверг, 13 Января 2011, 17:43:54 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
 

[DUОS]Дата: Четверг, 13 Января 2011, 17:47:15 | Сообщение # 5
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
rixt7956,
Quote (|DUОS|)
Хеши проинициализированный, в FuncHash[1] забиты нули по умолчанию.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

rixt7956Дата: Четверг, 13 Января 2011, 18:33:43 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Ты вот это забыл проверить :)
Code
if r<red then
   set r=r+.01
  elseif r>red then
   set r=r-.01
  endif
 

[DUОS]Дата: Четверг, 13 Января 2011, 20:50:32 | Сообщение # 7
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
rixt7956,
Теперь мигает хлеще...


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

rixt7956Дата: Четверг, 13 Января 2011, 21:18:30 | Сообщение # 8
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Еще хуже стало?
 

[DUОS]Дата: Пятница, 14 Января 2011, 17:18:31 | Сообщение # 9
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
rixt7956,
Угу, ещё хуже... Ну, хотелось бы добавить в одну из команд ОаДа плавности просто.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

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

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