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

LonWolf

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

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

  • Посещение

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

  1. нет. этот на стрелу. кстати лучше брать какой-нибудь коврик, т.е. - активатор, на статик всеравно не повесишь ничего. на пол: Begin trigger if ( triggered == 0 ) if ( GetStandingPC ) Set triggered to 1 endif endif End triggered на забыть объявить как short в меню Globals.
  2. на стрелу Begin arrowtrap short counter float posx float posy float posz float playerx float playery float playerz float xdif float ydif float zdif float dist if ( menumode ) return endif ;чтобы не гонять скрипт пока гг далеко, ;выч только позицию до движения if ( GetDistance player > 1000 ) return endif if ( triggered != 1 );глоб. переменная, по идее устанавливаемая в скрипте с наступлением на пол return endif Move y, 100; начинаем движение по направлению локального вектора вперед, 100 - скорость. if ( counter < 10 );задержка в 10 кадров Set counter to ( counter + 1 ) return endif Set counter to 0 ;берем координаты стрелы Set posx to ( GetPos x ) Set posy to ( GetPos y ) Set posz to ( GetPos z ) ;...и игрока Set playerx to ( player -> GetPos x ) Set playery to ( player -> GetPos y ) Set playerz to ( player -> GetPos z ) ;вычисляем разницу Set xdif to ( playerx - posx ) Set ydif to ( playery - posy ) Set zdif to ( playerz - posz ) ;x^2 + y^2 + z^2 = d^2 Set dist to ( ( xdif * xdif ) + ( ydif * ydif ) + ( zdif * zdif ) ) Set dist to GetSquareRoot dist ;при стыковке с игроком хертим его и проигрываем звук if ( dist < 100 );к примеру Player -> ModCurrentHealth -50 PlaySound3d "Health Damage" SetAtStart Set triggered to 0 elseif ( dist > 1000 );если улетела в далекую даль SetAtStart Set triggered to 0 endif End что-то вроде этого. все цифры нужно настраивать как лучше. я примерно написал.
  3. сетпос не будет обрабатывать предмет в инвентаре. проще заранее разместить и задизейблить. а чтобы не придумывать велосипед смотрим музей артефактов. и две версии вещи - одна 'висячая', другая для пользования. например так вот: на крюк Begin positioning if ( OnActivate ) if ( "ItemID_expos" -> GetDisabled ) if ( player -> GetItemCount "ItemID" > 0 ) player -> RemoveItem "ItemID" 1 "Item ID_expos" -> Enable endif endif endif End на expos (выставочную) версию Begin expos_item short state if ( state == 0 ) Disable Set state to 1 endif if ( OnActivate ) player -> Additem "ItemID" 1 Set state to 0 endif End нащет стрел из стен я бы лично сделал тупым move, getdistance и тригонометрией. вообще у меня смутные сомнения что стрела пущеная по кричу хертит плейера. по-моему все стрелы изначально не предназначавшиеся игроку как цели атаки проходят сквозь довольно таки безболезненно. хотя точно не помню. и к тому же из скрипта нельзя управлять выпущенной кем-то стрелой.
  4. Хм, что то я сомневаюсь. Капитан Очевидность сообщает: это была порция сатиры. Так-то! про свободу слова в америке, негров и прочие материи есть такие пара песенок у человека по имени Маршал Мэзерс III - White America и Mosh. Вкуривается куда понятней разных длинных псевдоисследовательских статей. И вообще всех обиженных "этими злыми модераторами" милости просим на удафком. :D
  5. А за бан на форуме будем в суд подавать? Лол, moderate - значит 'умеренный'. делаем вывод - следить, чтобы все знали меру. Наглядный пример - наше любимая конституция. Статья 29 1. Каждому гарантируется свобода мысли и слова. 2. Не допускаются пропаганда или агитация, возбуждающие социальную, расовую, национальную..... .. 5. Гарантируется свобода массовой информации. Цензура запрещается. И где здесь логика? Почему спрашивается понятие свободы слова не распространяется на разжигание какой-либо вражды? И если цензура запрещается, то как, согласно закону, эта пропаганда пресекается? Потому что черт возьми мы живем отнюдь не по писаным законам, и модерация по ее основному понятию необходима практически в любой сфере, другой вопрос что эта самая модерация зачастую может переходить рамки, как было в достославном СССР.
  6. Приложу пожалуй вам сюда к истории. ууу, до сих пор оказывается частично автозамена ХГ))
  7. http://forum.fullrest.ru/index.php?showtop...st&p=168338 может вам ребята оказаться полезным.
  8. :D

    это к вопросу не срать у меня в каментах.

  9. Все банально.Кадров вроде тебя я еще по ФИДО помню.Я не на кого не выдрючиваюсь,а просто спокойно сижу на форуме.А тебе шило в одном месте спокойствия не дают.Надо покрутить своей трольей задницей,сидящей в каком-нибудь Мухосранске.
  10. осталось еще написать утилиту для вычисления таланта.
  11. Аргаонт

    Я сейчас аськой не злоупотребляю.

    ЗЫ никаких джейсонов знать не знаем.

    Я GL.Sam

  12. Хы. Здравая мысль поискать на официальном. Токо не вздумай там писать о скачивании самого бэтлспайра. И на русском языке.
  13. Сначала выложи свое. Опиши обстановку и алгоритм. А тебе уже скажут, что не так.
  14. как интересно похлопаем граждане раньше такие подводные камни нам не встречались. :( bottomline: не EXPRESSION left eval случайно? или может все дело в том что использовалось ативирование вместо активирования? а как насчет убрать пробел в названии и наслаждаться отсутствием ошибок?
  15. #1 Begin staff_shield_script Short OnPCEquip Short stat if ( menumode ) return endif if ( OnPCEquip == 1 ) player -> addspell "staff_s" Set OnPCEquip to 0 Set stat to 1 endif if ( player -> HasItemEquipped "объект" == 0 ) if ( stat == 1 ) player -> removespell "staff_s" Set stat to 2 endif End #4 Возможно ли с помощью стандартного конструктора создать строчку диалога внутри Greeting 1 и при этом не рисковать порчей существующих диалогов? AFAIK, вполне.
  16. ты неправильно понял. она сослалась к этому: попробуй повесить телепортацию игрока при определенном расстоянии от двери. ты подойдешь и тебя выкинет куда надо, а компаньона - нет.
  17. без вызова OnActivate перед этим ничего не выйдет. как ни крути. "ID двери"->Activate, player А вот это вообще нонсенс. Дверь не может активировать игрока, который тут является аргументом. Хотя синтаксис Player -> Activate "loaddoor" тоже не прокатит.
  18. http://www.elderscrolls.com/forums/index.p...howtopic=553402 читаем и радуемся
  19. переменная типа long это целое знаковое 32-битное число, которое сохраняет диапазон значений от -2147483648 до 2147483647. ни строк ни символов она не сохраняет. если мне кто-то докажет обратное я согласен убить себя с разбегу.
  20. извиняюсь за задержку, у меня сейчас мало свободного времени. я разумеется никогда не воображал себя великим профессионалом, но вот мои наработки: скрипт на контейнере scn LW_test1 short cv short chance short tmp short tmp2 short skillraise short button Begin GameMode if ( cv == 1 ) if ( GetItemCount "Torch02" >= 5 ) RemoveItem "Torch02" 5 AddItem "WeapAkaviriLongSword" 1 Set cv to 0 Activate endif elseif ( cv == 3 ) RemoveItem "Torch02" 5 Set cv to 0 endif if ( cfskill >= 5 ) && ( cfskill < 20 ) Set tmp to 5 elseif ( cfskill >= 20 ) && ( cfskill < 35 ) Set tmp to 8 elseif ( cfskill >= 35 ) && ( cfskill < 50 ) Set tmp to 11 elseif ( cfskill >= 50 ) && ( cfskill < 75 ) Set tmp to 14 elseif ( cfskill >= 75 ) && ( cfskill < 90 ) Set tmp to 17 elseif ( cfskill >= 90 ) Set tmp to 21 endif if ( cfskill != 100 ) && ( skillraise >= tmp ) Set cfskill to ( cfskill + 1 ) Message "Ваш навык ремесла возрос до %g." cfskill 2 Set skillraise to 0 endif if ( tmp2 == 1 ) Set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) Disable Player.AddItem "LWtesttan" 1 elseif ( button == 1 ) Set cv to 2 Activate endif Set tmp2 to 0 endif End Begin OnActivate if ( IsActionRef player == 1 ) if ( cv == 0 ) if ( tmp2 == 0 ) MessageBox "Что вы хотите сделать?" "Взять" "Создать предмет" Set tmp2 to 1 endif elseif ( cv == 2 ) Set chance to ( GetRandomPercent + ( cfskill / 2 ) ) if ( chance > 49 ) Message "Вы успешно создали новый предмет." 2 Set skillraise to ( skillraise + 1 ) Set cv to 1 else Message "У вас ничего не вышло." 2 Set cv to 3 endif endif endif End Делает следующее: положишь в него пять факелов(понимаю что глупо, это для теста) и нажмешь на него - появится надпись вышло или нет. Если вышло в контейнере появится клинок акавири, если нет факелы исчезнут. шанс зависит от значения условного навыка ремесла, реализованного глобальной переменной. базовое - пять. от успешных созданий увеличивается значение навыка. формула следующая: (x + ( y / 2 )). где x - случайное целое от 0 до 99, а y - значение навыка. Также я сделал все возможное чтобы обеспечить возможность добавления контейнера в инвентарь, т. е. я насколько возможно реализовал морровский принцип манекенов: при нажатии встает выбор взять или открыть, если взять - конт исчезает, а в инвентарь добавляется *другой предмет*. при выкладывании его на землю он снова становится контейнером. разумеется модели должны быть те же у обоих, различается только тип. Вот тщательно оттестированный скрипт на *другом предмете*: scn LWtest2 ref cont float zpos1 float zpos2 float zangle1 float zangle2 float timer Begin GameMode Set cont to GetContainer if ( GetDisabled == 0 ) && ( cont == 0 ) if ( timer < 1 ) Set zpos1 to GetPos z Set zangle1 to GetAngle z elseif ( timer > 3 ) Set zpos2 to GetPos z Set zangle2 to GetAngle z if ( zpos1 == zpos2 ) && ( zangle1 == zangle2 ) Disable PlaceAtMe "LWtestcrate" 1 endif Set timer to 0 endif Set timer to ( timer + GetSecondsPassed ) endif End В идеале должен быть еще большой глобальный скрипт, запускающийся и останавливающийся из базового, проверяющий комбинации и рецепты и заменяющий одни предметы другими. если необходимо скрипт обратного разбора написать не составит труда. Я приложил также плаг для теста, он добавляет сундук на перекрестке торговой площади имперского города, для нужд тестирования модели сундука и предмета добавляющегося в инвентарь разные (это кувшин :1anim_ag: ). положите в него пять факелов и активируйте)) если будет интерес постараюсь выкраивать время на продолжение работы по сему. все. смотрим думаем. эээ чуть не забыл - плаг под версию 1с но из принципа на других тоже должен работать. ЗЫ не уверен что возможно сделать открытие без выкладывания на землю. Если кто-то реализует что-то лучше практичнее и/или элегантнее я буду только рад.
  21. отнюдь. и не думаю что 'уже' будет раньше чем через неделю т. к. я ухожу на время в оффлайн. возможно создам сырую заготовку, просто на тест. модели я делать не умею сразу предупрежу. все, ждите.
  22. какие рецепты предложиш? у меня на такие вещи фантазии маловато.
  23. начнем с того что окна никакие типа алхимии не получатся. я на данный момент предполагаю одну более-менее путевую реализацию: имеется некий контейнер, который можно носить в инвентаре, в него кладется несколько ингредиентов. далее жмем на него и получаем либо то что надо, либо ничего, в зависимости от навыка (навык будет скриптовой, невидимый в меню). такое устроит?
  24. наигрался в проклятые земли? :1anim_ag: рассказал бы поточнее как ты себе это представляешь и пару конкретных примеров. в принципе я бы мог поковыряться если выдастся свободная минутка. хотя ничего не обещаю.
×
×
  • Создать...