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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » простейший вопрос по Jass - вылетает Memory Cannot Read (Я в Jass буквально вчера и уже пытаюсь писать функции...)
простейший вопрос по Jass - вылетает Memory Cannot Read
AnyOne697Дата: Суббота, 15 Января 2011, 23:39:32 | Сообщение # 26
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote (SirNikolas)

Quote (AnyOne697)
Насколько новый этот новый патч?..

Имеется в виду патч 1.24, а не Windows

Ну, это я понимаю, да и потом - в Win7 Ultimate есть такая удобная вещь, как XP-mode. Чуть сыроватая - производительность иногда падает, баги странные появляются, но в то же время работает...

Quote (SirNikolas)

Quote (AnyOne697)
А вот это зачем?..

Раскрытие BJ.

А подробнее информации есть, что это за BJ и с чем его едят... И тем более, зачем здесь условие? Для того, чтобы камера применялась на одного игрока?..


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

AjaccioДата: Воскресенье, 16 Января 2011, 04:30:28 | Сообщение # 27
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
BJ функции - подарочный набор от Blizzard.
По сути представляют из себя набор из других, более простых функций. Например:

Code

native CreateUnit takes player id, integer unitid, real x, real y, real face returns unit
//Обычная функция создания юнита.

function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
//BJ-вариант, внутри содержит ЕЩЁ одну BJ-функцию, которая в конце концов опять же вызывает CreateUnit().

Кроме того порой можно увидеть такое:

Code

function DestroyEffectBJ takes effect whichEffect returns nothing
     call DestroyEffect(whichEffect)
endfunction

Вызов функции DestroyEffectBJ приведёт к вызову DestroyEffect с тем же набором параметров...
В лучшем случае всё это кушает ресурсы как ребёнок конфеты, но не более.
В худшем BJ-функции ещё и содержат утечки памяти, тогда их использование особенно накладно.

Впрочем, делая, например, киниматику можно пренебречь этим, ибо если вызов происходит 1-2 раза за игру, то ничего страшного не будет.
При создании мощных систем использование только native-функций - стандарт де факто.


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

FkoFFДата: Воскресенье, 16 Января 2011, 05:46:58 | Сообщение # 28
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Ajaccio, ну, БЖ нужны близзардам для ГУИ интерфейса.

 

Banzay89Дата: Воскресенье, 16 Января 2011, 06:44:07 | Сообщение # 29
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
common.j (нативки) и blizzard.j. Пользуйся :)
 

CHLSNДата: Воскресенье, 16 Января 2011, 08:08:03 | Сообщение # 30
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
AnyOne697, я тебе вот что скажу. На кой _)( ты вызываешь лишнюю функцию?
Quote (AnyOne697)
function rmvHeroOnArray takes integer hero returns nothing
    local integer i
    local integer temp
    loop
       if(udg_AllHeroes[0] == hero) then //да... и кстати, откуда здесь нумерация идёт... всё забываю...
           set temp = i
       endif
       set i = i + 1
       exitwhen(i == 16)
    endloop
    set udg_AllHeroes[temp] = udg_AllHeroes[udg_AllHeroInteger - 1]
    set udg_AllHeroInteger = udg_AllHeroInteger - 1
endfunction

function createRndHeroForPlayerByNumber takes integer num, integer cmdNum returns nothing
     local integer rndTemp
     call SaveIntegerBJ( ( LoadIntegerBJ(0, 0, GetLastCreatedHashtableBJ()) - 1 ), 0, 0, GetLastCreatedHashtableBJ() )
     set rndTemp = GetRandomInt(1, udg_AllHeroInteger)
     call CreateNUnitsAtLoc( 1, udg_AllHeroes[rndTemp], ConvertedPlayer(num), GetPlayerStartLocationLoc(Player(cmdNum + 9)), bj_UNIT_FACING )
     call rmvHeroOnArray(udg_AllHeroes[rndTemp])
     call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetLastCreatedUnit()), GetUnitLoc(GetLastCreatedUnit()), 2.00 )
endfunction


Когда можно без нее обойтись:
Quote (CHLSN)
function createRndHeroForPlayerByNumber takes player pl returns nothing
     local integer i = GetRandomInt( 1, udg_AllHeroInteger )
     local unit rndHero = udg_AllHeroes[i]
     local integer x = 0
     local unit u
//udg_hash = InitHashtableBJ() при инициализации
     call SaveInteger( udg_hash, 0, 0, LoadInteger( udg_hash, 0, 0 ) - 1 )
     //call CreateNUnitsAtLoc( 1, udg_AllHeroes[rndTemp], ConvertedPlayer(num), GetPlayerStartLocationLoc(Player(cmdNum + 9)), bj_UNIT_FACING )
     //Кто-то интересно так делает... Создает юнита для ИгрокХ, а помещает в стартовую локацию ИгрокХ+9 ???
     set u = CreateUnit( pl, GetUnitTypeId( rndHero ), GetStartLocationX(GetPlayerStartLocation(pl)), GetStartLocationY(GetPlayerStartLocation(pl)), 0 )
     set udg_AllHeroes[i] = udg_AllHeroes[udg_AllHeroInteger]
     set udg_AllHeroInteger = udg_AllHeroInteger - 1
     if GetLocalPlayer() == pl then
         // Use only local code (no net traffic) within this block to avoid desyncs.
         call PanCameraToTimed( GetUnitX(u), GetUnitY(u), 2 )
     endif
     set rndHero = null
     set pl = null
     set u = null
endfunction

Это во-первых, во-вторых, ты считаешь, что мои сообщения, написанные строго по теме - мусор???

Добавлено (16-01-2011, 08:08)
---------------------------------------------

Quote (AnyOne697)
А подробнее информации есть, что это за BJ и с чем его едят... И тем более, зачем здесь условие? Для того, чтобы камера применялась на одного игрока?..

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

Quote (FkoFF)
Ajaccio, ну, БЖ нужны близзардам для ГУИ интерфейса.

Это оправдано, но блин вашу, типа нельзя обойтись вызовом native в таком случае?:
Quote (Ajaccio)
function DestroyEffectBJ takes effect whichEffect returns nothing
     call DestroyEffect(whichEffect)
endfunction




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

rep-30011Дата: Воскресенье, 16 Января 2011, 08:33:05 | Сообщение # 31
7 уровень
Группа: Проверенные
Сообщений: 300
Награды: 0
Репутация: 18
Блокировки:
Парни сорри за флуд но почему бы вам не перейти на GUI он легче и удобнее для меня это лутше джасса и нету утечек как многие говорят что на гуи постоянные утечки это не так а с джассом много гемороя на гуи в 2 раза быстрее зделаеш чем на джассе что нибудь


ИНФА
Ланшафтинг - 10%
Декорирование - 5%
Джасс - 3%
Спелмейкер (создатель спелов) - 100%
Основные триггеры - 100%
Фантазия - 83%
 

[stebashka]Дата: Воскресенье, 16 Января 2011, 08:38:17 | Сообщение # 32
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Quote (rep-30011)
на гуи постоянные утечки

Впрочем как и на jass
устраняются с помощью jass
rep-30011, ты не понимаешь что значит "утечка".
любая информация оставшаяся в памяти, нагружающая игру, тем самым создающая лаги


 

rep-30011Дата: Воскресенье, 16 Января 2011, 08:39:51 | Сообщение # 33
7 уровень
Группа: Проверенные
Сообщений: 300
Награды: 0
Репутация: 18
Блокировки:
Quote (|stebashka|)
ты не понимаешь что значит "утечка".

Я понимаю и именно по этому я и говорю что у меня нет утечек на гуи и именно по этому мне ненужен джасс



ИНФА
Ланшафтинг - 10%
Декорирование - 5%
Джасс - 3%
Спелмейкер (создатель спелов) - 100%
Основные триггеры - 100%
Фантазия - 83%
 

