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

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

Закрытая тема
 
MaHBe

offline
Опыт: 5,910
Активность:
Кастом валью
Кто знает как устроен cv и чем его заменить? (Знаю жасс и немного вжасс)
Старый 22.09.2010, 11:47
ScorpioT1000
Работаем
offline
Опыт: отключен
что именно тебе надо сделать?
ScorpioT1000 добавил:
пользуясь случаем, xgm.ru/p/wc3/w3_special_programming последний раздел
Старый 22.09.2010, 12:01
MaHBe

offline
Опыт: 5,910
Активность:
Та физику. Я уже с кв сделал,но нужно без него(забит на другое) А в примере что ты дал сжасс(не шарю :'( )
Старый 22.09.2010, 12:07
ScorpioT1000
Работаем
offline
Опыт: отключен
globals // можешь вместо этих сделать в редакторе переменных -.-

integer array superCustomValue0
integer array superCustomValue1
integer array superCustomValue2
integer array superCustomValue3
integer array superCustomValue4
integer array superCustomValue5
integer array superCustomValue6
integer array superCustomValue7
integer array superCustomValue8
integer array superCustomValue9
integer superCustomValueCount = 1

endglobals

function SetUnitSuperCustomValue takes unit u, integer index, integer value returns boolean
    local integer i = GetUnitUserData(u)
    if superCustomValueCount > 8190 then // if overriding
        call BJDebugMsg( "|cffff0000SetUnitSuperCustomValue - overriding" )
        return false
    endif
    if (i <= 0) or (i > 8190) then // if new unit
        call SetUnitUserData(u,superCustomValueCount)
        set i = superCustomValueCount
        set superCustomValueCount = superCustomValueCount + 1
    endif
    if index == 0 then
        set superCustomValue0[i] = value
    elseif index == 1 then
        set superCustomValue1[i] = value
    elseif index == 2 then
        set superCustomValue2[i] = value
    elseif index == 3 then
        set superCustomValue3[i] = value
    elseif index == 4 then
        set superCustomValue4[i] = value
    elseif index == 5 then
        set superCustomValue5[i] = value
    elseif index == 6 then
        set superCustomValue6[i] = value
    elseif index == 7 then
        set superCustomValue7[i] = value
    elseif index == 8 then
        set superCustomValue8[i] = value
    elseif index == 9 then
        set superCustomValue9[i] = value
    endif
    return true
endfunction

function GetUnitSuperCustomValue takes unit u, integer index returns integer
    local integer i = GetUnitUserData(u)
    if (i <= 0) or (i > 8190) then // if values not set
        return 0
    endif
    if index == 0 then
        return superCustomValue0[i]
    elseif index == 1 then
        return superCustomValue1[i]
    elseif index == 2 then
        return superCustomValue2[i]
    elseif index == 3 then
        return superCustomValue3[i]
    elseif index == 4 then
        return superCustomValue4[i]
    elseif index == 5 then
        return superCustomValue5[i]
    elseif index == 6 then
        return superCustomValue6[i]
    elseif index == 7 then
        return superCustomValue7[i]
    elseif index == 8 then
        return superCustomValue8[i]
    elseif index == 9 then
        return superCustomValue9[i]
    endif
    return 0
endfunction
только замени всё использование оригинального кастом валюе на это ) ибо оно его использует ))
собственно
function SetUnitSuperCustomValue takes unit u, integer index, integer value returns boolean
  • задать кастом велью, index - какой именно из десяти (от 0 до 9)
function GetUnitSuperCustomValue takes unit u, integer index returns integer
  • достать кастом велью
пример:
call SetUnitSuperCustomValue( g__myPetrosyan_0001, 0, 123 ) // запишет в кастом велью 0 значение 123 для этого юнита
call SetUnitSuperCustomValue( g__myPetrosyan_0001, 2, 666 ) // запишет в кастом велью 2 значение 666
set abc = GetUnitSuperCustomValue( g__myPetrosyan_0001, 2 ) // запишет в abc значение из кастом велью 2, которое равно 666
set abcde = GetUnitSuperCustomValue( g__myPetrosyan_0001, 0 ) // запишет в abcde значение из кастом велью 0, которое равно 123

Отредактировано ScorpioT1000, 22.09.2010 в 13:20.
Старый 22.09.2010, 13:00
MaHBe

offline
Опыт: 5,910
Активность:
О,спасибо,буду разбираться.
Старый 22.09.2010, 14:26
ScorpioT1000
Работаем
offline
Опыт: отключен
и есть ещё одно решение - в одно целое число можно запихать сразу три (и даже четыре) коротких числа, значение которых от 0 до 255.
функции я писал тут, но они на cjass: xgm.ru/forum/showpost.php?p=706675&postcount=306
Старый 22.09.2010, 14:35
Zanozus
Уехал учиться
offline
Опыт: 8,512
Активность:
Если не секрет на что у тебя забит костом вэлью ?
Старый 22.09.2010, 23:54
MaHBe

offline
Опыт: 5,910
Активность:
Тему можно закрыть,а кв забит под, так сказать, меню управления объектом)
Старый 23.09.2010, 21:40
Закрытая тема

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

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

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

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



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