|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
Помнится, летом были обнаружены функции spawn и fork. Ковырял их я. Особо не возился. Списал в утиль, так как посчитал, что порождённый скрипт не привязывается ни к какому объекту. О, как я ошибался! Объект создаётся. Но он ... не имеет FID-а. Так за чем дело стало: используем metarule3 с флагом 107 - и всё! Так.Чуствую, все потерялись :-) Буду медленне и по слогам. Процедуры spawn/fork принимают один параметр - путь и имя int-файла. Они создают новый объект и привязывают к нему вызванный скрипт. В чём их прелесть и отличие от create_object_sid? В том, что они могут привязать к объекту *любой* скрипт, даже не прописаный. fork, в отличие от spawn, не прерывает выполнение родительского скрипта. Пример. Скрипт-папа: ------------------------------ procedure start begin end procedure talk_p_proc begin fork("scripts/111.int"); end ------------------------------ Компиляется, прописывается - всё как обычно. Скрипт-сын: ------------------------------ procedure start begin end procedure map_update_p_proc begin metarule3(107,self_obj,obj_art_fid(dude_obj),0); move_to(self_obj,tile_num(dude_obj)+1,elevation(dude_obj)); end ------------------------------ Компиляется, кладётся в scripts. Но прописывать его нигде не надо! Запускаете, говорите с "папой". Рядом с чузом появляется его новорождённая копия :-)
|
Отправлено: 16:47 - 2 Марта, 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Самая большая загвоздка, помнится, заключалась именно в том, что в порождённом скрипте не выполнялись никакие обработчики, кроме start. Как у тебя это работает? В маппере? (Добавление от 17:04 - 2 Марта, 2005.) Да... ещё одно замечание. ПИДа-то тоже нет, стало быть, нет и типа. Стало быть, как будет вызываться тот же pickup? И что с лварами? Своих-то не будет, только "родительские". В общем, пока видно больше недостатков, чем достоинств ;). Но копать продолжай ;).
|
Отправлено: 17:02 - 2 Марта, 2005
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
Блииииин. Вот залажал. У меня тот скрипт, который я пытался спавнить уже был на карте. И metarule move_to вызывалисьиз уже существующего скрипта. А я думал - из заспавненого. Так что заключение изначальное верно - бесполезные функции. Блин, как лажанулся, а...
|
Отправлено: 18:08 - 2 Марта, 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Неа. Отрицательный результат - тоже результат ;).
|
Отправлено: 22:06 - 5 Марта, 2005
|
|
|
|