Сейчас 07:18:40 Среда, 7 декабря, 2022 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Jass: Полезные функции
[ВАЖНО] Jass: Полезные функции
FkoFFДата: Понедельник, 16 Мая 2011, 17:41:00 | Сообщение # 76
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
R2RI - функция для корректного окруления реального числа в целое.
Code
function R2RI takes real r returns integer
local real f=r
loop
exitwhen f<1.0
set f=f-1.0
endloop

if f > 0.5 then
return R2I(r+1)
else
return R2I(r)
endif
endfunction


 

SirNikolasДата: Понедельник, 16 Мая 2011, 17:54:35 | Сообщение # 77
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
FkoFF, некорректно работает для отрицательных чисел. -1.9, к примеру, она "округлит" до -1.

 

CHLSNДата: Вторник, 17 Мая 2011, 14:50:03 | Сообщение # 78
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
SirNikolas, а чем плоха R2I ? Тем что она не округляет, а отбрасывает дробную часть?



Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

SirNikolasДата: Вторник, 17 Мая 2011, 17:39:04 | Сообщение # 79
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Именно. А иногда бывает нужно округление.

 

CHLSNДата: Вторник, 17 Мая 2011, 18:27:20 | Сообщение # 80
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
omfg... Дак почему бы не использовать недостаток R2I?
Code
//На вход любые значения
function RR2I takes real r returns integer
  local real x
  local integer z = 1
  if r == 0 then
   return 0
  elseif r < 0 then
   set r = -r
   set z = -1
  endif
  set x = R2I(r)
  set r = r - x
  if r > 0.4 then
   return x + z
  endif
  return x
endfunction

//На вход передаем положительные значения (можно и убрать условие, но нужно помнить, во избежание получения кривых значений писать не RR2I(-x), а -RR2I(x))
function RR2I takes real r returns integer
  local real x
  if r == 0 then
   return 0
  elseif r < 0
   set r = -r
  endif
  set x = R2I(r)
  set r = r - x
  if r > 0.4 then
   return x + 1
  endif
  return x
endfunction




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

swdnДата: Суббота, 21 Мая 2011, 20:30:48 | Сообщение # 81
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 32
Блокировки:
Функция от FkoFF с положительными работает "наотличненько". Достаточно передать в неё достаточно большое значение (скажем, 30 тысяч). Будет превышен лимит операций.

Функция от CHLSN выдаёт синтаксическую ошибку:

Code
return x
// ==>>
return R2I(x)

И даже если исправить это, то функция работает частично, но возвращает совершенно левые значения, если r > 0.4. Вы пытаетесь сделать трюк: сложить целое и дробное и вернуть целое. Компилятор, как ни странно, пропускает это, но игра выдает интересные значения.
Code
if r > 0.4 then
    return x + z
endif
// ==>>
if r > 0.4 then
    return R2I(x) + z
endif

Это я к тому, что вы трюкачите на ровном месте. Наиболее верная функция для округления:

Code
function R2Ix takes real r returns integer
     if (r < 0.0) then
         return R2I(r - 0.5001)
     endif
     return R2I(r + 0.5001)
endfunction
 

CHLSNДата: Суббота, 21 Мая 2011, 20:55:16 | Сообщение # 82
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
Quote (swdn)
Вы пытаетесь сделать трюк
Думаю стоит различать разницу между трюком и багом.

Quote (swdn)
Компилятор, как ни странно, пропускает это + Функция от CHLSN выдаёт синтаксическую ошибку
Компилятор проверяет только последний return




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

SirNikolasДата: Воскресенье, 22 Мая 2011, 06:22:48 | Сообщение # 83
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (CHLSN)
Компилятор проверяет только последний return
Так было в 1.22


 

FkoFFДата: Воскресенье, 22 Мая 2011, 06:37:29 | Сообщение # 84
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (swdn)
И даже если исправить это, то функция работает частично, но возвращает совершенно левые значения, если r > 0.4. Вы пытаетесь сделать трюк: сложить целое и дробное и вернуть целое. Компилятор, как ни странно, пропускает это, но игра выдает интересные значения.

я не спорю, функция прямо скажем паршивая и дырявая, когда утром посмотрел - переписал в нормальный вариант с поддержкой отрицательных чисел и прочего факирства (главное - убрал циклы)


 

[DS]Дата: Воскресенье, 22 Мая 2011, 22:43:56 | Сообщение # 85
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
call FludhChildHashtable тут ошибка, это про ревив героя дуоса, исправьте.
Если это ошибка


 

DragoNДата: Понедельник, 23 Мая 2011, 00:18:37 | Сообщение # 86
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
вместо d надо s

El Psy Congroo
 

[DS]Дата: Понедельник, 23 Мая 2011, 05:50:48 | Сообщение # 87
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
не там дуос писал так, глянь на первую страницу.

 

DragoNДата: Понедельник, 23 Мая 2011, 16:46:48 | Сообщение # 88
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Quote (|DS|)
не там дуос писал так, глянь на первую страницу.

я и говорю, дуос опечатался,а надо писать
Quote (DragoN)
вместо d надо s


El Psy Congroo
 

DiabfallДата: Вторник, 24 Мая 2011, 21:13:35 | Сообщение # 89
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Как работает call DisplayTimedTextToPlayer? Выводит текст по определённым координатам на экране?

Сообщение отредактировал Diabfall - Вторник, 24 Мая 2011, 21:14:32
 

SirNikolasДата: Среда, 25 Мая 2011, 09:48:44 | Сообщение # 90
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Да.

 

DiabfallДата: Среда, 25 Мая 2011, 17:56:39 | Сообщение # 91
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Обьясните мне, как значения туда выстовлять.)

call DisplayTimedTextToPlayer ( 0, 0, 0, text ) ? Меня интересуют значания в скобках.
 

AjaccioДата: Среда, 25 Мая 2011, 18:08:56 | Сообщение # 92
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Diabfall, DisplayTimedTextToPlayer(Player(<Номер Игрока от 0 до 15>), <Координата по X>, <Координата по Y>, "<Сообщение>")

XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

SirNikolasДата: Среда, 25 Мая 2011, 18:39:24 | Сообщение # 93
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Diabfall)
Timed

Quote (Ajaccio)
Player(<Номер Игрока от 0 до 15>), <Координата по X>, <Координата по Y>,
Время в секундах,
Quote (Ajaccio)
"<Сообщение>"


 

AjaccioДата: Среда, 25 Мая 2011, 18:44:54 | Сообщение # 94
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
SirNikolas, ваша правда, я мог бы и догадаться.

XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

DiabfallДата: Среда, 25 Мая 2011, 18:52:57 | Сообщение # 95
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Quote (Ajaccio)
Diabfall, DisplayTimedTextToPlayer(Player(<Номер Игрока от 0 до 15>), <Координата по X>, <Координата по Y>, "<Сообщение>")

Я так и ввожу. Jass Helper ругается на отсутствие аргумента.

--------------------------------------------------------
SirNikolas, спс.


Сообщение отредактировал Diabfall - Четверг, 26 Мая 2011, 06:57:08
 

AjaccioДата: Среда, 25 Мая 2011, 18:54:26 | Сообщение # 96
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Diabfall, DisplayTimedTextToPlayer(Player(<Номер Игрока от 0 до 15>), <Координата по X>, <Координата по Y>, <Время в секундах>, "<Сообщение>")

XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

FkoFFДата: Четверг, 26 Мая 2011, 02:22:16 | Сообщение # 97
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:









 

[DS]Дата: Четверг, 26 Мая 2011, 11:22:50 | Сообщение # 98
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
FkoFF, Может сразу свой CasterSystem напишешь.

 

FkoFFДата: Четверг, 26 Мая 2011, 12:00:15 | Сообщение # 99
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
[DS], не, не дам )

 

[DS]Дата: Четверг, 26 Мая 2011, 13:38:08 | Сообщение # 100
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
FkoFF, хех

 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [ВАЖНО] Jass: Полезные функции
Поиск:

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