Добавлен , не публикуется
Данная тема предназначена для различных функций, которые могут быть весьма полезны при программировании на Jass.

Функции

Эмуляция ошибки в Warcraft
Sim Error из Caster System, позволяет вам сэмитировать ошибку наподобие той, что выводиться движком вара. Незаменима при создании каких-либо довесков к интерфейсу пользователя.
Автор - Vexorian
Требует глобальную переменную типа звук (udg_SimError). Не создаёт утечек.
function SimError takes player ForPlayer, string msg returns nothing
  if udg_SimError==null then
    set udg_SimError=CreateSoundFromLabel( "InterfaceError",false,false,false,10,10)
  endif
  if (GetLocalPlayer() == ForPlayer) then
    call ClearTextMessages()
    call DisplayTimedTextToPlayer( ForPlayer, 0.52, -1.00, 2.00, "|cffffcc00"+msg+"|r" )
    call StartSound( udg_SimError )
  endif
endfunction
Вычисление опыта за убийство юнита
Вычисляет приблизительное значение опыта за убийство указанного юнита. Применение - триггерный подсчет/добавление экспы с применением всякого рода скиллов/эффектов модификаторов.
Автор - NETRAT
function aow_GetApxExpBounty takes unit u returns real
  return SquareRoot((GetUnitState(u, UNIT_STATE_MAX_LIFE) + GetUnitState(u, UNIT_STATE_MAX_MANA)) * GetUnitLevel(u)) * 2
endfunction
Набор функций для работы с Hex-записями
Автор: Dead_knight
Преобразует строку с Hex числом (допустимые значения "00" до "ff") в десятичное целое число:
function H2D takes string hex returns integer
  local string abc = "0123456789abcdef"
  local integer i = 0
  local integer dec 
  loop
    set i = i + 1
    exitwhen( SubString(abc, (i-1), i)==SubString(hex, 0, 1) )
  endloop
  set dec = (i-1) * 16
  set i = 0
  loop
    set i = i + 1
    exitwhen( SubString(abc, (i-1), i)==SubString(hex, 1, 2) )
  endloop
  set dec = dec + i - 1
  return dec
endfunction
Преобразует целое число (допустимые значения 0 до 255) в Hex-представление:
function D2H takes integer i returns string
  local string abc = "0123456789abcdef" (можно заменить глобалкой, так даже лучше)
  local string s = SubString(abc, i / 16, i / 16 + 1) + SubString(abc, ModuloInteger(i, 16), ModuloInteger(i, 16) + 1)
  return s
endfunction
Покупка предмета юнита
Заставляет юнита купить предмет из указанного магазина.
В случае успеха возвращает true.
Автор - Warden
function BuyItem takes unit FromShop,integer ItemID,unit ToUnit returns boolean
  if IssueNeutralTargetOrder(GetOwningPlayer(ToUnit), FromShop, "smart", ToUnit) or IssueTargetOrder(FromShop, "smart", ToUnit) then
    return IssueNeutralImmediateOrderById(GetOwningPlayer(ToUnit), FromShop, ItemID) or IssueImmediateOrderById(FromShop, ItemID)
  endif
  return false
endfunction
Вариант agentex
function BuyItem takes unit u, unit shop, integer id returns boolean
  call IssueNeutralTargetOrder(GetOwningPlayer(u), shop, "smart", u)
  return IssueNeutralImmediateOrderById(GetOwningPlayer(u), shop, id)
endfunction
Скрещивание однотипных предметов
При вызове пробует собрать из <count> предметов типа <oldItemType> новый предмет типа <newItemType>
В случае успеха возвращает true.
Автор - Shadow Daemon
function UnitUpgradeItem takes unit u, integer oldItemType, integer count, integer newItemType returns boolean
  local integer i = 0
  local integer j = 0
  local integer k = 0
  loop
    exitwhen i > 5 or j >= count
    if GetItemTypeId(UnitItemInSlot(u, i)) == oldItemType then
      set j = j + 1
      set k = k * 16 + i + 1
    endif
    set i = i + 1
  endloop
  if j < count then
    return false
  endif
  loop
    exitwhen k <= 0
    call RemoveItem(UnitItemInSlot(u, k - (k / 16) * 16 - 1))
    set k = k / 16
  endloop
  call UnitAddItemById(u, newItemType)
  return true
endfunction
Формула параболы
Вычисляет значение, обычно применяемое для задания высоты снаряда, который летит по параболической траектории.
Автор оригинала - shadow1500
Автор ремейка - moyack
Автор оптимизированного варианта - Shadow Daemon
library ParabolicMovement

function ParabolaZ takes real h, real d, real x returns real
  return (4 * h / d) * (d - x) * (x / d)
endfunction

endlibrary
  • h - максимальная высота в прыжке на середине расстояния (x = d / 2),
  • d - общее расстояние до цели,
  • x - расстояние от исходной цели до точки, где следует взять высоту по параболе.
Формула параболы (учитывающая начальную и конечную высоту)
Автор оригинала - moyack
Автор оптимизированного варианта - Shadow Daemon
  • h - максимальная высота в прыжке на середине расстояния (x = d / 2),
  • d - общее расстояние до цели,
  • x - расстояние от исходной цели до точки, где следует взять высоту по параболе.
library ParabolicMovement2

  function ParabolaZ2 takes real y0, real y1, real h, real d, real x returns real
    return (2*(y0 + y1 - 2*h)*(x/d - 1) + (y1 - y0))*(x/d) + y0
  endfunction

endlibrary
Вариант Shadow Daemon
  • h - максимальная высота в прыжке,
  • d - общее расстояние до цели,
  • x - расстояние от исходной цели до точки, где следует взять высоту по параболе.
library ParabolicMovement2

  function ParabolaZ2 takes real y0, real y1, real h, real d, real x returns real
    return ((4 * h / d) * (d - x) + y1 - y0) * (x / d) + y0
  endfunction

endlibrary
Определение неуязвимости юнита
Расширенная функция определения, уязвим ли юнит или нет. Позволяет определять специфические неуязвимости (например, неуязвимость феникса при морфе и неуязвимость мастера клинка при создании иллюзий).
Автор - DioD
function IsUnitInvulnerable takes unit Unit returns boolean
    
    local real    Health_Current = GetWidgetLife(Unit)
    local real    Mana_Current   = GetUnitState(Unit,UNIT_STATE_MANA)
    local boolean Check_Health
    
    call SetWidgetLife(Unit,Health_Current + 0.001)    
    if Health_Current != GetWidgetLife(Unit) then
        call UnitDamageTarget(Unit,Unit,0.001,false,true,null,null,null)
        set Check_Health = (GetWidgetLife(Unit) == Health_Current + 0.001)
    else
        call UnitDamageTarget(Unit,Unit,0.001,false,true,null,null,null)
        set Check_Health = (GetWidgetLife(Unit) == Health_Current)
        call SetWidgetLife(Unit,Health_Current)
    endif
    
    if Check_Health then
        return not (GetUnitState(Unit,UNIT_STATE_MANA) != Mana_Current)
    endif
    return Check_Health
    
endfunction
Определение высоты рельефа
Определяет высоту рельефа в заданных координатах точки. Полезно для реализации "правильного" движения снарядов.
library TerrainHeight

globals
  private location loc = Location(0, 0)
endglobals

function GetTerrainZ takes real x, real y returns real
  call MoveLocation(loc, x, y)
  return GetLocationZ(loc)
endfunction

endlibrary
Перпендикуляр от отрезка к точке
Находит длину перпендикуляра от отрезка, заданного Xa, Ya, Xb, Yb к точке, заданной Xc, Yc. Полезно при реализации заклинаний типа "Огненная стена", во избежание последовательных пиков юнитов по прямой.
Автор - silumin
function Perpendicular takes real Xa,real Ya,real Xb,real Yb,real Xc,real Yc returns real
    return SquareRoot((Xa - Xc) * (Xa - Xc) + (Ya - Yc) * (Ya - Yc)) * Sin(Atan2(Yc-Ya,Xc-Xa) - Atan2(Yb-Ya,Xb-Xa))
endfunction
Принадлежность точки произвольному четырёхугольнику (неквадратный рект)
Функции принадлежности точки треугольнику и произвольному четырёхугольнику.
//Площадь треугольника по координатам
function TriS takes real x1, real y1, real x2, real y2, real x3, real y3 returns real
    return RAbsBJ(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2
endfunction

//Принадлежность точки (x;y) треугольнику (x1;y1);(x2;y2);(x3;y3).
function IsCoordsInTriangle takes real x, real y, real x1, real y1, real x2, real y2, real x3, real y3 returns boolean
    return R2I(TriS(x1, y1, x2, y2, x3, y3))==R2I(TriS(x1, y1, x2, y2, x, y)+TriS(x2, y2, x3, y3, x, y)+TriS(x1, y1, x3, y3, x, y))
endfunction

//Принадлежность точки (x;y) произвольному четырёхугольнику (x1;y1);(x2;y2);(x3;y3);(x4;y4). Облегчённая версия, см. примечание.
function IsCoordsIn4GonSimple takes real x, real y, real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns boolean
    return IsCoordsInTriangle(x, y, x1, y1, x2, y2, x3, y3) or IsCoordsInTriangle(x, y, x1, y1, x4, y4, x3, y3)
endfunction

//Принадлежность точки (x;y) произвольному четырёхугольнику (x1;y1);(x2;y2);(x3;y3);(x4;y4). Полная версия, см. примечание.
function IsCoordsIn4Gon takes real x, real y, real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns boolean
    return IsCoordsInTriangle(x, y, x1, y1, x2, y2, x3, y3) or IsCoordsInTriangle(x, y, x1, y1, x4, y4, x3, y3) or IsCoordsInTriangle(x, y, x1, y1, x2, y2, x4, y4)
endfunction
Примечание к функциям четырёхугольника
Ограничения облегчённой версии: вершины обязательно нужно вводить по порядку, т.е. не допускать перекрутки фигуры. Иначе получатся "песочные часы", функция будет работать некорректно.
Полная версия чуть медленнее, но порядок вершин в ней не важен.
Автор: Hanabishi
Нахождение строки в строке
struct String{

	private string Main
        
        int length

	int indexOf(string s, int num){
            int i = 0, j = 0
            int e = StringLength(this.Main)
            int ls = StringLength(s)
            int index[]
            whilenot(i == e){
                if (SubString(this.Main, i, i + ls) == s){
                    index[j] = i
                    j++
                }
                i++
            }
            if (num > j){
                num = j
            }
            return index[num]
        }
        
        int indexOfEnd(string s, int num){
            int i = 0, j = 0
            int e = StringLength(this.Main)
            int ls = StringLength(s)
            int index[]
            whilenot(i == e){
                if (SubString(this.Main, i, i + ls) == s){
                    index[j] = i + ls
                    j++
                }
                i++
            }
            if (num > j){
                num = j
            }
            return index[num]
        }
}
Автор: Doc
HEX to DEC to ASCII (конвертация равкодов)
globals
    integer array Pow16x
    integer array Pow256x
    string  array CharMap16
    string  array CharMap256
    integer array CharInx16
    integer array CharInx256
endglobals

function S2Ix takes string s returns integer
    //return GetHandleId(s) // changed, 20.03.2012
    return StringHash(s) // changed by ScorpioT1000, 03.04.2012
    //return s
    //return 0
endfunction

function ASCII2DEC takes string num256 returns integer
    local integer num10 = 0
    local integer i = 0
    local integer len = StringLength(num256)
    loop
        exitwhen i >= len
        set num10 = num10 + CharInx256[S2Ix(SubString(num256, i, i+1))] * Pow256x[len-i-1]
        set i = i + 1
    endloop
    return num10
endfunction

function DEC2ASCII takes integer num10 returns string
    local string num256 = ""
    local integer i = 3
    local integer CodeCh
    loop
        exitwhen i < 0
        set CodeCh = 0
        loop
            exitwhen num10 < Pow256x[i]
            set CodeCh = CodeCh + 1
            set num10 = num10 - Pow256x[i]
        endloop
        if CodeCh > 0 then
            set num256 = num256 + CharMap256[CodeCh]
        endif
        set i = i - 1
    endloop
    return num256
endfunction

function HEX2DEC takes string num16 returns integer
    local integer num10 = 0
    local integer i = 0
    local integer len = StringLength(num16)
    loop
        exitwhen i >= len
        set num10 = num10 + CharInx16[S2Ix(SubString(num16, i, i+1))] * Pow16x[len-i-1]
        set i = i + 1
    endloop
    return num10
endfunction

function DEC2HEX takes integer num10 returns string
    local string num16 = ""
    local integer i = 7
    local integer CodeCh
    loop
        exitwhen i < 0
        set CodeCh = 0
        loop
            exitwhen num10 < Pow16x[i]
            set CodeCh = CodeCh + 1
            set num10 = num10 - Pow16x[i]
        endloop
        if CodeCh > 0 then
            set num16 = num16 + CharMap16[CodeCh]
        endif
        set i = i - 1
    endloop
    return num16
endfunction

//-

function ForLoadMap takes nothing returns nothing
    set CharInx16[S2Ix("0")] = 0
    set CharInx16[S2Ix("1")] = 1
    set CharInx16[S2Ix("2")] = 2
    set CharInx16[S2Ix("3")] = 3
    set CharInx16[S2Ix("4")] = 4
    set CharInx16[S2Ix("5")] = 5
    set CharInx16[S2Ix("6")] = 6
    set CharInx16[S2Ix("7")] = 7
    set CharInx16[S2Ix("8")] = 8
    set CharInx16[S2Ix("9")] = 9
    set CharInx16[S2Ix("A")] = 10
    set CharInx16[S2Ix("a")] = 10
    set CharInx16[S2Ix("B")] = 11
    set CharInx16[S2Ix("b")] = 11
    set CharInx16[S2Ix("C")] = 12
    set CharInx16[S2Ix("c")] = 12
    set CharInx16[S2Ix("D")] = 13
    set CharInx16[S2Ix("d")] = 13
    set CharInx16[S2Ix("E")] = 14
    set CharInx16[S2Ix("e")] = 14
    set CharInx16[S2Ix("F")] = 15
    set CharInx16[S2Ix("f")] = 15
    set CharInx256[S2Ix("!")] = 33
    set CharInx256[S2Ix(" ")] = 34
    set CharInx256[S2Ix("#")] = 35
    set CharInx256[S2Ix("$")] = 36
    set CharInx256[S2Ix("%")] = 37
    set CharInx256[S2Ix("&")] = 38
    set CharInx256[S2Ix("'")] = 39
    set CharInx256[S2Ix("(")] = 40
    set CharInx256[S2Ix(")")] = 41
    set CharInx256[S2Ix("*")] = 42
    set CharInx256[S2Ix("+")] = 43
    set CharInx256[S2Ix(",")] = 44
    set CharInx256[S2Ix("-")] = 45
    set CharInx256[S2Ix(".")] = 46
    set CharInx256[S2Ix("/")] = 47
    set CharInx256[S2Ix("0")] = 48
    set CharInx256[S2Ix("1")] = 49
    set CharInx256[S2Ix("2")] = 50
    set CharInx256[S2Ix("3")] = 51
    set CharInx256[S2Ix("4")] = 52
    set CharInx256[S2Ix("5")] = 53
    set CharInx256[S2Ix("6")] = 54
    set CharInx256[S2Ix("7")] = 55
    set CharInx256[S2Ix("8")] = 56
    set CharInx256[S2Ix("9")] = 57
    set CharInx256[S2Ix(":")] = 58
    set CharInx256[S2Ix(";")] = 59
    set CharInx256[S2Ix("<")] = 60
    set CharInx256[S2Ix("=")] = 61
    set CharInx256[S2Ix(">")] = 62
    set CharInx256[S2Ix(".")] = 63
    set CharInx256[S2Ix("@")] = 64
    set CharInx256[S2Ix("A")] = 65
    set CharInx256[S2Ix("B")] = 66
    set CharInx256[S2Ix("C")] = 67 
    set CharInx256[S2Ix("D")] = 68 
    set CharInx256[S2Ix("E")] = 69 
    set CharInx256[S2Ix("F")] = 70 
    set CharInx256[S2Ix("G")] = 71 
    set CharInx256[S2Ix("H")] = 72 
    set CharInx256[S2Ix("I")] = 73 
    set CharInx256[S2Ix("J")] = 74 
    set CharInx256[S2Ix("K")] = 75 
    set CharInx256[S2Ix("L")] = 76 
    set CharInx256[S2Ix("M")] = 77 
    set CharInx256[S2Ix("N")] = 78 
    set CharInx256[S2Ix("O")] = 79 
    set CharInx256[S2Ix("P")] = 80 
    set CharInx256[S2Ix("Q")] = 81 
    set CharInx256[S2Ix("R")] = 82 
    set CharInx256[S2Ix("S")] = 83 
    set CharInx256[S2Ix("T")] = 84 
    set CharInx256[S2Ix("U")] = 85 
    set CharInx256[S2Ix("V")] = 86 
    set CharInx256[S2Ix("W")] = 87 
    set CharInx256[S2Ix("X")] = 88  
    set CharInx256[S2Ix("Y")] = 89  
    set CharInx256[S2Ix("Z")] = 90  
    set CharInx256[S2Ix("[")] = 91
    set CharInx256[S2Ix("]")] = 93  
    set CharInx256[S2Ix("^")] = 94  
    set CharInx256[S2Ix("_")] = 95   
    set CharInx256[S2Ix("`")] = 96   
    set CharInx256[S2Ix("a")] = 97   
    set CharInx256[S2Ix("b")] = 98   
    set CharInx256[S2Ix("c")] = 99   
    set CharInx256[S2Ix("d")] = 100  
    set CharInx256[S2Ix("e")] = 101   
    set CharInx256[S2Ix("f")] = 102   
    set CharInx256[S2Ix("g")] = 103   
    set CharInx256[S2Ix("h")] = 104   
    set CharInx256[S2Ix("i")] = 105   
    set CharInx256[S2Ix("j")] = 106   
    set CharInx256[S2Ix("k")] = 107   
    set CharInx256[S2Ix("l")] = 108   
    set CharInx256[S2Ix("m")] = 109   
    set CharInx256[S2Ix("n")] = 110   
    set CharInx256[S2Ix("o")] = 111   
    set CharInx256[S2Ix("p")] = 112   
    set CharInx256[S2Ix("q")] = 113   
    set CharInx256[S2Ix("r")] = 114   
    set CharInx256[S2Ix("s")] = 115   
    set CharInx256[S2Ix("t")] = 116    
    set CharInx256[S2Ix("u")] = 117     
    set CharInx256[S2Ix("v")] = 118     
    set CharInx256[S2Ix("w")] = 119     
    set CharInx256[S2Ix("x")] = 120     
    set CharInx256[S2Ix("y")] = 121     
    set CharInx256[S2Ix("z")] = 122     
    set CharInx256[S2Ix("{")] = 123     
    set CharInx256[S2Ix("|")] = 124     
    set CharInx256[S2Ix("}")] = 125     
    set CharInx256[S2Ix("~")] = 126
endfunction

function ForInitializationMap takes nothing returns nothing
    local trigger trig = CreateTrigger()
    call TriggerRegisterGameEvent(trig, EVENT_GAME_LOADED)
    call TriggerAddAction( trig, function ForLoadMap)
    call ForLoadMap()
    set Pow256x[0] = 0x00000001
    set Pow256x[1] = 0x00000100
    set Pow256x[2] = 0x00010000
    set Pow256x[3] = 0x01000000
    set Pow16x[0] = 0x00000001
    set Pow16x[1] = 0x00000010
    set Pow16x[2] = 0x00000100
    set Pow16x[3] = 0x00001000
    set Pow16x[4] = 0x00010000
    set Pow16x[5] = 0x00100000
    set Pow16x[6] = 0x01000000
    set Pow16x[7] = 0x10000000
    set CharMap16[0] = "0"
    set CharMap16[1] = "1"
    set CharMap16[2] = "2"
    set CharMap16[3] = "3"
    set CharMap16[4] = "4"
    set CharMap16[5] = "5"
    set CharMap16[6] = "6"
    set CharMap16[7] = "7"
    set CharMap16[8] = "8"
    set CharMap16[9] = "9"
    set CharMap16[10] = "a"
    set CharMap16[11] = "b"
    set CharMap16[12] = "c"
    set CharMap16[13] = "d"
    set CharMap16[14] = "e"
    set CharMap16[15] = "f"
    set CharMap256[33] = "!"
    set CharMap256[34] = " "
    set CharMap256[35] = "#"
    set CharMap256[36] = "$"
    set CharMap256[37] = "%"
    set CharMap256[38] = "&"
    set CharMap256[39] = "'"
    set CharMap256[40] = "("
    set CharMap256[41] = ")"
    set CharMap256[42] = "*"
    set CharMap256[43] = "+"
    set CharMap256[44] = ","
    set CharMap256[45] = "-"
    set CharMap256[46] = "."
    set CharMap256[47] = "/"
    set CharMap256[48] = "0"
    set CharMap256[49] = "1"
    set CharMap256[50] = "2"
    set CharMap256[51] = "3"
    set CharMap256[52] = "4"
    set CharMap256[53] = "5"
    set CharMap256[54] = "6"
    set CharMap256[55] = "7"
    set CharMap256[56] = "8"
    set CharMap256[57] = "9"
    set CharMap256[58] = ":"
    set CharMap256[59] = ";"
    set CharMap256[60] = "<"
    set CharMap256[61] = "="
    set CharMap256[62] = ">"
    set CharMap256[63] = "."
    set CharMap256[64] = "@"
    set CharMap256[65] = "A"
    set CharMap256[66] = "B"
    set CharMap256[67] = "C"
    set CharMap256[68] = "D"
    set CharMap256[69] = "E" 
    set CharMap256[70] = "F"
    set CharMap256[71] = "G"
    set CharMap256[72] = "H"
    set CharMap256[73] = "I" 
    set CharMap256[74] = "J"
    set CharMap256[75] = "K" 
    set CharMap256[76] = "L" 
    set CharMap256[77] = "M" 
    set CharMap256[78] = "N"
    set CharMap256[79] = "O"
    set CharMap256[80] = "P"
    set CharMap256[81] = "Q"
    set CharMap256[82] = "R"
    set CharMap256[83] = "S"
    set CharMap256[84] = "T"
    set CharMap256[85] = "U" 
    set CharMap256[86] = "V"
    set CharMap256[87] = "W"
    set CharMap256[88] = "X" 
    set CharMap256[89] = "Y" 
    set CharMap256[90] = "Z"
    set CharMap256[91] = "["
    set CharMap256[93] = "]" 
    set CharMap256[94] = "^"
    set CharMap256[95] = "_" 
    set CharMap256[96] = "`" 
    set CharMap256[97] = "a" 
    set CharMap256[98] = "b" 
    set CharMap256[99] = "c" 
    set CharMap256[100] = "d"  
    set CharMap256[101] = "e"
    set CharMap256[102] = "f" 
    set CharMap256[103] = "g"  
    set CharMap256[104] = "h"   
    set CharMap256[105] = "i" 
    set CharMap256[106] = "j"  
    set CharMap256[107] = "k"
    set CharMap256[108] = "l"  
    set CharMap256[109] = "m"
    set CharMap256[110] = "n"
    set CharMap256[111] = "o"
    set CharMap256[112] = "p"
    set CharMap256[113] = "q" 
    set CharMap256[114] = "r" 
    set CharMap256[115] = "s" 
    set CharMap256[116] = "t"  
    set CharMap256[117] = "u" 
    set CharMap256[118] = "v"  
    set CharMap256[119] = "w"
    set CharMap256[120] = "x"
    set CharMap256[121] = "y"
    set CharMap256[122] = "z"
    set CharMap256[123] = "{"  
    set CharMap256[124] = "|"  
    set CharMap256[125] = "}"  
    set CharMap256[126] = "~"
    set trig = null
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
0
12
16 лет назад
0
function Real takes real r returns real (c) Tc
return r
endfunction
function Code takes code c returns code видел на компах, ник не помню
return c
endfunction
function String takes string s returns string разработал сам
return s
endfunction
Наверное они нужны чтобы посмешить людей(Меня улыбнуло)
0
33
16 лет назад
0
ближе всех к правильному ответу свдн, нет, для смеху есть ДуНотингАпи
0
21
16 лет назад
0
связано с ресайклом памяти?)
1
13
16 лет назад
1
ДуНотингАпи
а вот и оно за моим авторством )
DoNothing API

