Dreams Gate
Ссылка для мобильных устройств
Комментарии
  •  Sarmath ↓ 
    godar пишет

    Наверное максимум 32767... обьектов на планету... Хотя... пользователи у нас расточительные - могут и миллион попробовать насадить.

    не ну за флуд объектами будем карать)
    а откуда такие точные сведения по поводу объектов?

  •  ANABIOS101 ↓ 

    Анально карать будем!

    Он наверное примерно сказал.

  •  xXxCeperaxXx ↓ 

    32676 ПРИМЕРНО? интересно, интересно...))

  •  godar ↓ 

    Просто любят программисты двоичные числа - типа 2*15-1...
    ПерсоАнально - это точнее... Можно же, в конце-концов создать один сложный обьект из нескольких простых путем обьединения... Модель продумать хоть немного а не наложил кучу кубиков рядом получил и стенку - блоками стены можно пользоваться...

  •  Sarmath ↓ 

    каг бэ..:

    godar пишет

    Просто любят программисты двоичные числа - типа 2*15-1...

    Эх уж эти програмисты))
    но число по любому не точное.
    И опять, уважаемый Илья(анабиоз который вроде) ты хоть в спойлеры прячь выражения свои

  •  ANABIOS101 ↓ 

    Хз я не программист, я не знаю почему они любят числа такие?
    Но могу спросить у программиста. (не Роман)
    P.S

    Скрытый текст:
    Sarmath, ты единственный кто мне мозг любит выносить

  •  Sarmath ↓ 
    ANABIOS101 пишет

    P.S

    Скрытый текст:
    Sarmath, ты единственный кто мне мозг любит выносить

    дада:
    ну а ты как хотел? должен же кто то тебе здесь мозг выносить?

  •  godar ↓ 

    о, Сармат снайпером подрядился...

  •  ANABIOS101 ↓ 

    Скрытый текст:
    он снайпер, как из меня генерал

  •  Sarmath ↓ 

    Скрытый текст:

    ANABIOS101 пишет

    Скрытый текст:
    он снайпер, как из меня генерал

    С тебя генерал как из меня лысый йож

  •  ANABIOS101 ↓ 

    Скрытый текст:
    Какой ёж? Тут уже крыса переросток

  •  chemax ↓ 

    Вы спойлерами заколебали

  •  sv ↓ 
    chemax пишет

    Вы спойлерами заколебали

    +1

  •  Jorkin ↓ 

    И ведь не только в этой теме, предлагаю заканчивать пустое  :) .

    Скрытый текст:
    soska.jpg

    Или придется ввести знак отличия для авторов подобных постов :D .

    Скрытый текст:
    detsad-user.jpg

  •  sv ↓ 

    Jorkin, ))) самое оно

  •  .:ASURAN:. ↓ 

    Jorkin, Поддерживаю :)

  •  Sarmath ↓ 

    думаю никто не будет против, если я отдам заброшенную регу пользователю, который может помочь проекту.
    пишет что знает php, mysql и немного java.

  •  .:ASURAN:. ↓ 

    Sarmath, Все будут только ЗА, Только измени все данные аккаунта. Что бы потом не было никаких проблем и вопросов.

  •  Sarmath ↓ 
    .:ASURAN:. пишет

    Sarmath, Все будут только ЗА, Только измени все данные аккаунта. Что бы потом не было никаких проблем и вопросов.

    но проблем, все сделано

  •  godar ↓ 

    Надеюсь, что в новой демке будет возможность заложить хоть какой-то геймплей - мне не терпится начать закладывать сюжет сеттинга.

  •  sv ↓ 

    для этого js добавил

  •  godar ↓ 

    По JS всплыло вот это

    Register Or Login to View Links!

    Register Or Login to View Links! /

    Для новичков прошу ознакомиться а старичкам припомнить... Если у Романа получится, то уже в декабре можно начинать практиковаться.

    Художественный вопрос... Вот передо мной обьект. Я хочу, чтобы по квесту его отыскал игрок. Как узнать имя этого обьекта, чтобы в квесте разместить привязку на него?

  •  sv ↓ 
    godar пишет

    Художественный вопрос... Вот передо мной обьект. Я хочу, чтобы по квесту его отыскал игрок. Как узнать имя этого обьекта, чтобы в квесте разместить привязку на него?

    в базе данных по номеру созданного тобой объекта и будет доступен.

  •  godar ↓ 

    мдам... читаю сейчас учебник по яваскрипту и понимаю, что пока проект делался я забыл как программировать... Алгоритмику помню а вот имена операторов, функций - подзабыл... Чую, что потребуется создать раздел для вопросов/ответов по программированию.
    И у нас игра а не браузер - некоторые вещи здесь просто недопустимы или есть сложности в реализации при помощи яваскрипта... Возможно, стоит слегка изменить язык...

  •  sv ↓ 

    язык на столько динамичный что не требует его изменения

    //
    //    Main menu : Background
    //
    function class_mmbackground() {
        var logo_dg = 0;
        var logo_fmod = 0;
        var tex_bg = 0;
        var first = 0;
    
        this.draw = function(){
    
                // initialization
    
            logo_dg = img_load( 'dg_ve', false, TEX_CLAMP_TO_EDGE );
            logo_fmod = img_load( 'logos.main/fmod_logo', false, TEX_CLAMP_TO_EDGE);
            tex_bg = img_load( 'metal/metal_teladi_platesC_diff', true, TEX_REPEAT);
    
            first = time_real();
    
            // draw this
    
            this.draw = function() {
                var cur = time_real() - first;
                //
                var tx_offset = Math.sin(time_real()/12.0)*512.0;
                var ty_offset = Math.cos(time_real()/18.0)*512.0;
    
                img_draw_picbox_strech( tex_bg, 
                        0, 0, 
                        screen_width(), screen_height(), 
                        tx_offset, ty_offset, 
                        screen_width(), screen_height());
                    img_draw_center( logo_dg, screen_width() / 2, logo_dg.height() / 2 + 20, 1.0 );
    
                //
                    gui_print( 1, 20, screen_height()-30, 'version: ' + version() );
            };
        };
    }
    
    mainmenu_custom_background = new class_mmbackground();
    
    background_set_class( mainmenu_custom_background );
    //
    //    Human User Interface ( HUI )
    //    ============================
    //
    
    function human_user_interface(){
    
        var tex_logo_256;
        var tex_crosshair;
        var tex_extra_loading;
        var tex_sb_main;
    
        //
        // Main drawing function
        //
        this.draw = function() {
    
                // initialization
            tex_logo_256    = img_load( 'engine_logo',    false, TEX_CLAMP_TO_EDGE );
    
            // draw
            this.draw = function() {
                if (!cvar('showinterface')) return;
    
                // Draw User Info Overlay
                this.draw_overlay();
    
                // Draw crosshair
                var cross_id = cvar('crosshair');
                        if ( cross_id>0 ) {
                    this.crosshair(screen_width() / 2, screen_height() / 2, cross_id-1);
                }
                // Dreams Gate Logo
                img_draw_picbox(tex_logo_256, 
                    8, 8,    // X, Y
                    0, 0,    // tex : X, Y
                    500,100 // tex : W, H
                );
    
                if (is_extra_loading()) {
                    this.show_loading( screen_width()-32-10, 10 );
                }
            };
        };
    
        this.show_loading = function( x, y ){
            var id = Math.ceil( time_ms() / 50 ) % 12;
    
            if (!tex_extra_loading) {
                tex_extra_loading = img_load('gui/loading', false, TEX_CLAMP_TO_EDGE);
            }
    
            img_draw_picrotated( tex_extra_loading, x, y, id * 30 );
        };
        //
        // Draw CrossHair 
        //
        this.crosshair = function( x, y, ID ) {
            //
            // todo: remake it! Add support for custom crosshair icons
            //
    
                if (!tex_crosshair) {
                tex_crosshair    = img_load( 'gui/crosshairs',    false, TEX_CLAMP_TO_EDGE );
            }
    
            img_draw_picbox( tex_crosshair,
                x - 32, y - 32,
                (ID % 8)*64, (ID % 8)*64,
                64,64
            );
        };
        //
        // Textured numbers
        //
        this.DrawNumber = function(x, y, number, align) {
                //
            // todo: remake it
            //
            var NUM_H   = [28,21,28,25, 25, 24, 26, 25, 25, 25];
            var NUM_POS = [ 0,28,49,77,102,127,151,177,202,227];
    
    
            var num;
            var id;
            var dx;
    
            if (number<0) number = 0;
    
            num = number.toString();
            dx = x;
            
            var zerro = '0'; zerro = zerro.charCodeAt(0); // key code: 48
    
            switch (align) {
            case 0 : 
            break;
            case 1 :
                for( var i=0; i < num.length; i++ ){
                    id = num.charCodeAt(i) - zerro;
                    dx = dx - NUM_H[id];
                }
            break;
            };
    
            for ( var i=0; i < num.length; i++ ) {
                id = num.charCodeAt(i) - zerro;
    
                img_draw_picbox( tex_sb_main, dx, y,
                    NUM_POS[id], 229,
                    NUM_H[id], 27
                );
                dx += NUM_H[id];
            }
        };
    
        this.OverlayBig = function( x, y, id, value ) {
            img_draw_picbox(tex_sb_main,
                x, y,
                0,31,
                160,49
            );
    
            img_draw_picbox(tex_sb_main,
                x+8, y+28,
                160,id*15,
                90,15
            );
    
            this.DrawNumber(x+160-8, y+10, value, 1);
        };
    
        this.OverlaySmall = function( x, y, id, value ) {
            img_draw_picbox(tex_sb_main,  x, y,
                0,0,
                160,31
            );
    
            img_draw_picbox(tex_sb_main,  x+8, y+14,
                160,id*15,
                90,15
            );
    
            img_draw_picbox(tex_sb_main,  x, y+4,
                0,80,
                Math.ceil( (value*160)/100 ),13
            );
        };
    
        this.DrawAmmo = function( x, y, id ) {
    
            img_draw_picbox( tex_sb_main,
                x, y,
                0,31,
                160,49
            );
    
            img_draw_picbox( tex_sb_main,
                x+8, y+28,
                160, id*15,
                90,15
            );
    
            this.DrawNumber( x+160-8, y+10, active_weapon.Ammo, 1);
            //
            // todo
            //
                gui_print( 1, x+16,    y - 8,        active_weapon.Name    );
                gui_print( 1, x+60 + 8,    y + 49 - 16,    active_weapon.Packs    );
        };
    
        this.WeaponSelection = function() {
    
            var wpn = player_weapons();
    
            if ( time_real() > wpn.last_selection+4) return;
    
            var old_FontsAlpha = get_font_alpha();
    
            var alpha = ( wpn.last_selection+3 )-time_real();
            set_font_alpha( alpha );
    
            var total_size = 5 * 32 + 1 * 160 + 5 * 4;
    
            var x, y;
    
            x = ( screen_width() - total_size ) / 2;
            for ( var i = 0; i<6; i++ ) {
                y = 8 + 85 + 8;
    
                if ((i == wpn.active_slot) && (weapons_slot(i).weapons_count>0)) {
                    for ( var j = 0; j < weapons_slot(i).weapons_count; j++) {
    
                        img_draw_aquad(tex_sb_main, x, y, 0, 31, 160,49, false, alpha  );
    
                        if (j == weapons_slot(i).active_id) {
                            gui_print_centerc( 1, x + 160 / 2, y + 49 - 16, weapons_slot(i).ActiveWeaponName,  1,1,1 );
                        }
    
                        y = y + 49;
                        y = y + 4;
                    }
    
                    if (weapons_slot(i).weapons_count>0) 
                        gui_print( 1, x+4,(8+85+8)+4, i+1 );
    
                    x = x + 160;
                } else {
                    img_draw_aquad(tex_sb_main, x, y, 1, 93, 32, 33, false, alpha );
    
                    if (weapons_slot(i).weapons_count>0)
                        gui_print( 1, x+4,(8+85+8)+4, i+1 );
    
                    x = x + 32;
                    y = y + 32;
                }
                x = x + 4;
            }
            set_font_alpha( old_FontsAlpha );
        };
        //
        // Draw Overlay
        //
        this.draw_overlay = function(){
    
            tex_sb_main = img_load('gui/def_gui', false, TEX_CLAMP_TO_EDGE);
    
            this.draw_overlay = function(){
                if (!cvar('showhui')) return;
    
                // : Ammunition info
                this.DrawAmmo( screen_width()-160-8, screen_height()-47-8, 1 );
                //active_weapon.Packs
    
                // Player Health
                this.OverlayBig  ( 8, screen_height()-47-8, 0, player_health_percent() );
                // Player Power
                this.OverlaySmall( 8, screen_height()-47-8-30-8, 3, player_power_percent() );
                // Player Armor
                this.OverlayBig  ( screen_width()-160-8-168, screen_height()-47-8, 2, player_armor_percent() );
    
                // Weapons Info
                this.WeaponSelection();
            };
        };
    }
    
    hui_main = new human_user_interface();
    hui_set_class( hui_main );
  •  Sarmath ↓ 

    ипать копать!!!!  :D   :o

  •  Sarmath ↓ 

    меня тут спрашивали "почему не unity 3d", я не нашел что дельного ответить... мне кажется это абсурд

  •  sv ↓ 

    Unity 3D - на это не способен (в текущем состоянии), либо надо шибком извернуться чтобы его сдвинуть в нужное русло, и он платный - стоимость лицензии не низкая.

    Есть несколько людей думающих что Unity 3D лучше чем DirectX и OpenGL, не понимая чем unity от них отличается, пишут мне в ICQ и утверждают, что я не понимаю просто что такое Unity.

    И наверное единственных два проекта с большим пространством на Unity были StarForge и BSG, там наглядно видно на сколько сильно ограничен Unity

  •  Sarmath ↓ 

    Вот и я о том же. играл я в галактику, ну ниче, но все равно не торт... взять даже 20 демку, по моему лучше смотрится, да и по функциональности тоже

  •  godar ↓ 

    Напоминаю список оружия ближнего боя.

    - меч - Для режущих и колющих ударов, для ударов рукоятью и защитой плашмя, как щитом. Одна сторона меча имеет прямое лезвие а вторая - извилистое - для нанесения рваных ран и как пила по дереву.
    - щит - Для отбивания, блокировки атак, для ударов щитом, для ношения чего-то вдвоем, как миска.
    - газовый ключ - откручивание гаек и как дубинка(булава).
    - лопата - вспоминаем лопату из Звездного Десанта 3 - с волнистым лезвием.
    - рапира - удочка и нанесение колющих ударов, можно использовать как хлыст.
    - алебарда - рубка и обтесывание деревьев, рубящие и колющие(копьевая часть) удары по противнику. Возможно добавление молотка для отбивания мяса со стороны противоположной топору.
    - кинжал - для нарезки хлеба, салатов и т.п, ну и для нанесения тихих режущих и колющих ударов, Одна из кромок ровная а вторая мелко-волнистая - для рваных ран и как пила по металлу.
    - цеп - молотьба зерновых и нанесение ударов дробящим предметом по противнику, Возможно цепков будет несколько - утренняя звезда.
    - ручная дрель с насадками - отвертка, мечик и плашка, сверла, трубчатые фрезы, болгарочные круги, циркулярка, шливовальный круг, зубчатый ключ.
    - молот с киркой - забивание чего-то, кузнечное дело, гибка металла, удары тупым предметом по противнику, кирка для добычи руды и для ударов тоже подходит.

    И вот откуда можно еще моделей набрать...
    Register Or Login to View Links!

  •  Sarmath ↓ 

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

  •  Jorkin ↓ 
    Sarmath пишет

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

    Спорно, весьма. Это лишь демо, имхо главная ее задача не только проба для игроков но и обкатка для тех кто может-желает чем то помочь. А значит не заумный язык скриптов, возможность вызова врагов союзников животных предметов итд, какая то физика, возможность вставки обьектов правка их характеристик, итд итп нет смысла все перечислять. Так что смотря с какой точки зрения смотреть, если только с точки зрения желающих помочь то хватит одного меча и одного ружья, если с точки зрения чисто игрока то и перечисленного оружия явно мало.

  •  MIF ↓ 
    godar пишет

    Напоминаю список оружия ближнего боя.

    - меч - Для режущих и колющих ударов, для ударов рукоятью и защитой плашмя, как щитом. Одна сторона меча имеет прямое лезвие а вторая - извилистое - для нанесения рваных ран и как пила по дереву.

    Меч как бы для рубящих ударов, режущие - это сабля ) Ну и не забываем об особенностях боевых и бытовых инструментов. Например боевой топор слишком лёгок для рубки, а бытовым не особо помахаешь ввиду веса, да и форма не подходит для пробивания брони.

  •  godar ↓ 

    Я подбирал оружие исходя из универсальности применения а не из качества применения. Потом, со временем возникнут и классы холодного оружия и особенности в зависимости от модели. Просто технически необходимы эти а остальные - можно и обойтись.