Крашит сервер, после маскировки игрока в бочку cs go.
| |
polo79655
|
Дата: Понедельник, 09.05.2016, 09:10:19 | Сообщение # 1 |
|
Сообщений: 99
Репутация: -1 [ +/- ]
|
|
Видел уже тему, но не нашёл её. Все говорят, что почему-то в кс го, нельзя маскировать игрока в многие стандартные модели, например в бочку, вылетает. Слышал, что нужно сделать человека невидимым и привязать за ним модель. Не подскажите код? Заранее спасибо.
|
|
| |
BarD
|
Дата: Понедельник, 09.05.2016, 09:34:24 | Сообщение # 2 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Только не забывай про прекэш моделей. client - индекс игрока, которого маскируем. path - путь до модели пропа.
Код stock MaskClient(client, const String:path[]) { new entity = CreateEntityByName("prop_physics_override"); if (entity > 0) { decl Float:poss[3]; GetClientAbsOrigin(client, poss); DispatchKeyValue(entity, "targetname", "prop"); DispatchKeyValue(entity, "model", path); DispatchSpawn(entity); SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12); SetEntProp(entity, Prop_Send, "m_nSolidType", 6); SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client); SetEntProp(entity, Prop_Data, "m_CollisionGroup", 17); SetEntityRenderMode(client, RENDER_NONE); // скрываем игрока TeleportEntity(entity, poss, NULL_VECTOR, NULL_VECTOR); SetVariantString("!activator"); AcceptEntityInput(entity, "SetParent", client, entity, 0); return entity; } return -1; }
Сообщение отредактировал BarD - Понедельник, 09.05.2016, 09:34:52 |
|
| |
polo79655
|
Дата: Понедельник, 09.05.2016, 10:17:36 | Сообщение # 3 |
|
Сообщений: 99
Репутация: -1 [ +/- ]
|
|
Цитата BarD ( ) Только не забывай про прекэш моделей. client - индекс игрока, которого маскируем. path - путь до модели пропа. Код
stock MaskClient(client, const String:path[]) { new entity = CreateEntityByName("prop_physics_override"); if (entity > 0) { decl Float:poss[3]; GetClientAbsOrigin(client, poss); DispatchKeyValue(entity, "targetname", "prop"); DispatchKeyValue(entity, "model", path); DispatchSpawn(entity); SetEntProp(entity, Prop_Send, "m_usSolidFlags", 12); SetEntProp(entity, Prop_Send, "m_nSolidType", 6); SetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity", client); SetEntProp(entity, Prop_Data, "m_CollisionGroup", 17); SetEntityRenderMode(client, RENDER_NONE); // скрываем игрока TeleportEntity(entity, poss, NULL_VECTOR, NULL_VECTOR); SetVariantString("!activator"); AcceptEntityInput(entity, "SetParent", client, entity, 0); return entity; } retu Огромное спасибо. Но порой бывает, что человек виден, а потом через раунд становится невидимым, как это пофиксить?Добавлено (09.05.2016, 10:17:36) --------------------------------------------- И еще, как уничтожить бочку? Просто после смерти остается бочка)
|
|
| |
BarD
|
Дата: Понедельник, 09.05.2016, 10:42:36 | Сообщение # 4 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
Эта функция возвращает индекс созданного объекта. Запоминай его куда-нибудь в массив, а потом убивай.Добавлено (09.05.2016, 10:42:36) ---------------------------------------------
Цитата polo79655 ( ) что человек виден, а потом через раунд становится невидимым, Никогда такого не было. Может, другой плагин какой-то видимость делает?
|
|
| |
polo79655
|
Дата: Понедельник, 09.05.2016, 11:09:23 | Сообщение # 5 |
|
Сообщений: 99
Репутация: -1 [ +/- ]
|
|
Цитата BarD ( ) Эта функция возвращает индекс созданного объекта. Запоминай его куда-нибудь в массив, а потом убивай. Я только начинаю скриптить, можно пример пожалуйста?
Сообщение отредактировал polo79655 - Понедельник, 09.05.2016, 11:16:50 |
|
| |
BarD
|
Дата: Понедельник, 09.05.2016, 11:15:15 | Сообщение # 6 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
//В самом начале
Код new g_iProp[MAXPLAYERS+1];
//когда скрываешь игрока:
Код g_iProp[client] = MaskClient(client, "Путь до модели");
//когда умер:
Код public Action:Death(Handle:event, const String:name[], bool:db) { new client = GetClientOfuserId(GetEventInt(event, "userid")); if (client && g_iProp[client] && IsValidEntity(g_iProp[client])) { AcceptEntityInput(g_iProp[client], "Kill"); g_iProp[client] = -1; } }
|
|
| |
polo79655
|
Дата: Понедельник, 09.05.2016, 11:17:40 | Сообщение # 7 |
|
Сообщений: 99
Репутация: -1 [ +/- ]
|
|
Цитата BarD ( ) //В самом начале Код new g_iProp[MAXPLAYERS+1];
//когда скрываешь игрока:
Код g_iProp[client] = MaskClient(client, "Путь до модели");
//когда умер: Код public Action:Death(Handle:event, const String:name[], bool:db) { new client = GetClientOfuserId(GetEventInt(event, "userid")); if (client && g_iProp[client] && IsValidEntity(g_iProp[client])) { AcceptEntityInput(g_iProp[client], "Kill"); g_iProp[client] = -1; } Спасибо, +rep xD
|
|
| |
BarD
|
Дата: Понедельник, 09.05.2016, 11:22:30 | Сообщение # 8 |
|
Сообщений: 943
Репутация: 137 [ +/- ]
|
|
А по поводу видимости, можешь через SetTransmit сделать невидимость.
|
|
| |
|