Перейти к содержанию

LonWolf

Граждане
  • Постов

    138
  • Зарегистрирован

  • Посещение

Весь контент LonWolf

  1. Ну мне надо шоб запись в журнале появилась и NPC исчез . Эээ, ты имел в виду "появился"? Ты раньше так говорил. Очепятка? А ForceGreeting сюда вписывается? Расскажи мне словами, что полностью в скрипте нужно, и я напишу конечную версию. ЗЫ: Немогли бы вы предоставить пример скрипта где надо указать ID журнала и индекс записи. Просто я в скриптах дуб и мне по другому непонятно. Ну вот кое-что из официального: Begin ajiraScript short doOnce short gemInDesk short NoLore if ( CellChanged == 0 ) Return endif if ( doOnce == 0 ) if ( GetJournalIndex "MG_Flowers" >= 100 ) Set doOnce to 1 Return endif endif if ( doOnce == 1 ) if ( GetJournalIndex "MG_StolenReport" >= 100 ) RaiseRank Set doOnce to 2 endif endif End
  2. Не знаю, не знаю... А формат wav?
  3. Ты сам звуковой файл-то засунул в папку Data Files/Sound? Кстати, в начале скрипта добавь строки: if ( menumode == 1 ) return endif
  4. Тебе это здесь же надо или как совешнно отдельная фича? Вот скрипт: Begin getout if ( CellChanged == 1 ) Disable endif End
  5. Насчет имени - если оставить с пробелом, то скрипт в списке будет просто называться NPC, слово script не будет читаться как имя. А если без пробела - то скрипт будет так и называться NPC_script. Спасибо, я в курсе. Может быть ты хочешь сказать, что в этом есть толк? И что это в определенных условиях не порождает героические непонятки? Лучше уж придерживаться единого стандарта, ИМХО.
  6. Тоже правильно, но я не вижу смысла ввода новой переменной. И кстати - имя скрипта нельзя писать через пробел. Так что лучше уж NPC_script.
  7. Не глупи, Ланкер. В построенной тобой кондиции NPC имеет возможность передать привет игроку прямо из дизейбла. Поверь мне, я не первый раз в дебаге. Если брать твой скрипт, правильно будет так: Begin NPC_script Short DoOnce Short Nolore if ( DoOnce == 0 ) Disable set DoOnce to 1 endif if ( DoOnce == 1 ) if ( GetJournalIndex "ID_журнала" >= 0 ) ;"ID журнала" - идешник журнала, который нужен. "0" - там должен стоять номер требуемой записи Enable set DoOnce to 2 endif endif if ( DoOnce == 2 ) if ( GetDistance Player <= 512 ) ForceGreeting set DoOnce to 3 endif endif End NPC_script
  8. Объясняю: Функция ForceGreeting _никогда_ не используется в поле result по самой ее сути. Только в скриптах. К посту я приложил небольшой плаг-набросок, показывающий применение. Теперь если подойти к силт-страйдерщику в Вивеке достаточно близко, он сам начнет диалог, причем это произойдет только один раз. Посмотри там скрипт LW_fg.
  9. Аха... Вот оно: Можно добавлять символы «возврат каретки» в сообщения, но это требует редактирования esp. Добавьте какие-нибудь необычные символы вроде || и сохраняйте esp. Затем откройте шестнадцатеричный редактор и замените || на 0D0A (код для возврата каретки).
  10. 1) Просто добавь в скрипт ниже строки Short once объявление переменной: Short nolore 2) Функция ForceGreeting. Пример: if ( GetDistance player <= 256 ) ForceGreeting endif 256 - расстояние до игрока в игровых единицах.
  11. EnchantedEditor Насколько я помню. он не компилирует скрипты, так что ошибку не выдаст.
  12. В том то и дело, что я в данном конкретном случае тоже ХЗ. :1anim_ab:
  13. Если простыми словами, hex-редактирование есть ни что иное, как изменение файла напрямую при помощи hex-редактора. Содержимое представляется в шестнадцатеричном виде. ИМХО тебе лучше забить на это дело.
  14. На NPC вешается скрипт: Begin suddenly_appear Short once if ( once == 0 ) Disable Set once to 1 endif if ( once == 1 ) if ( GetJournalIndex "dummy" >= 50 ) Enable Set once to 2 endif endif End где вместо dummy ставится ID журнальной записи, а вместо 50 нужный индекс.
  15. Кое у кого на официальном была такая же трабла. Я не вдавался в подробности, но там он решил все hex-редактированием.
  16. if ( messagex2 == 1 ) Set button to GetButtonPressed endif Здесь не надо endif! player -> PositionCell, 3984, 4028, 16274, 3, "Дом Нидика" Четвертое число есть ни что иное, как поворот игрока по оси Z в минутах (1 градус = 60 мин). Поставь например 5400. Если все еще попадаешь в пустоту, попробуй вместо 16274 поставить, скажем, 16374.
  17. Мож придумка какая есть на этот счёт? Переведи, а затем сохрани скрипт в esp любым альтернативным редактором, например MWEdit
  18. Функции DisablePlayerMagic/EnablePlayerMagic действительно существуют. Вот только они не надежны ни на йоту. Если игрок приготовил руки для каста, каст все равно будет. И горячие клавишы остаются доступны. Есть еще пара вариантов - один муторный, с проверкой и удалением всех новых эффектов, а другой - просто добавить игроку перманентно на время пребывания в ячейке закл с эффектом Звук 100.
  19. Хе-хе, а причина багов на первых скриптах весьма проста: 1. RemoveItem Откеда взялись значения 4 и 2? 2.If ( Player -> HasItemEquipped "1Phij_Requiem" ) If ( Player -> GetWeaponDrawn ) If ( DoOnce == 0 ) player->removeitem "12Requiem__shv", 4 player->additem "12Requiem__unshv", 1 player-> equip "12Requiem__unshv", 1 set DoOnce to 1 endif elseif ( DoOnce == 1 ) player-> removeitem "12Requiem__unshv", 4 player->additem "12Requiem__shv", 1 player->equip "12Requiem__shv", 1 set DoOnce to 0 endif endif endif И вот это: if ( onpcequip == 1 ) RETURN else If ( itemequipped == 0 ) set itemequipped to 1 endif endif else if ( itemequipped == 1 ) disable set itemequipped to 0 endif endif Ну кто же ставит else после endif?
  20. Темный темный лес. Тихий ужос. :1anim_ag: Я так полагаю, скрипт должен выполняться постоянно, чтобы осуществить проверку, без остановки чем-нибудь, так что StopScript в данном случае не нужен. Попрубуй вот это, сунь в StartScript. begin EK_BonusMagicPoint short varBonus short varEnchant short varDestruction short varAlteration short varIllusion short varConjuration short varMysticism short varRestoration short varIntelligence short varWillpower short doonce short curEnchant short curDestruction short curAlteration short curIllusion short curConjuration short curMysticism short curRestoration short curIntelligence short curWillpower Set curEnchant to ( Player -> GetEnchant ) Set curDestruction to ( Player -> GetDestruction ) Set curAlteration to ( Player -> GetAlteration ) Set curIllusion to ( Player -> GetIllusion ) Set curConjuration to ( Player -> GetConjuration ) Set curMysticism to ( Player -> GetMysticism ) Set curRestoration to ( Player -> GetRestoration ) Set curIntelligence to ( Player -> GetIntelligence ) Set curWillpower to ( Player -> GetWillpower ) Set varBonus to ( ( curIntelligence / 20 ) + ( curWillpower / 30 ) ) if ( doonce == 0 ) Set varEnchant to ( Player -> GetEnchant ) Set varDestruction to ( Player -> GetDestruction ) Set varAlteration to ( Player -> GetAlteration ) Set varIllusion to ( Player -> GetIllusion ) Set varConjuration to ( Player -> GetConjuration ) Set varMysticism to ( Player -> GetMysticism ) Set varRestoration to ( Player -> GetRestoration ) Set doonce to 1 endif if ( varEnchant != curEnchant ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varEnchant to curEnchant endif if ( varDestruction != curDestruction ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varDestruction to curDestruction endif if ( varAlteration != curAlteration ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varAlteration to curAlteration endif if ( varIllusion != curIllusion ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varIllusion to curIllusion endif if ( varConjuration != curConjuration ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varConjuration to curConjuration endif if ( varMysticism != curMysticism ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varMysticism to curMysticism endif if ( varRestoration != curRestoration ) Player -> ModMagicka, varBonus MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus Set varRestoration to curRestoration endif End На самом деле значения навыков float, но заданный тип переменных short по идее автоматически округлит все.
  21. Может по пунктам распределишь, а то неудобно...
×
×
  • Создать...