Naty Опубликовано 14 декабря, 2010 Жалоба Поделиться Опубликовано 14 декабря, 2010 Есть непростая проблема. Пытаюсь выдрать из Ранчо Пегас, без самого ранчо, скрипт на езду верхом для компаньонов, неписей. Вот скрипт:;=============================================================================; NPC Horse Riding Script by Madmax ( 2004 );=============================================================================begin hr_npchorse_script01 float xmulfloat ymulshort OnlyOnceshort ridingmodeshort pheightshort dismountshort statefloat frontbackposfloat xxfloat yyfloat zzfloat timerfloat xdistfloat ydistfloat distancefloat tempshort doOnceshort flagshort enableflagshort OnlyOnce2 if ( Menumode == 1 ) returnendif ;=============================================================================; Activate Horse Riding;=============================================================================if ( ridingmode == 0 ) if ( OnActivate == 1 ) if ( GetHealth <= 0 ) ; if creature is dead, disable riding and access inventory only Activate elseForceGreeting endif endif returnendif if ( ridingmode == 1 ) "hr_sigonryp"->addspell "hr_ridingspell" set ridingmode to 2 "hr_sigonryp"->AiWander 0 0 0 0 0 0 0 0 0 0 0 "hr_sigonryp"->face 98853.8, 103467.5 returnendif ;=============================================================================; Calculate and position horse direction;============================================================================= if ( GetAIPackageDone == 1 ) set xdist to ( getpos, x - 98853.8 ) set ydist to ( getpos, y - 103467.5 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set temp to GetSquareRoot, distance set state to 2 set xdist to ( getpos, x - 100697.7 ) set ydist to ( getpos, y - 103694.5 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 3 endif set xdist to ( getpos, x - 100708.2 ) set ydist to ( getpos, y - 106049.9 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 4 endif set xdist to ( getpos, x - 99697.3 ) set ydist to ( getpos, y - 106680.5 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 5 endif set xdist to ( getpos, x - 98308.9 ) set ydist to ( getpos, y - 106685.2 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 6 endif set xdist to ( getpos, x - 96763.4 ) set ydist to ( getpos, y - 105662.8 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 0 endif set xdist to ( getpos, x - 96703.7 ) set ydist to ( getpos, y - 104200.1 ) set xdist to ( xdist * xdist ) set ydist to ( ydist * ydist ) set distance to ( xdist + ydist ) set distance to GetSquareRoot, distance if ( distance < temp ) set temp to distance set state to 1 endif if ( state == 0 ) set xmul to -0.0408 set ymul to 0.9992 "hr_sigonryp"->face 96703.7, 104200.1 elseif ( state == 1 ) set xmul to 0.9466 set ymul to -0.3225 "hr_sigonryp"->face 98853.8, 103467.5 elseif ( state == 2 ) set xmul to 0.9925 set ymul to 0.1222 "hr_sigonryp"->face 100697.7, 103694.5 elseif ( state == 3 ) set xmul to 0.0045 set ymul to 0.9999 "hr_sigonryp"->face 100708.2, 106049.9 elseif ( state == 4 ) set xmul to -0.8485 set ymul to 0.5293 "hr_sigonryp"->face 99697.3, 106680.5 elseif ( state == 5 ) set xmul to -0.9999 set ymul to 0.0034 "hr_sigonryp"->face 98308.9, 106685.2 elseif ( state == 6 ) set xmul to -0.8340 set ymul to -0.5517 "hr_sigonryp"->face 96763.4, 105662.8 endif "hr_sigonryp"->ForceJump ; Ensure NPC does not fall through the horseendif set timer to ( timer + GetSecondsPassed )if ( timer > 1 ) set timer to 0 if ( state == 0 ) "hr_sigonryp"->face 96703.7, 104200.1 elseif ( state == 1 ) "hr_sigonryp"->face 98853.8, 103467.5 elseif ( state == 2 ) "hr_sigonryp"->face 100697.7, 103694.5 elseif ( state == 3 ) "hr_sigonryp"->face 100708.2, 106049.9 elseif ( state == 4 ) "hr_sigonryp"->face 99697.3, 106680.5 elseif ( state == 5 ) "hr_sigonryp"->face 98308.9, 106685.2 elseif ( state == 6 ) "hr_sigonryp"->face 96763.4, 105662.8 endifendif ;=============================================================================; Horse movement;=============================================================================set xx to ( getpos, x + ( frontbackpos * xmul ) )set yy to ( getpos, y + ( frontbackpos * ymul ) )set zz to ( getpos, z + pheight )"hr_sigonryp"->setpos, x, xx"hr_sigonryp"->setpos, y, yy"hr_sigonryp"->setpos, z, zz ;=============================================================================; Detect creature death and stop riding;=============================================================================if ( "hr_sigonryp"->GetHealth <= 0 ) set dismount to 1endif if ( GetHealth <= 0 ) set dismount to 1endif if ( doOnce == 0 ) if ( GetTarget, "player" == 1 ) set dismount to 1 "hr_sigonryp"->StartCombat, "player" set doOnce to 1 endifendif if ( hr_fight == 1 ) if ( flag == 0 ) set dismount to 1 "hr_sigonryp"->StartCombat, "player" StartCombat, "player" set flag to 1 endifendif ;=============================================================================; Dismount horse;=============================================================================if ( dismount > 0 ) set ridingmode to 0 "hr_sigonryp"->ClearForceJump "hr_sigonryp"->removespell, "hr_ridingspell" "hr_sigonryp"->EnableLevitation set xx to ( getpos, x + 100 ) set yy to ( getpos, y + 100 ) "hr_sigonryp"->setpos, x, xx "hr_sigonryp"->setpos, y, yy "hr_sigonryp"->fixme if ( dismount == 1 ) "hr_sigonryp"->AiWander 0 0 0 0 0 0 0 0 0 0 0 AiWander 0 0 0 0 0 0 0 0 0 0 0 endif set dismount to 0endif end Ошибок не выдает, но не работает!! Непись, вместо того, чтобы садиться НА лошадь, продолжает стоять на полу в середине лошади.(( В чем проблема, ведь отсылок к другим скриптам вроде нет?.. Если что могу приложить .esp с Ранчо, если нужно глядеть на скрипт на месте. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darkmare900 Опубликовано 15 декабря, 2010 Жалоба Поделиться Опубликовано 15 декабря, 2010 Naty, я не знаю, как помочь Вам, но тоже очень интересуюсь проблемой. Я столкнулась с этим скриптом, когда решила перенести ранчо в другое место. Вместе с Сайгонрипом. Так вот - на новом месте он ведет себя так же, как вы описали выше , не едет вообще. Еще есть одна проблема - после перемещения ранчо, в загоне не появляются лошади, хоть красный объект (да и вообще, все, что было) , я переместила. Что странно, однажды я уже перетаскивала ранчо, и лошади появлялись... Чудеса, Волшебное ранчо... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти