ScorpioT1000 добавил:
handle id - это и есть ключь из хэш-таблицы хэндлов(а никакой не адрес ячейки виртуальной памяти и прочая мишура), на которой построены все данные в варкрафте. пользуясь им (т.е. для каждого хендла свой ключ) мы находим индекс например массива, или id структуры. это самый быстрый способ для варика
Неудержался :) это, конечно на практике будет работать как уг(особенно дополнительная либа для строчек), но всеравно интересно было)
// ===================================================================================== |
// Библиотека BinInt содержит функции для работы с двоичным видом целого 32-битного числа.
// Автор: ScorpioT1000
// Дата создания: 03.09.2009
// Библиотека обладает всеми авторскими правами.
//
// Объект:
BinInt
// Функции:
// ============== Основное =============== //
static method New takes nothing returns BinInt
// Конструктор без параметров, создает BinInt, который равен 0
// Пример:
local BinInt A = BinInt.New()
static method New0 takes nothing returns BinInt
// Конструктор без параметров, создает BinInt, но не присваивает элементам значения (!)
static method New1 takes integer src returns BinInt
// Конструктор, принимающий integer. Создает BinInt, который равен src
// Пример:
local integer B = 100500
BinInt A = BinInt.New1(B)
method Copy takes nothing returns BinInt
// Создает новый BinInt и присваивает ему значение текущего
// Пример:
local BinInt A = BinInt.New1(100500)
local BinInt B = A.Copy() // B = 100500
method Print takes nothing returns nothing
// Печатает текущий BinInt через стандартный вывод.
// Вид:
// XXXX XXXX XXXX XXXX-
// -XXXX XXXX XXXX XXXX
// Пример:
local BinInt A = BinInt.New1(100500)
call A.Print()
method SetBit takes integer num, boolean val returns nothing
method GetBit takes integer num returns boolean
// Устанавливает/берет значение отдельно взятого бита (под номером num, от 0 до 31)
// with binary search !
// Пример:
local BinInt A = BinInt.New1(100500)
call A.SetBit(0,true) // теперь A = 100501
// ============= Операции преобразований ================ //
method toBin takes integer a returns nothing
// Функция конвертирует принятое число a в бинарный вид и записывает его в текущий BinInt
// Пример:
local BinInt A = BinInt.New()
local integer B = 100500
call A.toBin(B) // в A записано 100500 как "0000 0000 0000 0001 1000 1000 1001 0100"
method toDec takes nothing returns integer
// Функция конвертирует текущий BinInt в стандартный integer и возвращает его
// Пример:
local BinInt A = BinInt.New1(100500)
local integer B = A.toDec() // B будет равна 100500
// ================ Побитовые операции ================== //
method AND takes BinInt right returns BinInt
// применяет AND на два BinInt'а (текущий и переданный), записывает результат в новый и возвращает его
method OR takes BinInt right returns BinInt
// применяет OR на два BinInt'а (текущий и переданный), записывает результат в новый и возвращает его
method XOR takes BinInt right returns BinInt
// применяет XOR на два BinInt'а (текущий и переданный), записывает результат в новый и возвращает его
method NOT takes nothing returns BinInt
// применяет побитовый NOT на текущий BinInt
method LeftShift takes nothing returns nothing
method RightShift takes nothing returns nothing
// побитовые сдвиги влево и вправо
// ============= integer - приспособленные ============== //
// Это то, для чего все это делалось :)
function IntXOR takes integer A, integer B returns integer
function IntAND takes integer A, integer B returns integer
function IntOR takes integer A, integer B returns integer
// Применяют XOR, AND и OR на пару целых чисел, результат возвращают
// ===================================================================================== |
[url]http://ipicture.ru/uploads/090814/7R7sfJ4W60.jpg[/url] для этого всего-то [url]http://ipicture.ru/uploads/090814/AEfgWUqFao.jpg[/url] :) новая библиотека написана !
а вдруг =O
Никогда не любил перекладывать сроки и прочее. Но больше всего я не люблю людей, которые только необоснованно треплятся языками. Открой, для начала, хотябы новости проекта, а затем уже аргументированно изложи свою мысль.
» WarCraft 3 / Библиотека функций
ты еще не видел как мой хэш стрингов тормознуто работает) напиши там любое слово в этой карте типа "aa", "ab", "ac")
» WarCraft 3 / Библиотека функций
handle id - это и есть ключь из хэш-таблицы хэндлов(а никакой не адрес ячейки виртуальной памяти и прочая мишура), на которой построены все данные в варкрафте. пользуясь им (т.е. для каждого хендла свой ключ) мы находим индекс например массива, или id структуры. это самый быстрый способ для варика
» WarCraft 3 / Библиотека функций
» Прочее / Выбор названия для ЗБТ сервера Aion.
» Прочее / Выбор названия для ЗБТ сервера Aion.
» Прочее / Выбор названия для ЗБТ сервера Aion.
» Between The Worlds / Between The Worlds
» Кампания Джека - Глава 1 / Кампания Джека - Глава 1
» WarCraft 3 / Библиотека функций
Обновил ! все нашел, теперь должно быть норм)
» WarCraft 3 / Библиотека функций
это пока не финал, если что
» World of WarCraft / Cataclysm
» WarCraft 3 / Warland.ru снова онлайн!
» Кампания Джека - Глава 1 / Кампания Джека - Глава 1
» StarCraft / Не в этом году
» WarCraft 3 / Симметричный ландшафт
» StarCraft / Не в этом году
» WarCraft 3 / Вышел новый патч 1.24
» Кампания Джека - Глава 1 / Кампания Джека - Глава 1
» WarCraft 3 / Modern Warfare Vehicles Pack
» Кампания Джека - Глава 1 / Кампания Джека - Глава 1
Никогда не любил перекладывать сроки и прочее. Но больше всего я не люблю людей, которые только необоснованно треплятся языками. Открой, для начала, хотябы новости проекта, а затем уже аргументированно изложи свою мысль.
» WarCraft 3 / Modern Warfare Vehicles Pack
» Музыка и Звук / RocK
» Кампания Джека - Глава 1 / Кампания Джека - Глава 1