Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 18.05.2011, 01:20   #1
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Система боя врага в РПГ

Пробую написать подобную систему..
Код внутри:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Camera=CreateCamera()

Player=CreateCube()
PositionEntity Player,5,0,-5
Player_Health%=100

Enemy=CreateCube()
EntityColor Enemy,200,100,100
Enemy_IsFight=0				; атакует
Enemy_FightFrame#=0		; задержка атаки (время размаха)

While Not KeyDown(1)
	
	If KeyDown(200) Then MoveEntity Player,0,0,0.1	; ^
	If KeyDown(208) Then MoveEntity Player,0,0,-0.1	; \/
	
	If KeyDown(203) Then MoveEntity Player,-0.1,0,0	; <
	If KeyDown(205) Then MoveEntity Player,0.1,0,0	; >
	
	PositionEntity Camera,EntityX#(Player),EntityY#(Player)+3,EntityZ#(Player)-5
	PointEntity Camera,Player
	
	PointEntity Enemy,Player
	If EntityDistance#(Enemy,Player)>3 Then
		MoveEntity Enemy,0,0,0.08
	Else
		If Enemy_IsFight=0 Then Enemy_IsFight=1
	EndIf
	
	If Enemy_IsFight=1 Then
		Enemy_FightFrame#=Enemy_FightFrame#+1
		If Enemy_FightFrame#>75 Then
			Enemy_IsFight=0
			Enemy_FightFrame#=0
			
			If EntityDistance#(Enemy,Player)<4 Then Player_Health=Player_Health-5
		EndIf
	EndIf
	
	If EntityDistance#(Enemy,Player)>5 Then
		Enemy_IsFight=0
		Enemy_FightFrame#=0
	EndIf
	
	UpdateWorld
	RenderWorld
	
	Text 5,5,Player_Health
	Text 5,25,"Dis:"+EntityDistance#(Enemy,Player)+" | Fight: "+Enemy_IsFight+" | Sum: "+Enemy_FightFrame#
	
	Flip
Wend


Пояснение:
Игрок двигается от врага, тот к игроку.
Если враг дальше игрока на 3 метра, двигается к нему.
Если враг ближе к игроку чем 3 метра - начинает размах (Enemy_FightFrame#)
Проходит 75 мксек - происходит удар.
Если враг ближе к игроку на 4 метра наносится урон.
Если игрок дальше от врага на 5 метров - удар отменяется.
В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)


Нужно будет добавить модель противника (с мечом или кулаками). И ориентироваться по анимации.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
Program23 (18.05.2011), St_AnGer (18.05.2011)
Старый 18.05.2011, 02:01   #2
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Система боя врага в РПГ

юзай функции, а то сложно потом будет.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (18.05.2011)
Старый 18.05.2011, 03:03   #3
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Система боя врага в РПГ

Repeat

Enemy_UpdateFight(то-то, это)

Flip
Until

Function Enemy_UpdateFight(то-то,это)
If то-то>3 then
... ... ...
End Function
Примерно об этом?

У себя я обычно потом врагов, предметы и т.п. в их includЫ вывожу.
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 11:01   #4
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Система боя врага в РПГ

Добавлена примитивная модель врага для наглядности боя.

http://ifolder.ru/23603996
(внутри архива: исходник.bb, модели мах+3дс)

В наглядности кода ничего не менял.
Следующим будет вынесения кода боя отдельно. Проба боя игрока.

Потребуется справка: "баланс удара и нанесения урона между игроком и врагом, тактика боя и т.п." Т.е. так, чтобы драка была "равная" и захватывающая.
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 13:38   #5
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Система боя врага в РПГ

Если бы это расчет урона был, то было бы круто, а так... проверка на расстояние.
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 15:31   #6
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Система боя врага в РПГ

Проходит 75 мксек - происходит удар.
Enemy_FightFrame#=Enemy_FightFrame#+1
Это ну ни как не 75 мсек
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NitE (18.05.2011)
Старый 18.05.2011, 18:01   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Система боя врага в РПГ

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)

.
для рпг самое то
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 20:57   #8
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Система боя врага в РПГ

В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)
.
Ты мало в л2 играл, или у тебя большой пинг. проверка на расстояние там есть. Правда только для скилов. для каждого удара это былобы слишком. когда у чувака скрость атаки оочень высокая - он машет оружием с такой скоростью что видно только мерцание "сосок". а теперь представь еслиб на сервере расчитывалось растояние для каждого удара over9000 игроков?
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 21:50   #9
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Система боя врага в РПГ

Это не будет Л2.
Замену мксек ещё не продумал.
(пока это будет кадр анимации)

Если бы это расчет урона был, то было бы круто, а так... проверка на расстояние.
Проверку столкновения в части тела не предполагаю.
Пока мне требуется примитивный бой (как в стратегиях... WarCraft например)
http://www.youtube.com/watch?v=3qcwZ...e=related#t=45
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 22:27   #10
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Система боя врага в РПГ

Если бы это расчет урона был, то было бы круто, а так... проверка на расстояние.
Объясни на милость, где ты в верхней цитате увидел такие слова как "столкновение" и "части тела" ?
Проверку столкновения в части тела не предполагаю.
(Offline)
 
Ответить с цитированием
Старый 18.05.2011, 22:39   #11
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Система боя врага в РПГ

В чём подразумеваешь "расчёт урона" ?
Сила, скилл врага и игрока?

Если что, это будет после того как будут готовы сами враги и управление игроком.

Это только начало.. Версия так сказать -0.1 (минус 0.1)
(Offline)
 
Ответить с цитированием
Старый 22.05.2011, 11:29   #12
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Система боя врага в РПГ

Сообщение от Dream Посмотреть сообщение
Ты мало в л2 играл, или у тебя большой пинг. проверка на расстояние там есть. Правда только для скилов. для каждого удара это былобы слишком. когда у чувака скрость атаки оочень высокая - он машет оружием с такой скоростью что видно только мерцание "сосок". а теперь представь еслиб на сервере расчитывалось растояние для каждого удара over9000 игроков?
Всмысле, ты хош не брать в рассчет расстояние между персонажами при рассчете можно ли нанести удар или нет? Это-ж глупо, знаеш сколько читов наклепают сразу, бегаеш в одной локации и коцаеш когото кто лазит на другом конце игрового мира, а он стоит и тупит в шоке, в непонятках кто его коцает.. ))
(Offline)
 
Ответить с цитированием
Старый 22.05.2011, 15:18   #13
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Система боя врага в РПГ

коцаеш когото кто лазит на другом конце игрового мира
Делается одна проверка вместо двух - только при замахе.
При ударе проверка на расстояние не производится
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 22.05.2011, 20:49   #14
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Система боя врага в РПГ

У меня тоже одна проверка.
Думаю, намного правильнее проверка будет при ударе (а не замахе).
Ведь игровой герой может быстро перемещаться, в этом появляется возможность отмахиваться от удара.

Пока что это заготовка для новичков (я не задумывал делать онлайн, или ла2)
Далее применю её в открытом рпг примере.

(Если на то пойдёт - придётся поучить "советы программирования рпг")
(Offline)
 
Ответить с цитированием
Старый 22.05.2011, 22:21   #15
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Система боя врага в РПГ

Хорошая мысль насчет проверки при нанесении удара, для того чтобы замахнутся ведь ненужно цели, правильно? В таком случае если к моменту нанесения удара цель будет вне досягаемости то можно засчитать это за промах, так будет реалистичнее, правда только при низких пингах...(правда при высоких при любом раскладе будет коряво)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com