//function DoNothing takes nothing returns nothing
//endfunction

//Main DoNothing Functions
function NothingDo takes nothing returns nothing
    call DoNothing()
endfunction

function DoNothingBJ takes nothing returns nothing
    call ExecuteFunc("DoNothing")
endfunction

function NothingDoBJ takes nothing returns nothing
    return DoNothing()
    return
endfunction

function DoNothingEx takes nothing returns nothing
    call TimerStart(CreateTimer(), 0, true, function DoNothing)
endfunction

function NothingDoEx takes nothing returns nothing
    call TimerStart(CreateTimer(), 0, true, function NothingDo)
endfunction

function DoNothingExBJ takes nothing returns nothing
    call TimerStart(CreateTimer(), 0, true, function DoNothingBJ)
endfunction

function NothingDoExBJ takes nothing returns nothing
    call TimerStart(CreateTimer(), 0, true, function NothingDoBJ)
endfunction
//End of Main DoNothing Functions

//Main DoNothing Booleans
function DoNothingTrue takes nothing returns boolean
    return ExecuteFunc("DoNothing")==DoNothing()
endfunction

function DoNothingFalse takes nothing returns boolean
    return ExecuteFunc("DoNothing")!=DoNothing()
endfunction
//End of Main DoNothing Booleans

