Написал небольшую системку, которая делает что-то при касте разных способностей. И если что-то пошло не так, она через:
BJDebugMsg(msg) 
пишет ид скила через:
I2S(GetSpellAbilityId())
В итоге в игре я вижу равкод скила в десятичной СС. Есть ли какая-нибудь функция или наработка, которая конвертировала бы это в 256-ую СС, как у скилов в редакторе объектов.
Воспользовался этим, но он иногда возвращает такие равкоды скила: A06, A0F и т.д. (3-ех значные числа), когда в самом редакторе объектов все скилы имуют 4-ех значный равкод.
globals
    string array sOutput
endglobals

private function Init takes nothing returns nothing
    set sOutput['0'] = "0"
    set sOutput['1'] = "1"
    set sOutput['2'] = "2"
    set sOutput['3'] = "3"
    set sOutput['4'] = "4"
    set sOutput['5'] = "5"
    set sOutput['6'] = "6"
    set sOutput['7'] = "7"
    set sOutput['8'] = "8"
    set sOutput['9'] = "9"
    set sOutput['a'] = "a"
    set sOutput['b'] = "b"
    set sOutput['c'] = "c"        
    set sOutput['d'] = "d"
    set sOutput['e'] = "e"
    set sOutput['f'] = "f"
    set sOutput['g'] = "g"
    set sOutput['h'] = "h"
    set sOutput['i'] = "i"
    set sOutput['j'] = "j"
    set sOutput['k'] = "k"
    set sOutput['l'] = "l"
    set sOutput['m'] = "m"
    set sOutput['n'] = "n"
    set sOutput['o'] = "o"
    set sOutput['p'] = "p"
    set sOutput['q'] = "q"
    set sOutput['r'] = "r"
    set sOutput['s'] = "s"
    set sOutput['t'] = "t"
    set sOutput['u'] = "u"
    set sOutput['v'] = "v"
    set sOutput['w'] = "w"
    set sOutput['x'] = "x"
    set sOutput['y'] = "y"
    set sOutput['z'] = "z"
    set sOutput['A'] = "A"
    set sOutput['B'] = "B"
    set sOutput['C'] = "C"        
    set sOutput['D'] = "D"
    set sOutput['E'] = "E"
    set sOutput['F'] = "F"
    set sOutput['G'] = "G"
    set sOutput['H'] = "H"
    set sOutput['I'] = "I"
    set sOutput['J'] = "J"
    set sOutput['K'] = "K"
    set sOutput['L'] = "L"
    set sOutput['M'] = "M"
    set sOutput['N'] = "N"
    set sOutput['O'] = "O"
    set sOutput['P'] = "P"
    set sOutput['Q'] = "Q"
    set sOutput['R'] = "R"
    set sOutput['S'] = "S"
    set sOutput['T'] = "T"
    set sOutput['U'] = "U"
    set sOutput['V'] = "V"
    set sOutput['W'] = "W"
    set sOutput['X'] = "X"
    set sOutput['Y'] = "Y"
    set sOutput['Z'] = "Z"
endfunction

function modulo takes integer dividend, integer divisor returns integer
    return dividend - (dividend/divisor)*divisor
endfunction

function raw2s takes integer raw returns string
    local string s = ""
    
    loop
        set s = sOutput[modulo(raw,256)] + s
        set raw = raw/256
      exitwhen raw==0
    endloop    

    return "'"+s+"'"
endfunction
0
19
7 лет назад
0
Принятый ответ
0
21
7 лет назад
0
Сори, сам запутался в строках.
0
27
7 лет назад
Отредактирован MpW
0
поищи на сайте, уже тем скопилось дофига. Есть еще библиотеки и программ и ссылок
Чтобы оставить комментарий, пожалуйста, войдите на сайт.