Добро пожаловать в мой бложик.Здесь я буду выкладывать всякий бредовый код(а иногда и полезный) и обучающие статьи по этому коду, свои идеи по созданию новых карт и игр, помогать новичкам разобраться в коде и помогать делать карты, а так же праздновать новые лвл и писать мысли которые приходят мне в голову.
качество падает и падает, именно поэтому вар и умирает а не потому что в него игроков мало играет.
Всем нормальным людям и всем у кого IQ выше 50 уже давно насрать на варик. Варик скатился, потому что собрал в себе всякий сброд: дотеров, школьников, дотеров-школьников, школьников-дотеров, анимешников, капрофилов, капрофаков и прочих геев.
В последнее время всё меньше и меньше людей хотят учится мапмейкерству(ланд,моделинг,кодинг) но при этом всё больше и больше людей хотят делать карты нечего не уча и нечего не зная
получается уг,в которое играют другие игроки,которые тоже начинают делать свои мапы равняясь на это уг и в результате с каждым новым поколением мапмейкеров качество падает и падает, именно поэтому вар и умирает а не потому что в него игроков мало играет.
Я не могу завлечь игроков в варик,ибо их отталкивает движок и прочее.
Это было бы очень странно. Только что скачал его, никаких модулей не ставил, подключал только "cj_types_priv" и "cj_typesEx_priv". Попробую костыль и отпишусь. nvc123, увы, но теперь он говорит, что я не перегрузил соответствующие операторы для своей структуры :D
Прикладываю код. Он не 100% рабочий, т.к. я как раз начал переписывать его под структуры (с хэштаблицей работал). В структурах же почти полный ноль, не смотря на опыт в сиподобных языках.
код
struct KB_data {
unit u;
real a;
int times;
KB_data MIN = 1;
KB_data MAX = 500;
void move() {
real x = GetUnitX(.u);
real y = GetUnitY(.u);
x = TranslateX(x,KB_POWER,.a);
y = TranslateY(y,KB_POWER,.a);
SetUnitX(.u,x);
SetUnitY(.u,y);
}
static void new(unit targ, real angle) {
KB_data data = KB_data.create();
if (data>MAX) {
data.destroy();
return;
}
data.times = 10;
data.u = targ;
data.a = angle;
}
static void delete() {
.u = null;
.destroy();
}
private void update() {
KB_data data=MAX;
loop {
data.move()
exitwhen (data==MIN);
data--;
}
}
}
ELB359, даже не знаю что сказать
видимо у тебя другая версия jngp
если коротко то твоя ошибка переводится следующим образом "я не могу сравнить 2 числа одного типа т.к. мне кажется что они разных типов хотя это и не так"
могу лишь предложить костыль но хз сработает он или нет
добавь ещё 1 переменную
Просто если я правильно понимаю все это дело происходит в стандартной системе координат т.е., и тут оно будет страдать в случае, если твой "конус" пересекает переход от 360 градусов к 0, в моем же случае этого не произойдет.
Мб я объясняю непонятно, в таком случае загугли скалярное произведение векторов, увидишь что A x B = |A| * |B| * cosAlpha (Alpha - угол между А и B), тогда если длина А = длина B = 1 -> A x B = cosAlpha, что тебе и нужно
GF RaiseD, док мастер объяснять все просто и понятно
но в чём он прав так это в том что можно обойтись без арктангенса
но если не хочешь учить вектора то
от енума отнимай атакера
т.е. вместо
скалярное произведение единичных векторов равняется косинусу угла между ними, атан здесь не нужен
а = вектор от атакующего к цели
б = вектор от атакующего вперёд (cos(facing), sin(facing))
скалярное произведение нормализованных а и б нужно сравнить с половиной "ширины" нужного тебе конуса.
Ещё вопрос. Пытался сделать триггерный Cleave и ограничить его действие следующим сектором:
кид
if bj_RADTODEG*Atan2(GetUnitY(attacker)-GetUnitY(enumUnit),GetUnitX(attacker)-GetUnitX(enumUnit)) >= GetUnitFacing(attacker)-65 and bj_RADTODEG*Atan2(GetUnitY(attacker)-GetUnitY(enumUnit),GetUnitX(attacker)-GetUnitX(enumUnit)) <= GetUnitFacing(attacker)+65 then
Я хотел таким образом ограничить клив сектором в 130 градусов. Но это условие никогда не действительно. Я что-то делаю не так.
Комментарии проекта Блог им. nvc123
Главная страница
TAHK90:
получается уг,в которое играют другие игроки,которые тоже начинают делать свои мапы равняясь на это уг и в результате с каждым новым поколением мапмейкеров качество падает и падает, именно поэтому вар и умирает а не потому что в него игроков мало играет.
перебор структур циклом
nvc123, увы, но теперь он говорит, что я не перегрузил соответствующие операторы для своей структуры :D
Прикладываю код. Он не 100% рабочий, т.к. я как раз начал переписывать его под структуры (с хэштаблицей работал). В структурах же почти полный ноль, не смотря на опыт в сиподобных языках.
видимо у тебя другая версия jngp
если коротко то твоя ошибка переводится следующим образом "я не могу сравнить 2 числа одного типа т.к. мне кажется что они разных типов хотя это и не так"
могу лишь предложить костыль но хз сработает он или нет
добавь ещё 1 переменную
Ошибку выдает.
Q/A
Отредактирован Doc
Мб я объясняю непонятно, в таком случае загугли скалярное произведение векторов, увидишь что A x B = |A| * |B| * cosAlpha (Alpha - угол между А и B), тогда если длина А = длина B = 1 -> A x B = cosAlpha, что тебе и нужно
но в чём он прав так это в том что можно обойтись без арктангенса
но если не хочешь учить вектора то
от енума отнимай атакера
т.е. вместо
а = вектор от атакующего к цели
б = вектор от атакующего вперёд (cos(facing), sin(facing))
Отредактирован Raised
где func_name имя функции которая запустится при запуске карты (функция должна быть внутри библиотеки)