Leonidddd писал(а):HolyDorus, т.к. модели трупов на сервере это уже клиентская часть, то нужно блокировать полностью событие ClCorpse, в момент вызова этого события можете создавать свою модель трупа и через PLUGIN_HANDLED; заблокировать её. При возрождении/выходе игрока проверяете в массиве, есть ли его труп на карте, чтоб не забросало всю карту моделями трупов, идекс игрока можно сохранить в pev_owner или других свободных переменных у объектов(трупов, в данном случае).
Нашел описание аргументов
Вы должны зарегистрироваться, чтобы видеть ссылки.Реализовал следующее:
- Код: Выделить всё
const m_coord_mult = 128
public plugin_init() {
register_plugin("Respawn system", "1.0", "HolyDorus")
register_message(get_user_msgid("ClCorpse"), "message_clcorpse")
}
public message_clcorpse() {
new model[100]
get_msg_arg_string(1, model, charsmax(model))
format(model, charsmax(model), "models/player/%s/%s.mdl", model, model)
new Float:origin[3]
origin[0] = float(get_msg_arg_int(2) / m_coord_mult)
origin[1] = float(get_msg_arg_int(3) / m_coord_mult)
origin[2] = float(get_msg_arg_int(4) / m_coord_mult)
new Float:angles[3]
angles[0] = get_msg_arg_float(5)
angles[1] = get_msg_arg_float(6)
angles[2] = get_msg_arg_float(7)
new sequence = get_msg_arg_int(9)
new id = get_msg_arg_int(12)
new ent = create_entity("info_target")
if(!is_valid_ent(ent)) return PLUGIN_HANDLED
entity_set_string(ent, EV_SZ_classname, "custom_body")
entity_set_int(ent, EV_INT_solid, SOLID_NOT)
entity_set_model(ent, model)
entity_set_size(ent, Float:{-5.0, -5.0, -5.0}, Float:{5.0, 5.0, 5.0})
entity_set_origin(ent, origin)
set_pev(ent, pev_angles, angles)
set_pev(ent, pev_owner, id)
set_pev(ent, pev_sequence, sequence)
return PLUGIN_HANDLED
}
Модель устанавливается правильно, номер анимации тоже, но также нужно выставить финальный кадр анимации (так как сейчас положение тела находится в первом кадре анимации смерти). Так вот, как можно получить номер финального кадра анимации?
P.S: Достаточно было добавить следующую строку, и кадр анимации автоматически выставляется на последний:
- Код: Выделить всё
set_pev(ent, pev_framerate, 1.0)