RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2436191 views

ejikplains,
Это мы знаем, но как это использовать?

Aleks Versus Moderator 29.03.2018 07:06 (7 years ago)

oleksandrigo,
debug=1 используй, пока разрабатываешь игру.
debug=0, когда делаешь релиз.

При debug=0 сохранки от старых версий игры работать не будут.

Последний из Гаяр Moderator 02.04.2018 13:07 (7 years ago)
d[0]=1
d[1]=2
d[2]=1
d[3]=4
d[4]=2

m=5

i=0
:gen
if i<m:
     if d['<<i>>']=0:
         set gFort['<<i>>']=2
     elseif d['<<i>>']=1:
         set gFort['<<i>>']=rand(0,1)
     elseif d['<<i>>']=0
         set gFort['<<i>>']=1
     elseif d['<<i>>']=3:
         set пFort['<<i>>']=rand(1,2)
     elseif d['<<i>>']=4:
         set gFort['<<i>>']=rand(1,2)
     end
set i=i+1
jump 'gen'
end

Почему это не работает?! Любую значение из массива “d” алгоритм считает нулём! Почему?

Последний из Гаяр,

Spoiler
d[0] = 1
d[1] = 2
d[2] = 3 
d[3] = 4 
d[4] = 5  


i = 0 

:gen 
if i < ARRSIZE('d') - 1: 
	if d[i] = 1: 
		gFort[i] = 123

	elseif d[i] = 2: 
		gFort[i] = 234

    elseif d[i] =2 :
		gFort[i] = 345
		
	elseif d[i] = 3: 
		gFort[i] = 456
		
	elseif d[i] = 4: 
		gFort[i] = 567
		
	end 
	d[i]
	gFort[i]
	i += 1 
	jump 'gen'
end

Короче вот. Я его переделал немного убрал ранды(для себя, а ты можешь вернуть)
Я плохо помню что именно я изменил но вроде проблемы была в последовательности. Типо было так

...
i+=1
gFort[i]
d[i]
..

и оно потом прыгало вверх.
Так вот оно сначала изменяло мне/тебе i а потом только вывод. Но вывод был тех знач которые еще не были заданы.
Я же i+=1 поставил под
gFort[i]и d[i]ps а еще не нужно делать так [’<<i>>’] хватит простого [i]

Последний из Гаяр Moderator 03.04.2018 02:35 (7 years ago)

oleksandrigo,
Вроде, работает. Спасибо.
Остаётся вопрос:
Что значит эта запись:

d[i] 
    gFort[i]
    i+=1

?
Для чего так было сделано?
И почему без этого не работает?

Последний из Гаяр Moderator 03.04.2018 02:57 (7 years ago)

Разобрался!
Спасибо куспу за мозголомство и тучи гнева!
Дело в пробелах :(
<<facepalm>>

Последний из Гаяр,
Это просто вывод массива с индексом i

Последний из Гаяр Moderator 03.04.2018 14:05 (7 years ago)

oleksandrigo,
А без этого вывода никак?

Последний из Гаяр,
Почему никак? Это просто чтобы понять работает или нет. Можешь даже убрать, проблем не будет.
Когда просто пишешь название переменной, то оно покажет ее значение.

Aleks Versus Moderator 04.04.2018 06:15 (7 years ago)

Последний из Гаяр,
Взгляни на свой код. Задаёшь значения массива с числовыми индексами:

d[0]=1 
d[1]=2 
d[2]=1 
d[3]=4 
d[4]=2

проверяешь значения массива с текстовыми индексами:

if d['<<i>>']=0:

Последний из Гаяр:

Спасибо куспу за мозголомство и тучи гнева!
Дело в пробелах
<<facepalm>>

в каких пробелах?

Последний из Гаяр Moderator 04.04.2018 07:08 (7 years ago)

Aleks Versus,
Понятия не имею, поставил пробелы возле знаков “=“ и всё заработало.
В смысле текстовыми? А как по другому индекс из переменных мне задать?
До этого так делал, и вроде всё работало

Последний из Гаяр,
То есть ты не менял ‘<<i>>’ на i?

Последний из Гаяр Moderator 04.04.2018 07:23 (7 years ago)

oleksandrigo,
Нет не менял

Aleks Versus:

oleksandrigo,
$helmet — это $helmet[0]. Если ты инициализировал сначала $helmet[’null’], то $helmet[’null’] — это тоже $helmet[0].

В общем. Текстовые индексы массивов соотносятся с числовыми индексами в порядке инициализации. Запись $helmet означает, что ты делаешь запись в ячейку массива под номером 0.

Проверяется просто:

$helmet['null'] = 'шелом'
$helmet[0]

Вот возможная причина почему оно работает.
Но то как ты делать неправильно. Ты как бы другой индекс даёшь и он строковый и только из-за того что идет такая последовательность он вообще работает.

Последний из Гаяр Moderator 04.04.2018 07:36 (7 years ago)

oleksandrigo,
Странно , мне Аджента писала что индескы массивов из переменных задаются так

массив[’<<переменная>>’]= значение

.
До этого вроде все работало.
А как точно тогда задать массиву числовой индекс из переменной?

Log in or Register to post comments.