Добавлен ScorpioT1000,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Алгоритм
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
// wrong fixes =(
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
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
я немного доработал ее, и есть пример впрочем есть пример в ссылке получше с StringHash =)