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

Помогите с написанием скрипта


Pasha

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

Я новичок в скриптах для моры, поэтому даже с русскими туторами у меня нифига не получается.

Скрипт должен работать как бомба с часовым механизмом. При активации даётся выбор через скока бомба взорвётся. 3 режима для запускания части скрипта (взрыва) через 5,10,15 секунд.

1 проблема-- Не могу заставить работать команду AddSpell и Cast поэтому бомба "взрывается"

сообшениями, и хочется, что-бы бомба кастовала на себя Взрыв Огня (ну или рядом с собой, а не только в заданные цели) и можно ли рвануть в место заданное координатами.

2 проблема-- Не пашут 2й и 3й счётчики времени (тока 1й), потому, что я не смог найти пример с многократно используемой командой GetSecondsPassed

3 проблема-- Как заставить бомбу исчезать после взрыва

4 проблема-- (к ней я ещё не приступал-бошка отваливаеься) Думаю взять какуюто колбу и вставить

в скрипт, что-бы после активации в инвентаре колба исчезла , а под ногами появлялась

бомба( так можно?)

Пожалуста подправте те куски моего скрипта где я не прав, а если не влом то напишите примеры

сязанные с перечисленными проблемами

Вот мой скрипт

 

Begin aaa_BUM

 

Short controlvar

Short button

Float timer

 

IF ( OnActivate == 1 )

IF ( controlvar == 0 )

MessageBox "Activate bomb on", "5 sec", "10 sec", "15 sec", "Cancel",

Set controlvar to 1

ELSEIF controlvar > 1

MessageBox "Ubegay ot sedogo!!! Shas rvanyot!!!!",

ELSEIF controlvar == -2

MessageBox "A vsyo. Bomba vzorvana",

ENDIF

ENDIF

 

IF ( controlvar == 1 )

set button to GetButtonPressed

IF ( button == 0 )

MessageBox " gotovsa 5 sec",

set controlvar to 2

ELSEIF ( button == 1 )

MessageBox "start start 10 sec",

set controlvar to 3

ELSEIF ( button == 2 )

MessageBox "shas budet buh 15 sec",

set controlvar to 4

ELSEIF ( button == 3 )

MessageBox "Stop!!! Nikto nikogo ne vzrivaet",

set controlvar to 0

ENDIF

 

ELSEIF ( controlvar == 2 )

Set timer to ( timer + GetSecondsPassed )

IF timer > 5

MessageBox "BUM 5555555",

set controlvar to -2

ELSEIF ( controlvar == 3 )

Set timer to ( timer + GetSecondsPassed )

ELSEIF timer > 10

MessageBox "BUM BUM 1010101010"

set controlvar to -2

ELSEIF ( controlvar == 4 )

Set timer to ( timer + GetSecondsPassed )

ELSEIF timer > 15

MessageBox "BUM BUM BUM 151515",

set controlvar to -2

 

ENDIF

ENDIF

 

 

END

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

Жуть какая. :1anim_be:

 

ой, ты сразу взял на себя такую сложную задачу. Возможно, стоило начать с простеньких скриптов, тут небольшой архив http://tesforum.jino-net.ru/index.php?showforum=50

 

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

 

 

Вообще по этой бомбе посмотри трибунальские "ранцевые заряды".

 

 

1 проблема-- Не могу заставить работать команду AddSpell и Cast поэтому бомба "взрывается"

сообшениями, и хочется, что-бы бомба кастовала на себя Взрыв Огня

 

То что ты называешь "Взрыв огня" на самом деле не взрыв, а уменьшение параметра "здоровье" на энное количество пунктов, сопровождаемое визуальным эффектом. Если бомба неживая, она может кастовать только на другие живые объекты. На себе это никак не скажется.

 

 

2 проблема-- Не пашут 2й и 3й счётчики времени (тока 1й), потому, что я не смог найти пример с многократно используемой командой GetSecondsPassed

 

ИМХО, в одном скрипте такое практически невозможно. Для каждого таймера нужен отдельный скрипт.

 

3 проблема-- Как заставить бомбу исчезать после взрыва

Исчезать заставляет команда disable

http://tesforum.jino-net.ru/index.php?showtopic=68

 

4 проблема-- (к ней я ещё не приступал-бошка отваливаеься) Думаю взять какуюто колбу и вставить

в скрипт

Кого куда вставить? :1anim_ac:

А вообще такое, конечно, возможно. if ( player->GetItemCount "kolba" >= 1

removeitem "kolba" , drop "bomb" и т.д.

 

Только задача слишком сложная, она не для новичка.

 

Посмотри ранцевые заряды. Беседка уже сделала что-то похожее, зачем изобретать велосипед?

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

Вот решил не создавать кучи тем, а потому напишу у Павла.

Итак, кто бы мог мне сказать, почему у меня скрипт вообще не работает 7 Я решил сделать часы электронные, которые бы ежечасно тикали. Сделал модели 10 цифр (0-9) и повесил на каждую определенный временной скрипт:

Begin A_time

if(gamehour) = 2

enable ; в опредеоенный час появляется определенная цифра.

endif

if(gamehour) >2

if(gamehour) <2

disable ; в опредеоенный час исчезает определенная цифра.

endif

endif

end

Никаких ошибок в игре нет, но скрипты не пашут. Что тут не так.

Я пробовал множество вариантов и цифровой диапазон менял так:

if(gamehour) >3

if(gamehour) <1

КАК мне быть. Полный идиотизм, хотя мож я что не секу шоль ???

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

тут опять распространенная видать ошибка - нельзя четко приравнивать действие к моменту времени.

четкое равенство - это один фрейм. цифра появиццо и тут же исчезнет. ты ее дажи не увидишь.

введи getsecondpassed, то есть выдели время для совершения действия , проигрыша звука если таковой будет и окончания действия.

в начале добавляешь

float timer

потом при нужном времени, причем записанном не четко ==2 , а >=2

set timer to timer+getsecondpassed

а потом - совершение действия , и после етого -

set timer to 0

и потом - должна быть функция которая меняется когда часы переходят на следующий час.

таймер у нас снова идет в ход, но поскольку например число 3 тоже удовлетворяет условию >=2

то нужна еще одна переменная которая все время нарастает и исключает такой вариант.

short On

set on to 1 после часу, 2 после двух, 3 после трех и так далее, пока не совершит пробег и в конце не сбросится в ноль.

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

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

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

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

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

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

Войти

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

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

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