//Main Execute and Evaluate DoNothing Functions
function ExecuteDoNothing takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function DoNothing)
    call TriggerExecute(t)
endfunction

function ExecuteNothingDo takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function NothingDo)
    call TriggerExecute(t)
endfunction

function ExecuteDoNothingBJ takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function DoNothingBJ)
    call TriggerExecute(t)
endfunction

function ExecuteNothingDoBJ takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function NothingDoBJ)
    call TriggerExecute(t)
endfunction

function ExecuteDoNothingEx takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function DoNothingEx)
    call TriggerExecute(t)
endfunction

function ExecuteNothingEx takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function NothingDoEx)
    call TriggerExecute(t)
endfunction

function ExecuteDoNothingExBJ takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function DoNothingExBJ)
    call TriggerExecute(t)
endfunction

function ExecuteNothingDoExBJ takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerAddAction(t, function NothingDoExBJ)
    call TriggerExecute(t)
endfunction

function EvaluateDoNothing takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothing))
    return TriggerEvaluate(t)
endfunction

function EvaluateNothingDo takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function NothingDo))
    return TriggerEvaluate(t)
endfunction

function EvaluateDoNothingBJ takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothingBJ))
    return TriggerEvaluate(t)
endfunction

function EvaluateNothingDoBJ takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function NothingDoBJ))
    return TriggerEvaluate(t)
