|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
to Tim Пути надо ставить в кавычки только если они содержат пробелы. Т.е. в том батнике, который был в моём посте они не нужны. Но если ты напишешь set FP=C:\Program Files\BlackIsle\Fallout2\Data то у тебя вылезет cannot find C:\Program или что-то подобное. Проблемы с DOS4GW скорее всего вызваны отсутствием DOS в WinXP. Я XP не трогал никогда и ничего конкретного сказать не могу. Попробуй поиграть с режимами совместимости. Если есть возможность - поставь 98 (95, чистый DOS) рядом. В Win2000 все работает. Ещё попробуй просто закинуть dos4gw и compile в диру со скриптом, запустить cmd.exe, перейти в эту диру и просто напечатать dos4gw compile имя_скрипта.ssl Если будет таже ошибка - значит дело точно не в батнике а в Оси. Про переименовывание wcc в cpp - я ж это просто для удобства и большей логичности делал :-) Это совсем не обязательно. Кстати, по поводу Error! E1073: invalid option '-i="c:\fallout2\mapper\scripts\"headers' Ошибка, скорее всего - это кавычки перед и после c:\fallout2\mapper\scripts\ Поменяй set FP="C:\Fallout2\Data\Scripts" на set FP=C:\Fallout2\Data\Scripts Моя версия Ватки таких ошибок не выдавала... to Garold Да, скорее всего тебе проще завести вару. Но, опять же, если группу критеров можно объеденить в один team в мапере - то можно и так. Если хочешь облегчить *.i файл - воспользуйся програмкой grep. Она вырезает из файла строки, совпадающие с определённым шаблоном. Например, ты хочешь вырезать из файла все пустые строки и строки, начинающиеся с # (i.e. #line 21). Пишешь что то типа (зависит от производителя grep`а): grep ^[A-Za-z_0-9]* имя_исходного_файла > имя_конечного_файла Т.е. ты вырезаешь все строки начинающиеся со строчных или прописных букв, цифр или знака подчёркивания и пишешь их в другой файл. Ничего лишнего. Очень удобно. Хороших версий grep`а под винды нет. Всё хорошее такого рода - в юнихах :-) Но есть порты юниховых утилит под вынь. Я пользуюсь подсказанным Абелем msys`ом. Весить 2,5 мега, взять можно здесь: http://www.mingw.org/msys.shtml Тыкнешь там в Files и выбери msys package (не gcc, binutils или что-то подобное, именно msys) - имя файла MSYS-1.0.11-2004.03.30-1.exe Когда распакуешь - получишь кучу утил, в т.ч. и grep. Скопируй msys.dll из Msys\bin\ в winnt\system32, grep в mapper\scripts\tools - и можно использовать его в батниках.
|
Отправлено: 6:40 - 25 Апр., 2004
|
|
GaroldPredator
Пользователь
Откуда: Military Base Регистрация: Апр. 2004
Всего: 52 сообщения
|
2 Raven Насчет охраны я привел просто не существующий пример, так что не надо зацикливаться на ней. Если хочешь на чём-то зациклиться, вот НАСТОЯЩИЙ пример: Я поболтал с компом, и в зависимости от ответа, на меня или нападают турели на нескольких локациях, или комп дает мне несколько предметов. С предметами я разобрался, а вот с турелями не догоняю. Здесь ведбь надо использовать GVAR, потому, что несколько локаций с турелями, так? Кстати, у меня не работают эти самые GVAR, MVAR и LVAR. Наверное что-то не доделываю... Подскажи, ПЛИИЗ!
----- В мире есть две точки зрения: неправильная и моя.
|
Отправлено: 9:12 - 25 Апр., 2004
|
|
Tim
Пользователь
Откуда: Санкт-Петербург Регистрация: Май 2003
Всего: 265 сообщений
|
2All Спасибо всем, разобрался... просто лишние " убрал...
----- Ядерному взрыву - да! да! да! Солнечному миру - нет! нет! нет!
|
Отправлено: 12:41 - 25 Апр., 2004
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
to Garold >>Насчет охраны я привел просто не существующий пример, так что не надо зацикливаться на ней. ??? >>Здесь ведбь надо использовать GVAR, потому, что несколько локаций с турелями, так? Да. За примерами смотри Navarro (GVAR_NAVARRO_BASE_ALERT) - там если поднял тревогу - на тебя на всех картах налетают. >>Кстати, у меня не работают эти самые GVAR, MVAR и LVAR. Наверное что-то не доделываю... А как ты скрипты тестишь? Кнопкой F8? Тогда GVAR у тебя вообще не заработают. В Мапере во время тестинга не работают GVAR (MVAR вроде бы тоже - точно не знаю), timed events и ещё по мелочам. Поэтому тестить надо в Фоле. По CTRL+R тестить тоже не получится - там вообще ничего кроме дверей не обрабатывается. Поэтому вначале надо тестить скрипты на artemple.map а потом переносить их в нужную локацию. Можно сделать сейв рядом с нужным местом. Но если ты менял число GVARs (i.e. добавил квест) - сейвы работать перестанут! Самая надоедливая недоработка...
|
Отправлено: 2:12 - 26 Апр., 2004
|
|
GaroldPredator
Пользователь
Откуда: Military Base Регистрация: Апр. 2004
Всего: 52 сообщения
|
Все равно не работает! Пли-и-и-из, объясни все конкретно и приведи пример!
----- В мире есть две точки зрения: неправильная и моя.
|
Отправлено: 17:28 - 26 Апр., 2004
|
|
Gatling
Пользователь
Откуда: БОМЖ Регистрация: Февр. 2004
Всего: 115 сообщений
|
А не проще ли комунибудь выложиь батник, и не мучатся... Батник с пояснением...
----- "Гизмо...Гизмо-кака!" Gremlin.
|
Отправлено: 19:27 - 28 Апр., 2004
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
По многочисленным просьбам :-) Использование GVARs. GVARы нужны для сохранения информации, которая должна быть доступна из разных локаций. Если вы хотите, чтобы действие персонажа на одной локации (скажем, убийство мэра в западной части города) влияло на объекты, расположенные в другой локации (отношение NPC к Чузену в восточной части города), то вам не обойтись без использования GVARs. GVAR - это 32-битная переменная (т.е. она способна хранить значения от 0 до 4.294.967.296). Всего GVARs в Фолауте 695 штук. Из них свободны (зарезервированы разработчиками ) 60 (на самом деле больше, т.к. есть неиспользуемые GVARs - напр. репутация игрока в локациях Abbey, EPA и т.д., которые не вошли в игру. Их можно использовать для своих нужд). Все GVARs сохраняются в сейв-файле (причём, дважды). В скриптах GVARs принято обозначать с помощью префикса GVAR_. Значения GVAR устанавливаются с помощью процедуры set_global_var(имя_переменной,значение) Читаются с помощью global_var(имя_переменной) Объявления глобальных переменных (т.е. сопоставление define-сокращений номерам переменных) производятся в файле headers\global.h. Как понятно из названия, любая глобальная переменная может быть прочитана/установлена из любого скрипта без каких-либо предварительных действий. GVARs не работают в Мапере, проверить их работу можно только в самой игре. Приведём пример скрипта, использующего GVAR (для случая Garold`а). Сделаем подобие псионика-супер-мутаната с заброшенной военной базы. Т.е. у нас должны быть Pet Master и Pets. В роли Pet Master возьмём Клинта, в качестве Pets - 2-3 крыс (чтобы игрок мог отбиться в начале игры). Напишем скрипты petmaster.ssl и pet.ssl (листинги см. ниже). Скомпилируем, пропишем в scripts.lst. Откроем в Мапере artemple.map, поменяем Клинту скрипт на petmaster.int, добавим пару крыс со скриптом pet.int. Сохраняем artemple. Открываем arcaves, размещяем там несколько криттеров (крыс или муравьев), также со скриптом pet.int. Сохраняем. Запускаем игру. Начинаем новую, берём чара. Бродим рядом с крысами - они ничего не делают. Оскорбляем Клинта-Мельхиора - вуаля! Быстро-быстро убегаем. Листинги скриптов: petmaster.ssl -------------------------------------------- //Стандартные инклюды #include <command.h> #include <define.h> //Для хранения нашей вары мы будем использовать одну из незанятых вар в Фоле: //#define GVAR_TOWN_REP_ABBEY (63) #define GVAR_say_fuck (63) //Для простоты #define Option(x,y) gsay_option(-1,x,y,-1) //Для использования макроса Reply. Можно указать любое число, т.к. мы не используем msg-файл #define NAME 1407 //Объявления процедур procedure start; procedure talk_p_proc; procedure Node_Begin; procedure Node_Attack; procedure Node_End; procedure start begin end procedure talk_p_proc begin start_dialogue(self_obj,-1); gsay_start; call Node_Begin; gsay_end; end_dialogue; end procedure Node_Begin begin Reply("Hello, Chosen One."); Option("Fuck off, motherfucker.",Node_Attack); end procedure Node_Attack begin Reply("My mighty pets! Attack this creature! [He points at you]"); set_global_var(GVAR_say_fuck,1); Option("O-ops",Node_End); end procedure Node_End begin end -------------------------------------------- pet.ssl -------------------------------------------- #define GVAR_say_fuck(63) procedure start begin end procedure critter_p_proc begin //Примитивный вариант. Желательно устанавливать LVAR_Hostile флаг. if global_var(GVAR_say_fuck) and obj_can_see_obj(self_obj,dude_obj) then attack(dude_obj); end -------------------------------------------- (Отредактировал(а) Raven - 14:19 - 29 Апр., 2004)
|
Отправлено: 7:03 - 29 Апр., 2004
|
|
Jo Jim
Пользователь Регистрация: Март 2004
Всего: 14 сообщений
|
Где можно посмотреть какими значениями иницализирутся LVAR для определенного скрипта?
|
Отправлено: 16:04 - 29 Апр., 2004
|
|
Gatling
Пользователь
Откуда: БОМЖ Регистрация: Февр. 2004
Всего: 115 сообщений
|
Наверно в самих скриптах... (Добавление от 19:07 - 29 Апр., 2004.) Кстати, кто и как диалгои делает? Подскажите...
----- "Гизмо...Гизмо-кака!" Gremlin.
|
Отправлено: 18:14 - 29 Апр., 2004
|
|
GaroldPredator
Пользователь
Откуда: Military Base Регистрация: Апр. 2004
Всего: 52 сообщения
|
to Gatling Во-первых: Между прочим, твой скрипт уменя НЕ РАБОТАЕТ!!! Во-вторых: Ещё раз между прочим, я научился использовать GVARы ПО ДРУГОМУ!!! Теперь я буду работать с этими переменными только через БИТЫ!!! всё очень просто, нужно просто создать свой хеадер и прописать в нём пару строчек. Как ты уже сам сказал, в GVARе 32 БИТА, то есть, 32 квеста в каждом GVARе (в смысле 32 простеньких квеста: не сделан, сделан)!!!!!! Упс, загон! Пршу прщения, но не to Gatling, а to Raven! Так, я думаю будет правильнее! (Отредактировал(а) GaroldPredator - 17:31 - 30 Апр., 2004)
----- В мире есть две точки зрения: неправильная и моя.
|
Отправлено: 20:50 - 29 Апр., 2004
|
|
|
|