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

lost81

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

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

  • Посещение

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

  1. У танцовщиц в Суране параметры стоят на 20 и танцуют ведь!!! А я на 10 ставил и никакого эффекта! Не могу понять в чем проблема!
  2. я так понял, что товарищ не хочет использовать журнал.... иначе и скрипт не нужен! все можно сделать используя журнальные индексы... и talckedtopc не обязателен...
  3. Я делал это через локальную переменную: вешаешь скрипт на непися: begin Your_script sort Once end в настройках диалога выбираешь Local ищешь Once <1 в Results: PlaceAtPC, "твоя монета", Х, У, кол-во set Once to 1 для другого ответа выбираешь условие Local Once >= 1 Но, это, на мой взгляд, целесообразно только в том случае, если нет желания "загаживать" журнал ненужной инфой....
  4. пробовал все Idle 1-8 ставить на 10, Idle 9 на 90.... эффекта ноль! у кого еще какие предложения будут? :1anim_be:
  5. ; Автор: lost81 (lost81@mail.ru) 23.10.2006 ; по заказу Silver__Dragon ; скрипт цепляется на все, что можно одеть ; позволяет сменить в процессе игры принадлежность к вампирским кланам, уточнить свой истинный клан(при одевании), ; и вернуться в него после снятия заскриптованной вещи. ; PS не стоит менять клан на глазах у вампиров, иначе атаки избежать не удастся, хотя допускаются данные действия "на глазах" ; у "скотины" (отношение к игроку падает до 0, но оно Вам не так уж и важно в процессе игры)! begin 1_change_clan_vamp short OnPCEquip short status short message short button short FirstClan if ( PCVampire == 0 ) return endif if ( VampClan == 1 ) if ( OnPCEquip == 1 ) if ( status == 0 ) MessageBox "Вы принадлежите клану Аунда. Выберите новый клан" "Берне" "Куарра" "Отказаться от выбора" Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 1 set message to 1 set FirstClan to 1 endif endif elseif ( VampClan == 2 ) if ( OnPCEquip == 1 ) if ( status == 0 ) MessageBox "Вы принадлежите клану Берне. Выберите новый клан" "Аунда" "Куарра" "Отказаться от выбора" ; Player->RemoveSpell, "Vampire Aundae Specials" Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 2 set message to 2 set FirstClan to 2 endif endif elseif ( VampClan == 3 ) if ( OnPCEquip == 1 ) if ( status == 0 ) MessageBox "Вы принадлежите клану Куарра. Выберите новый клан" "Аунда" "Берне" "Отказаться от выбора" ; Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 3 set message to 3 set FirstClan to 3 endif endif endif if ( status == 10 ) if ( FirstClan == 1 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Аунда" ; сначала принадлежал Аунда, выбирал Берне ; Player->RemoveSpell, "Vampire Aundae Specials" Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 11 if ( status == 11 ) Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 1 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == 100 ) if ( FirstClan == 1 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Аунда" ; сначала принадлежал Аунда, выбирал Куарра ; Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 101 if ( status == 101 ) Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 1 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == 20 ) if ( FirstClan == 2 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Берне" ; сначала принадлежал Берне, выбирал Аунда Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 22 if ( status == 22 ) ; Player->AddSpell, "Vampire Aundae Specials" Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 2 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == 200 ) if ( FirstClan == 2 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Берне" ; сначала принадлежал Берне, выбирал Куарра ; Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 202 if ( status == 202 ) ; Player->AddSpell, "Vampire Aundae Specials" Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 2 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == 30 ) if ( FirstClan == 3 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Куарра" ; сначала принадлежал Куарра, выбирал Аунда Player->RemoveSpell, "Vampire Aundae Specials" ; Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 33 if ( status == 33 ) ; Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" Player->AddSpell, "Vampire Quarra Specials" set VampClan to 3 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == 300 ) if ( FirstClan == 3 ) if ( OnPCEquip == 0 ) MessageBox "Вы снова принадлежите клану Куарра" ; сначала принадлежал Куарра, выбирал Берне ; Player->RemoveSpell, "Vampire Aundae Specials" Player->RemoveSpell, "Vampire Berne Specials" ; Player->RemoveSpell, "Vampire Quarra Specials" set VampClan to -1 set status to 303 if ( status == 303 ) ; Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" Player->AddSpell, "Vampire Quarra Specials" set VampClan to 3 set status to 0 set FirstClan to 0 endif endif endif elseif ( status == -1 ) if ( OnPCEquip == 0 ) MessageBox "Вы не покидали своего клана" set status to 0 endif endif if ( message == 1 ) if ( status == 1 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) MessageBox "Вы выбрали клан Берне" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 2 set status to 10 set message to 0 elseif ( button == 1 ) MessageBox "Вы выбрали клан Куарра" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" Player->AddSpell, "Vampire Quarra Specials" set VampClan to 3 set status to 100 set message to 0 elseif ( button == 2 ) MessageBox "Вы отказались от выбора" "Ok" Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 1 set FirstClan to 0 set message to 0 set status to -1 endif endif elseif ( message == 2 ) if ( status == 2 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) MessageBox "Вы выбрали клан Аунда" "Ok" Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 1 set status to 20 set message to 0 elseif ( button == 1 ) MessageBox "Вы выбрали клан Куарра" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" Player->AddSpell, "Vampire Quarra Specials" set VampClan to 3 set status to 200 set message to 0 elseif ( button == 2 ) MessageBox "Вы отказались от выбора" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 2 set FirstClan to 0 set message to 0 set status to -1 endif endif elseif ( message == 3 ) if ( status == 3 ) set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) MessageBox "Вы выбрали клан Аунда" "Ok" Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 1 set status to 30 set message to 0 elseif ( button == 1 ) MessageBox "Вы выбрали клан Берне" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" Player->AddSpell, "Vampire Berne Specials" ; Player->AddSpell, "Vampire Quarra Specials" set VampClan to 2 set status to 300 set message to 0 elseif ( button == 2 ) MessageBox "Вы отказались от выбора" "Ok" ; Player->AddSpell, "Vampire Aundae Specials" ; Player->AddSpell, "Vampire Berne Specials" Player->AddSpell, "Vampire Quarra Specials" set VampClan to 3 set FirstClan to 0 set message to 0 set status to -1 endif endif endif end
  6. А почему бы не добавить новую переменную, которая отслеживает появления окон? Если окно появилось, то Set Var to 1 if ( Var == 1 ) запускаем на исполнение появление другого окна, если оно появилось, то Set Var to 2 и тд и тп.... Не пробовал?
  7. суть такова: одна стерва добирается своим ходом (AITravel) до определенного места и там исполняет (хрен-то я угадал! ничего она не исполняет - стоит тупо и все!) танец. Скрипт выглядит примерно так: begin stervascript short my_variable short dancingGirl if ( my_variable == 10 ) SetHello 0 AITravel, X, Y, Z set my_variable to 20 elseif ( my_variable == 20 ) if ( GetAIPackageDone == 1 ) set my_variable to 30 endif elseif ( my_variable == 30 ) if ( dancingGirl != 1 ) set dancingGirl to 1 endif endif end где я ошибся?! :1anim_be:
  8. Угу, это точно, необходимо еще и небольшие скрипты использовать, но здесь по ситуации, в зависимости от сюжета реализовать их можно по-разному... :1anim_al:
  9. Все, запутался окончательно, буду сам тестить! :1anim_ae: :1anim_be:
  10. 2 KOSZKA Ты напиши весь скрипт, будет легче разобраться, что у тебя не так, а вообще подозреваю, что ты просто скопировал и вставил в свой скрипт не заменив NPC_ID на ID твоего конкретного непися. Кинь скрипт, посмотрим... 2 Майк Тему давно пора переносить в скрипторий разве нет? :1anim_ad:
  11. Это ты говоришь про использование какой комбинации? Ctrl+D?
  12. Не, не... Ctrl+c и Ctrl+d это разные функции.... 1-ая Копирует объект в буфер обмена и не добавит его до тех пор, пока не нажмешь Ctrl+V, а 2-я сразу же добавляет объект на то же место и с тем же углом поворота по оси Z что и оригинал, то есть как бы наслаивает один объект на другой, при чем при нажетии Ctrl+V еше один дубль этого объекта не получится, то есть он сразу же удаляется оттуда(если вообще копируется... не уверен...)! :1anim_be:
  13. Для предметов лучше в диалоге непися-строителя в задании условия поставить проверку на наличие определенного предмета у Плейера (есть такая закладочка item в ней выбираешь ID того предмета, который должен присутствовать, если таковой имеется - начинаешь строительство, если нет, отправляешь Плейера за ним! (можно сделать доски в качестве миска и сделать проверку на их ID + какие-нибудь кирпичи типа даедрических))
  14. Майк, тему по ходу, убить можно...
  15. Может просто дублирует CTRL+D? (а вот про это я не знал... признаюсь! :1anim_ah: :1anim_an: )
  16. 2 Falcon Ctrl+Z - отменить последнее действие (поддерживает довольно длинную ветвь!), вдруг и этого не знал... Работать будет легче! ;)
  17. Спасибо, ща проверю! :thank_you: Еще раз спасибо! Все дело было в большом расстоянии между точками! Добавив еще 7 дополнительных точек довел таки своего непися до точки назначения! :thank_you:
  18. Спасибо, учел, пошел тестить... PS Результаты теста неутешительны, непись по прежнему отказывается идти до 2-й и последующих точек, при достижении 1-й точки инициирует диалог! косяки однако! :1anim_al: какие-нибудь еще предложения будут? :1anim_be: пробовал такой вариант: begin 1_YourGirl_Script short OnceMeeting short OnceGreeting short OneMess short StatusMove short StartMove float timeout if ( GetDisabled == 1 ) return endif if ( GetJournalIndex "11_A1_MyBaby" < 20 ) Disable endif if ( GetJournalIndex "11_A1_MyBaby" == 20 ) if ( GetDistance Player <= 250 ) if ( OnceGreeting == 0 ) ForceGreeting set OnceGreeting to 1 endif endif endif if ( StartMove == 1 ) if ( MenuMode == 1 ) set StartMove to -1 elseif ( MenuMode == 0 ) set StartMove to 10 endif endif If ( 1_YourGirl -> GetDistance, Player < 5000 ) if (GetCurrentAIPackage == -1) set timeout to ( timeout + GetSecondsPassed ) if ( timeout >= 3) set StartMove to ( StartMove - 10 ) set timeout to 0 endif else set timeout to 0 endif endif if ( StatusMove == 1 ) if ( GetAIPackageDone == 1 ) set StartMove to 30 if ( OneMess == 0 ) MessageBox "Сейчас StartMove имеет значение %.0f", StartMove set OneMess to 1 endif endif elseif ( StatusMove == 2 ) if ( GetAIPackageDone == 1 ) set StartMove to 50 if ( OneMess == 1 ) MessageBox "Сейчас StartMove имеет значение %.0f", StartMove set OneMess to 2 endif endif elseif ( StatusMove == 3 ) if ( GetAIPackageDone == 1 ) set StartMove to 70 if ( OneMess == 2 ) MessageBox "Сейчас StartMove имеет значение %.0f", StartMove set OneMess to 3 endif endif elseif ( StatusMove == 4 ) if ( GetAIPackageDone == 1 ) set StartMove to 90 if ( OneMess == 3 ) MessageBox "Сейчас StartMove имеет значение %.0f", StartMove set OneMess to 4 endif endif endif if ( StartMove == -1 ) return elseif ( StartMove == 10 ) SetHello 0 AITravel 554, -1038, 270 set StatusMove to 1 elseif ( StartMove == 30 ) AITravel -467, -1053, 270 set StatusMove to 2 elseif ( StartMove == 50 ) AITravel -476.77, -796.27, 270 set StatusMove to 3 elseif ( StartMove == 70 ) AITravel -687.46, -863.55, 270 set StatusMove to 4 elseif ( StartMove == 90 ) if ( GetDistance Player <= 150 ) if ( OnceGreeting == 1 ) ForceGreeting set OnceGreeting to 2 endif endif endif end непись отказывается идти даже до первой точки, мессаджбокс не выводится! пробовал вставлять MessageBox в первый вариант.... Все результаты выводились один за другим с интервалом в 1 фрейм при достижении непися 1-ой точки... Я вот тут подумал, мжет таймер воткнуть какой-нибудь перед проверкой GetAIPackageDone?
  19. Есть такая трабла: при задании пакета анимации AITravel непись идет только до первой точке, а дальше идти категоричеси отказывается! Сложилось такое впечатление, что некорректно работает проверка GetAIPackegeDone так как при ударе данного непися он пытается ударить плейера в ответ, но этот пакет анимации обрывается, и непись продолжает движение ко второй точке, но не достигая ее, останавливается и приходится бить его еще раз, и так до тех пор пока он не достигнет конечной точки! Причем, если плейер инициирует с неписем диалог после того как тот остановился, то непись отвечает как будто плейер и не бил его ранее! В чем косяки? Скипт прилагаю: begin 1_YourGirl_Script short OnceMeeting short OnceGreeting short StartMove float timeout if ( GetDisabled == 1 ) return endif if ( GetJournalIndex "11_A1_MyBaby" < 20 ) Disable endif if ( GetJournalIndex "11_A1_MyBaby" == 20 ) if ( GetDistance Player <= 250 ) if ( OnceGreeting == 0 ) ForceGreeting set OnceGreeting to 1 endif endif endif if ( StartMove == 1 ) if ( MenuMode == 1 ) set StartMove to -1 elseif ( MenuMode == 0 ) set StartMove to 10 endif endif If ( 1_YourGirl -> GetDistance, Player < 5000 ) if (GetCurrentAIPackage == -1) set timeout to ( timeout + GetSecondsPassed ) if ( timeout >= 3) set StartMove to ( StartMove - 10 ) set timeout to 0 endif else set timeout to 0 endif endif if ( StartMove == -1 ) return elseif ( StartMove == 10 ) SetHello 0 AITravel 554, -1038, 270 set StartMove to 20 endif if ( StartMove == 20 ) if ( GetAIPackageDone == 1 ) set StartMove to 30 endif elseif ( StartMove == 30 ) AITravel -467, -1053, 270 set StartMove to 40 elseif ( StartMove == 40 ) if ( GetAIPackageDone == 1 ) set StartMove to 50 endif elseif ( StartMove == 50 ) AITravel -511, -789, 270 set StartMove to 60 elseif ( StartMove == 60 ) if ( GetAIPackageDone == 1 ) set StartMove to 70 endif elseif ( StartMove == 70 ) AITravel -663, -859, 270 Set StartMove to 80 elseif ( StartMove == 80 ) if ( GetAIPackageDone == 1 ) set StartMove to 90 endif elseif ( StartMove == 90 ) if ( GetDistance Player <= 150 ) if ( OnceGreeting == 1 ) ForceGreeting set OnceGreeting to 2 endif endif endif end P.S Пробовал конструкцию не только if-elseif-endif, но и if-endif, в последнем случае при достижении первой точки непись сразу же инициинует диалог с плейером 2-й раз, который должен выводиться ТОЛЬКО при достижении конечной точке назначения!
  20. Не проблемма, будут вопросы-задавай... если в моих силах, всегда отвечу ;)
  21. вешай этот скрипт на того перса, который должен тебя всегда "любить" так как в этом скрипте не использовались условия "Do once", твой непись никогда тебя не разлюбит! :D begin your_disp_scr if ( MenuMode != 1 ) return endif SetDisposition 100 end Или, как вариант, если тебя интересуют действия непися, зависящие от расположения к тебе не только в плане торговли, но и его пакета анимации, подойдет следующий скрипт begin your_disp_scr_1 if ( GetDistance Player > 512 ) return endif SetDisposition 100 end
  22. Почитай руководства, посмотри еще раз мой пост, а если останутся вопросы, милости прошу, попытаюсь ответить со скриншотами, так гораздо понятнее... :1anim_ad:
  23. Создаешь приветствие в Greeting для данного перса, в Results пишешь Choice "следовать за тобой?" 1 Choice "подождать тебя здесь?" 2, создаешь для того же перса вариант ответа на Choice 1 (естественно в условиях ответа ставишь номер этого самого Choice'a т.е. Function Choice 1), например "Хорошо, веди меня." В Results пишешь AiFollow Player 0 0 0 0, GoodBye, создаешь следующий вариант ответа на Choice 2(теперь в условиях указываешь Function Choice 2), например "Ладно, я подожду тебя здесь". В Results пишешь AiWander 0 6 0 40 30 20 0 0 0 0 0 0, GoodBye Не забудь, что варианты с Choice должны располагаться ВЫШЕ чем первый гритинг твоего перса! Это самый простой пример эскорта без каких либо дополнительных условий.
  24. Не думаю, что такое можно сделать скриптом... :1anim_al:
×
×
  • Создать...