XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ScorpioT1000
Работаем
online
Опыт: отключен
ZeToX2007, на 1.24 она даже не запустится
да и непонятно что это вобще
agentex,
то что тебе адик предложил должно правильно в потоке работать, т.е. вызов идет непосредственно в том месте где ты это написал
в условии делать действия - я считаю, что это не совсем правильно. и гдето видел что не только слип не пашет. помойму там еще больший лимит на кол-во операций в этом потоке
Старый 31.08.2009, 22:36
ZeToX2007

offline
Опыт: 7,009
Активность:
функция стоп прерывает поток. запустился TriggerEvaluate, показал строку, прервался, дальше показывает "Работает" и сново прерывается поток О_о то есть TriggerEvaluate работает в новом потоке...
Старый 31.08.2009, 22:40
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
function STOP takes nothing returns nothing
  integer hzfkd  = hzfkd 
endfunction
На вжасс так не объявляется.
Старый 31.08.2009, 22:42
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1000
ZeToX2007, на 1.24 она даже не запустится

Проверь, у меня в 1.24b и работает.

ZeToX2007 добавил:
Hellfim, у меня cJass есть ) поэтому так можно
Старый 31.08.2009, 22:44
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
ZeToX2007, если есть сжасс, то пиши на нем, а не на этой жуткой помеси -.-
Старый 31.08.2009, 22:54
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1000
да и непонятно что это вобще

По имени функции непонятно ?)
Старый 31.08.2009, 22:55
agentex

offline
Опыт: 34,834
Активность:
то есть TriggerEvaluate работает в новом потоке...
ZeToX2007, и что дальше? все равно поток после окончания функции завершится
agentex добавил:
то что тебе адик предложил должно правильно в потоке работать
а что он мне предложил? все тот же эвулаейт?
Старый 31.08.2009, 22:59
adic3x

offline
Опыт: 108,439
Активность:
У тебя не скомпилируется код вообще, code не принимают и не возвращают аргументов.
кстате возврат значение по идее должен работать в любых функциях, т.е. если мы посмотрим жасс байт код то заменит, что это реализуется как и в х86 архитектуре при стандартном договоре о вызовах (например стдкалл) помещением возращаемого значения в аккамулятор
в отличие от этого аргументы которые принимает функция кладуться изначально в стек, поэтому неправильный вызов приводит к потере адреса возврата (который тоже лежит в стеке) и старта программы в космос
я наверное выразился несовсем понятно, сейчас покажу пример
» без надобности не открывать
function RMinBJ takes real a, real b returns real
    if (a < b) then
        return a
    else
        return b
    endif
endfunction
086F8918 BJDebugMsg+0128 00 00 05 03  000009c1    STUB_FUNC_BEGIN RMinBJ
086F8920 RMinBJ+0000 00 02 05 08  000005f2    CREATE_LOCAL_FROM_STACK a [2] {real (5)}
086F8928 RMinBJ+0008 00 01 05 08  000005f3    CREATE_LOCAL_FROM_STACK b [1] {real (5)}
086F8930 RMinBJ+0010 00 05 c6 0e  000005f2    MOV_VAR_REG a => #c6 {real (5)}
086F8938 RMinBJ+0018 00 00 c6 13  00000000    PUSH #c6
086F8940 RMinBJ+0020 00 05 c7 0e  000005f3    MOV_VAR_REG b => #c7 {real (5)}
086F8948 RMinBJ+0028 00 00 c8 14  00000000    POP #c8
086F8950 RMinBJ+0030 c7 c8 c8 1e  00000000    #c8 = (#c8 < #c7)
086F8958 RMinBJ+0038 00 00 c8 2a  00000003    IF NOT(#c8) THEN JUMP RMinBJ+0x0068
086F8960 RMinBJ+0040 00 05 c9 0e  000005f2    MOV_VAR_REG a => #c9 {real (5)}
086F8968 RMinBJ+0048 00 c9 00 0d  00000000    MOV_REG_REG #c9 => #00
086F8970 RMinBJ+0050 00 00 00 27  00000000    RETURN
086F8978 RMinBJ+0058 00 00 00 2b  00000004    JUMP RMinBJ+0x0088
086F8980 RMinBJ+0060 00 00 00 28  00000003    STUB_LOOP player
086F8988 RMinBJ+0068 00 05 ca 0e  000005f3    MOV_VAR_REG b => #ca {real (5)}
086F8990 RMinBJ+0070 00 ca 00 0d  00000000    MOV_REG_REG #ca => #00
086F8998 RMinBJ+0078 00 00 00 27  00000000    RETURN
086F89A0 RMinBJ+0080 00 00 00 28  00000004    STUB_LOOP widget
086F89A8 RMinBJ+0088 00 00 00 27  00000000    RETURN
086F89B0 RMinBJ+0090 00 00 00 04  00000000    STUB_FUNC_END
в роли аккамулятора выступает условный регистр жасс интерпритатора #00
поэто му под идее возврат значения не должен влиять на прототип процедуры
а да, самое главное забыл - вы все нешарите!

Отредактировано ADOLF, 01.09.2009 в 11:12.
Старый 01.09.2009, 11:17
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:22.