В общем, всю проблему, по сути, описал в заголовке. Уточню только то, что сам дефиб остается. То есть звук падения, и он даже лежит на земле, его можно бить прикладом и он будет отлетать и его можно будет подобрать, если понять где он примерно лежит. Но интересно то, что именно при использовании SDKHooks_DropWeapon исчезает модель дефибрилятора. Кто-нибудь с этим сталкивался, знает как это поправить?
Пропадает модель дефибриллятора при использовании SDKHooks_DropWeapon
#1
Отправлено 17 Ноябрь 2020 - 13:38
#2
Отправлено 18 Ноябрь 2020 - 14:31
Сам разобрался как это исправить, если кому-то интересно, то алгоритм следующий:
1. Существующий дефибриллятор в слоте необходимо удалить через RemovePlayerItem(client, GetPlayerWeaponSlot(client, 3));
2. Принудительно меняем активный слот с помощью SetEntPropEnt(client, Prop_Send, "m_hActiveWeapon", GetPlayerWeaponSlot(client, 1)); (В данном случае принудительно делаем активный слот с пистолетами / рукопашкой).
3. Создаем новый дефибриллятор и экипируем им игрока:
int createdItem = CreateEntityByName("weapon_defibrillator"); float clientOrigin[3]; GetClientAbsOrigin(client, clientOrigin); TeleportEntity(createdItem, clientOrigin, NULL_VECTOR, NULL_VECTOR); DispatchSpawn(createdItem); EquipPlayerWeapon(client, createdItem);
P.S. Менять активный слот на слот с дефибриллятором ни в коем случае не надо, иначе все бесполезно. Проблема и заключается в том, что как только вы берете в руки дефибриллятор, то он становится невидимым после выбрасывания, поэтому и приходится его удалять и создавать новый, а уже потом этот новый дефибриллятор выбрасывать не взяв его в руки.
4. Выбрасываем дефибриллятор - SDKHooks_DropWeapon(client, GetPlayerWeaponSlot(client, 3), NULL_VECTOR, NULL_VECTOR);
#3
Отправлено 18 Ноябрь 2020 - 15:03
Сам разобрался как это исправить, если кому-то интересно, то алгоритм следующий:
1. Существующий дефибриллятор в слоте необходимо удалить через RemovePlayerItem(client, GetPlayerWeaponSlot(client, 3));
2. Принудительно меняем активный слот с помощью SetEntPropEnt(client, Prop_Send, "m_hActiveWeapon", GetPlayerWeaponSlot(client, 1)); (В данном случае принудительно делаем активный слот с пистолетами / рукопашкой).
3. Создаем новый дефибриллятор и экипируем им игрока:
int createdItem = CreateEntityByName("weapon_defibrillator"); float clientOrigin[3]; GetClientAbsOrigin(client, clientOrigin); TeleportEntity(createdItem, clientOrigin, NULL_VECTOR, NULL_VECTOR); DispatchSpawn(createdItem); EquipPlayerWeapon(client, createdItem);P.S. Менять активный слот на слот с дефибриллятором ни в коем случае не надо, иначе все бесполезно. Проблема и заключается в том, что как только вы берете в руки дефибриллятор, то он становится невидимым после выбрасывания, поэтому и приходится его удалять и создавать новый, а уже потом этот новый дефибриллятор выбрасывать не взяв его в руки.
4. Выбрасываем дефибриллятор - SDKHooks_DropWeapon(client, GetPlayerWeaponSlot(client, 3), NULL_VECTOR, NULL_VECTOR);
Пример из !drop плагина
void DropWeapon(int client, int weapon) { int ammo = GetPlayerReserveAmmo(client, weapon); SDKHooks_DropWeapon(client, weapon); SetPlayerReserveAmmo(client, weapon, 0); SetEntProp(weapon, Prop_Send, "m_iExtraPrimaryAmmo", ammo); char classname[32]; GetEntityClassname(weapon, classname, sizeof(classname)); if (StrEqual(classname, "weapon_defibrillator")) { int modelindex = GetEntProp(weapon, Prop_Data, "m_nModelIndex"); SetEntProp(weapon, Prop_Send, "m_iWorldModelIndex", modelindex); } }
#4
Отправлено 18 Ноябрь 2020 - 15:22
Пример из !drop плагинаvoid DropWeapon(int client, int weapon) { int ammo = GetPlayerReserveAmmo(client, weapon); SDKHooks_DropWeapon(client, weapon); SetPlayerReserveAmmo(client, weapon, 0); SetEntProp(weapon, Prop_Send, "m_iExtraPrimaryAmmo", ammo); char classname[32]; GetEntityClassname(weapon, classname, sizeof(classname)); if (StrEqual(classname, "weapon_defibrillator")) { int modelindex = GetEntProp(weapon, Prop_Data, "m_nModelIndex"); SetEntProp(weapon, Prop_Send, "m_iWorldModelIndex", modelindex); } }Спасибо, тоже интересно!
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных