WG
Fan site of Mafia game and the Alive mod
Текущее время: 27 фев 2017, 19:02




Начать новую тему Ответить на тему  [ Сообщений: 670 ]  На страницу 1, 2, 3, 4, 5 ... 67  След.
Автор Сообщение
 Заголовок сообщения: Учимся писать скрипты
СообщениеДобавлено: 12 янв 2015, 14:56
Правая рука дона
Правая рука дона
Аватара пользователя
Сообщения: 679
Откуда: Чита
Авторитет: 29



Когда я пишу скрипты я размышляю какие действия будут происходить. И всегда получается как последовательность действий. То есть как команды прописаны, так я считаю они должны выполняться. Но если судить по приведённому скрипту и как он работает, моя логика написания скриптов не работает.
Кто объяснит эту логику?

Код:
dim_act 10
dim_frm 10
dim_flt 10

findactor 0, "Tommy"

detector_waitforuse 564 //ждём клика по фрейму
person_playanim 0, "KourTlust01.i3d"// проигрывается анимация взятия
wait 3000// анимация длиться 3 секунды
label 101
human_getproperty 0, 0, Energy// ставим детектор на кол-во хп
if_flt[0]<100, -1, 101//если хп меньше 100, то идём дальше. Если 100 возращаемся на метку 101
let flt[0]+2 //прибавляем два хп
human_setproperty 0, flt[0], Energy //записывает полученное значение хп
freeride_scoreget 1 //находим ко-во денег и записываем в переменную 1
if_flt[1]<10, 102, -1 //если меньше 10, то перескакиваем на метку 102 вниз. Если нет на строку вниз.
let flt[1]=flt[1]-10 //отнимаем 10 руб
freeride_scoreset flt[1] //назначаем кол-во  полученных денег

label 103
console_addtext 3400 //приятного аппетита

label 102
console_addtext 3472  //не хватает денег
goto 101

_________________
Начинающие и опытные моддеры! Будем рады Вас видеть здесь - http://vk.com/mafia_and_mafia2_modding

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 12 янв 2015, 15:49
Лидер чемпионата
Лидер чемпионата
Аватара пользователя
Сообщения: 565
Откуда: Самара
Авторитет: 16



Melhior писал(а):
Когда я пишу скрипты я размышляю какие действия будут происходить. И всегда получается как последовательность действий. То есть как команды прописаны, так я считаю они должны выполняться. Но если судить по приведённому скрипту и как он работает, моя логика написания скриптов не работает.
Кто объяснит эту логику?
Не совсем понятно, в чём совственно проблема. Скрипт работает неправильно? Последовательность действий получается всегда. А как же работает скрипт?

_________________
Изображение

 
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 13 янв 2015, 11:01
Правая рука дона
Правая рука дона
Аватара пользователя
Сообщения: 679
Откуда: Чита
Авторитет: 29



Firefox3860 писал(а):
Не совсем понятно, в чём совственно проблема. Скрипт работает неправильно? Последовательность действий получается всегда. А как же работает скрипт?

Сообщения "не хватает денег" и "приятного аппетита" выходят одновременно. Не хватает условия или что ещё.

_________________
Начинающие и опытные моддеры! Будем рады Вас видеть здесь - http://vk.com/mafia_and_mafia2_modding

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 13 янв 2015, 13:53
Лидер чемпионата
Лидер чемпионата
Аватара пользователя
Сообщения: 565
Откуда: Самара
Авторитет: 16



Melhior писал(а):
Сообщения "не хватает денег" и "приятного аппетита" выходят одновременно.
Ха, ну конечно они будут выходить одновременно! Не хватает строчки goto 101:
Код:
label 103
console_addtext 3400 //приятного аппетита
goto 101

label 102
console_addtext 3472  //не хватает денег
goto 101

_________________
Изображение

 
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 13 янв 2015, 15:33
Правая рука дона
Правая рука дона
Аватара пользователя
Сообщения: 679
Откуда: Чита
Авторитет: 29