endfunction

function EvaluateDoNothingEx takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothingEx))
    return TriggerEvaluate(t)
endfunction

function EvaluateNothingDoEx takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function NothingDoEx))
    return TriggerEvaluate(t)
endfunction

function EvaluateDoNothingExBJ takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothingExBJ))
    return TriggerEvaluate(t)
endfunction

function EvaluateNothingDoExBJ takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function NothingDoExBJ))
    return TriggerEvaluate(t)
endfunction

function NothingDoTrue takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothingTrue))
    return TriggerEvaluate(t)
endfunction

function NothingDoFalse takes nothing returns boolean
    local trigger t = CreateTrigger()
    call TriggerAddCondition(t, Condition(function DoNothingFalse))
    return TriggerEvaluate(t)
endfunction
//End of Main Execute and Evaluate DoNothing Functions

//Main RB DoNothing Functions
function N2I takes nothing returns integer
    return
    return 0
endfunction

function I2N takes integer i returns nothing
    return i
    return
endfunction

function C2N takes code func returns nothing
    return func
    return
endfunction

function N2C takes nothing returns code
    return
    return null
endfunction

function B2N takes boolean b returns nothing
    return b
    return
endfunction

function B2DoNothing takes boolean b returns nothing
    if b then
        return DoNothing()
    else
        return DoNothingEx()
    endif
    return
endfunction

function B2NothingDo takes boolean b returns nothing
    if b then
        return NothingDo()
    else
        return NothingDoEx()
    endif
    return
endfunction

function B2DoNothingBJ takes boolean b returns nothing
    if b then
        return DoNothingBJ()
    else
        return DoNothingExBJ()
    endif
    return
endfunction

function B2NothingDoBJ takes boolean b returns nothing
    if b then
        return NothingDoBJ()
    else
        return NothingDoExBJ()
    endif
    return
endfunction

function DoNothing2I takes nothing returns integer
    return DoNothing()
    return 0
endfunction

function NothingDo2I takes nothing returns integer
    return NothingDo()
    return 0
endfunction

function DoNothingBJ2I takes nothing returns integer
    return DoNothingBJ()
    return 0
endfunction

function NothingDoBJ2I takes nothing returns integer
    return NothingDoBJ()
    return 0
endfunction

function DoNothingEx2I takes nothing returns integer
    return DoNothingEx()
    return 0
endfunction

function NothingDoEx2I takes nothing returns integer
    return NothingDoEx()
    return 0
endfunction

function DoNothingExBJ2I takes nothing returns integer
    return DoNothingExBJ()
    return 0
endfunction

function NothingDoExBJ2I takes nothing returns integer
    return NothingDoExBJ()
    return 0
