Я так подозреваю что винда у вас седьмая или виста (мб даже восьмерка), и вы не запускаете игру под правами админа (именно через контекстное меню). Если не запускать под админом, то игра по идее должна писать и читать из папки VirtualStore а AppData. Я у себя в свойствах исполняемого файла поставил "Выполнять прогу от имени админа". Попробуйте сначала запустить через контекст, а потом если все пойдет гладко, то в свойствах вечно запускать от админа
DrXakep, спасибо за совет, но у меня XP под админской учеткой. Попробую снять полностью атрибуты "только для чтения" с директории игры или переустановить на C:\
Что-нибудь еще "эдакое" может быть?
Quote (DrXakep)
сли не запускать под админом, то игра по идее должна писать и читать из папки VirtualStore а AppData.
Это директория помоему только в Windows Vista 7 и 8. Если установленная программа просит записать в запрещеные места (например, корень системного диска, папка Program Files и т.д.), то система перенаправляет весь IOStream файлов в папку
Code
C:/Users/<Username>/AppData/Local/VirtualStore
И псоле, если прога обращается к этой папке, то также все читается из VirtualStore
Разобрался, в чем дело. При установке аддона был заменен ENGINE.exe. А папка PROGRAM осталась в наследство от ГПК без аддона. Еще раз перетер его из кряка к ГПК 1.2, вынес папку PROGRAM перед запуском. Вуаля, PROGRAM снова появилась, скрипты заработали. Теперь жду веселых глюков, .exeшник-то от ГПК 1.2 сейчас... :(
Подскажите пожалуйста где прописывается какие модели используются под горожан, стражу и офицеров?
Модели горожан MODELS/Characters/ здесь всё вот такого вида citiz, офицеры имеют нацию и меняют облик в зависимости от той к которой принадлежат officer.
Где находится диалог гг с офом, " слушай мой приказ", следуй за мной не отставай, общарила все диалоги не нашпа.
Сообщение отредактировал Bab - Понедельник, 26.09.2011, 15:44
Bab, я наверно не понятно написал. Как добавить новую модель горожанину, стражнику и офицеру, не заменяя старые? И еще вопросик: кодирую квест с тремя концовками, но проблема в том, что когда одну проходишь можно пройти и две других. Диалог перед этим разветвлением должен быть с одним линком. Затем при начале прохождения одной из веток две остальные должны заблочится.... Но как их заблочить? Объясните на примере пожалуйста. Заранее спасибо. А Bab, все диалоги с офицерами в файле Enc_Officer_dialog Myth: Make Your Thought Heard
Как добавить новую модель горожанину, стражнику и офицеру, не заменяя старые?
Жителей в городах мне кажется это в "characters_face.c" по крайней мере, этот файл ссылается на рандомные модели горожан и офицеров, возможно по той же схеме как и добавить новую музыку в игру, но я так и не проверил. Цитатами пользуются те, кто не в состоянии формулировать собственные мысли.
Подскажите пожалуйста где прописывается какие модели используются под горожан, стражу и офицеров?
Стража и те кто будед при абордаже прописываются здесь: C:\Games\Корсары ГПК\Корсары Город Потерянных Кораблей\PROGRAM\nations\nations_init.c Ну а вот где прописываются горожане и офы, сам бы хотел узнать, не могу добиться ни от кого ответа.
NikK, Джин-Бейн, спасибо попробую. Остался лишь вопрос с квестом и его тремя концовками.... Мне сказали что нужно использовать функцию DeleteAttribute(pchar, "PostEventQuest.questDelay.название кейса который надо заблочить"); Я ее прописал, кейсы все равно работают. Что я не так прописал? В спойлере сам код.
switch(Dialog.CurrentNode) { // Первая встреча с солдатом
case "First time": if (GetNationRelation2MainCharacter(sti(NPChar.nation)) == RELATION_ENEMY && sti(NPChar.nation) != PIRATE) { dialog.text = "Враг близ Куманы! Немедленно схватить!"; link.l1 = "Хе... хе... Что же подходите, дам вам урок фехтования!"; link.l1.go = "substitution_sold1_relation_enemy_exit"; break; } dialog.text = "Приветствую Вас, сеньор! Могу ли я узнать Ваше имя и цель Вашего пребывания здесь?"; link.l1 = "Питер Блейк. Гуляю по джунглям."; link.l1.go = "substitution_sold1"; break;
case "substitution_sold1": dialog.text = "Знакомое лицо. Мы с Вами раньше нигде не встречались?"; link.l1 = "Нет. Очевидно, Вы обознались."; link.l1.go = "substitution_sold2"; break;
case "substitution_sold2": dialog.text = "Я вспомнил! Вы очень похожи на Генри Донато."; link.l1 = "Генри Донато? Кто такой Генри Донато?"; link.l1.go = "substitution_sold3"; break;
case "substitution_sold3": dialog.text = "Местный головорез, которого мы никак не можем поймать."; link.l1 = "Ясно. Надеюсь, он скоро попадёт в ваши сети."; link.l1.go = "substitution_sold4"; break;
case "substitution_sold5": dialog.text = "Мы ещё не окончили наш разговор."; link.l1 = "Сейчас у меня нет желания с кем-либо беседовать."; link.l1.go = "substitution_sold6"; break;
case "substitution_sold6": dialog.text = "Перейду сразу к делу. Я намериваюсь поймать Генри Донато, и для этого мне нужны именно Вы."; link.l1 = "Вы меня в чём-то подозреваете?"; link.l1.go = "substitution_sold7"; break;
case "substitution_sold7": dialog.text = "Что Вы? Конечно, нет! Скажем так: я предлагаю Вам поучаствовать в одном спектакле. И если Вы в нём хорошо сыграете, я Вам хорошо заплачу."; link.l1 = "Я не совсем понимаю о чём идёт речь. Можно подробней?"; link.l1.go = "substitution_sold8"; break;
case "substitution_sold8": dialog.text = "Дело в том, что если мы в ближайшие дни не поймаем этого разбойника, наши головы слетят с плеч. Вспоминайте начало нашего разговора. Я говорил, что Вы сильно похожи на Генри Донато. Помните?"; link.l1 = "Помню. Что дальше?"; link.l1.go = "substitution_sold9"; break;
case "substitution_sold9": dialog.text = "Мы одеваем Вас в костюм Донато, ловим на глазах у губернатора и сажаем в тюрьму. Согласны?"; link.l1 = "Нет! Не согласен!"; link.l1.go = "substitution_sold10"; break;
case "substitution_sold10": dialog.text = "Почему? После этого Вас отпустят и хорошо заплатят. Поймите, мне очень важно, чтобы я поймал этого бандита. А самым идеальный вариант будет, если поимка будет произведена на глазах губернатора, который часто прогуливается по джунглям."; link.l1 = "А Вы не думали, что с Вами будет, если Ваш обман раскроется?"; link.l1.go = "substitution_sold11"; break;
case "substitution_sold11": dialog.text = "Об этом не беспокойтесь. Мне главное Вас поймать, а дальше скажем, что вам удалось сбежать. Понимаю, дело рискованное, но ‘кто не рискует - тот не живет’."; link.l1 = "У меня есть время подумать?"; link.l1.go = "substitution_sold12"; break;
case "substitution_sold12": dialog.text = "Я не смею Вас заставлять делать это. Просто помните - наша жизнь в Ваших руках. Если надумаете, то жду Вас завтра около форта. На всякий случай у меня уже созрел запасной план."; link.l1 = "Ничего не могу обещать, но я обдумаю это предложение."; link.l1.go = "substitution_sold12_exit_jungle"; break;
case "substitution_sold12_exit_jungle": AddDialogExitQuest("QB_substitution_sold1"); NextDiag.CurrentNode = "substitution_sold13_jungle_2"; DialogExit(); break;
case "substitution_sold12_jungle_2": dialog.text = "Вы уже решились?"; link.l1 = "Я еще думаю."; link.l1.go = "substitution_sold12_exit_jungle"; break;
case "substitution_sold12_exit_jungle": NextDiag.CurrentNode = "substitution_sold12_jungle_2"; DialogExit(); break;
// Если ГГ воюет с Испанией
case "substitution_sold1_relation_enemy_exit": AddDialogExitQuest("substitution_sold1_relation_enemy_exit"); NextDiag.CurrentNode = ""; DialogExit(); break;
// Если ГГ воюет с Испанией
// Далее по квесту
case "Mayor_Cumana_first1": dialog.text = "Я слышал, что Вы очень настойчиво просили аудиенции. Меня зовут " + GetFullName(npchar) + ". Я губернатор города "+ GetCityName(NPChar.city) + " подданства " + NationKingsName(npchar)+ ". А теперь соблаговолите сообщить цель Вашего визита, " + GetAddress_Form(NPChar) + "."; link.l1 = "Питер Блейк. Я счёл своим долгом сообщить Вам, о том, что Ваши солдаты ведут нечестную игру. Один из них предложил мне переодеться в одежду Генри Донато и на Ваших глазах устроить 'его' поимку."; link.l1.go = "Mayor_Cumana_first2"; break;
case "Mayor_Cumana_first2": dialog.text = "Ах, вот, что задумали эти бездельники! Такие солдаты нашему королю не нужны! На рассвете я прикажу расстрелять их!"; link.l1 = "Может, стоит дать им ещё один шанс?"; link.l1.go = "Mayor_Cumana_first3"; break;
case "Mayor_Cumana_first3": AddMoneyToCharacter(pchar, +1000); dialog.text = "У них был шанс, но они им не воспользовались. Они целыми днями пили вино вместо того, чтобы ловить этого бешеного пса Донато. Благодарю Вас, капитан."; link.l1 = ""; link.l1.go = "Mayor_Cumana_first3_exit"; break;
case "Mayor_Cumana_first3_exit": AddDialogExitQuest("Mayor_Cumana_first"); NextDiag.CurrentNode = "First time"; DialogExit(); break;
// Данато в бухте и в каюте корабля ГГ
case "Genri_Danato1_Shore1": dialog.text = "Эй! Ты капитан?"; link.l1 = "Капитан Питер Блейк. Чем могу помочь?"; link.l1.go = "Genri_Danato1_Shore2"; break;
case "Genri_Danato1_Shore2": dialog.text = "Генри Донато! Ты обо мне слышал?"; link.l1 = "Нет."; link.l1.go = "Genri_Danato1_Shore3"; break;
case "Genri_Danato1_Shore3": dialog.text = "Замечательно! Ты как раз тот, кого я ищу. Мне срочно нужно добраться до Кюрасао. Поможешь?"; link.l1 = "О чём речь? Конечно!"; link.l1.go = "Genri_Danato1_Shore4"; break;
case "Genri_Danato1_Shore4": dialog.text = "Как приятно встретить хорошего человека."; link.l1 = "Взаимно. Прошу на мой корабль."; link.l1.go = "Genri_Danato1_Shore4_exit"; break;
case "Genri_Danato1_Shore4_exit": AddDialogExitQuest("Genri_Danato1_Shore"); NextDiag.CurrentNode = ""; DialogExit(); break;
case "Genri_Danato1_cabin1": dialog.text = "Так, когда мы снимаемся с якоря?"; link.l1 = "Боюсь, мы не станем этого делать. За твою голову назначена хорошая награда, и я намериваюсь её получить."; link.l1.go = "Danato_cabin2"; break;
case "Danato_cabin2": dialog.text = "Как неожиданно. Впрочем, в жизни ничему не надо удивляться."; link.l1 = ""; link.l1.go = "Danato_cabin2_exit"; break;
case "Danato_cabin2_exit": AddDialogExitQuest("Genri_Danato1_Fight"); NextDiag.CurrentNode = ""; DialogExit(); break;
case "Danato_cabin3": dialog.text = ""; link.l1 = "Посидишь пока в трюме, а я навещу кое-кого."; link.l1.go = "Danato_cabin3_exit"; break;
case "Danato_cabin3_exit": AddDialogExitQuest("Genri_Danato1_Fight2"); NextDiag.CurrentNode = ""; DialogExit(); break; } }
Я конечно не профессионал. но может быть мои рассуждения хоть немного вам помогут, вы выбрали оператор switch , но из чего ему выбирать, от case2 до места Если ГГ воюет с Испанией идёт последовательное выполнение операторов, дальше идёт case "Mayor_Cumana_first1": в составе этого же оператора switch, вот ещё case "Danato_cabin3, а где константа перехода, то есть как оператор найдёт к нему путь, попробуйте сделать следующее в каждой ветке квеста, где идёт последовательное выполнение операторов оставить по одному case, там где невозможно два, содержание диалога сейчас не самое главное, у вас получится короткая программа в которой легче разобраться, проверте всю последовательность операторов, для того чтобы повторно не выполнять ветку квеста диалог с невыполненной частью не должен повторно срабатывать, я хоть и плохо разбираюсь, но у вас можно опять вызвать этот же диалог. и квест опять раскручивается. Плохо конечно что мы тут сами по себе гадаем, профессиональных советов очень мало, вот и приходиться самим копаться.
ВОТ ЖЕМЧУЖИНА <a target="_blank" href="http://pirates-life.ru/"><img src="http://korsary-image.ucoz.ru/_ph/4/2/356694219.jpg" ></a> Лучше быть последним из волков, чем первым из шакалов...