Сейчас 09:44:20 Пятница, 3 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Крипы, много (Можно ли как-то избежать лагов?)
Крипы, много
tRu^SДата: Вторник, 11 Декабря 2012, 18:57:59 | Сообщение # 1
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Вот у меня 100 крипов на карте и начинает лагать, можно как-то исправить?

 

SirNikolasДата: Вторник, 11 Декабря 2012, 19:02:55 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Периодики есть?

Добавлено (11 Декабря 2012, 19:02:55)
---------------------------------------------
Или группопики?


 

lyneevДата: Вторник, 11 Декабря 2012, 19:05:36 | Сообщение # 3
8 уровень
Группа: Проверенные
Сообщений: 692
Награды: 0
Репутация: 333
Блокировки:
Quote (tRu^S)
Вот у меня 100 крипов на карте и начинает лагать, можно как-то исправить?


комп купи новый


это селезень гей лондон гей гей развод гей робот гей рыба
 

tRu^SДата: Вторник, 11 Декабря 2012, 19:08:42 | Сообщение # 4
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
SirNikolas, через луп сразу и много. Да период сек 10-20, а потом идут, сразу много и лаги :(

Добавлено (11 Декабря 2012, 19:06:56)
---------------------------------------------
lyneev, не у меня лагает -_-, я играю с рандом людьми пишут что жуть, у самого нету сильных лагов.

Добавлено (11 Декабря 2012, 19:08:42)
---------------------------------------------
Code
integer i = 0
loop
exitwhen i == 2*wave
unit u = CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE),'h001',GetRandomReal(GetRectMinX(gg_rct_MobCr),GetRectMaxX(gg_rct_MobCr)),GetRandomReal(GetRect  MinY(gg_rct_MobCr),GetRectMaxY(gg_rct_MobCr)),270.)
i++
endloop

и когда волна 30-40 люди пишут мол лаги, как исправить?




Сообщение отредактировал tRu^S - Вторник, 11 Декабря 2012, 19:09:19
 

lyneevДата: Вторник, 11 Декабря 2012, 19:14:09 | Сообщение # 5
8 уровень
Группа: Проверенные
Сообщений: 692
Награды: 0
Репутация: 333
Блокировки:
Quote (tRu^S)
lyneev, не у меня лагает -_-, я играю с рандом людьми пишут что жуть, у самого нету сильных лагов.


так бы сразу и написал.

есть ли лаги после 40 волны?


это селезень гей лондон гей гей развод гей робот гей рыба


Сообщение отредактировал lyneev - Вторник, 11 Декабря 2012, 19:15:26
 

tRu^SДата: Вторник, 11 Декабря 2012, 19:17:21 | Сообщение # 6
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Quote (lyneev)
значит карта лагучая

ЧТО ТЫ ГОВОРИШЬ? НЕ ВРЕШЬ? ПРАВДА ЧТО ЛИ?

Я наверно умственно отсталый идиот, раз создал этот топан.

Добавлено (11 Декабря 2012, 19:17:21)
---------------------------------------------

Quote (tRu^S)
есть ли лаги после 40 волны?

Да и на следующих все жоше, прям баттхёрт.


 

lyneevДата: Вторник, 11 Декабря 2012, 19:36:00 | Сообщение # 7
8 уровень
Группа: Проверенные
Сообщений: 692
Награды: 0
Репутация: 333
Блокировки:
Quote (tRu^S)
Да и на следующих все жоше, прям баттхёрт.


запусти карту ,открой диспетчер задач и посмотри сколько оперативки к 30 волне сожрёт.
если много значит дело не в 30 волне


это селезень гей лондон гей гей развод гей робот гей рыба
 

SirNikolasДата: Вторник, 11 Декабря 2012, 19:40:32 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
lyneev, да не в том дело. Лаг происходит из-за одновременного создания 60 юнитов. Вот, набросал библиотеку постепенного создания юнитов.
Code
library ParticularCreator {
    include "cj_types_priv.j";

    private function interface callback_t takes nothing returns nothing;

    struct ParticularCreator {
        private timer t = CreateTimer();
        private group g = CreateGroup();
        private int port = 1, count;
        int ID;
        real X, Y, Period;
        player Owner;
        callback_t onEnd;

        void destroy() {
            PauseTimer(.t);
            DestroyTimer(.t);
            DestroyGroup(.g);
            .deallocate();
        }

        int operator Portion() {
            return port;
        }

        void operator Portion=(int value) {
            if value > 0 { port = value; }
        }

        void Start(int count) {
            if TimerGetRemaining(.t) <= .0 {
                .count = count;
                TimerStart(.t, .Period, true, \
                    lambda void() {
                        handle h = GetExpiredTimer();
                        thistype a = 1;
                        whilenot h == a.t { a++; }
                        int i = 1;
                        for (unit u) {
                            u = CreateUnit(a.Owner, a.ID, a.X, a.Y, GetRandomReal(.0, 360.));
                            ShowUnit(u, false);
                            GroupAddUnit(a.g, u);
                            exitwhen i == a.port;
                            i++;
                        }
                        a.count -= a.port;
                        if a.count <= 0 {
                            PauseTimer(a.t);
                            unit u;
                            loop {
                    u = FirstOfGroup(a.g);
                    exitwhen u == null;
                    GroupRemoveUnit(a.g, u);
                    ShowUnit(u, true);
                            }
                            a.onEnd();
                        }
                    }
                );
            }
        }
    };
}

//Очень простой пример использования. Не нужно его копировать, лучше написать свой!
scope test {
    private ParticularCreator pc;
    
    private void onEnd() {
        real x = GetRectCenterX(gg_rct_Target), y = GetRectCenterY(gg_rct_Target);
        for (unit u; UnitsInRect(gg_rct_Spawn)) {
            IssuePointOrderById(u, order_move, x, y);
        }
        BJDebugMsg("Волна создана");
        pc.destroy();
    }
    
    void test() {
        pc = ParticularCreator.create();
        pc.ID = 'hfoo';
        pc.X = GetRectCenterX(gg_rct_Spawn);
        pc.Y = GetRectCenterY(gg_rct_Spawn);
        pc.Portion = 10;
        pc.Period = .25;
        pc.Owner = Player(12);
        pc.onEnd = onEnd;
        pc.Start(40);
    }
}


 

lyneevДата: Вторник, 11 Декабря 2012, 19:43:48 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 692
Награды: 0
Репутация: 333
Блокировки:
Quote (SirNikolas)
да не в том дело

всё может быть unsure


это селезень гей лондон гей гей развод гей робот гей рыба


Сообщение отредактировал lyneev - Вторник, 11 Декабря 2012, 19:44:51
 

tRu^SДата: Вторник, 11 Декабря 2012, 19:45:25 | Сообщение # 10
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Quote (SirNikolas)
Лаг происходит из-за одновременного создания 60 юнитов. Вот, набросал библиотеку постепенного создания юнитов.

Спасибо


 

SirNikolasДата: Среда, 12 Декабря 2012, 13:51:46 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (tRu^S)
Спасибо
Она что, работает? :o


 

tRu^SДата: Среда, 12 Декабря 2012, 13:53:32 | Сообщение # 12
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
Quote (SirNikolas)
Она что, работает?

Нет.

Добавлено (12 Декабря 2012, 13:53:32)
---------------------------------------------
SirNikolas, но я понял что сразу создавать не надо, сделал по своему.


 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Крипы, много (Можно ли как-то избежать лагов?)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz