SA-MP Forums Archive
Вопрос опытным. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Вопрос опытным. (/showthread.php?tid=477745)



Вопрос опытным. - Urukhay - 26.11.2013

Дело в том, что у я использую локальные переменные для получения кол-ва строк из базы.. Так вот мне нужно получать эти строки во многих диалогах, но при объявлении переменных в каждом диалоге (dialogid) у меня возникают ошибки, мол такая переменная уже объявлялась в диалоге выше. Так вот как быть? Использовать разные названия переменных? Или вообще создать сразу все переменные в паблике DialogRespone, но тогда много памяти сожрет.
Не удобно конечно сделали, что нельзя объявлять переменные таким образом(тем, кто не понял):
pawn Код:
switch(lalala)
{
     case 0: new test; // тут допустим она нам нужна
     case 1: // тут нам переменная test не нужна.
     case 2: new test; // а тут вот снова нужна
     case 3..999: // а тут подавно не нужна
}
Так вот как быть? Неужели объявлять эту переменную на 999 кейсов?
pawn Код:
new test;
switch(lol)
{
     case 0: // нужна test
     case 2: // и тут вот снова нужна
     case 3..999: // подавно не нужна
}



Re: Вопрос опытным. - SHOROOP - 26.11.2013

Какая разница, на сколько кейсов? Объявил до switch - единоразово зарезервировал в памяти ячейки под нее.
Или ты думал, что при каждом кейсе выделяется память до ранее объявленной переменной?

Впрочем, если совсем принципиально нужно - чего бы до switch не пихнуть проверку условия?
pawn Код:
if (lalala == 0 || lalala == 1) new test;
switch(lalala)
{
     case 0: // тут допустим она нам нужна
     case 1: // тут нам переменная test не нужна.
     case 2: // а тут вот снова нужна
     case 3..999: // а тут подавно не нужна
}



Re: Вопрос опытным. - mpzila - 26.11.2013

Зачем создавать ещё одну, новую переменную? Используй ту, которая стоит выше.