Выдавать ранг можно и в теле команды, так даже будет проще, чем в цикле. Просто вместо 30@ = 1 ставить то, что нужно. Далее, если команды типа giv1...10 обязательно должны выглядеть именно так, то да, попросту создай ещё несколько команд. Но можно команду переписать под /giv [rank] [id], тогда...