Hello.
When you use the array index valid(), no matter what number you pass to the function, it will always return 1.
sync : sync
global g_i_TotalDragons as integer
type typ_monster
udt_s_name as string
udt_i_health as integer
endtype
dim obj_dragon(5) as typ_monster
obj_dragon(1).udt_s_name = "Red Dragon"
obj_dragon(1).udt_i_health = 100
obj_dragon(2).udt_s_name = "Black Dragon"
obj_dragon(2).udt_i_health = 200
obj_dragon(3).udt_s_name = "Blue Dragon"
obj_dragon(3).udt_i_health = 300
obj_dragon(4).udt_s_name = "White Dragon"
obj_dragon(4).udt_i_health = 400
obj_dragon(5).udt_s_name = "Gold Dragon"
obj_dragon(5).udt_i_health = 500
array insert at bottom obj_dragon(0)
obj_dragon(6).udt_s_name = "Orange Dragon"
obj_dragon(6).udt_i_health = 600
printobjinfo(obj_dragon)
`print "Looking for a fake Dragon by adding 1 to Total Count:" + str$(array index valid(array count(obj_dragon(0))))
print "Looking for a fake Dragon by adding 1 to Total Count:" + str$(array index valid(obj_dragon(g_i_TotalDragons+1)))
sync
wait key
function printobjinfo(obj_dragon)
g_i_TotalDragons = array count(obj_dragon(0))
print "Total Dragons: " + str$(g_i_TotalDragons)
for i = 1 to array count(obj_dragon(0))
print obj_dragon(i).udt_s_name
print obj_dragon(i).udt_i_health
next
endfunction
-This...is my boomstick!