Цитата:
="Firefox3860"Ха, ну конечно они будут выходить одновременно! Не хватает строчки goto 101:
Код:
label 103
console_addtext 3400 //приятного аппетита
goto 101

label 102
console_addtext 3472  //не хватает денег
goto 101


Добавил я goto 101. Теперь надпись "Приятного аппетита" выходит 5 раз друг за другом и не исчезают. Денег было 1000. Снялись все. ХП на две единицы не увеличились. Анимация не проигрывается. Вот тебе и ха-ха.
Есть ещё идеи?

_________________
Начинающие и опытные моддеры! Будем рады Вас видеть здесь - http://vk.com/mafia_and_mafia2_modding

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 13 янв 2015, 16:11
Клан Webgamer
Аватара пользователя
Сообщения: 48
Откуда: Ташкент / Архангельск
Авторитет: 6



В этих строчках лишние нижние подчеркивания:
if_flt[0]<100, -1, 101
if_flt[1]<10, 102, -1

"let flt[0]+2" - неправильная строчка, правильно будет let flt[0]=flt[0]+2

Также в скрипте нигде нет ссылки на label 103

P.s. Опиши словаим то, что должен делать скрипт

 
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 14 янв 2015, 04:44
Правая рука дона
Правая рука дона
Аватара пользователя
Сообщения: 679
Откуда: Чита
Авторитет: 29



Silver писал(а):
В этих строчках лишние нижние подчеркивания:
if_flt[0]<100, -1, 101
if_flt[1]<10, 102, -1

"let flt[0]+2" - неправильная строчка, правильно будет let flt[0]=flt[0]+2

Также в скрипте нигде нет ссылки на label 103

P.s. Опиши словаим то, что должен делать скрипт


Да обычную покупку чего либо. Только если это еда, то хп увеличивается на 2%. Если нет нужной суммы то высвечивается недостаточно средств. Если купили, то надпись "вы совершили покупку" или что то наподобие. При покупке проигрывается анимация взятия.

_________________
Начинающие и опытные моддеры! Будем рады Вас видеть здесь - http://vk.com/mafia_and_mafia2_modding

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 15 янв 2015, 00:24
Агент Путина
Аватара пользователя
Сообщения: 878
Откуда: Донецк



Всем привет. Из-за снегопадов не было тырнета в нашей глуши...
По скрипту:
Код:
dim_act 10
dim_frm 10
dim_flt 10

findactor 0, "Tommy"

label 101
//Т.к. скрипт предполагает многократное использование, то выносим первую метку начало, перед 'detector_waitforuse'
detector_waitforuse 564
person_playanim 0, "KourTlust01.i3d"
wait 3000
//если анимация циклична (не проверял), лучше ставим команду:
person_stopanim 0
//что-то взяли
//в начале лучше ставить проверку на бабло, потому что если не будет хватать...
freeride_scoreget 1
if flt[1] < 10, 103, -1
//и бабло лучше отнимать непосредственно после поедания
//
human_getproperty 0, 0, Energy
if flt[0] < 100, -1, [b]102[/b]
//если здоровья меньше 100, добавим немножко энергии,
//но думаю, лучше будет сделать как в М2:
//если здоровья = 100, наш герой всё равно пусть полакомится,
//просто пусть ничего не прибавляется;
//анимацию поедания только подобрать надоть.
//
//Или можно:
//human_getproperty 0, 0, Energy
//if flt[0] < 100, -1, [b]104[/b]
//
let flt[0] = flt[0] + 2
human_setproperty 0, flt[0], Energy

label 102
//отсюда будет продолжение, если не нужно прибавлять энергию
let flt[1] = flt[1] - 10
freeride_scoreset flt[1]
//отнимаем бабки
//
//блокируем управление игроком
//при желании можно показать картинку с ракурса камеролоком или отдельным скриптом
//проигрываем анимацию поедания, отряхивания рук от хлебных крошек - есть подобная
//разблокируем управление
wait [N сек]
//если не надо - опускаем
//
console_addtext 3400 //приятного аппетита
goto 101

label 103
console_addtext 3472  //не хватает денег
goto 101

