Показать сообщение отдельно
Старый 28.12.2005, 10:50   #1174
Vam

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

По умолчанию Re: Скриптинг в Готике

2TSYLin:
Вопрос первый, надо ли было писать эти переменные как slf и oth, или надо было пребегнуть к self и other?
slf и oth можно использовать только в том случае, если они явно объявлены внутри функции или передаются через аргументы (что является практически одним и тем же). Они в отличии от self и other не являются глобальными. Объявление любых переменных, я надеюсь, ты знаешь.
На всякий случай приведу два примера объявления локальных переменных slf или oth.
Первый - через аргумент функции:
Объявление функции - int BanditenLager(var C_NPC slf), тело функции в {} не привожу, но в нем можно использовать slf как ты хочешь. Присвоение же конкретного НПС переменной slf производится при вызове этой функции:
* *ххххххххх
* *BanditenLager(other);
* *ххххххххх
в данном случае значение глобальной переменной other будет присвоено аргументу slf функции.
Второй - в теле функции:
int xxxxxxxx()
{
* *var C_NPC slf;
* *slf = Hlp_GetNpc(PC_Hero);
* *xxxxxxxx
}
в данном случае переменной slf будет присвоен присвоен указатель на ГГ.
В твоем примере использование slf и oth неправильное - они нигде не объявлены.

второй вопрос, если я буду вызывать эту функцию в диалоге то есть вероятность того, что движок воспримит self и other диалога как self и other функции?
self и other это гдобальные переменные, поэтому в любом месте скриптов они имеют определенные значения, которые им присваивает движок или скрипты.

И тертий, Hlp_IsItem(itm,itar_bdt_mplus3)
Что можно поставить вместо itm, для того что бы можно было проводить принадлежность к кому-либо?
itm это такая же локальная переменная, как в первом ответе slf, присвоение и использование её аналогично.
Например:
* *var C_Item itm;
* *itm = Npc_GetEquippedArmor(oth);
в этом случае переменной itm будет присвоена ссылка на доспехи, которые одеты на НПС oth.
Ответить с цитированием