24

» Администрация XGM / ВНИМАНИЕ: ВСЕ КАРТЫ И ПРОЕКТЫ ТЕПЕРЬ НА САЙТЕ

ScorpioT1000:
Faion, если у тебя уже есть проект - мы поднимем, ну или попроси там через сообщение менеджеру.
Отписал.
теперь хочешь не хочешь, а придется заниматься нормальным оформлением проекта, и торопится с демкой=)
24

» Администрация XGM / ВНИМАНИЕ: ВСЕ КАРТЫ И ПРОЕКТЫ ТЕПЕРЬ НА САЙТЕ

Тем у кого уже лвлы тоже нужно перерегиться что ли?
злодеи, нарушаете мой рабочий процесс=)
24

» WarCraft 3 / Tc's XColl engine

Именно, сейчас даже в современных "чайниках" производительность повыше. Проще говоря пост выше - ирония. Хотя обновить железо я планирую все равно=)
24

» WarCraft 3 / Tc's XColl engine

Не чайник, это системник == i9 + не менее 32 гб озу? Ок, не проблема, куплю. Но в замен пообещай не пороть чушь в каждом 1 посту ._.
24

» WarCraft 3 / Tc's XColl engine

Ну то что система держит 600 сфер вы конечно малость загнули=) Объекты которые более не движутся - выгружаются из системы. Каунт показывает реальное кол-во обрабатываемых объектов. На 100+ уже легкие лаги, на 200 уже ощутимые.
В какой нить большой орпг, с большим миром этот каунт будет снижен до 25-50. Впрочем система хороша в любом случае.
24

» WarCraft 3 / cJass - дополнение к языку JASS

[quote=Doc]if(GetData==(1))then
обычно такое случается, если у тебя есть функция с именем
QuestData[/quote]
Прав. А вообще было бы не дурно, если бы компилятор писал о конфликте имен. У меня вот все в сплошных дефайнах, фиг найдешь конфликт если возникнет.
24

» WarCraft 3 / cJass - дополнение к языку JASS

Такая проблема с cjass:
есть некий #define QuestHead = if (GetData==QuestData) then
но после компиляции я получаю:
if(GetData==(1))then
Если рассмотреть процесс компиляции, то:
На стадии в parsed_war3map все норм, заменяется правильно , а вот уже в optimized_war3map косяк.
Что касается новой сборки, то выдает ошибку в самом начале на #include "cj_types.j" ,а именно когда начинает парсить сам дефайн в либе.
Картина такая там:
[code]
define
{
int integer
bool boolean
void nothing
float real
while (cond) whilenot not(cond), <- тут ошибка
break=exitwhen true
[/code]
На данный момент у меня нет идей кроме как избавится от данного дефайна.
решил проблему рейнеймом нескольких дефайнов.
24

» WarCraft 3 / Библиотека функций

Фигней вы пользуетесь.

library SafeMoving
{

    private float MinX=-28400.0
    private float MaxX=31300.0
    private float MinY=-31700.0
    private float MaxY=28300.0

    #define
    {
        SetUnitX=SetUnitXEx
        SetUnitY=SetUnitYEx
        SetUnitPosition=SetUnitPositionEx
    }

    private float CheckX(float x)
    {
        if x>MaxX
        {
            return MaxX
        }
        elseif x<MinX
        {
            return MinX
        }
        return x
    }

    private float CheckY(float y)
    {
        if y>MaxY
        {
            return MaxY
        }
        elseif y<MinY
        {
            return MinY
        }
        return y
    }

    void SetUnitXEx(unit u, float x)
    {
        SetUnit##X(u,CheckX(x))
    }

    void SetUnitYEx(unit u, float y)
    {
        SetUnit##Y(u,CheckY(y))
    }

    void SetUnitPositionEx(unit u, float x, float y)
    {
        SetUnit##Position(u,CheckX(x),CheckY(y))
    }

    void SetUnitXY(unit u, float x, float y)
    {
        SetUnitX(u,x)
        SetUnitY(u,y)
    }
}
24

» WarCraft 3 / Библиотека функций

Полнейший бред. Во первых, нафиг то что в ините. Если не используется? Во вторых функция ремува, это нечто.
Фунцкия должна быть такой, юнит может быть не только триггерным ._.

public function ANTIDAMMI takes unit u returns nothing
    if GetUnitAbilityLevel(u, 'Aloc') > 0 then
        call ShowUnit(u, false) // нафиг? сомневаюсь что это ускоряет ремув юнита.
        call KillUnit(u)
    endif
endfunction
24

» WarCraft 3 / cJass - дополнение к языку JASS

[quote=Doc]Лишняя работа же, кому нужен еще один вжасс парсер?[/quote]
Я прост еще тот перфекционист. Была б моя работа, я бы 100% прикрутил бы свой парсер, и еще большинство фич vjass на свой лад=)
24

» WarCraft 3 / cJass - дополнение к языку JASS

[b]Doc[/b], случаем не в курсе когда будет более менее стабильная версия, а то тоже хочется поковырять=)
24

» WarCraft 3 / Библиотека функций

[quote=Doc]Группы не юзаю, например.
Вай? Нативный массив юнитов, разве есть причины не юзать их?
Бтв, пока старики не разбежались совсем, нужно заставить их накатать статью о различных фичах которые помогают более оптимально использовать ресурсы. Начиная от банальных, типа о разнице в скорости работы координат и локаций, хт и массивов, заканчивая серьезными вещами, о которых вообще мало кто в принципе знает.
24

» WarCraft 3 / Библиотека функций

Дело было вечером, делать было нечего отдыхал от кода для проекта...
Функция для пика рандомного юнита из группы.

library GetRndUnit
{
    private unit array unit_array
    private int index = 0

    void rnd()
    {
        unit_array[index] = GetEnumUnit()
        index++
    }

    unit GetRndUnit(group g)
    {
        index = 0
        ForGroup(g, function rnd)    
        return unit_array[GetRandomInt(0,index)]
    }
}
24

» WarCraft 3 / cJass - дополнение к языку JASS

[quote=DotaMaster666]Я вот например не вижу функции инит - убиваете читаемость.[/quote]
Правильно что ты ее не видишь, и не должен. И ничего не убивает, тебе там ничего не над читать. Эвент и кондишн свернут.
24

» WarCraft 3 / cJass - дополнение к языку JASS

[quote=Clamp]остальное интереса не представляет =О[/quote]
Я это кинул что бы [s]понтануцца[/s]показать конструкцию. Это почти тож самое что вверху нам показал Некрон.
Разница только в том, что при юзе спелла каждый раз вызывается SpellData(т.е. мое малость медленее). Но зато на все спелы константное кол-во глобалок.
[quote=Clamp]остальное интереса не представляет =О[/quote]
А что тут интересного? По моему сейчас все и везде используют системы элементов.
24

» WarCraft 3 / cJass - дополнение к языку JASS

А, ну я в принципе дефайнами тож самое сделал. Только у меня это все скрыто в конструкции:
[cut]
[code]
scope FireStomp initializer Init
SpellData
SPELL_DAMAGE = 250.0
SPELL_ID = 'A000'
DAMAGE_TYPE = FIRE
DAMAGE_RANGE = 500.0
SPELL_RANG = E
EndSpellData
SpellActions
DamageEnemyAreaSimple()
CreateOnCaster("Flamestrike_Impact_Base.mdl")
EndSpellActions тут зашит эвент+проверка
endscope
[/code]
[/cut]
24

» WarCraft 3 / cJass - дополнение к языку JASS

bb:Пример адекватный с использованием этой фичи добавьте, а то чот не особо вкурил.