Можно, но только если на локации один уровень (один этаж) и к стати по мне проще в майке или максе сделать и через креатор патч перегнать. Из тула к стати можно вытащить любой патч, я по мойму даже патч глобалки вытаскивал по которому гараблиги ползают.
locations[n].reload.l17.name = "reload7_back"; locations[n].reload.l17.go = "ltest"; locations[n].reload.l17.emerge = "reload1"; locations[n].reload.l17.autoreload = "0"; locations[n].reload.l17.label = "church"; n = n + 1; У меня Церковь под номером семнадцать (locations[n].reload.l17) у тебя может под другим номером. Если не хочешь задеть дефолтную церковь, то посмотри какой цифрой заканчиваются последующие локи и прибавляй +1 к последней. Этот код прописывает локу в город. А тот большой код уже саму локу прописывает в игру.
Попробуй так:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ТЕСТ ЛОКА ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// locations[n].id = "ltest"; locations[n].id.label = "church"; Тут не обязательно именно так писать, это вроде надпись которая появляется в игре сверху в центре экрана, типа какая это лока за дверью, если напишешь другую кроме церкви, то ниче не появится, так, как лейбы тоже прописываются (где не помню) в коде locations[n].image = "loading\inside\church.tga"; //Town sack locations[n].townsack = "SentJons"; это пишится в каком городе лока locations[n].lockWeather = "Inside"; это тип локации, внутренняя (Inside помещение) или наружнняя (outside улица) //Sound locations[n].type = "church"; locations[n].fastreload = "SentJons"; locations[n].islandId = "Antigua"; //Models //Always locations[n].filespath.models = "locations\Incide\ltest\"; Тут какой путь у тебя до файла мне не ведомо locations[n].models.always.ltest = "ltest"; после слова always должна быть такая же надпись как и после знака равно, т.е. название модели locations[n].models.always.churchInside1.level = 65538; locations[n].models.always.locators = "ltest_locators";
upuser, для начала скинь пожалуйста логи и желательно все три (error, compile, system) p.s. "жирные" в первую очередь Что толку, если не можешь сделать мир лучше.
Может быть, в файле LocLables.txt в INI?.. Только там и здесь в скриптах встречал такие метки... Можно, кстати, просто пробить здесь другой идентификатор и вписать его в текстовый файл. Например:
locations[n].id.label = "my_new_church";
а в текстовом файле:
my_new_church {Английская церковь} Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
RUNTIME ERROR - file: no debug information; line: 1 Incorrect copy: invalid index RUNTIME ERROR - file: no debug information; line: 1 AClass ERROR n1 RUNTIME ERROR - file: no debug information; line: 1 function 'LocationInitBoarding' stack error RUNTIME ERROR - file: no debug information; line: 1 Incorrect copy: invalid index RUNTIME ERROR - file: no debug information; line: 1 AClass ERROR n1 RUNTIME ERROR - file: no debug information; line: 1 function 'LocationInitBoarding' stack error
Init encounters complete. How islands = 26 Init weathers complete. 34 weathers found. proc_break_video() proc_break_video() proc_break_video() Warning! No text for lable <Cuba2> into language file <LocLables.txt> Warning! No text for lable <Cumana> into language file <LocLables.txt> Warning! No text for lable <Caracas> into language file <LocLables.txt> Warning! No text for lable <Cartahena> into language file <LocLables.txt> Warning! No text for lable <Hispaniola2> into language file <LocLables.txt> Warning! No text for lable <Maracaibo> into language file <LocLables.txt> Warning! No text for lable <PortoBello> into language file <LocLables.txt> Warning! No text for lable <SantaCatalina> into language file <LocLables.txt> How islands = 26 Antigua locations 20 Barbados locations 47 Curacao locations 68 LostShipsIsland locations 85 Guadeloupe locations 107 Jamaica locations 136 Caracas locations 150 Pearl locations 166 Bermudes locations 180 Cartahena locations 196 Maracaibo locations 215 Tenotchitlan locations 240 LaVega locations 247 SantoDomingo locations 270 PortPax locations 283 Santiago locations 307 PuertoPrincipe locations 314 Havana locations 336 Martinique locations 364 Panama locations 387 PortoBello locations 406 Beliz locations 432 Nevis locations 455 PuertoRico locations 474 Cumana locations 493 SantaCatalina locations 518 Trinidad locations 537 SentMartin locations 560 Tortuga locations 582 Dominica locations 587 Terks locations 592 Caiman locations 597 Common locations 624 Number of locations: 700 Заполнение трупов с предмета 146 Всего предметов (размерность массива) 220 Начальный специальный предмет: Rock_letter Конечный специальный предмет: map_bad Antigua: 12 Barbados: 22 Jamaica: 37 Curacao: 46 Guadeloupe: 55 Santiago: 64 PuertoPrincipe: 68 Martinique: 82 Havana: 91 Nevis: 101 PuertoRico: 110 SentMartin: 120 Bermudes: 125 Trinidad: 134 PortPax: 143 SantoDomingo: 153 LaVega: 157 Tortuga: 167 Panama: 175 PortoBello: 184 Cartahena: 193 Caracas: 202 Cumana: 211 SantaCatalina: 220 Beliz: 229 Maracaibo: 238 Story: 247 ВСЕГО НПС В ИГРЕ (статиков) = 247 Version = ver.1.2.12 TST Mistake island id into store: id=Panama Mistake Colony id into store: id=none MOD_EXP_RATE = 10 Warning! No text for lable <Cuba2> into language file <LocLables.txt> Warning! No text for lable <Cumana> into language file <LocLables.txt> Warning! No text for lable <Caracas> into language file <LocLables.txt> Warning! No text for lable <Cartahena> into language file <LocLables.txt> Warning! No text for lable <Hispaniola2> into language file <LocLables.txt> Warning! No text for lable <Maracaibo> into language file <LocLables.txt> Warning! No text for lable <PortoBello> into language file <LocLables.txt> Warning! No text for lable <SantaCatalina> into language file <LocLables.txt> How islands = 26 Antigua locations 20 Barbados locations 47 Curacao locations 68 LostShipsIsland locations 85 Guadeloupe locations 107 Jamaica locations 136 Caracas locations 150 Pearl locations 166 Bermudes locations 180 Cartahena locations 196 Maracaibo locations 215 Tenotchitlan locations 240 LaVega locations 247 SantoDomingo locations 270 PortPax locations 283 Santiago locations 307 PuertoPrincipe locations 314 Havana locations 336 Martinique locations 364 Panama locations 387 PortoBello locations 406 Beliz locations 432 Nevis locations 455 PuertoRico locations 474 Cumana locations 493 SantaCatalina locations 518 Trinidad locations 537 SentMartin locations 560 Tortuga locations 582 Dominica locations 587 Terks locations 592 Caiman locations 597 Common locations 624 Number of locations: 700 Заполнение трупов с предмета 146 Всего предметов (размерность массива) 220 Начальный специальный предмет: Rock_letter Конечный специальный предмет: map_bad Antigua: 12 Barbados: 22 Jamaica: 37 Curacao: 46 Guadeloupe: 55 Santiago: 64 PuertoPrincipe: 68 Martinique: 82 Havana: 91 Nevis: 101 PuertoRico: 110 SentMartin: 120 Bermudes: 125 Trinidad: 134 PortPax: 143 SantoDomingo: 153 LaVega: 157 Tortuga: 167 Panama: 175 PortoBello: 184 Cartahena: 193 Caracas: 202 Cumana: 211 SantaCatalina: 220 Beliz: 229 Maracaibo: 238 Story: 247 ВСЕГО НПС В ИГРЕ (статиков) = 247 Version = ver.1.2.12 TST Mistake island id into store: id=Panama Mistake Colony id into store: id=none PGG Питер Блад starting rank 1 PGG Ян Стейс starting rank 2 PGG Майкл Чард starting rank 3 PGG Ингасио Марко starting rank 3 PGG Йохан Даринг starting rank 1 PGG Горацио Хорнблауэр starting rank 1 PGG Джон Истерлинг starting rank 2 PGG Санчос Эстебан starting rank 1 PGG Керк Зандер starting rank 2 PGG Альфонсо Сальваторе starting rank 3 PGG Делвин Блэйз starting rank 3 PGG Джон Сильвер starting rank 1 PGG Франциск Дюбуа starting rank 2 PGG Артур Корнел starting rank 1 PGG Марк Вандерборг starting rank 4 PGG Сесил Форестер starting rank 1 PGG Хосе Даско starting rank 1 ПГГ загружено 17 Параметры апдейта ПГГ установлены. Слухи! LocLoadShips: Can't find Location.locators.ships in location: Ship_deck_Low LocationLoader: not loaded model location.models.always.ltest, id = ltest Unload location.
Scanning modules\ Loading modules... Loaded 44 Reset... Initializing CORE... Creating atoms space: 128 done initializing complete Initializing DirectX 9 ERROR: Techniques: Find duplicate technique name: rain Techniques: 22 shaders compiled. Techniques: 230 techniques compiled. Techniques: compiled by 1907262510 ticks. Using FMOD 00040805 Sound inited ok !!! FMOD: Speaker mode STEREO Intel CPU: Yes, SSE: On, HyperThreading: Off Can't load texture resource\textures\.tx Can't load texture resource\textures\.tx ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> ERROR: SetCurrentBlock: unknown technique <> first character is <(null)> Total logical: 2, Total cores: 2, Total physical: 1 Intel CPU: Yes, SSE: On, HyperThreading: On Can't sound resume -2 !!!! Sound is not playig !!!! Can't load texture resource\textures\-1.tx Total logical: 2, Total cores: 2, Total physical: 1 Intel CPU: Yes, SSE: On, HyperThreading: On Ship Boat doesn't have fire places Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx Warning: NPCharacter <Carrier_356>-> trace node not found Warning: NPCharacter <Carrier_357>-> trace node not found Warning: NPCharacter <Carrier_358>-> trace node not found Warning: NPCharacter <Carrier_359>-> trace node not found Can't sound resume -2 !!!! Sound is not playig !!!! resource\models\locations\Incide\ltest\ltest.gm: can't open geometry file Release d3d8 Undefined error Release d3d Undefined error Unloading System exit and cleanup: Mem state: User memory: 226 MSSystem: 256 Blocks: 16 Leak: '.\xiutil.cpp' line 77, size 11 Leak: '.\xiutil.cpp' line 77, size 11 Leak: '.\xiutil.cpp' line 77, size 11 Leak: '.\xiutil.cpp' line 77, size 11 Leak: '.\xiutil.cpp' line 77, size 11 Leak: '.\xiutil.cpp' line 77, size 11 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16 Leak: 'e:\workspace\slib\k3_source_addon\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
В логе написано, что модель локации ltest не загрузилась (not loaded model location.models.always.ltest, id = ltest). Убедись что правильно указал путь к модели в коде и все ли модели в той папке. Архив с моделями не совсем понятный, не видно полного пути к модели в какие папки ты их вкладывал (можно только догадываться), это тоже важно. И на всякий случай напоминаю, чтоб не забывал, при каждой правке скриптов игру надо начинать заново, чтоб правки вступили в силу. Р.С. и ещя я так понял, что вход в локу ты сделал через локатор входа в церковь?
Добавлено (09.10.2016, 20:36) --------------------------------------------- И такс. Во первых для доступу в локацию нужен новый локатор в самом городе типа reload(цифра нового локатора)_back (пример локатора пускающего в церковьreload7_back я создал reload170_back сделать это можно через программу TOOL), новый локатор должен быть в стороне от подобных иначе не сработает при наложении на другой локатор. Если же не хочешь создовать новый локатор, то используй уже существующий к примеру вход в церковь, но тебе придется отключит загрузку в церковь и саму локацию церкви в коде или удалить просто опять же из кода. Отключение загрузки выглядит примерно так:
/* locations[n].reload.l7.name = "reload7_back"; locations[n].reload.l7.go = "SentJons_church"; locations[n].reload.l7.emerge = "reload1"; locations[n].reload.l7.autoreload = "0"; locations[n].reload.l7.label = "ltest"; // locations[n].reload.l7.close_for_night = 1; */ в начале куска кода надо ставить слеш и звездочку /*, в конце звездочку и слеш */ ---------------------------------------------------------------------------------------------------------------------
Во вторых пишишь код доступа в локацию (я уже писал в одном из предыдущих постов какой код писать, но повторю):
locations[n].reload.17.name = "reload(номер вашего локатора)_back"; locations[n].reload.17.go = "ltest"; locations[n].reload.17.emerge = "reload1"; locations[n].reload.17.autoreload = "0"; locations[n].reload.17.label = "Church"; в место 17 желательно написать другую любую цифру, лишь бы в коде похожего не было на это locations[n].reload.17 я просто добавил нолик locations[n].reload.170 и так в каждой строчке этого куска кода ---------------------------------------------------------------------------------------------------------------------
Затем попробуй этот код (на этот раз я проверил с твоими моделями и сделал необходимые правки, все работает) можешь прямо копировать от сюда как есть и вставлять в код с комментариями, я коментарии отделил двойным слешем
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ТЕСТ ЛОКА ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// locations[n].id = "ltest"; locations[n].id.label = "ltest"; locations[n].image = "loading\inside\church.tga"; // это экран загрузки //Town sack locations[n].townsack = "SentJons"; locations[n].lockWeather = "Inside"; //Sound locations[n].type = "church"; //это какой звук будет в локации locations[n].fastreload = "SentJons"; locations[n].islandId = "Antigua"; //Models //Always locations[n].filespath.models = "locations\inside\ltest"; locations[n].models.always.churchInside1 = "ltest"; locations[n].models.always.churchInside1.level = 65538; locations[n].models.always.locators = "ltest_locators"; ////// этот кусок отключен, это стандартный вид из окна и лежит в папке locations, если хочешь включить то перед каждой строкой убери двойной слеш ( слеш это косая черта /) //locations[n].models.always.back = "..\inside_back"; //locations[n].models.always.back.level = 65529; /////этот кусок можно включить если у тебя есть соответствующая модель окон и лежит с папкой модели, если модели не окажеться в паке с моделью то будет черный экран //Locations[n].models.always.window = "ltest_windows"; //Locations[n].models.always.window.tech = "LocationWindows"; //locations[n].models.always.window.level = 65539;
resource\models\locations\Incide\ltest\ltest.gm: can't open geometry file
а меня больше всего смутил путь до модели, ведь по дефолту папка с локациями различных помещений называется Inside Что толку, если не можешь сделать мир лучше.
upuser, Та что все еще не получилось? У меня твоя лока с этими кодами которые я крайними тебе тут написал, работате. Единственное только, у меня на Антигуа другой город. По крайней мере модель другая, а по дефолту я не помнью какой там должен быть прописан, т.к. у меня установлен только КНС для работы над адоном. //Town sack locations[n].townsack = "SentJons"; locations[n].lockWeather = "Inside";
Да, я просто поменял код входа в церковь(там их было 2, 7 и 107). Лока загрузилась, только не видно модельки и идти нельзя, скорее всего потому, что модель в 100 раз не увеличил(но при увеличивании экспорт не работает, в общем, пошаманю). Собственно, поставленная цель выполнена - модель работает. Спасибо Натаниэль, Метт, и особенно Джин-Бейн, уже в который раз выручаете. За готовый код отдельное спасибо
Сообщение отредактировал upuser - Понедельник, 10.10.2016, 20:55
Кстати, текстовые метки иногда полезно вносить самому. Поясню пример. В К:КС есть такая локация, как трюм пинаса "Санта-Люсия" по одноимённому квесту. Или домики смотрителей маяков. Если Вы играли и заходили в эти локации - Вы могли бы заметить, что там нет описания локации под "часами" в правом верхнем углу. По этой причине в этой локации нельзя и сохраняться - метки нет.
Если в будущем встретите такие локации или уже встречали - расставляйте такие метки. Или можете перепрописывать на свои, чтобы не путать с основными... Только если метку не поставите и её не будет - не сможете сохраняться в этой локации до правки этого косяка и начала НИ. Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!
Сообщение отредактировал Nathaniel - Понедельник, 10.10.2016, 21:30
скорее всего потому, что модель в 100 раз не увеличил
Так и есть и патч такой же мелкий поэтому ГГ буксует на месте)), я сразу увидел это, просто я перед тем как в игре посмотреть всегда модели в вивере рассматриваю и твою фиолетово-розовую пластинку я видел в игре под ногами ГГ. Вот тебе дэфолтная моделька склада из К:ГПК, для того чтоб тебе проще было ориентироваться в размерах, открывается в пятой майке
Добавлено (10.10.2016, 22:04) --------------------------------------------- Р.С. можешь даже в этой сцене замоделить свою локу
В файле с НПС есть какой-либо параметр, отвечающий за поворот нпс? Т.е в какую сторону он будет смотреть.
когда он просто ставится в какой-то локатор? В tool где координаты локаторов задаются, есть куча еще типа xz и т.п., вот они за это отвечают. Единственное, что можно сказать об удаче с уверенностью — она изменит. --------
Привет Не замечал на форумах давно уже активности) Помогите с одним делом не могу давно разобраться У меня Чистая Корсары 3 Там не работает файл Диалога с ростовщиком , не смог найти ошибку не как Можете ли кинуть файл Usurer_dialog От к3 ТДМ или К3 ВС ? Я уже весь инет облазил все вкладки не чего не нашел по этой теме, попадались люди с такой же проблемой но без ответа.
И еще такое дело, команда Ускорение в каком файле прописывается ?в режиме плавания она есть, а вот в глобальном ее нет. Буду очень благодарен за помощь.
Добавлено (07.12.2016, 13:40) --------------------------------------------- Где ошибка?
switch(Dialog.CurrentNode) { // -----------------------------------Диалог первый - первая встреча case "LoanGranted_exit": Diag.CurrentNode = Diag.TempNode;
dialog.Text = RandPhrase(TimeGreeting() + "," + PChar.name + ". Вы пришли, чтобы со мной расплатиться? Ага... Так, вы должны мне " + Pchar.Quest.Loans.(NPC_Area).Result + " пиастров.", "Здравствуйте, капитан. Рад видеть вас в добром здравии. Готовы ли вы вернуть те " + Pchar.Quest.Loans.(NPC_Area).Result + " пиастров, что занимали у меня?", "Приветствую вас, " + address_form.eng + ". Надеюсь, ваше плавание было удачным, и вы принесли мне мои деньги. Считая проценты, вы сейчас должны мне " + Pchar.Quest.Loans.(NPC_Area).Result + " пиастров.", &Dialog, Dialog.snd1, Dialog.snd2, Dialog.snd3); if(makeint(PChar.money) >= makeint(Pchar.Quest.Loans.(NPC_Area).Result)) { "loan"; Link.l1 = LinkRandPhrase("Я готов вернуть вам ваши деньги.", "Я в состоянии выплатить вам долг.", "Настало время, наконец, рассчитаться."); Link.l1.go = "loan_return"; } Link.l2 = LinkRandPhrase("К сожалению, я пока не могу этого сделать.", "В следующий раз, " + NPChar.name + ".", "Увы, нет. Я вернусь, когда достану деньги."); Link.l2.go = "Loan_Remind"; Link.l3 = ""; Link.l3.go = "exit_NoChange";
} if(CheckAttribute(Pchar, "Quest.Deposits." + (NPC_Area)) && makeint(Pchar.Quest.Deposits.(NPC_Area)) == true) { iPastMonths = GetPastTime("Month", makeint(Pchar.Quest.Deposits.(NPC_Area).StartYear),makeint(Pchar.Quest.Deposits.(NPC_Area).StartMonth),makeint(Pchar.Quest.Deposits.(NPC_Area).StartDay), makefloat(Pchar.Quest.Deposits.(NPC_Area).StartTime), getDataYear(),getDataMonth(),GetDataDay(), GetTime()); Pchar.Quest.Deposits.(NPC_Area).Result = makeint(Pchar.Quest.Deposits.(NPC_Area).Sum) + ((makeint(Pchar.Quest.Deposits.(NPC_Area).Sum)/100)*makeint(Pchar.Quest.Deposits.(NPC_Area).Interest))*iPastMonths; Dialog.snd1 = "voice\USDI\USDI010"; Dialog.snd2 = "voice\USDI\USDI011"; Dialog.snd3 = "voice\USDI\USDI012"; dialog.Text = RandPhrase("Рад видеть вас, капитан " + PChar.name + ". Если вам нужны мои услуги, то я готов вам их оказать немедленно.", TimeGreeting() + ". Вы по делу?", "Здравствуйте, " + address_form.eng + ". Что вам угодно? Я готов осуществить любые финансовые операции.", &Dialog, Dialog.snd1, Dialog.snd2, Dialog.snd3); Link.l1 = LinkRandPhrase("Я хочу забрать свой вклад.", "Пришло время забрать мои деньги, что у вас хранятся.", "Мне нужно мое золото и набежавшие проценты."); Link.l1.go = "Deposit_return"; Link.l2 = "До свидания, " + NPchar.name + "."; Link.l2.go = "exit_NoChange"; Link.l3 = ""; Link.l3.go = "exit_NoChange"; } } break;
case "Meeting": Dialog.snd1 = "voice\USDI\USDI013"; Dialog.snd2 = "voice\USDI\USDI014"; Dialog.snd3 = "voice\USDI\USDI015"; dialog.Text = RandPhrase("Очень приятно. Я " + NPChar.name + " " + NPChar.lastname + ". Мое занятие - предоставление денег в долг под проценты.", "Мое имя " + NPChar.name + " " + NPChar.lastname + ". Я ростовщик. Если вам внезапно понадобятся средства - я буду рад вам помочь.", "Наверняка вы уже знаете, что меня зовут " + NPChar.name + " " + NPChar.lastname + ". Я довольно известная здесь личность...Впрочем, перейдем к делу - вам нужны мои услуги?", &Dialog, Dialog.snd1, Dialog.snd2, Dialog.snd3); Link.l1 = LinkRandPhrase("Я хочу занять денег.", "Мне срочно понадобилась пара-другая пиастров.", "Как насчет небольшого кредита?"); Link.l1.go = "loan"; if(makeint(Pchar.money) >= 100) { Link.l2 = LinkRandPhrase("Я бы хотел отдать деньги в рост.", "Примете на хранение пиратскую добычу?", "Золотишко на черный день оставить можно?"); Link.l2.go = "deposit"; } Link.l3 = "До свидания, " + NPchar.name + "."; Link.l3.go = "exit"; break;
case "loan": Dialog.snd = "voice\USDI\USDI016"; dialog.Text = "О, всегда пожалуйста. Какая сумма вам необходима?"; Link.l1 = "Совсем небольшая."; Link.l1.go = "Small"; Link.l2 = "Весьма значительная."; Link.l2.go = "Medium"; Link.l3 = "Чем больше, тем лучше."; Link.l3.go = "Large"; break;
case "small": Pchar.Quest.Loans.(NPC_Area).Sum = 500*makeint(Pchar.rank); Dialog.snd = "voice\USDI\USDI017"; dialog.Text = "Отлично. С небольшими суммами всегда проще - меньше риска. Я могу предложить вам " + Pchar.Quest.loans.(NPC_Area).sum + " пиастров..."; Link.l1 = "Договорились. Под какие проценты?"; Link.l1.go = "Interest"; Link.l2 = "Увы, эта сумма не годится. Давайте-ка ее изменим."; Link.l2.go = "Loan"; Link.l3 = "Думаю, мне лучше не влезать в долги. До свидания."; Link.l3.go = "Exit"; break;
case "Medium": Pchar.Quest.Loans.(NPC_Area).Sum = 1500*makeint(Pchar.rank); Dialog.snd = "voice\USDI\USDI018"; dialog.Text = "Не проблема. Надеюсь, что " + Pchar.Quest.Loans.(NPC_Area).sum + " пиастров помогут вам решить ваши проблемы. Это вполне значительная сумма."; Link.l1 = "Договорились. Под какие проценты?"; Link.l1.go = "Interest"; Link.l2 = "Увы, эта сумма не годится. Давайте-ка ее изменим."; Link.l2.go = "Loan"; Link.l3 = "Думаю, мне лучше не влезать в долги. До свидания."; Link.l3.go = "Exit"; break;
case "Large": Pchar.Quest.Loans.(NPC_Area).Sum = 3000*makeint(Pchar.rank); Dialog.snd = "voice\USDI\USDI019"; dialog.Text = "М-да... Рискованно... Но ладно, я готов предоставить вам заем на сумму " + Pchar.Quest.Loans.(NPC_Area).sum + ". Как вы понимаете, капитан, это действительно крупные деньги. Очень прошу вас серьезно отнестись к этому делу."; Link.l1 = "Договорились. Под какие проценты?"; Link.l1.go = "Interest"; Link.l2 = "Увы, эта сумма не годится. Давайте-ка ее изменим."; Link.l2.go = "Loan"; Link.l3 = "Думаю, мне лучше не влезать в долги. До свидания."; Link.l3.go = "Exit"; break;
case "Interest": Pchar.Quest.Loans.(NPC_Area).Interest = 11 - makeint(Pchar.skill.commerce); Dialog.snd = "voice\USDI\USDI020"; dialog.Text = Pchar.Quest.Loans.(NPC_Area).Interest + " в месяц. Основываясь на том, что я о вас знаю, я не могу предложить вам сейчас лучших условий."; Link.l1 = "Меня это вполне устраивает. Осталось обговорить срок."; Link.l1.go = "Period"; Link.l3 = "Думаю, мне лучше не влезать в долги. До свидания."; Link.l3.go = "Exit"; break;
case "Period": Pchar.Quest.Loans.(NPC_Area).Period = makeint(makeint(Pchar.reputation)/20) + 1; Dialog.snd = "voice\USDI\USDI021"; dialog.Text = "Учитывая то, что я о вас слышал, " + Pchar.name + ", я буду ждать возврата этого долга в течение " + Pchar.Quest.Loans.(NPC_Area).Period + " месяцев. После чего, как вы понимаете, я приму меры."; Link.l1 = "Что же, я с удовольствием принимаю ваши условия... И ваши деньги."; Link.l1.go = "LoanGranted"; Link.l3 = "Увы, мы с вами не договорились. До свидания."; Link.l3.go = "Exit"; break;
case "LoanGranted": Dialog.snd = "voice\USDI\USDI022"; dialog.Text = "Искренне этому рад. Но позвольте мне вас предупредить. Я давно занимаюсь своим делом и знаю, как вернуть свои деньги. Так что если у вас и были какие мысли прикарманить мои деньги, лучше оставьте их\nНе хочу вас обидеть - просто предупреждаю."; Link.l1 = "Хм... Ну-ну. Всего хорошего."; Link.l1.go = "LoanGranted_exit"; break;
case "Loan_Remind": Dialog.snd = "voice\USDI\USDI023"; dialog.Text = "Ну смотрите... Проценты капают. Да и времени у вас осталось не так уж много."; Link.l1 = "Не волнуйтесь. До встречи."; Link.l1.go = "exit_NoChange"; break;
case "loan_return": addMoneyToCharacter(Pchar, -(makeint(Pchar.Quest.Loans.(NPC_Area).Result))); DeleteAttribute(PChar, "quest.loans." + (NPC_Area)); Pchar.quest.(NPC_Area).over = "Yes"; Dialog.snd1 = "voice\USDI\USDI024"; Dialog.snd2 = "voice\USDI\USDI025"; Dialog.snd3 = "voice\USDI\USDI026"; dialog.Text = RandPhrase("О, это просто чудесно! В любое время, как вам понадобятся деньги - я к вашим услугам.", "Благодарю. Очень приятно иметь дело с деловым человеком, умеющим вовремя вернуть долг. А то знаете, разное бывает...", "О, не зря я был в вас столь уверен, " + address_form.fra + "! Надеюсь, это не последний раз, когда вы прибегаете к моим услугам!", &Dialog, Dialog.snd1, Dialog.snd2, Dialog.snd3); Link.l1 = LinkRandPhrase("Я хочу занять денег.", "Мне срочно понадобилась пара-другая пиастров.", "Как насчет небольшого кредита?"); Link.l1.go = "loan"; if(makeint(PChar.money) >= 100) { Link.l2 = LinkRandPhrase("Я бы хотел отдать деньги в рост.", "Примете на хранение пиратскую добычу?", "Золотишко на черный день оставить можно?"); Link.l2.go = "deposit"; } Link.l3 = "До свидания, " + NPchar.name + "."; Link.l3.go = "exit"; break;
case "deposit": Dialog.snd1 = "voice\USDI\USDI027"; Dialog.snd2 = "voice\USDI\USDI028"; Dialog.snd3 = "voice\USDI\USDI029"; dialog.Text = RandPhrase("Я слышу разумного человека! Так сколько денег вы готовы отдать в рост?", "Хорошо. Поверьте мне, та сумма, что вы мне отдаете, будет ждать вас в целости и сохранности, и даже с процентами...А, кстати, какова эта сумма?", "Я смотрю, вы понимаете, что к чему в этой жизни. Сколько вы хотите отдать мне на хранение?", &Dialog, Dialog.snd1, Dialog.snd2, Dialog.snd3); Link.l1 = "Четверть - " + makeint(makeint(PChar.money)/40)*10 + " пиастров."; Link.l1.go = "quarter"; Link.l2 = "Половину - " + makeint(makeint(PChar.money)/20)*10 + " пиастров."; Link.l2.go = "half"; Link.l3 = "Все, что у меня есть - " + makeint(makeint(PChar.money)/10)*10 + " пиастров."; Link.l3.go = "All"; break;
case "quarter": Pchar.Quest.Deposits.(NPC_Area).Interest = makeint(Pchar.skill.commerce) + 1; Pchar.Quest.Deposits.(NPC_Area).Sum = makeint(makeint(PChar.money)/40)*10; Dialog.snd = "voice\USDI\USDI030"; dialog.Text = "Хорошо. Процентов под эту сумму я готов вам предложить...мм...скажем, " + Pchar.Quest.Deposits.(NPC_Area).Interest + ". Разумеется, в месяц."; Link.l1 = "Меня это устраивает"; Link.l1.go = "Deposit_placed"; Link.l2 = "Лучше я изменю сумму."; Link.l2.go = "Deposit"; Link.l3 = "Кажется, мне не стоит расставаться с деньгами. Всего хорошего."; Link.l3.go = "Exit"; break;
case "half": Pchar.Quest.Deposits.(NPC_Area).Interest = makeint(Pchar.skill.commerce) + 1; Pchar.Quest.Deposits.(NPC_Area).Sum = makeint(makeint(PChar.money)/20)*10; Dialog.snd = "voice\USDI\USDI031"; dialog.Text = "Хорошо. Процентов под эту сумму я готов вам предложить... мм... скажем, " + Pchar.Quest.Deposits.(NPC_Area).Interest + ". Разумеется, в месяц."; Link.l1 = "Меня это устраивает"; Link.l1.go = "Deposit_placed"; Link.l2 = "Лучше я изменю сумму."; Link.l2.go = "Deposit"; Link.l3 = "Кажется, мне не стоит расставаться с деньгами. Всего хорошего."; Link.l3.go = "Exit"; break;
case "All": Pchar.Quest.Deposits.(NPC_Area).Interest = makeint(Pchar.skill.commerce) + 1; Pchar.Quest.Deposits.(NPC_Area).Sum = makeint(makeint(PChar.money)/10)*10; Dialog.snd = "voice\USDI\USDI032"; dialog.Text = "Хорошо. Процентов под эту сумму я готов вам предложить...мм...скажем, " + Pchar.Quest.Deposits.(NPC_Area).Interest + ". Разумеется, в месяц."; Link.l1 = "Меня это устраивает"; Link.l1.go = "Deposit_placed"; Link.l2 = "Лучше я изменю сумму."; Link.l2.go = "Deposit"; Link.l3 = "Кажется, мне не стоит расставаться с деньгами. Всего хорошего."; Link.l3.go = "Exit"; break;
case "Deposit_placed": Dialog.snd = "voice\USDI\USDI033"; dialog.Text = "Теперь вы можете быть уверены, что даже самая жестокая буря не оставит вас без средств к существованию. Если же вы решите забрать вклад, то приходите в любое время."; Link.l1 = "Хорошо. Всего хорошего."; Link.l1.go = "Deposit_Exit"; break;
case "Deposit_return": Dialog.snd = "voice\USDI\USDI034"; dialog.Text = "Исходя из процентов, которые мы оговорили в прошлый раз, и, учитывая прошедшее время, я насчитал, что должен вам " + Pchar.Quest.Deposits.(NPC_Area).Result + " пиастров... Вы уверены, что хотите забрать эти деньги"; Link.l1 = "Абсолютно. Давайте их сюда."; Link.l1.go = "Deposit_return_1"; Link.l2 = "Знаете, вы правы. Пусть они еще немного полежат. Всего хорошего."; Link.l2.go = "Exit_noChange"; break;
case "Deposit_return_1": addMoneyToCharacter(Pchar, makeint(Pchar.Quest.Deposits.(NPC_Area).Result)); DeleteAttribute(PChar,"quest.deposits." + (NPC_Area)); Dialog.snd = "voice\USDI\USDI035"; dialog.Text = "Ох... Даже жаль с ними расставаться. Я к ним уже как-то привык. Что же - приходите ко мне еще."; Link.l1 = "Если понадобится - приду. Счастливо оставаться."; Link.l1.go = "Exit"; break;
case "DeadMotherfucker": Dialog.Tempnode = "DeadMotherFucker_1"; Dialog.snd = "voice\USDI\USDI035"; dialog.Text = "Вы еще живы? Наверное, хотите вернуть мне деньги? К черту! Из-за вас я потерял столько, сколько вы мне в жизни не возместите! Я не успокоюсь, пока не увижу ваш труп!"; Link.l1 = "С подобными признаниями ты сам легко можешь стать трупом!"; Link.l1.go = "Exit"; break;
case "DeadMotherFucker_1": Dialog.snd = "voice\USDI\USDI035"; dialog.Text = "Убирайтесь из моего дома! Глаза мои вас бы не видели!"; Link.l1 = "..."; Link.l1.go = "Exit"; break; } }
Вы думаете, мы станем мониторить весь файл?.. Запустите отладочные логи и сами поймёте, где крыса пробежала. FAQ, вопрос №7. Я был на краю земли, на краю бескрайних озёр, за горизонтом и на вершинах самых высоких гор. Но я не нашёл там никого, кто не был бы моим другом!