Sie Опубликовано 24 июля, 2011 Жалоба Поделиться Опубликовано 24 июля, 2011 (изменено) Скрипт внизу вешается на дверь. Когда эту дверь активируешь, при условии что на игроке эффект хамелеона < 60п, то игроку должна добавиться запись в журнал, и Сирилонве должна начать диалог с игроком. Но проблема в том, что даже если у игрока хамелеон > 60п, то запись и диалог все равно происходят. А должно просто открывать дверь. Begin MG_sirilonwe_script short once if (once == 0) if ( OnActivate == 1) if ( GetJournalIndex MG_StealBook == 10 ) if ( player->GetEffect, sEffectChameleon < 60 ) ; Пробовал и if ( GetChameleon, Player < 60 ) Journal MG_StealBook 50 Set once to 1 Sirilonwe->Forcegreeting endif endif endif endif if (once == 1) if (OnActivate == 1) Activate endif endif End В чем дело? Изменено 24 июля, 2011 пользователем Sie Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 Попробуй проверку на хамелеон первым условием. У компа после n ифов могут начаться глюки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sie Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 Неа - та же фигня. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 Блин. Вы у кого хамелеон проверяете?! У двери, на которой скрипт висит. А у нее хамелеон 0.Нужно player->GetChameleon. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sie Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 (изменено) Дак разве "GetChameleon, Player" не одно и то же? Так, спасибо, теперь правда при наличие на игроке эффекта выше 60 п - дверь просто не открывается, но это уже легко решить :) Изменено 25 июля, 2011 пользователем Sie Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 Не открывается, потому что once при высоком хамелеоне не устанавливается. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sie Опубликовано 25 июля, 2011 Жалоба Поделиться Опубликовано 25 июля, 2011 Да все, это уже решил :) спасибо Большое! Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 Вопрос: проверки на уровень или на повышение уровня ГГ не существует? Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 Можно криворуко сделать.short nlevelif ( player->getlevel > nlevel )set nlevel to player->getlevelMessageBox "Уровень изменился"endif> можно заменить !=, но тогда при понижении уровня будет появляться сообщение. Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 В таком виде скрипт не работает и даже не сохраняется (ругается CS)Но ты навёл меня на мысль, спасибо.Скрипт проверяет уровень таким образом: где nlevel -глобальная short переменнаяbegin Bed_Standardif ( MenuMode == 0) if ( OnActivate == 1 ) ShowRestMenu if ( player->getlevel > nlevel ) set nlevel to nlevel+1 endif if ( nlevel == 1 ) MessageBox "Уровень 2" elseif ( nlevel == 2 ) MessageBox "Уровень 3" endif endifendifendP.S. Ещё раз спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 В таком виде скрипт не работает и даже не сохраняется (ругается CS)Beginend я не ставил.if ( player->getlevel > nlevel )set nlevel to nlevel+1endifЛучше while и endwhile, чтобы nlevel сразу стал равен getlevel. Или каждый фрейм плюс левел, т.е. придется кликнуть раз по getlevel. Ссылка на комментарий Поделиться на другие сайты Поделиться
Naty Опубликовано 24 августа, 2011 Жалоба Поделиться Опубликовано 24 августа, 2011 Быстрый вопрос! Как записать команду, чтобы отнять от глобальной переменной -1? Modify и mod не работают. Нужно для скриптов чтобы активация всех приносила нужный результат глобальной переменной, вне зависимости от очередности активации. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 24 августа, 2011 Жалоба Поделиться Опубликовано 24 августа, 2011 set global_id to ( global_id - 1 ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Frikky Flee Опубликовано 25 августа, 2011 Жалоба Поделиться Опубликовано 25 августа, 2011 Такие вот чисто теоретические вопросы из раздела "а возможно ли?": Первый - можно ли сделать такую штуку:1. Покупаешь предмет.2. В любом месте активируешь его.3. Дома кладёшь его на полку, он превращается в активатор.4. При активации он перемещает туда, где был активирован в пункте 2, отнимая немного маны. Второй - возможно ли:1. Есть кричер/непись.2. Как и любой кричер/непись он в бою получает урон. 3. Но его невозможно вылечить зельями и/или заклом восстановления.4. Зато он лечится обрезками металла и кожей даэдра.5. При критическом уроне он не умирает (он вообще неубиваем), но замирает и не сдвинется, пока не починишь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 25 августа, 2011 Жалоба Поделиться Опубликовано 25 августа, 2011 Чтобы перемещался без MWSE не сделать. CS использует локальные переменные или же нужно айди цели. А в оригинальном Морре не сделать.1/3 возможно сделать.Можно проверять, если хитов больше, значит -- зелье/спелл. Возвращаем хиты к прежнему состоянию. Если меньше, то ничего не будет делать.При съедании вначале увеличиваем переменную с хитами, потом лечим здоровье.Т.е. возможно, правда, криво. Ссылка на комментарий Поделиться на другие сайты Поделиться
lost81 Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 на сколько корректна такая ситуация: bla-bla-bla Set My_var to ( Player-> GetItemCount "My_apparatus" ) if ( GetDistance -> Player >= XXX ) if ( My_var != 0 ) Player -> Drop "My_apparatus", My_var endif endif bla-bla-bla Мне не удается удалить "My_apparatus" из инвентаря, хотя на пол но падает исправно, в чем фишка? Ссылка на комментарий Поделиться на другие сайты Поделиться
aL☢ Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 (изменено) А строку с Disable прописать? Или через RemoveItem? Изменено 29 августа, 2011 пользователем _aL_ Ссылка на комментарий Поделиться на другие сайты Поделиться
lost81 Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 А строку с Disable прописать? Или через RemoveItem? была такая мысль..., но на сколько я понимаю, дроп обязан не только на пол упасть, но и из инвентаря удалиться?ЗЫ: с RemoveItem та же беда... мессагу выдает, что все убито, а вещи в инвентаре.... :( Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 Хм. У тебя другим скриптом не добавляется этот предмет в инвентарь?была такая мысль..., но на сколько я понимаю, дроп обязан не только на пол упасть, но и из инвентаря удалиться?MSFD 7.0 гласит, что да. Ссылка на комментарий Поделиться на другие сайты Поделиться
lost81 Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 Хм. У тебя другим скриптом не добавляется этот предмет в инвентарь? MSFD 7.0 гласит, что да. Нет, смысл скрипта в том, чтобы не было возможности вынести из локации данный предмет(ы). Они добавлены в мир ч\з редактор, на самих предметах скрипта нет, а данный находится на активаторе... Не только MSFD 7.0 но и 8.1 ЗЫ может ли проблема быть в том, что Морр в реестре не зареган? (просто скопировал директорию с Морром и НоСД) Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 ЗЫ может ли проблема быть в том, что Морр в реестре не зареган? (просто скопировал директорию с Морром и НоСД) Вряд ли. Ссылка на комментарий Поделиться на другие сайты Поделиться
lost81 Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 Вряд ли. Ну и что тогда за ....ня?http://fullrest.ru/forum/public/style_emoticons/default/107.gifhttp://fullrest.ru/forum/public/style_emoticons/default/74.gifhttp://fullrest.ru/forum/public/style_emoticons/default/96.gifhttp://fullrest.ru/forum/public/style_emoticons/default/new%20(11).gif Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 А если вместо drop такplaceatpc item_id 1,0,0 player->removeitem item_id Ссылка на комментарий Поделиться на другие сайты Поделиться
aL☢ Опубликовано 29 августа, 2011 Жалоба Поделиться Опубликовано 29 августа, 2011 А если после дропа сделать проверку на наличие предмета в инве, а только затем прописать строчку с ремовитемом? Ссылка на комментарий Поделиться на другие сайты Поделиться
Naty Опубликовано 13 сентября, 2011 Жалоба Поделиться Опубликовано 13 сентября, 2011 Хелп. xP Begin DoorShelf Short OpenState if (MenuMode == 1)returnendif if ( OpenState == 0 )if ( OnActivate == 1 )Rotate x, -30Set OpenState to 1PlaySound3D "Crystal Ringing", 1.0, 1.0Endifendif if ( OpenState == 1 )if ( OnActivate == 1 )Rotate x, 30Set OpenState to 0PlaySound3D "Crystal Ringing", 1.0, 1.0EndifEndif end Что не так? Дверь смещается на 1 градус, а не на нужные 30. :'-( Нужен именно быстрый ответ, какой команды не хватает. Либо подскажите каким образом заставить дверь в морровинде открываться строго НАружу, К игроку, а не внутрь, от игрока. Открывается упорно дверь шкафа внутрь, проходя сквозь полки.((( Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти