forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Система боя врага в РПГ (http://forum.boolean.name/showthread.php?t=14761)

Dream 22.05.2011 23:23

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от Crayzi (Сообщение 189151)
Всмысле, ты хош не брать в рассчет расстояние между персонажами при рассчете можно ли нанести удар или нет? Это-ж глупо, знаеш сколько читов наклепают сразу, бегаеш в одной локации и коцаеш когото кто лазит на другом конце игрового мира, а он стоит и тупит в шоке, в непонятках кто его коцает.. ))

Кто сказал что не брать в расчёт растояние? я говорю что там считается дистанция только во время начала удара - которая и решает делать возможнсть удара или нет, не более. по поводу читов - ВСЕ расчёты игрового мира ДОЛЖНЫ производится на сервере

Crayzi 22.05.2011 23:43

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от Dream (Сообщение 189198)
Кто сказал что не брать в расчёт растояние? я говорю что там считается дистанция только во время начала удара - которая и решает делать возможнсть удара или нет, не более. по поводу читов - ВСЕ расчёты игрового мира ДОЛЖНЫ производится на сервере

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

Nex 18.07.2011 12:18

Ответ: Система боя врага в РПГ
 
Nite,
Цитата:

Сообщение от NitE (Сообщение 188892)

Объясни на милость, где ты в верхней цитате увидел такие слова как "столкновение" и "части тела" ?

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

NitE 18.07.2011 22:25

Ответ: Система боя врага в РПГ
 
Nex, в твоём, нигде. Ты написал:
Цитата:

Если бы это расчет урона был, то было бы круто, а так... проверка на расстояние.
Тебе отвечают:
Цитата:

Проверку столкновения в части тела не предполагаю.
Какую нах*р проверку столкновения в части тела ? Откуда он это взял ? (Это было-бы нормально, просто написать, но как ответ твоему посту - нонсенс)

LLI.T.A.L.K.E.R. 18.07.2011 23:04

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от Nex (Сообщение 188847)
Если бы это расчет урона был, то было бы круто, а так... проверка на расстояние.

Если бы это был расчёт урона.... Расчёт... Расчёт.. Из чего именно? Просто так нечего рассчитывать..

Предложение нужно дополнить "расчёт урона по скилу игрока и т.д.".
Я дополнил как "расчёт урона относительно того, в какую часть тела попал враг своим орудием". Здесь особо данные персонажей не нужны.

Так как систему не настроить на каждые нужды, думаю стоит сразу выводить в include с множественными параметрами функций.

zAvaTARz 15.08.2011 18:13

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 188817)
Пробую написать подобную систему..
Код внутри:
Код:

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





В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)


Нужно будет добавить модель противника (с мечом или кулаками). И ориентироваться по анимации.

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

Dream 15.08.2011 20:03

Ответ: Система боя врага в РПГ
 
спасибо, кэп

h1dd3n 15.08.2011 20:33

Ответ: Система боя врага в РПГ
 
нихрена он не кэп.
система движения в ла2 (и в аионе) клиентная. клиент при каждом шаге отсылает CM_MOVE с целевыми координатами, так что на фришках без проблем можно сделать спидхак и тп в любую точку. На оффах просто проверяется скорость перса, и в случае сх откидывает назад.
ни на какие "анимации" это не завязано.

Dream 15.08.2011 20:43

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от h1dd3n (Сообщение 199032)
нихрена он не кэп.
система движения в ла2 (и в аионе) клиентная. клиент при каждом шаге отсылает CM_MOVE с целевыми координатами, так что на фришках без проблем можно сделать спидхак и тп в любую точку. На оффах просто проверяется скорость перса, и в случае сх откидывает назад.
ни на какие "анимации" это не завязано.

Поверь, движение происходит на сервере. А и заплачу 100$ за спид хак для фришного серва (OverWorld,l2server ну или любого другогг серва с нормальными рейдами и онлайном)

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

Tadeus 15.08.2011 22:16

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от Dream (Сообщение 199033)
Поверь, движение происходит на сервере. А и заплачу 100$ за спид хак для фришного серва (OverWorld,l2server ну или любого другогг серва с нормальными рейдами и онлайном)

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

Обычно начинается движение перса еще до ответа сервера. Его (движения) возможность проверяется на клиентской стороне. А вот если сервер не согласен, вот тогда уже перса толкают обратно на место. Просто, если до ответа сервера перса не двигать, то движения будут очень дёрганные.

Dream 16.08.2011 02:29

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от Tadeus (Сообщение 199037)
Обычно начинается движение перса еще до ответа сервера. Его (движения) возможность проверяется на клиентской стороне. А вот если сервер не согласен, вот тогда уже перса толкают обратно на место. Просто, если до ответа сервера перса не двигать, то движения будут очень дёрганные.

В тойже л2, именно так - ждет ответа от сервера. но там управление мышкой же, так что там можно

PackegerX 07.09.2011 04:04

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 188817)
Пробую написать подобную систему..

попробуй мою может натолкнет на мысль:
Код:

For monsters.monster=Each Monster
If EntityDistance (monsters\entity,player)<monsters\AggrRange Then
 monsters\aggr=1
 PointEntity monsters\entity,player
EndIf
If monsters\aggr=1 And EntityDistance (monsters\entity,player)>monsters\attackrange Then MoveEntity monsters\entity,0,0,monsters\MoveSpeed#
If monsters\state$="Atacking" And EntityDistance (monsters\entity,player)<monsters\attackrange Then monsters\atacktimer=monsters\atacktimer-1
 If monsters\atacktimer<1 Then
 If (Float#(PlayerArmor#/1)-monsters\dmg#)<0 Then
 AllDamageToPlayer#=Float#(PlayerArmor#/1)-monsters\dmg#
Else
 AllDamageToPlayer#=0
EndIf

зы если не понятно, могу объяснить что к чему.
полный исходник тут
игра тут + тут2 (на юкоз больше 15 мб не лезет пришлось разделить)

LLI.T.A.L.K.E.R. 07.09.2011 10:35

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от PackegerX (Сообщение 201537)
попробуй мою может натолкнет на мысль:
зы если не понятно, могу объяснить что к чему.
полный исходник тут
игра тут + тут2 (на юкоз больше 15 мб не лезет пришлось разделить)

Можно я внесу твою "игру" в мой полный сборник Blitz3D, в категорию Games
(я конечно же, всё же внесу, просто не хотелось чтобы думали, что авторство присвоил)

PackegerX 08.09.2011 12:32

Ответ: Система боя врага в РПГ
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 201542)
Можно я внесу твою "игру" в мой полный сборник Blitz3D, в категорию Games
(я конечно же, всё же внесу, просто не хотелось чтобы думали, что авторство присвоил)

конечно можно, че зря её писал и код открытый оставил)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot