Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Как поджечь гэгдолы?
tonline_kms65 Дата: Суббота, 25.02.2017, 04:41:24 | Сообщение # 1
Сообщений: 215
Репутация: 3 [ +/- ]
Всем привет.
Я понимаю что вопрос явно не из простых. Маловероятно что кто то с этим сталкивался.
3D модель, целиком поджечь можно легко. Теперь суть вопроса - когда модель развалилась на части (рэгдолы) их получается несколько кусков.
Я хочу поджечь сами рэгдолы (то на что 3D модель разваливается), поджечь каждый элемент рэгдол, независимо друг от друга.
Вот интересно, а реально ли это сделать в sourcepawn? Может быть кто нибудь, где нибудь с этим вопросом встречался.
Это конечно не критично - это больше лично для меня. Такой нездоровый интерес.

Я смотрел по списку classname ENT до разрушения, и сразу после разрушения. Рэгдолов я там не вижу. Да и в прекэш рэгдолы не заносятся, хотя это отдельные модельки.
Может быть можно как то по другому перехватить iD или имена самих рэгдолов.

Гости не могут скачивать файлы


Сообщение отредактировал tonline_kms65 - Суббота, 25.02.2017, 04:44:35
 
_wS_ Дата: Суббота, 25.02.2017, 05:53:23 | Сообщение # 2
Код
#include <sdkhooks>

public OnEntityCreated(entity, const String:classname[])
{

}

public OnEntityDestroyed(entity)
{

}
 
tonline_kms65 Дата: Суббота, 25.02.2017, 07:12:01 | Сообщение # 3
Сообщений: 215
Репутация: 3 [ +/- ]
Цитата _wS_ ()
public OnEntityDestroyed(entity)

Это к основной модели. А к тому, на что эта самая модель разваливается, такое не применишь.

Я же говорю - нет ни имени ни ID рэгдолов. Сомневаюсь что это можно сделать программно.
OnEntityDestroyed(entity) - в ent ID какой?
Я сейчас попробую какой нибудь из рагдолов перекомпилировать - в пропдате укажу когда загореться. Так же как к самой модели.
 
_R1KO_ Дата: Суббота, 25.02.2017, 14:58:09 | Сообщение # 4
Сообщений: 200
Репутация: 30 [ +/- ]
tonline_kms65, https://sm.alliedmods.net/api/index.php?fastload=show&id=38&
Можно еще в сочетании с env_entity_dissolver
 
tonline_kms65 Дата: Суббота, 25.02.2017, 17:21:58 | Сообщение # 5
Сообщений: 215
Репутация: 3 [ +/- ]
Цитата _R1KO_; ()


Тоже самое.
Всё это можно сделать на основной модели, от которой можно получить её ID, имя и т.д. Её можно (и нужно) прекешить.

Теперь - что такое рэгдолы.
Рэгдолы (gibs) это как бы составные части основной 3D модели. На эти части разваливается основная модель. При компиляции 3D модели в её .QC файле я указываю на какие модели распадётся основная модель.
Код
break { "model" "models/RCDroneHeli/ragdolls/body/ragdoll_body.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/rear/ragdoll_rear.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/rear/ragdoll_rear.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/tail/ragdoll_tail.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/paw/ragdoll_paw.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/paw/ragdoll_paw.mdl" "fadetime" "20"}
break { "model" "models/RCDroneHeli/ragdolls/paw/ragdoll_paw.mdl" "fadetime" "20"}

Основная модель исчезает - на её месте появляются рэгдолы (то же 3D модели). Они не прекэшиваются. На них нет ID и имени (classname). По крайней мере я не могу их получить.
Поэтому все эти функции SourcePawn'а я пока не вижу как применить.
Например:
native IgniteEntity(entity, Float:time, bool:npc=false, Float:size=0.0, bool:level=false);
entity - какое?
и так же env_entity_dissolver к какому ent применить?

Цитата tonline_kms65 ()
Я сейчас попробую какой нибудь из рагдолов перекомпилировать - в пропдате укажу когда загореться. Так же как к самой модели.

Попробовал, делал статиком и физиком, толку нет. Либо регдол исчезает совсем, либо тупо контра вылетает (100% из за неправильно скомпилированной модели).
Что интересно - если делать модель регдола без физбокса, она просто не появляется, ошибок и вылетов контры при этом не дает. Хочу еще попробовать добавить регдолу хитбокс. Хотя х.з.
Надо на Оленях вопрос задать.

Вот для примера скрин.
По идее когда Player мертв он становится cs_ragdoll (что то типа такого) и вот эти рэгдолы горят. На скрине tf2, но разница небольшая.

***************************************************
Готово!
3 часа возни по приколу и вуаля!
На Оленях вопрос задал, пока ответа нет. Я сделал аттач к каждому регдолу, к ним партикль огня прицепил.

Код
    particles
    {
    "effect" { "name" "fire_large_01" "attachment_type" "follow_attachment" "attachment_point" "fire"}
    }

Работает. Ошибок нет.

YouTube
https://youtu.be/KAzhDliLjRk

YouTube Гейминг
https://gaming.youtube.com/watch?v=KAzhDliLjRk&feature=share


Это уже не есть "SourcePawn". Это просто 3D моделирование + .qc файлик.

Гости не могут скачивать файлы


Сообщение отредактировал tonline_kms65 - Суббота, 25.02.2017, 19:47:07
 
_R1KO_ Дата: Воскресенье, 26.02.2017, 00:01:35 | Сообщение # 6
Сообщений: 200
Репутация: 30 [ +/- ]
tonline_kms65, а как же GetEntPropEnt(ent, Prop_Send, "m_hRagdoll") ?
 
tonline_kms65 Дата: Воскресенье, 26.02.2017, 05:20:14 | Сообщение # 7
Сообщений: 215
Репутация: 3 [ +/- ]
Цитата _R1KO_ ()
а как же GetEntPropEnt(ent, Prop_Send, "m_hRagdoll")


Очень интересно.
Надо попробовать. Хотя в принципе и не нужно уже, но интересно. Если получится - возможностей будет конечно больше.

С Оленей дали ссылку https://facepunch.com/forumdisplay.php?f=40.
Неплохой сайт.

Добавлено (26.02.2017, 05:20:14)
---------------------------------------------
m_hRagdoll это очевидно, только для NPS, Player, Hostage.
[SM] Exception reported: Property "m_hRagdoll" not found (entity 159/class_drone)

А вот CRagdollProp - на это нужно внимательно посмотреть.



Сообщение отредактировал tonline_kms65 - Воскресенье, 26.02.2017, 04:13:24
 
  • Страница 1 из 1
  • 1
Поиск: