Что-то в последнее время читаю все подряд от безделья, даже на работе, скоротая время. И заметил, что мне просто начинает надоедать все китайские однотипные новеллы про культиваторов, среди них редко можно найти необысное, шедевр.

Red Alert: командир ONLINE!

Red Alert: командир Online!
1 85
0
31
3 месяца назад
0
Что-то в последнее время читаю все подряд от безделья, даже на работе, скоротая время. И заметил, что мне просто начинает надоедать все китайские однотипные новеллы про культиваторов, среди них редко можно найти необысное, шедевр.
сам уже третий год страдаю этой херней... поначалу кажется чем-то немного необычным... потом понимаешь, что это то же конвеерное производство со своей спецификой и шаблонами...
Никаких новый новелок не начинаю, надеюсь, в один прекрасный день либо дропну, либо текущая новелка сама закончиться...
Разжевывания материала в основном для "новичков" о том, что такое система счисления (кратко), как работает конвертация чисел (с картинками и примерами), и где можно применить. Есть примеры и ссылки. Также даны ссылки на онлайн-калькуляторы и программ (если просто лень вручную)
3 2 328
0
14
11 месяцев назад
0
да просто карта есть карта, а код есть код - это разное
0
27
11 месяцев назад
Отредактирован MpW
0
host_pi, приятно осознавать, что это кому то понадобилось. Но я ничего не помню из этого, что код такой написал. Тогда я плохо понимал системы счисления, и пытался как то конвертировать равкоды в число. Мне это хотелось написать удобный способ создать ключ для массива. 8192 ужасно ограничивал. Сейчас это мб кому нибудь понадобиться
1
14
11 месяцев назад
1
не стал вписывать кучу других систем, найденных мной. Ведь они похожи. Но я все разные системы скинул в одну карту. Может быть одна из них вам понравится. ВОТ ПРИМЕР КАРТЫ
а я вот впишу за тебя из твоей карты:
globals
    // User-defined
string array udg_sOutput
integer array udg_RAWINT
string array udg_RAWSTR

    // Generated
trigger gg_trg_R= null
trigger gg_trg_S= null
trigger gg_trg_AA= null
trigger gg_trg_BB= null
trigger gg_trg_TEST= null
trigger gg_trg_integer= null
trigger gg_trg_int_string= null
trigger gg_trg_string= null
trigger gg_trg_____________________________________001= null
trigger gg_trg_Int= null
trigger gg_trg_test= null
trigger gg_trg_____________________________________001_____________________u= null
trigger gg_trg_NNN= null
integer array Pow2x
integer array Pow8x
integer array Pow16x
integer array Pow256x
string array CharMap2x16
string array CharMap2x8
string array CharMap16
string array CharMap256
integer array CharInx16
integer array CharInx256


//JASSHelper struct globals:

endglobals


//===========================================================================
// 
// Еще одна карта
// 
//   Warcraft III map script
//   Generated by the Warcraft III World Editor
//   Date: Tue Jun 12 04:56:40 2018
//   Map Author: Неизвестно
// 
//===========================================================================

//***************************************************************************
//*
//*  Global Variables
//*
//***************************************************************************


function InitGlobals takes nothing returns nothing
    local integer i= 0
    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_sOutput[i]=""
        set i=i + 1
    endloop

    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_RAWINT[i]=0
        set i=i + 1
    endloop

    set i=0
    loop
        exitwhen ( i > 1 )
        set udg_RAWSTR[i]=""
        set i=i + 1
    endloop

endfunction

//***************************************************************************
//*
//*  Custom Script Code
//*
//***************************************************************************
//TESH.scrollpos=0
//TESH.alwaysfold=0

//***************************************************************************
//*
//*  Triggers
//*
//***************************************************************************

//===========================================================================
// Trigger: R
//
// Перевод символа в 256-число = Str2Int256
// Перевод символа в 16-число = Str2Int16
// Перевод 256-числа в 10-число = ASCII2DEC
// Перевод 10-числа в 256-число = DEC2ASCII
// Перевод 16-числа в 10-число = HEX2DEC
// Перевод 10-числа в 16-число = DEC2HEX
// Перевод 10-числа в двоичное = DEC2Binary
// Перевод двоичного числа в 10-чное = Binary2DEC
// Перевод двоичного числа в 8-ричное = Binary2Octal
// Перевод двоичного числа в 16-ричное = Binary2Hex
//===========================================================================
//TESH.scrollpos=180
//TESH.alwaysfold=0


//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 Str2Int256 takes string s returns integer
    local integer i= 32
    local integer n=- 1
    
    loop
        if s == CharMap256[i] then
            set n=i
        endif
        exitwhen ( i > 126 or s == CharMap256[i] )
        set i=i + 1
    endloop
    
    return n //если такого символа не существует вернет -1, иначе вар фаталит с ошибкой

endfunction

function Str2Int16 takes string s returns integer
    local integer i= 0
    local integer n=- 1
    
    loop
        if s == CharMap16[i] then
            set n=i
        endif
        exitwhen ( i > 16 or s == CharMap16[i] )
        set i=i + 1
    endloop
    
    return n //если такого символа не существует вернет -1, иначе вар фаталит с ошибкой

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[Str2Int256(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 DEC2Binary takes integer num10 returns string
    local string s1= ""
    local string s2= ""
    
    local integer e= num10
    local integer C= num10
    
    loop
        set e=e / 2 //делим число e на основание 2, до сих пор пока число e не станет меньше или равно 1
        set s1=s1 + I2S(ModuloInteger(C, 2)) //извлекаем остаток при делении на основание
        set C=e //перезаписываем так как число e изменилось, и от него будет брать остаток
        exitwhen e <= 0 //делится число до сих пор пока не станет равно или меньше 1
    endloop
    
    set C=StringLength(s1) //кол-во рядов
    set e=C
    
    call BJDebugMsg("Получилось при делений на основание 2: " + s1 + ". Кол-во рялов - " + I2S(C))
    call BJDebugMsg("Переворачиваем символы")
    
    loop
        exitwhen e < 1
        set s2=s2 + SubString(s1, e - 1, e)
        call BJDebugMsg(SubString(s1, e - 1, e))
        set e=e - 1
    endloop
    
    return s2
endfunction

function Binary2Octal takes string num2 returns string
    local string z1= ""
    local string z2= ""
    local integer len= StringLength(num2)
    local integer i= len
    local integer start
    local integer k
    local integer n

    loop
        exitwhen i <= 0
        
        set start=i - 3 //порядок строки
        if start <= 0 then //если порядок строки меньше 0, то выдает не символы. Поэтому делаем проверку
            set start=0
        endif
        
        set z1=SubString(num2, start, i)
        set k=0
        loop
            exitwhen k > 7
            if ( S2I(z1) == S2I(CharMap2x8[k]) ) then //решающая функция это S2I иначе при переборе CharMap2x8 не всегда можно подобрать подходящую
                //так как варкрафт не добирает нулей при разложении на триады - 3 разряда (10101 = 10 101. тут у 10 нет нуля, 010). их походу самому придеться добавлять
                set z2=z2 + I2S(k)
                set n=k
            endif
            set k=k + 1
        endloop
    
        call BJDebugMsg(I2S(i) + " - выбрана триада: " + z1 + " получили из таблицы: " + I2S(n) + " это из 8-ричной системы ")
        set i=i - 3
    endloop
    call BJDebugMsg("Переворачиваем символы")
    
    set k=StringLength(z2) //кол-во рядов
    set i=k
    set z1=""
    loop
        exitwhen k < 1
        set z1=z1 + SubString(z2, k - 1, k)
        call BJDebugMsg(SubString(z2, k - 1, k))
        set k=k - 1
    endloop
    
    return z1
endfunction


function Binary2Hex takes string num2 returns string
    local string z1= ""
    local string z2= ""
    local integer len= StringLength(num2)
    local integer i= len
    local integer start
    local integer k
    local integer n

    loop
        exitwhen i <= 0
        
        set start=i - 4 //порядок строки
        if start <= 0 then //если порядок строки меньше 0, то выдает не символы. Поэтому делаем проверку
            set start=0
        endif
        
        set z1=SubString(num2, start, i)
        set k=0
        loop
            exitwhen k > 15
            if ( S2I(z1) == S2I(CharMap2x16[k]) ) then //решающая функция это S2I иначе при переборе CharMap2x16 не всегда можно подобрать подходящую
                //так как варкрафт не добирает нулей при разложении на тетрады - 4 разряда (100101 = 10 0101. тут у 100 нет нуля, 0100). их походу самому придеться добавлять
                set z2=z2 + CharMap16[k]
                set n=k
            endif
            set k=k + 1
        endloop
    
        call BJDebugMsg(I2S(i) + " - выбрана Тетрада: " + z1 + " получили из таблицы: " + I2S(n) + " это из 8-ричной системы ")
        set i=i - 4
    endloop
    call BJDebugMsg("Переворачиваем символы")
    
    set k=StringLength(z2) //кол-во рядов
    set i=k
    set z1=""
    loop
        exitwhen k < 1
        set z1=z1 + SubString(z2, k - 1, k)
        call BJDebugMsg(SubString(z2, k - 1, k))
        set k=k - 1
    endloop
    
    return z1
endfunction

function Binary2DEC takes string num2 returns integer
    local integer num10= 0
    local integer i= 0
    local integer len= StringLength(num2)
    loop
        exitwhen i >= len
        set num10=num10 + S2I(SubString(num2, i, i + 1)) * Pow2x[len - i - 1]
        set i=i + 1
    endloop
    return num10
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[Str2Int256(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 ForLoadMap2 takes nothing returns nothing
    call BJDebugMsg("ЗАГРУЗКА 1")
    set CharInx16[Str2Int16("0")]=0
    set CharInx16[Str2Int16("1")]=1
    set CharInx16[Str2Int16("2")]=2
    set CharInx16[Str2Int16("3")]=3
    set CharInx16[Str2Int16("4")]=4
    set CharInx16[Str2Int16("5")]=5
    set CharInx16[Str2Int16("6")]=6
    set CharInx16[Str2Int16("7")]=7
    set CharInx16[Str2Int16("8")]=8
    set CharInx16[Str2Int16("9")]=9
    set CharInx16[Str2Int16("A")]=10
    set CharInx16[Str2Int16("a")]=10
    set CharInx16[Str2Int16("B")]=11
    set CharInx16[Str2Int16("b")]=11
    set CharInx16[Str2Int16("C")]=12
    set CharInx16[Str2Int16("c")]=12
    set CharInx16[Str2Int16("D")]=13
    set CharInx16[Str2Int16("d")]=13
    set CharInx16[Str2Int16("E")]=14
    set CharInx16[Str2Int16("e")]=14
    set CharInx16[Str2Int16("F")]=15
    set CharInx16[Str2Int16("f")]=15
    

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



function ForLoadMap1 takes nothing returns nothing
    local string s
    
    call BJDebugMsg("СТАРТ")
//====================================
// Pow256x - число 256 в n-степени 
//  Pow256x нужен для вычисления, для работы с rawcode (в тос числе в переводе десятичной и 256-ричной систем)

//Напомню, что первый бит числа - знаковый бит, и он определяет будет ли оно положительным (0) или отрицательным (1). 
//Положительные числа идут от 0x00000000 (0dec) до 0x7fffffff (2147483647dec), отрицательные от 0xffffffff (-1dec) до 0x80000000 (-2147483648dec). 
//Что бы изменить знак числа надо инвертировать (где было 1 написать 0, где был 0 написать один) все биты числа и потом к нему прибавить 1.
// Короче (0x<hex-число> или 1x<hex-число>) это hex, короче 16-ричная система счисления

    set Pow256x[0]=0x00000001 //256^0=1
    set Pow256x[1]=0x00000100 //256^1=256 
    set Pow256x[2]=0x00010000 //256^2=65536
    set Pow256x[3]=0x01000000 //256^3=16777216
//====================================
// Pow16x - число 16 в n-степени 
//  Pow16x нужен для вычисления, для перевода из 16-ричной системы в десятичную, или наоборот.
    set Pow16x[0]=0x00000001 //16^0=1
    set Pow16x[1]=0x00000010 //16^1=16
    set Pow16x[2]=0x00000100 //16^2=256
    set Pow16x[3]=0x00001000 //16^3=4096
    set Pow16x[4]=0x00010000 //16^4=65536
    set Pow16x[5]=0x00100000 //16^5=1048576
    set Pow16x[6]=0x01000000 //16^6=16777216
    set Pow16x[7]=0x10000000 //16^7=268435456
//====================================
// Pow2x - число 2 в n-степени 
// Pow2x нужен для вычисления, для перевода из двоичной системы в десятичную.
//в качестве примера показан двоичный код из 32 символов, но в jass невозможно указать integer в двоичной (binary) системе счисления, но она очень важна для понимания всего материала.

//вместо 1000 0000 0000 0000 0000 0000 0000 0000 можно было поставить 10000000000000000000000000000000 = 2^31=2147483648
//НО: это не работает в варк, нельзя указывать в двоичной системе счисления. Поэтому пришлось указать заранее в 10-чной системе счисления
//если поставить двоичный код из 32 символов в jass, то система будет преобразовано не двоичную систему, а в 8-ричную. 
//короче в варкрафте не так работает 


    set Pow2x[0]=1 //0000 0000 0000 0000 0000 0000 0000 0001 //2^0=1
    set Pow2x[1]=2 //0000 0000 0000 0000 0000 0000 0000 0010 //2^1=2
    set Pow2x[2]=4 //0000 0000 0000 0000 0000 0000 0000 0100 //2^2=4
    set Pow2x[3]=8 //0000 0000 0000 0000 0000 0000 0000 1000 //2^3=8
    set Pow2x[4]=16 //0000 0000 0000 0000 0000 0000 0001 0000 //2^4=16
    set Pow2x[5]=32 //0000 0000 0000 0000 0000 0000 0010 0000 //2^5=32
    set Pow2x[6]=64 //0000 0000 0000 0000 0000 0000 0100 0000 //2^6=64
    set Pow2x[7]=128 //0000 0000 0000 0000 0000 0000 1000 0000 //2^7=128
    set Pow2x[8]=256 //0000 0000 0000 0000 0000 0001 0000 0000 //2^8=256
    set Pow2x[9]=512 //0000 0000 0000 0000 0000 0010 0000 0000 //2^9=512
    set Pow2x[10]=1024 //0000 0000 0000 0000 0000 0100 0000 0000 //2^10=1024
    set Pow2x[11]=2048 //0000 0000 0000 0000 0000 1000 0000 0000 //2^11=2048
    set Pow2x[12]=4096 //0000 0000 0000 0000 0001 0000 0000 0000 //2^12=4096
    set Pow2x[13]=8192 //0000 0000 0000 0000 0010 0000 0000 0000 //2^13=8192
    set Pow2x[14]=16384 //0000 0000 0000 0000 0100 0000 0000 0000 //2^14=16384
    set Pow2x[15]=32768 //0000 0000 0000 0000 1000 0000 0000 0000 //2^15=32768
    set Pow2x[16]=65536 //0000 0000 0000 0001 0000 0000 0000 0000 //2^16=65536
    set Pow2x[17]=131072 //0000 0000 0000 0010 0000 0000 0000 0000 //2^17=131072
    set Pow2x[18]=262144 //0000 0000 0000 0100 0000 0000 0000 0000 //2^18=262144
    set Pow2x[19]=524288 //0000 0000 0000 1000 0000 0000 0000 0000 //2^19=524288
    set Pow2x[20]=1048576 //0000 0000 0001 0000 0000 0000 0000 0000 //2^20=1048576
    set Pow2x[21]=2097152 //0000 0000 0010 0000 0000 0000 0000 0000 //2^21=2097152
    set Pow2x[22]=4194304 //0000 0000 0100 0000 0000 0000 0000 0000 //2^22=4194304
    set Pow2x[23]=8388608 //0000 0000 1000 0000 0000 0000 0000 0000 //2^23=8388608
    set Pow2x[24]=16777216 //0000 0001 0000 0000 0000 0000 0000 0000 //2^24=16777216
    set Pow2x[25]=33554432 //0000 0010 0000 0000 0000 0000 0000 0000 //2^25=33554432
    set Pow2x[26]=67108864 //0000 0100 0000 0000 0000 0000 0000 0000 //2^26=67108864
    set Pow2x[27]=134217728 //0000 1000 0000 0000 0000 0000 0000 0000 //2^27=134217728
    set Pow2x[28]=268435456 //0001 0000 0000 0000 0000 0000 0000 0000 //2^28=268435456
    set Pow2x[29]=536870912 //0010 0000 0000 0000 0000 0000 0000 0000 //2^29=536870912
    set Pow2x[30]=1073741824 //0100 0000 0000 0000 0000 0000 0000 0000 //2^30=1073741824
    set Pow2x[31]=2147483648 //1000 0000 0000 0000 0000 0000 0000 0000 //2^31=2147483648
    
//====================================
// Pow8x - число 8 в n-степени 
// Pow8x нужен для вычисления, для перевода из 8-ричной системы в десятичную.    
//Чтобы написать цифру в восьмеричной системе счисления мы должны приставить к ней 0
    set Pow8x[0]=000000001 //8^0=1
    set Pow8x[1]=000000010 //8^1=8
    set Pow8x[2]=000000100 //8^2=64
    set Pow8x[3]=000001000 //8^3=512
    set Pow8x[4]=000010000 //8^4=4096
    set Pow8x[5]=000100000 //8^5=32768
    set Pow8x[6]=001000000 //8^6=262144
    set Pow8x[7]=010000000 //8^7=2097152

    
    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"
    
    //Первые 128 символов стандарта Юникод — совпадают с соответствующими символами US-ASCII. 
    //символы от 0 до 32 это в основном управляющие символы, в которых не прописан графическое представление.
    
    
    set CharMap256[0]=null //спец. NOP
    set CharMap256[1]=null //спец. SOH
    set CharMap256[2]=null //спец. STX
    set CharMap256[3]=null //спец. ETX
    set CharMap256[4]=null //спец. EOT
    set CharMap256[5]=null //спец. ENQ
    set CharMap256[6]=null //спец. ACK
    set CharMap256[7]=null //спец. BEL
    
    set CharMap256[8]="\b" //символ Backspace
    set CharMap256[9]="\t" //horizontal tab
    set CharMap256[10]="\n" //LF line feed, new line
    set CharMap256[11]=null //спец. VT
    set CharMap256[12]="\f" //NP form feed
    set CharMap256[13]="\r"
    
    //графические символы
    set CharMap256[32]=" " //пробел Space
    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[92]="\\" //такие символы как '\' при компиляции jasshelper выдает ошибку. Нужно ставить '\\', так как при компиляции у вас будет '\'
    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 CharMap256[126]=null //127 - символ Delete 
    
    //остальные 128 символов - это национальные символы (у каждого языка свой стандарт, у английского есть еще расширенный дополнительный 128 символов)
    
    set CharMap256[128]="Ђ"
    set CharMap256[129]="Ѓ"
    set CharMap256[130]="‚"
    set CharMap256[131]="ѓ"
    set CharMap256[132]="„"
    set CharMap256[133]="…"
    set CharMap256[134]="†"
    set CharMap256[135]="‡"
    set CharMap256[136]="€"
    set CharMap256[137]="‰"
    set CharMap256[138]="Љ"
    set CharMap256[139]="‹ ‹"
    set CharMap256[140]="Њ"
    set CharMap256[141]="Ќ"
    set CharMap256[142]="Ћ"
    set CharMap256[143]="Џ"
    set CharMap256[144]="ђ"
    set CharMap256[145]="‘"
    set CharMap256[146]="’"
    set CharMap256[147]="“"
    set CharMap256[148]="”"
    set CharMap256[149]="•"
    set CharMap256[150]="–"
    set CharMap256[151]="—" //тут чуть больше чем у 153 символа, хоть это не заметно
    set CharMap256[152]=null //не понятно какой это символ
    set CharMap256[153]="™"
    set CharMap256[154]="љ"
    set CharMap256[155]="›"
    set CharMap256[156]="њ"
    set CharMap256[157]="ќ"
    set CharMap256[158]="ћ"
    set CharMap256[159]="џ"
    set CharMap256[160]=null //тоже не понятно какой символ
    set CharMap256[161]="Ў"
    set CharMap256[162]="ў"
    set CharMap256[163]="Ћ"
    set CharMap256[164]="¤"
    set CharMap256[165]="Ґ"
    set CharMap256[166]="¦"
    set CharMap256[167]="§"
    set CharMap256[168]="Ё" //большая буква Ё
    set CharMap256[169]="©"
    set CharMap256[170]="Є"
    set CharMap256[171]="«"
    set CharMap256[172]="¬"
    set CharMap256[173]=null //не понятно какой символ
    set CharMap256[174]="®"
    set CharMap256[175]="Ї"
    set CharMap256[176]="°" //значок градус
    set CharMap256[177]="±" //плюс-минус
    set CharMap256[178]="І"
    set CharMap256[179]="і"
    set CharMap256[180]="ґ"
    set CharMap256[181]="µ"
    set CharMap256[182]="¶"
    set CharMap256[183]="·"
    set CharMap256[184]="ё" //буква ё
    set CharMap256[185]="№"
    set CharMap256[186]="є"
    set CharMap256[187]="»"
    set CharMap256[188]="ј"
    set CharMap256[189]="Ѕ"
    set CharMap256[190]="ѕ"
    set CharMap256[191]="ї"
    set CharMap256[192]="А"
    set CharMap256[193]="Б"
    set CharMap256[194]="В"
    set CharMap256[195]="Г"
    set CharMap256[196]="Д"
    set CharMap256[197]="Е"
    set CharMap256[198]="Ж"
    set CharMap256[199]="З"
    set CharMap256[200]="И"
    set CharMap256[201]="Й"
    set CharMap256[202]="К"
    set CharMap256[203]="Л"
    set CharMap256[204]="М"
    set CharMap256[205]="Н"
    set CharMap256[206]="О"
    set CharMap256[207]="П"
    set CharMap256[208]="Р"
    set CharMap256[209]="С"
    set CharMap256[210]="Т"
    set CharMap256[211]="У"
    set CharMap256[212]="Ф"
    set CharMap256[213]="Х"
    set CharMap256[214]="Ц"
    set CharMap256[215]="Ч"
    set CharMap256[216]="Ш"
    set CharMap256[217]="Щ"
    set CharMap256[218]="Ъ"
    set CharMap256[219]="Ы"
    set CharMap256[220]="Ь"
    set CharMap256[221]="Э"
    set CharMap256[222]="Ю"
    set CharMap256[223]="Я"
    set CharMap256[224]="а"
    set CharMap256[225]="б"
    set CharMap256[226]="в"
    set CharMap256[227]="г"
    set CharMap256[228]="д"
    set CharMap256[229]="е"
    set CharMap256[230]="ж"
    set CharMap256[231]="з"
    set CharMap256[232]="и"
    set CharMap256[233]="й"
    set CharMap256[234]="к"
    set CharMap256[235]="л"
    set CharMap256[236]="м"
    set CharMap256[237]="н"
    set CharMap256[238]="о"
    set CharMap256[239]="п"
    set CharMap256[240]="р"
    set CharMap256[241]="с"
    set CharMap256[242]="т"
    set CharMap256[243]="у"
    set CharMap256[244]="ф"
    set CharMap256[245]="х"
    set CharMap256[246]="ц"
    set CharMap256[247]="ч"
    set CharMap256[248]="ш"
    set CharMap256[249]="щ"
    set CharMap256[250]="ъ"
    set CharMap256[251]="ы"
    set CharMap256[252]="ь"
    set CharMap256[253]="э"
    set CharMap256[254]="ю"
    set CharMap256[255]="я"
    
    //CharMap2x8 - эта переменная типа таблица для перевода из двоичной в 8-ричную. Очень нужна.
    //Для перевода числа в восьмеричную необходимо разбить число на триады. Например, 1000110 = 1 000 110 = 106 в 8-ричной системе
    //влево и вправо от запятой двоичное число разбивается на двоичные триады 423,6 = 100 010 011, 110 (пока реализованы только целые, реальные нет)
    //Или обратно по табличке, 144 = 001 100 100 = 1100100 в двоичной системе счисления
    //чтобы перевести обратно в двоичную систему необязательно использовать таблицу и перебирать массив CharMap2x8
    //можно добавить в варкрафт нолик = 0144=1100100, однако труднее будет вставить в строку 0, так как функция I2S обнуляет
    set CharMap2x8[0]="000"
    set CharMap2x8[1]="001"
    set CharMap2x8[2]="010"
    set CharMap2x8[3]="011"
    set CharMap2x8[4]="100"
    set CharMap2x8[5]="101"
    set CharMap2x8[6]="110"
    set CharMap2x8[7]="111"
    
    //CharMap2x16 - эта переменная типа таблица для перевода из двоичной в 16-ричную. Очень нужна.
    //Для перевода числа в 16-чную систему необходимо разбить число на тетрады. Например, 1000110 = 100 0110 = 46 в 16-ричной системе
    set CharMap2x16[0x0]="0000" //0
    set CharMap2x16[0x1]="0001" //1
    set CharMap2x16[0x2]="0010" //2
    set CharMap2x16[0x3]="0011" //3
    set CharMap2x16[0x4]="0100" //4
    set CharMap2x16[0x5]="0101" //5
    set CharMap2x16[0x6]="0110" //6
    set CharMap2x16[0x7]="0111" //7
    set CharMap2x16[0x8]="1000" //8
    set CharMap2x16[0x9]="1001" //9
    set CharMap2x16[0xa]="1010" //10=A=a
    set CharMap2x16[0xb]="1011" //11=B=b
    set CharMap2x16[0xc]="1100" //12=C=c
    set CharMap2x16[0xd]="1101" //13=D=d
    set CharMap2x16[0xe]="1110" //14=E=e
    set CharMap2x16[0xf]="1111" //15=F=d
    
    call BJDebugMsg("ЗАГРУЗКА 0")
    call ForLoadMap2()
endfunction

//===========================================================================
function InitTrig_R takes nothing returns nothing
    set gg_trg_R=CreateTrigger()
    //call TriggerRegisterGameEvent(gg_trg_R, EVENT_GAME_LOADED)
    call TriggerRegisterTimerEventSingle(gg_trg_R, 1.00)
    call TriggerAddAction(gg_trg_R, function ForLoadMap1)
    //call ForLoadMap()
endfunction

//===========================================================================
// Trigger: TEST
//
//     set Pow2x[0] = 0000 0000 0000 0000 0000 0000 0000 0001 //2^0=1
//     set Pow2x[1] = 0000 0000 0000 0000 0000 0000 0000 0010 //2^1=2
//     set Pow2x[2] = 0000 0000 0000 0000 0000 0000 0000 0100 //2^2=4
//     set Pow2x[3] = 0000 0000 0000 0000 0000 0000 0000 1000 //2^3=8
//     set Pow2x[4] =
//===========================================================================
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_TEST_Actions takes nothing returns nothing
    //call BJDebugMsg(I2S(ASCII2DEC("Edok")))
    call BJDebugMsg("Начало")
    call BJDebugMsg(Binary2Hex("111100010010"))



endfunction


//===========================================================================
function InitTrig_TEST takes nothing returns nothing
    set gg_trg_TEST=CreateTrigger()
    call TriggerRegisterTimerEventPeriodic(gg_trg_TEST, 1.00)
    call TriggerAddAction(gg_trg_TEST, function Trig_TEST_Actions)
endfunction//===========================================================================
function InitCustomTriggers takes nothing returns nothing
    call InitTrig_R()
    call InitTrig_TEST()
endfunction

//***************************************************************************
//*
//*  Players
//*
//***************************************************************************

function InitCustomPlayerSlots takes nothing returns nothing

    // Player 0
    call SetPlayerStartLocation(Player(0), 0)
    call SetPlayerColor(Player(0), ConvertPlayerColor(0))
    call SetPlayerRacePreference(Player(0), RACE_PREF_HUMAN)
    call SetPlayerRaceSelectable(Player(0), true)
    call SetPlayerController(Player(0), MAP_CONTROL_USER)

endfunction

function InitCustomTeams takes nothing returns nothing
    // Force: TRIGSTR_002
    call SetPlayerTeam(Player(0), 0)

endfunction

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("LordaeronSummerDay")
    call SetAmbientNightSound("LordaeronSummerNight")
    call SetMapMusic("Music", true, 0)
    call InitBlizzard()


    call InitGlobals()
    call InitCustomTriggers()

endfunction

//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

function config takes nothing returns nothing
    call SetMapName("Еще одна карта")
    call SetMapDescription("Описание отсутствует")
    call SetPlayers(1)
    call SetTeams(1)
    call SetGamePlacement(MAP_PLACEMENT_USE_MAP_SETTINGS)

    call DefineStartLocation(0, - 1088.0, 1920.0)

    // Player setup
    call InitCustomPlayerSlots()
    call SetPlayerSlotAvailable(Player(0), MAP_CONTROL_USER)
    call InitGenericPlayerSlots()
endfunction




//Struct method generated initializers/callers:

Здесь содержится описание всех способностей варкрафта. До сих пор не каждый знать может, что делает каждая способность. Рассортировал способности также по группам.
4 3 619
0
12
1 год назад
0
4 года пользуюсь всей этой инфой, отдельная вкладка выделена под эту статью в браузере, лучший)
0
28
5 лет назад
0
Странно, что пишет, что не ресурсов у блога.
Решил вкратце описать функции.
3 281
0
29
2 года назад
Отредактирован nazarpunk
0
Может собственный githab завести вам?
Ну так заведи, и заодно сможешь систему gist прикрутить, чтоб можно было удобно кодом делиться и не править его прям в статье.
0
27
2 года назад
0
И снова спойлерное адище. Может собственный githab завести вам? xd
это пробник, пробую написать свой список нативок.
0
29
2 года назад
0
И снова спойлерное адище. Может собственный githab завести вам? xd