Переменная в переменной
|
|
Krosos | Дата: Пятница, 25 Октября 2013, 13:17 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Есть у меня один страшный массив ,и не получается никак его доделать...
Возможно ли сделать следующее?: Например, есть переменная global.AT[O]=40 ,и еще 10 подобных переменных. Прибавляю я к некой переменной число (XXX+=10) , и это число прибавилось не к переменной, а к global.AT[O].
Мой проект
|
|
| |
Aevien | Дата: Пятница, 25 Октября 2013, 13:25 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| Ну такие вещи можно делать только с указателями, а в Гамаке насколько я знаю их нет А так нельзя, ведь число то ты прибавляешь к переменной, а не к массиву.
|
|
| |
Krosos | Дата: Пятница, 25 Октября 2013, 13:39 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Это печально.=( Придется тогда делать ,как обычно - громадным кодом.
Добавлено (25.10.2013, 13:39) --------------------------------------------- Вот такой код: Код if global.Debuff_Attack[3,O]=1{ global.Debuff_Attack[3,O]=0 if (global.IN[O]+global.Debuff[3,O]-global.Buff[3,O])<=global.Debuff_Power[3,O] { global.Debuff_Power[3,O]=global.IN[O]+global.Debuff[3,O]-global.Buff[3,O] } if global.Debuff[3,O]<=global.Debuff_Power[3,O] { global.IN[O]+=global.Debuff[3,O] global.Debuff[3,O]=global.Debuff_Power[3,O] global.IN[O]-=global.Debuff[3,O] global.Debuff_Time[3,O]=global.Debuff_Available_Time[3,O] } }
И подобных кодов надо сделать 16... Хотел сделать через массив , но не знаю что делать с этими переменными (global.IN[O])....
Мой проект
Сообщение отредактировал Krosos - Пятница, 25 Октября 2013, 13:42 |
|
| |
Aevien | Дата: Пятница, 25 Октября 2013, 13:40 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| А что конкретно то хочешь сделать? Может ребята увидят код или пояснишь мысль и помогут
|
|
| |
Krosos | Дата: Пятница, 25 Октября 2013, 13:46 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Ну.. Примерно так: switch A case 1: XXX=global.AT[O] break case 2: XXX=global.DF[O] break case 3: XXX=global.IN[O] break case 4: XXX=global.SP[O] break case 5: XXX=global.HP[O] break ......... if (XXX+global.Debuff[A,O]-global.Buff[A,O])<=global.Debuff_Power[A,O] { global.Debuff_Power[A,O]=XXX+global.Debuff[A,O]-global.Buff[A,O] } XXX должен являться переменной ,а не числом.
Мой проект
Сообщение отредактировал Krosos - Пятница, 25 Октября 2013, 13:47 |
|
| |
Aevien | Дата: Пятница, 25 Октября 2013, 14:06 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Так ты и создавай массив где каждый элемент массива и есть переменная, не обязательно ее создавать.
Примерно так должно быть
element[0] = x; element[1] = z; element[..] = ... потом также и обращайся к ним, например переменная w = element[1]; Массивы во всех языках работают по данному принципу, различие лишь в оформлении
|
|
| |
Krosos | Дата: Пятница, 25 Октября 2013, 14:16 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Ну , это вроде не совсем то Я сейчас сделал вот так:(Вроде работает.Я надеюсь...)
Код for (A=1;A<=4;A+=1){ if global.Debuff_Attack[A,O]=1{ global.Debuff_Attack[A,O]=0 switch A{ case 1: X=global.AT[O] break case 2: X=global.DF[O] break case 3: X=global.IN[O] break case 4: X=global.SP[O] break }
if (X+global.Debuff[A,O]-global.Buff[A,O])<=global.Debuff_Power[A,O] {global.Debuff_Power[A,O]=X+global.Debuff[A,O]-global.Buff[A,O]}
if global.Debuff[A,O]<=global.Debuff_Power[A,O] { X+=global.Debuff[A,O] global.Debuff[A,O]=global.Debuff_Power[A,O] X-=global.Debuff[A,O] global.Debuff_Time[A,O]=global.Debuff_Available_Time[A,O]
switch A{ case 1: global.AT[O]=X break case 2: global.DF[O]=X break case 3: global.IN[O]=X break case 4: global.SP[O]=X break } }
Спасибо за внимание и помощь.
Мой проект
|
|
| |