Действие
|
|
df | Дата: Воскресенье, 07 Июня 2009, 20:33 | Сообщение # 1 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| Народ подскажите как сделать что бы при подходе у двере появлялясь надпись "октрыть"(при открытой двере "закрыть") при подходе к NPC "Говорить" если на земле валяется придмет, "поднять" (ну канешно там ограничение на дальность действия) и при нажатии клавиши(ну как в халфе на Е) проиходит действие. собстно как приблизительно делать все это?
|
|
| |
maxturbo | Дата: Воскресенье, 07 Июня 2009, 20:47 | Сообщение # 2 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Используй EntityDistance и переменные.
Сообщение отредактировал maxturbo - Воскресенье, 07 Июня 2009, 20:48 |
|
| |
df | Дата: Воскресенье, 07 Июня 2009, 21:00 | Сообщение # 3 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| про дистанцию понятно. как мне сделать что что бы, в зависимости от типа предмета(рубильник,дверь,NPC) 1.появлялась надпись действия с(над) объектом по центру экрана 2.присходило действие(откритее, разговор. через функцию) как собстно сделатть проверку на присудствие объектом и его действий над ним. Code If KeyHit(33) If EntityDistance(user_piv,entity)<4 Вот судя как и че нужно пихать для проверки типа объекта и функции действий EndIf EndIf
|
|
| |
maxturbo | Дата: Воскресенье, 07 Июня 2009, 21:14 | Сообщение # 4 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Допустим тебе надо чтоб при подходе к двери появилась надпись ОТКРЫТЬ!!! Будет выглядеть так Code If EntityDistance(Плеер,Дверь)<4 Text 10,10,"Открыть" If KeyHit(33) OpenDoor();Функция открытия двери EndIf EndIf
|
|
| |
df | Дата: Воскресенье, 07 Июня 2009, 21:49 | Сообщение # 5 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| то есть так Code If EntityDistance(Плеер,Дверь)<4 Text 10,10,"Открыть" EndIf If KeyHit(33) OpenDoor();Функция открытия двери EndIf
If EntityDistance(Плеер,NPC)<4 Text 10,10,"Говорить" EndIf If KeyHit(33) NPC();Разговор с NPC EndIf
If EntityDistance(Плеер,Предмет)<4 Text 10,10,"Поднять" EndIf If KeyHit(33) N();Поднятие предмета EndIf а как сделать с использование Type можно? Ну что бы он брал текст из параметра Text
|
|
| |
maxturbo | Дата: Воскресенье, 07 Июня 2009, 23:09 | Сообщение # 6 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Есть полный код, чтоб посмотреть, я так не могу объяснять!!!
|
|
| |
df | Дата: Воскресенье, 07 Июня 2009, 23:22 | Сообщение # 7 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| кода действий нема пока. все после понедельника.
|
|
| |
maxturbo | Дата: Воскресенье, 07 Июня 2009, 23:25 | Сообщение # 8 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Можешь использовать так как ты написал, можешь за место текста использовать рисунки! Просто имей больше фонтазий для создания игр!
|
|
| |
maxturbo | Дата: Понедельник, 08 Июня 2009, 12:21 | Сообщение # 9 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| На тебе код настрочил быстренько, здесь описано как взять патроны и чтоб они добавились и все такое!!! Code Graphics3D 1024,768,32,2 SetBuffer BackBuffer() Const TypePlan=1,TypeBoold=2,TypePlayer=3 player=CreatePivot() EntityType player,TypePlayer PositionEntity player,0,5,0 cam=CreateCamera(player) PositionEntity cam,0,3,5 RotateEntity cam,15,0,0 lit=CreateLight()
patron=20;Количество патронов
plan=CreatePlane() EntityType plan,TypePlan tex=LoadTexture("1.jpg") EntityTexture plan,tex ScaleTexture tex,5,5
boold=CreateCube() PositionEntity boold,0,10,20 ScaleEntity boold,.05,.05,.05 EntityType boold,TypeBoold
Collisions TypeBoold,TypePlan,2,2 Collisions TypePlayer,TypePlan,2,3
Repeat If KeyDown(17) Then MoveEntity player,0,0,.1 If KeyDown(31) Then MoveEntity player,0,0,-.1
If MouseHit(1) Then patron=patron-1;Типа выстрел
TranslateEntity boold,0,-.1,0;Гравитация TranslateEntity player,0,-.1,0;Гравитация RenderWorld UpdateWorld FlushKeys() If EntityDistance(player,boold)<8 Text 10,10,"Взять Патроны=E" If KeyHit(18) patron=patron+20;Если нажата клавиша E тогда +20 патронов FreeEntity boold EndIf EndIf Text 10,70,"Патроны="+patron Flip Until KeyHit(1) End Надеюся поймешь !!!
Сообщение отредактировал maxturbo - Понедельник, 08 Июня 2009, 13:41 |
|
| |
df | Дата: Понедельник, 08 Июня 2009, 14:31 | Сообщение # 10 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| Понятно, только вот на Code TranslateEntity boold,0,-.1,0;Гравитация выдает ошибку при попытке поднять.
|
|
| |
maxturbo | Дата: Понедельник, 08 Июня 2009, 15:37 | Сообщение # 11 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Всмысле поднять? Если я правельно думаю то поменяй FreeEntity на HideEntity, но я не знаю у меня все работает!!! :D, а если ты это все делаешь в функциях то просто все переменные занеси в Global и все!
Сообщение отредактировал maxturbo - Понедельник, 08 Июня 2009, 15:38 |
|
| |
df | Дата: Понедельник, 08 Июня 2009, 15:47 | Сообщение # 12 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| А просто проверил код. он там лагает. FreeEntity-это удалить ваше HideEntity-это вроде спрятать Ты молец перепутал. Нужно было HideEntity ставить, а не FreeEntity(спрятать от глаз и столкновений, а не удалять) И еще зачем FlushKeys()? Потом условие: если растояние то если была нажата то. Но все равно спасиб. Теперь все работает. Только вот вопрос? такой метод скрытия,не будут грузить системы при большом количестве спрятаных от глаз придметов?
Сообщение отредактировал df - Понедельник, 08 Июня 2009, 17:21 |
|
| |
maxturbo | Дата: Понедельник, 08 Июня 2009, 22:40 | Сообщение # 13 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| df, Ну у тебя их там же не милион будет, так что я думаю особо грузить не будет!
|
|
| |
df | Дата: Понедельник, 08 Июня 2009, 22:55 | Сообщение # 14 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| В одной локаци может и не будет.
|
|
| |
maxturbo | Дата: Понедельник, 08 Июня 2009, 23:07 | Сообщение # 15 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| Ну конечно лучше бы было это все через типы прогнать!!! Понимаешь о чем я?
|
|
| |
Прохожий | Дата: Вторник, 09 Июня 2009, 01:54 | Сообщение # 16 |
Группа: Гости
| df, У тебя написано "Стаж 1 год" , так неужели за это время нельзя было выучить хотя бы 10% комманд блитца, тут всё логично, только по английски, -если подошел туда-то->выполняем такое то действие(if-then).почти всё на этом основано -если что-то произошло->то....делаем то-то maxturbo, а ты пытаешся дать ему готовый код, когда он не может представить как этот код по ходу выполняется. Делайте выводы...
|
|
| |
df | Дата: Вторник, 09 Июня 2009, 10:44 | Сообщение # 17 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| Прохожий, жить надоело? я сам мог написать код, токо вот подбор придметов а точно долго бы думал. А же не просил написать мне всю систему диологов с NPC?
|
|
| |
maxturbo | Дата: Вторник, 09 Июня 2009, 11:09 | Сообщение # 18 |
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:
Профессия: Программер
Проектов: 1 в разработке
| df, Если ты без FlushKeys() клавишу Е нажмешь на ростояние то при подходи он уже сам возьмет патроны не нажимая клавиши! Сам попробуй и увидешь!
|
|
| |
df | Дата: Вторник, 09 Июня 2009, 12:06 | Сообщение # 19 |
Продвинутый
Группа: Участники
Сообщений: 144
Награды: 0
Замечания: 0%
Статус:
Профессия: Программист
Команда: Легион Темной Лисы(LDF)
Проектов: 1
| если так, то вроде нет Code If KeyHit(18) If EntityDistance(player,boold)<8
|
|
| |