Поиск по меткам: cJass

Выполнение кода и обращение к данным

Приветствую тебя, дорогой странник, сегодня я открою тебе занавес триггерных тайн, погружу тебя в глубины стека событий и пронесу до вершин лимита операций!
Так открой же глаза, оставь обыденную суету и встречай межсетевую вселенную!
Рукопись сия рассчитана как на юного странника, так и на видавшего виды путешественника.
Статья
12 7 598

IFDEBUG 2: Как жить без фаталов?

Думаю многие помнят небольшую, но очень полезную библиотечку от Doc которая помогала сохранять дебаг логи на хард по средствам прелоада и библиотечку от Скорпи, которая помогала контролировать в коде соблюдение различных условий. Так вот, недавно Faion малость усовершенствовал первую, а скорпи присоединил вторую. Надеюсь, док и faion будут не против.
В результате получилось отличное средство от фаталов!
Алгоритмы, Наработки и Способности
25 12 600

Наложение строки на строку (ведущие нули/символы)

Places the overlay string on the source string and returns result string. Centering method specifies position of the remaining symbols.
enum (StringOverlayCentering) { SOC_SOURCE_LEFT, SOC_SOURCE_RIGHT, SOC_SOURCE_CENTER }

string StringOverlay(string source, string overlay, StringOverlayCentering centeringMethod)
Алгоритмы, Наработки и Способности
8 3 834

Вращение юнита в 3D от Doc

Вращение юнита в 3D.
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
""
void RotateUnit(unit u, float X1, float Y1, float Z1, float A, float B, float C){
float a1, b1, a2, b2, a3, b3, X2, Y2, Z2

X2 = GetUnitX(u)
Y2 = GetUnitY(u)
Z2 =…
Алгоритмы, Наработки и Способности
8 4 085

Делим integer на три байта

Делим integer на три байта ! тоесть каждый от 0 до 255 с четвертым там могут быть проблемы со знаком, такчто пока лень проверять
cJass:
#define IntGetByte1(src) = (src / (256*256))
#define IntGetByte2(src) = (ModuloInteger(src, (256*256)) / 256)
#define IntGetByte3(src) = (ModuloInteger(src,256))
#define IntSetByte1(src,val) = { src = (ModuloInteger(src,(256*256)) + val*256*256 ) }
#define IntSetByte2(src,val) = { src = (ModuloInteger(src,256) + (src / (256*256))*256*256 + val*256) }
#define IntSetByte3(src,val) = { src = ((src / 256)*256 +val)}
позволяет хранить в 1 инте 3 коротких числа напр. цвет
P.S. спасибо Нетрату за это :) вобще тут не особо чего сложного на самом деле, но я забыл всю теорию)
Алгоритмы, Наработки и Способности
3 2 936
В статье рассмотрены вопросы, связанные с передачей данных между разного рода функциями и переменными в Jass. Про это уже много всего написано, но большая часть из написанного либо не содержит однозначных ответов, либо содержит неверную информацию.
Я решил написать статью, которая предоставит читателю исчерпывающую информацию о передаче и хранении значений и ссылок на языке Jass.
Статья
30 26 016

Повседневные приёмы в программировании варкрафта

Статья расскажет об интересных повседневных приемах программирования на варкрафте, о которых некоторые уже достаточно наслышаны, но их тема раскрыта не окончательно.
Статья
17 17 817