WG
Fan site of Mafia game and the Alive mod
Текущее время: 21 янв 2017, 16:18




Начать новую тему Ответить на тему  [ Сообщений: 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
Лидер чемпионата
Лидер чемпионата
Аватара пользователя
Сообщения: 564
Откуда: Самара
Авторитет: 16



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

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

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



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

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

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

 
Вернуться к началу
 Профиль WWW  
 
 Заголовок сообщения: Re: Учимся писать скрипты
СообщениеДобавлено: 13 янв 2015, 13:53
Лидер чемпионата
Лидер чемпионата
Аватара пользователя
Сообщения: 564
Откуда: Самара
Авторитет: 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
Аватара пользователя
Сообщения: 47
Откуда: Ташкент / Архангельск
Авторитет: 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


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


      200stran.ru     

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