endfunction

function DoNothing2C takes nothing returns code
    return DoNothing()
    return null
endfunction

function NothingDo2C takes nothing returns code
    return NothingDo()
    return null
endfunction

function DoNothingBJ2C takes nothing returns code
    return DoNothingBJ()
    return null
endfunction

function NothingDoBJ2C takes nothing returns code
    return NothingDoBJ()
    return null
endfunction

function DoNothingEx2C takes nothing returns code
    return DoNothingEx()
    return null
endfunction

function NothingDoEx2C takes nothing returns code
    return NothingDoEx()
    return null
endfunction

function DoNothingExBJ2C takes nothing returns code
    return DoNothingExBJ()
    return null
endfunction

function NothingDoExBJ2C takes nothing returns code
    return NothingDoExBJ()
    return null
endfunction

function DoNothing2N takes nothing returns nothing
    return DoNothing()
    return
endfunction

function NothingDo2N takes nothing returns nothing
    return NothingDo()
    return
endfunction

function DoNothingBJ2N takes nothing returns nothing
    return DoNothingBJ()
    return
endfunction

function NothingDoBJ2N takes nothing returns nothing
    return NothingDoBJ()
    return
endfunction

function DoNothingEx2N takes nothing returns nothing
    return DoNothingEx()
    return
endfunction

function NothingDoEx2N takes nothing returns nothing
    return NothingDoEx()
    return
endfunction

function DoNothingExBJ2N takes nothing returns nothing
    return DoNothingExBJ()
    return
endfunction

function NothingDoExBJ2N takes nothing returns nothing
    return NothingDoExBJ()
    return
endfunction

//End of Main RB DoNothing Functions
do nothing api
0
25
16 лет назад
0
ADOLF, хмм, я проводил некоторые тесты, и понял (ладно-ладно, я еще с Тс поговорил ^_^ + еще вспомнил, что ты применил в той системе ascii-арта), что эти функции нужны для нормализации значений, полученных через return bug.
Hunter, а где DoNothing Array API? ^_^
0
33
16 лет назад
0
ADOLF, хмм, я проводил некоторые тесты, и понял (ладно-ладно, я еще с Тс поговорил ^_^ + еще вспомнил, что ты применил в той системе ascii-арта), что эти функции нужны для нормализации значений, полученных через return bug.
yes)))
ду нотинг апи жжот)
Этот комментарий удален
0
12
16 лет назад
0
function RespawnCreeps_Call takes nothing returns nothing
 call RemoveUnit(GetEnumUnit())
endfunction
function RespawnCreeps takes nothing returns nothing
 local group g=CreateGroup()
 call GroupEnumUnitsOfPlayer(g,Player(12),null)
 call ForGroup(g,function RespawnCreeps_Call)
 call CreateNeutralHostile()
 call DestroyGroup(g)
 set g=null
endfunction
Пересоздает мобов со всеми параметрами дропами и.т.п)
0
33
16 лет назад
0
не тру
по хорошему вообще на функции типа CreateNeutralHostile() надо забить и писать их самому)
0
12
16 лет назад
0
ADOLF - вообщето очень пригождается для демокарт)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.