SirNikolasДата: Воскресенье, 16 Января 2011, 08:42:53 | Сообщение # 34
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (rep-30011)
он легче и удобнее для меня
А причем тут ты?
Quote (rep-30011)
на гуи в 2 раза быстрее сделаешь, чем на джассе что-нибудь
Quote
Печатать быстрее, чем кликать - Проверено, что быстрее печатать на клавиатуре, чем щелкать мышью. Поэтому JASS быстрее использовать, потому что вы набираете скрипты с клавиатуры, тогда как в GUI Вам нужно мышью кликать на нужных значениях.
Источник.




Сообщение отредактировал SirNikolas - Воскресенье, 16 Января 2011, 08:46:05
 

rep-30011Дата: Воскресенье, 16 Января 2011, 08:48:26 | Сообщение # 35
7 уровень
Группа: Проверенные
Сообщений: 300
Награды: 0
Репутация: 18
Блокировки:
Quote (SirNikolas)
Печатать быстрее, чем кликать - Проверено

Проверено что? я хоть и печатаю быстро но кликаю мышью я тоже быстро зато на джасе мне нада сидеть и парится с текстом и потом в гиганском мусоре текста мне ещё и выевлять ошибку? на гуи легче определить где ошибка и ненада рыскать в мусоре текста 1 единственную ошибочную букву!!!!!!!!!!!!!!!



ИНФА
Ланшафтинг - 10%
Декорирование - 5%
Джасс - 3%
Спелмейкер (создатель спелов) - 100%
Основные триггеры - 100%
Фантазия - 83%
 

SirNikolasДата: Воскресенье, 16 Января 2011, 09:06:16 | Сообщение # 36
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Насчет ошибок - есть специальные программы, которые показывают строку с ошибкой. Вообще у JASS больше возможностей (об этом можно прочитать в этой статье), но если ты не хочешь на него переходить - не надо. Не нужно навязывать всем GUI (как, впрочем, и JASS).

Добавлено (16-01-2011, 09:06)
---------------------------------------------
И давай закончим этот никому не нужный спор.


 

DreiiДата: Воскресенье, 16 Января 2011, 12:54:45 | Сообщение # 37
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
rep-30011, ГУИ медленне в работе чем Jass,Во первых при срабатывании триггера варик переводит его в жасс,если ты переведеш свой триггер в жасс ты получиш окло 50 строчек кода,если хорошо знать жасс можно оптимизировать его и будет около 10-15,Во вторых при конвертиции в текст в триггере есть такие плохие функции как BJ, которые содержат в себе еще несколько функций.Например обычное создание 1 юнита ,если перевести в Jass и посмотреть начинку может вызвать шок,но из всего этого нам понадобиться только одна строчка.
И еще на гуи нельзя юзать координаты,а используеться отсталые локи которые текут неимвоерно,даже если удалять их всеравно будут лаги,хоть и не большие но будут(Проверено лично,сделал два одинаковых спелла,один с локами другой с ооординатами)


 

AnyOne697Дата: Воскресенье, 16 Января 2011, 13:15:19 | Сообщение # 38
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote (CHLSN)
Это во-первых, во-вторых, ты считаешь, что мои сообщения, написанные строго по теме - мусор???

Ни в коем случае! Мусор я имел ввиду закомментированую строчку со старой версией вызова юнита игроку...

Quote (Ajaccio)

Code
function DestroyEffectBJ takes effect whichEffect returns nothing  
      call DestroyEffect(whichEffect)  
endfunction

Вызов функции DestroyEffectBJ приведёт к вызову DestroyEffect с тем же набором параметров...

Quote (CHLSN)
Это оправдано, но блин вашу, типа нельзя обойтись вызовом native в таком случае?:

