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

Скрипт управляемой лодки


Рекомендуемые сообщения

Народ скажите где ошибка в скрипте(Редактор ругается на 18 строку.).Скрипт спер вот отсюда! :pardon:

вот сам скрипт

begin 1@pi

short goneaway
short messageOn
short choice
float choicea
float choiceb

SetPos Z 44


if goneaway==1
Dontsaveobject
Disable
return
endif

if ( boatdoOnce==0 )
 if Onactivate==1
 Messagebox "Что вы хотите?", "Управлять лодкой","Быстрое путешествие","Отмена"
set messageOn to 1
 endif
if messageOn==1
set choice to getbuttonpressed
if choice>=0
set messageOn to 0
 if choice==0
 "Player"->Addspell "water walking (unique)"
 set boatspeed to  0
 set boatdoonce to 1
 PlaceatPc "1@Korab" 1 1 1
 set goneaway to 1
 Messagebox  "Вы плывете"
 elseif choice==1
 Messagebox "Куда вы желаете отправится?","Восточное побережье","Южное побережье","Западное побережье","Северное побережье"

 set boatdoOnce to 12
 return
 endif
endif
endif
return
endif


if boatdoOnce==12
 set choicea to getbuttonpressed
if choicea>=0
  if choicea==0
  Messagebox "Какой город?","Альд Велоти","Недалеко от Гнисиса","Гнаар Мок","Хла Оуд"
  elseif choicea==1
  Messagebox "Какой город?","Сейда Нин","Эбенгард","Вивек","Недалеко от Пелагиада","Недалеко от Сурана"
  elseif choicea==2
  Messagebox "Какой город?","Тель Бранора","Тель Фир","Садрит Мора","Тель Арун","Тель Мора","Вос"
  else
  Messagebox "Какой город?","Дагон Фел","Хуул","Недалеко от Ахеммуза","Недалеко от Уршилаку"
  endif
  set boatdoonce to 13
  return
endif
endif

if boatdoOnce==13
set choiceb to getbuttonpressed
if choiceb>=0
  if choicea==0
    if choiceb==0
    "Player"->position -88678,128555,70,0
     position -88432.055,128588.734,44358,0
     setangle Z 10
    elseif choiceb==1
     "Player"->Position -86034.242,88588.461,65.306,0
     Position -86034.242,88588.461,85,120
    elseif choiceb==2
     "Player"->Position -58683 26165 107 0
      Position -58800.676,27492.027,85,58
     ;SetAngle Z 270
    else
     "Player"->Position -48421 -38964 236 0
      position -48954,-39281,85,0
    endif
  elseif choicea==1
     if choiceb==0
     ;Position -8882.121,-71993.232,44.58,0
      ;"Player"->position -10400 -71218 210 0
     elseif choiceb==1
     "Player"->position 20412 -102379 70 0
      Position 20783 -102361 44.58 0
     elseif choiceb==2
       "Player"->position 22611 -87936 95 0
       position 22669 -88147 44.58 90
       setangle Z 270
     elseif choiceb==3
        "Player"->position 2172 -46895 142 0
        position 2635 -46551 45 0
       setangle Z 330
     elseif choiceb==4 
        "Player"->position 52872 -51900 201 0
        position 52535 -52009 44 0  
     endif
  elseif choicea==2
      if choiceb==0
       "Player"->position 119043 -102158 58 0
        position 118909.000,-102236.22,44.58,0
      elseif  choiceb==1
        "Player"->position 127297,14673,59,0
        position 127645.617,14618.494,44.58,0
        setangle Z 30
       elseif choiceb==2
         "Player"->position 141825,38754,203,0
         position 141354,38818,44.58,0
         setangle Z 290
       elseif choiceb==3
          "Player"->position 123218,40899,90,0
          position 123417,40671,56,0
          setangle Z 180
       elseif choiceb==4
         ;"Player"->position 126748,14687,135,0
         ;position 106021 115303 44.58 0
        Messagebox "Not working (yet)"
       elseif choiceb==5
         "Player"->position 99992,114650,109,0
         position 99714,114687,44.58,0                 
        endif
   elseif choicea==3
        if choiceb==0
        "Player"->position 62433,184190,86,0
        position 62101.609,184199.281,44.58,0
        elseif choiceb==1
          "Player"->Position -68827.742,142175.078,70.0,0
          Position -68573.742,142296.078,85, 0
          setangle Z 20    
        elseif choiceb==2         
        "Player"->position 95257 139474 87 0
        position 95204.734 140021.494 45 0
        setangle Z 90
        elseif choiceb==3
        "Player"->position -28695,156802,90,0
        position -28640,157082,45,0
        setangle Z 90
       endif
  
  endif
set boatdoOnce to 0
set choice to -1
set choicea to -1
set choiceb to -1
set messageon to 0
endif

endif

end 1@pi

Ссылка на комментарий
Поделиться на другие сайты

Народ скажите где ошибка в скрипте(Редактор ругается на 18 строку.).
Как именно ругается? Что говорит?

 

if ( boatdoOnce==0 )
Где у тебя boatdoOnce прописан?
Ссылка на комментарий
Поделиться на другие сайты

Это вообще я так понял глобальная переменная.
Возможно, но зачем?

Ошибка-то именно в этой строчке выходит.

Ссылка на комментарий
Поделиться на другие сайты

я хз вообще что это такое))) :pardon: Вот скачал учебник по скриптам,сегодня буду учить. :jokingly:
Хех. Добавь после

short choice

Еще одну строчку:

short boatdoOnce

Ссылка на комментарий
Поделиться на другие сайты

Спасиб все робит.Правда еще добавил строчку "short boatspeed".

Только теперь другая проблема.Персонаж во время запуска двигателя корабля улетат с руля в другой конец корабля. :gigi: Как это можно исправить? :-)

Ссылка на комментарий
Поделиться на другие сайты

Персонаж во время запуска двигателя корабля улетат с руля в другой конец корабля. :gigi: Как это можно исправить? :-)
Гм. Это надо координаты править.

 

В идеале скрипт этот можно на что угодно повесить? Объект роли не играет?
Играет роль точка привязки объекта. То есть где у него центр находится.
Ссылка на комментарий
Поделиться на другие сайты

>Играет роль точка привязки объекта. То есть где у него центр находится.

Эм, перефразуй чтоли..

Играет лишь роль центр объекта? Или то место, где стоит гг?

Ссылка на комментарий
Поделиться на другие сайты

Эм, перефразуй чтоли..

Играет лишь роль центр объекта? Или то место, где стоит гг?

Ну... Центр объекта - это не визическая точка в середине его коллизии, а некоторая условная точка относительно его геометрии.

 

Ну то есть, вот, скажем, корабль:

 

______|______

\__________/

 

 

Центр у него может быть вот тут:

 

______|______

\_____.____/

 

А может вот тут:

 

______|______

\._________/

 

 

Соответственно, если мы задаем координаты 0,0,0, то первый встанет вот так:

 

______|______~~~~~~~~~~

\_____.____/~~~~~~~~~~~

 

А второй - так:

 

~~~~~______|______~~~~~~

~~~~~\._________/~~~~~~~

 

Примерно так...

 

Тху, дурацкие тэги...

Изменено пользователем Deathruler
Ссылка на комментарий
Поделиться на другие сайты

А, ммм. Более-менее понял. Не играет роли то, что объект на котором стоит гг имеет несколько моделей еще? Т.е. корабль, отдельно мачта и отдельно весла (к примеру). Все будет двигаться вместе реал-тайм?
Ссылка на комментарий
Поделиться на другие сайты

А, ммм. Более-менее понял. Не играет роли то, что объект на котором стоит гг имеет несколько моделей еще? Т.е. корабль, отдельно мачта и отдельно весла (к примеру). Все будет двигаться вместе реал-тайм?
Придется на каждую часть скрипт вешать. Хотя нет, скрипт придется еще и дорабатывать, так как игрок же только что-то одно активировать будет...
Ссылка на комментарий
Поделиться на другие сайты

Гм. Ох, доработка скриптов. Это сложно, да.

А что в таком случае произойдет с объектом, который окажется на борту корабля? Скинутый меч, например. В скрипте же долго как-то учитываться число объектов, которые просто перемещаются с лодкой, которые не трогает гг.

Ссылка на комментарий
Поделиться на другие сайты

А что в таком случае произойдет с объектом, который окажется на борту корабля? Скинутый меч, например.
Останется в воздухе висеть.

 

В скрипте же долго как-то учитываться число объектов, которые просто перемещаются с лодкой, которые не трогает гг.
Это не Обливион... тут коллизии, по сути вообще только у актеров есть. Объекты будут просто проходить через друг друга.
Ссылка на комментарий
Поделиться на другие сайты

>Это не Обливион... тут коллизии, по сути вообще только у актеров есть. Объекты будут просто проходить через друг друга.

Гм. Жаль..

 

>Останется в воздухе висеть.

Тогда лучше скинуть все, к примеру, в сундук, на котором как раз будет висеть скрипт. Ясно.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...