Сейчас 08:52:32 Среда, 8 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] setdef, или указатель на массив
[Вопрос] setdef, или указатель на массив
HexingДата: Среда, 24 Августа 2011, 17:04:05 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Code
void HeroLearn() {
    unit u = GetTriggerUnit() // hero
    integer ut = GetUnitTypeId(u)
    integer lvl = GetHeroLevel(u)
    if(ut == SELECT_HERO_1) { //SELECT_HERO_1,2,3 это массивы типа integer [5]
       setdef ABILS = ABILS_1
    } elseif(ut == SELECT_HERO_2) {
       setdef ABILS = ABILS_2
    } elseif(ut == SELECT_HERO_3) {
       setdef ABILS = ABILS_3
    }
    integer i = 0
    integer q = 0
    loop
       q = 0
       loop
          
          
         q++
         exitwhen(q==5)
       endloop
       i++
       exitwhen(i==5)
    endloop
    u = null
}

Скажите есть ли смысл продолжать делать функцию, тоесть setdef работает корректно? ведь это вроде как лишь замена на этапе компиляции, а сделать переменную массив и дать ей значение другой такой переменной нельзя, так будет ли работать setdef в роли переменной-массива(указателя)?

Добавлено (24 Август 2011, 17:04:05)
---------------------------------------------

Quote
//SELECT_HERO_1,2,3 это массивы типа integer [5]
ой не то написал
ABILS_2 ABILS_1 и ABILS_3 это массивы интегер, а SELECT_HERO_3,2,1 это интегер коды героев(воин,лукарь,волш)


 

FaionДата: Среда, 24 Августа 2011, 18:06:27 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
Эм, #Setdef команда препроцессора как бэ, в игре не исполняется.

О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

HexingДата: Среда, 24 Августа 2011, 18:19:58 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
ага, я тоже к этому пришел!! шо делать :'(

 

FaionДата: Четверг, 25 Августа 2011, 02:45:20 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
Не юзать ее О_о

О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

lawsonДата: Четверг, 25 Августа 2011, 19:16:32 | Сообщение # 5
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
ХМм а разве в cJASS цикл обозначается не как whilenot или я чтото путаю?

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

FaionДата: Четверг, 25 Августа 2011, 22:37:04 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
while\whilenot\do while\do whilenot\for()

О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

SirNikolasДата: Вторник, 30 Августа 2011, 12:02:38 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Faion)
for()
Quote (lawson)
в cJASS
??? Вроде for() - это в ZINC'е.

Hexing, у тебя есть три массива, и тебе нужно в зависимости от выбраного героя брать данные из одного из них? Предлагаю создать двумерный массив:
Code
include "cj_types.j"
define const = constant

int array ABILS[3][1]//Второй индекс не важен
const int SELECT_HERO_0 = 'Hpal'
const int SELECT_HERO_1 = 'Hblm'
//const int SELECT_HERO_2 = 'Hmkg'

void HeroLearn() {
     unit u = GetTriggerUnit()
     int id = GetUnitTypeId(u), lvl = GetHeroLevel(u), index
     if id == SELECT_HERO_0 {
         index = 0
     } elseif id == SELECT_HERO_1 {
         index = 1
     } else {
         index = 2
     }
     int i = 0, q
     do {
         q = 0
         do {
             //Действия с ABIL[index][индекс способности]
             exitwhen q == 4
             q++
         }
         exitwhen i == 4
         i++
     }
     u = null
}


 

HexingДата: Вторник, 30 Августа 2011, 13:24:55 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
спасибо, хорошо написано, но сложность в проверке требовании уровней на все способности, вообщем там цикл в цикле в цикле и кароче я забил на это дело alco ну это ведь нереально просто... Попробую сделать двумерный массив - первый индекс уровень, второй - ссылка на структуру со списком способностей и уровней, именно твой код натолкнул на это, спасибо coolstory

 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] setdef, или указатель на массив
  • Страница 1 из 1
  • 1
Поиск:

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