Не думаю, что это сжирает память. На самом деле, такая функция, ИМХО, при запуске игры и её использовании будут спарсена в то, что надо...
Тем более - Jass - это быстро написанный язык с теми условиями, чтобы и им возможностей давал и нам не сильно надоедал. Они, близзардовцы, сами делают карты с использованием именно WE, но компы у них там куда быстрее, чем у нас простых смертный, и многие лаги сжираются тупым брутфорсом (в данном случае не "перебор", а "в лоб")...

Quote (rep-30011)
Парни сорри за флуд но почему бы вам не перейти на GUI он легче и удобнее для меня это лутше джасса и нету утечек как многие говорят что на гуи постоянные утечки это не так а с джассом много гемороя на гуи в 2 раза быстрее зделаеш чем на джассе что нибудь

Да, он легче, но никак не удобнее... Он и был создан, чтобы такие как Вы не чувствовали себя претеснёными... Утечность - это огромная проблема GUI, так как сам по себе не очень оптимизированный компилятор Jass создавал много "проходного", но не очищал память после использования (и правильно - можно очистить лишнее)... Так вот создание рандомных точек - очень утечно... Поэтому нужно пользоваться Destroy- функциями.
Писать на триггерах и в правду получается быстрее, поэтому лучше всего использовать смесь триггеров и Jass - первым выполнять стандартные задачи, а вторым делать некоторые нестандартные функции, устранять утечки и оптимизировать не оптимизированные функции.

По поводу тупости GUI, вроде выведение условий в отдельную функцию или вызова функции, вызывающей функцию с аналогичными параметрами - это несколько раздражает, но почти не снижает производительности. Очень важно понимать, что куда сильнее снижает производительность, например, вычисление шейдеров и сложные рекурсивные функции нахождения пути юнита, которые нам писать не надо - они стандартные для игры. Но то, как они понижают производительность, никогда не сравниться с тем, как снижает производительность сама игра. А утечность - странная вещь. Скорее всего, это не сами утечки в память (согласитесь, 6 гигабайт оперативы должно хватить для любой карты, если её хватает для массива из 10000x10000 long long переменных (64 бит = 8 байт)), а вот то что это может быть какой-то, не знаю, размножающийся мусор, что ли, но вряд ли... Ну... В общем, как бы то ни было, это, ИМХО, неоптимизированность самой игры.

Quote (rep-30011)

Quote (SirNikolas)
Печатать быстрее, чем кликать - Проверено

Проверено что? я хоть и печатаю быстро но кликаю мышью я тоже быстро зато на джасе мне нада сидеть и парится с текстом и потом в гиганском мусоре текста мне ещё и выевлять ошибку? на гуи легче определить где ошибка и ненада рыскать в мусоре текста 1 единственную ошибочную букву!!!!!!!!!!!!!!!

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

Печатаю я и вправду быстро... Но всех функций точно не помню! Да и не знаю того, кто все их помнит. Поэтому надо либо конвертить GUI триггер в Jass либо юзать что-то вроде Jass-Craft...

В общем мой выбор - Mix(GUI-Trigger, Jass-Trigger). Было бы не плохо ещё, понять как работает cJass...


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

CHLSNДата: Воскресенье, 16 Января 2011, 13:26:45 | Сообщение # 39
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:

Quote (rep-30011)
на гуи легче определить где ошибка и ненада рыскать в мусоре текста 1 единственную ошибочную букву!!!

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




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

AnyOne697Дата: Воскресенье, 16 Января 2011, 13:30:18 | Сообщение # 40
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote (Dreii)
rep-30011, ГУИ медленне в работе чем Jass,Во первых при срабатывании триггера варик переводит его в жасс,если ты переведеш свой триггер в жасс ты получиш окло 50 строчек кода,если хорошо знать жасс можно оптимизировать его и будет около 10-15,Во вторых при конвертиции в текст в триггере есть такие плохие функции как BJ, которые содержат в себе еще несколько функций.Например обычное создание 1 юнита ,если перевести в Jass и посмотреть начинку может вызвать шок,но из всего этого нам понадобиться только одна строчка.
И еще на гуи нельзя юзать координаты,а используеться отсталые локи которые текут неимвоерно,даже если удалять их всеравно будут лаги,хоть и не большие но будут(Проверено лично,сделал два одинаковых спелла,один с локами другой с ооординатами)

Ничего не знаю. Во-первых, GUI по скорости такие же как и Jass (утечность не в счёт - Jass сам по себе утечен, просто можно его же инструментами эту утечность сократить или даже убрать).
Во-вторых - всегда можно заменить строки

Code
set i = i + a
set i = i + 5

строкой
Code
set i = i + a + 5

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

И... WE сам переделывает триггеры в Jass. И тем более - никаких GUI-триггеров в принципе не существует - GUI - это интерфейс! WE не хранит эти триггеры так, как мы их видим, и сразу парсит их в Jass. А 50 строк -> 15 строк это скорее повышение читаемости чем повышение производительности. Тем более у задачи есть минимальная скорость выполнения, стабильно рабочее решение работающее со скоростью ниже этого минимального значения в принципе не возможно создать.


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

CHLSNДата: Воскресенье, 16 Января 2011, 13:37:58 | Сообщение # 41
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
AnyOne697, ответь, пожалуйста, на вопрос
Quote (CHLSN)
AnyOne697, я тебе вот что скажу. На кой _)( ты вызываешь лишнюю функцию?

из 30ого сообщения.

AnyOne697, вообще-то ты прав. Если код парсируется, то все BJ заменяются. Но. Есть одно но. В некоторых BJ-функциях производятся ненужные действия, что, как я думаю, не есть гуд по простой логике: зачем делать круг вокруг дома, если работа = 0 ?




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

AnyOne697Дата: Воскресенье, 16 Января 2011, 13:38:07 | Сообщение # 42
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote (CHLSN)
По-хорошему, если человек знает, что он делает, и точно представляет, как он это делает, и делает это внимательно, у него ни одной ошибки не выскочит. Но большинство зеленых mapmaker'ов (по себе знаю), ничерта не знают, что они делают, и, тем более, нихрена не представляют, как они это делают, но в надежде на то, что они делают то, что нужно сделать.

Я бы не сказал. Помню три часа сидел с телефоном (тех. под.) и мы доооолго думали, почему не работает инет. Оказалось - билайн пишется как beeline, а не beelain... Простая тупая автоматическая ошибка забравшая у меня ТРИ часа жизни...

Ну и тем более сложно заметить ошибку вроде замены i (ай) на l (эль)... А чисто автоматически отпечататься можно - l и i не очень далеко друг от друга...


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

CHLSNДата: Воскресенье, 16 Января 2011, 13:38:58 | Сообщение # 43
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
Quote (AnyOne697)
но скорость выполнения будет абсолютно одинакова.

Это смотря, как в машинном коде это все будет выглядеть.




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

DreiiДата: Воскресенье, 16 Января 2011, 13:39:26 | Сообщение # 44
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
ну в Jass'e JassCraft или JNGP мигом ткнут на ошибку

 

CHLSNДата: Воскресенье, 16 Января 2011, 13:43:52 | Сообщение # 45
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
AnyOne697, я перечислил всё, что исключает те случаи, что ты рассказал.
Quote (AnyOne697)
Оказалось - билайн пишется как beeline, а не beelain...

Значит вы не точно знали, что вы делали? Под точностью подразумевается достоверная информация. Достоверная информация: инфа, полученная из нескольких достоверных источников, и совпадающая по значению.
Quote (AnyOne697)
Ну и тем более сложно заметить ошибку вроде замены i (ай) на l (эль)... А чисто автоматически отпечататься можно - l и i не очень далеко друг от друга...

Все нормальные люди пишут код под шрифтом Courier, в котором l, i и I друг от друга удивительно хорошо различимы + в этом шрифте все символы имеют одинаковую ширину, что улучшает читабельность текста.




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

AnyOne697Дата: Воскресенье, 16 Января 2011, 13:44:16 | Сообщение # 46
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote
AnyOne697, вообще-то ты прав. Если код парсируется, то все BJ заменяются. Но. Есть одно но. В некоторых BJ-функциях производятся ненужные действия, что, как я думаю, не есть гуд по простой логике: зачем делать круг вокруг дома, если работа = 0 ?

))) Не... Это всё понятно... Я имел ввиду, что, скорее всего, сначала Jass перейдёт в какое-то надмножество Си, потом как-то по кривому оптимизируется (вот как раз все эти псевдоФункции и функции-пустышки, вроде DoNothing (который нужен, как я понимаю, был только для заполнения полей в if-then-else, например) переделываются в то что нужно. Потом он парситься в сам Си или что-то более похожее (то, на чём был написан WE/WC), а Си уже напрямую в ассемблер - машинный код. Так что все неровности могут превратиться в ровности, а на ровном месте может вырасти Эверест ;)


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

