Показать сообщение отдельно
Старый 04.04.2005, 22:29   #136
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Уроки скриптологии

2Pa:
Видимо экзешник понимает и self и slf...
Это не так. Надо понимать разницу между локальными и глобальными переменными.
1. В данном случае slf - локальная переменная функции (аргументы функции так же являются локальными переменными), а self - глобальная переменная по всем скриптам.
2. Переменные инициализируются значениями, в нашем случае обе переменные инициализированы НПС (НПС могут быть разные).
3. Если при входе в функцию локальной переменной slf присвоено значение глобальной переменной self, то ошибки не будет, если использовать внутри функции или self или slf. Если же slf присваивается значение отличное от self, то будет ошибка.

Пример: Вызов функции (переменные self и hero не равны)
C_WantToReactToSneaker(self,other) - внутри функции ошибки не будет.
C_WantToReactToSneaker(hero,other) - внутри функции будет ошибка (просто проверится на охраняемость ворот другой НПС, а не тот который передан в функцию через аргумент slf.
Надеюсь, что написал понятно, так что и на такие места надо обращать внимание. *;)
Ответить с цитированием