label 104
console_addtext nnnn  //вы не можете так часто покупать бутеры или что-то подобное
goto 101

Немножко переместил строки, надеюсь, всё понятно.

_________________

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 15 янв 2015, 15:07
Правая рука дона
Правая рука дона
Аватара пользователя
Сообщения: 679
Откуда: Чита
Авторитет: 29



Михаил Орлов писал(а):
Всем привет. Из-за снегопадов не было тырнета в нашей глуши...
По скрипту:


Код:
dim_act 10
dim_frm 10
dim_flt 10

findactor 0, "Tommy"

label 101
//Т.к. скрипт предполагает многократное использование, то выносим первую метку начало, перед 'detector_waitforuse'
detector_waitforuse 564
person_playanim 0, "KourTlust01.i3d"
wait 3000
//если анимация циклична (не проверял), лучше ставим команду:
person_stopanim 0
//что-то взяли
//в начале лучше ставить проверку на бабло, потому что если не будет хватать...
freeride_scoreget 1
if flt[1] < 10, 103, -1
//и бабло лучше отнимать непосредственно после поедания
//
human_getproperty 0, 0, Energy
if flt[0] < 100, -1, [b]102[/b]
//если здоровья меньше 100, добавим немножко энергии,
//но думаю, лучше будет сделать как в М2:
//если здоровья = 100, наш герой всё равно пусть полакомится,
//просто пусть ничего не прибавляется;
//анимацию поедания только подобрать надоть.
//
//Или можно:
//human_getproperty 0, 0, Energy
//if flt[0] < 100, -1, [b]104[/b]
//
let flt[0] = flt[0] + 2
human_setproperty 0, flt[0], Energy

label 102
//отсюда будет продолжение, если не нужно прибавлять энергию
let flt[1] = flt[1] - 10
freeride_scoreset flt[1]
//отнимаем бабки
//
//блокируем управление игроком
//при желании можно показать картинку с ракурса камеролоком или отдельным скриптом
//проигрываем анимацию поедания, отряхивания рук от хлебных крошек - есть подобная
//разблокируем управление
wait [N сек]
//если не надо - опускаем
//
console_addtext 3400 //приятного аппетита
goto 101

label 103
console_addtext 3472  //не хватает денег
goto 101

label 104
console_addtext nnnn  //вы не можете так часто покупать бутеры или что-то подобное
goto 101

Немножко переместил строки, надеюсь, всё понятно.


Всё работает как надо. Спасибо. Только вот правильную логику я так и не пойму.

_________________
Начинающие и опытные моддеры! Будем рады Вас видеть здесь - http://vk.com/mafia_and_mafia2_modding

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 15 янв 2015, 16:14
Агент Путина
Аватара пользователя
Сообщения: 878
Откуда: Донецк



Melhior писал(а):
Только вот правильную логику я так и не пойму.

Что конкретно непонятно?
1. Когда пишем скрипт, задаёмся вопросом: нужен ли "вечный" скрипт или на один раз. Тогда перед командой использования вроде 'detector_waitforuse' ставим первую метку, а в конце команду - 'goto 101' с нужной цифрой. Или не ставим, если не надо.
2. Когда пишем строки, обязательно читаем вслух, помним особенно про эту команду: 'if flt[0] < 100, -1, 101', и подставляем под это условие нужные символы. Не забываем ставить реальные цифры/буквы, иначе скрипт уйдёт в "некуда".
3. После команды использования (воздействия на окружающий мир, предметы вокруг Тома) вроде 'detector_waitforuse' обязательно ставим все условия, при несоблюдении которых, например, если мало денег, здоровья и пр. будет, скрипт не может пойти по запланированному сценарию. Если порядок - сценарий скрипта должен пройти до конца.

_________________

 
Вернуться к началу
 Профиль WWW  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 670 ]  На страницу 1, 2, 3, 4, 5 ... 67  След.


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения


      200stran.ru     

Powered by phpBB © Русская поддержка phpBB ©
All rights reserved © www.webgamer.hhos.ru 2003- © MikeMouse 2003- ©
Rating@Mail.ru