CHLSNДата: Воскресенье, 16 Января 2011, 13:46:28 | Сообщение # 47
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
Quote (Dreii)
ну в Jass'e JassCraft или JNGP мигом ткнут на ошибку

На ошибку-то они ткнут, но если не напишешь set u = null в конце функции, после 100-1000 вызова функции уже начнутся лаги...




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

SirNikolasДата: Воскресенье, 16 Января 2011, 13:46:53 | Сообщение # 48
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Dreii, все равно тебе придется заново переписывать всю строчку, чтобы не было ошибок.

 

AnyOne697Дата: Воскресенье, 16 Января 2011, 13:50:41 | Сообщение # 49
2 уровень
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 9
Блокировки:
Quote (CHLSN)
Quote (AnyOne697)
но скорость выполнения будет абсолютно одинакова.

Это смотря, как в машинном коде это все будет выглядеть.


В том-то и дело, что скорее всего в машинном коде это и будет выглядеть одинаково.
Quote (CHLSN)
Quote (AnyOne697)
Оказалось - билайн пишется как beeline, а не beelain...

Значит вы не точно знали, что вы делали? Под точностью подразумевается достоверная информация. Достоверная информация: инфа, полученная из нескольких достоверных источников, и совпадающая по значению.

Ну это как сказать... Я вполне знал что делал, но многие вещи у меня уже доведены до автомата... Такие как печать например...

Quote (CHLSN)
Все нормальные люди пишут код под шрифтом Courier, в котором l, i и I друг от друга удивительно хорошо различимы + в этом шрифте все символы имеют одинаковую ширину, что улучшает читабельность текста.

По форуму не скажешь... И потом, да они различны, но надо вчитываться в каждую букву, а кто это делает?.. На самом деле, слышал, что программисты очень сильно регрессируют в плане чтения - им жизненно необходимо уметь читать по слогам ;)


Я у узнал, что у меня
Есть огромная семья:
Монитор, системный блок,
В сеть воткнул я проводок,
Windows - небо голубое...
Это всё моё - родное!
Без инета жить нельзя -
Наркоман наверно я!
 

CHLSNДата: Воскресенье, 16 Января 2011, 13:54:09 | Сообщение # 50
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
Quote (AnyOne697)
))) Не... Это всё понятно... Я имел ввиду, что, скорее всего, сначала Jass перейдёт в какое-то надмножество Си, потом как-то по кривому оптимизируется (вот как раз все эти псевдоФункции и функции-пустышки, вроде DoNothing (который нужен, как я понимаю, был только для заполнения полей в if-then-else, например) переделываются в то что нужно. Потом он парситься в сам Си или что-то более похожее (то, на чём был написан WE/WC), а Си уже напрямую в ассемблер - машинный код. Так что все неровности могут превратиться в ровности, а на ровном месте может вырасти Эверест

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




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » простейший вопрос по Jass - вылетает Memory Cannot Read (Я в Jass буквально вчера и уже пытаюсь писать функции...)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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