Можно ли визуально убрать ножик у игрока ?

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Оффтоп
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Можно ли визуально убрать ножик у игрока ?

Уже писал на счет заказа, если заказывать , то придется раскошелится рублей так на 1500...(отдельную модель с анимацией, узнавал)
В итоге что получается, просто скрыть нож нельзя ?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
просто скрыть нож нельзя ?
Ну почему, можно: SetEntityRenderColor(entityWeaponKnife, 255, 255, 255, 0); - невидимый нож... если выбросить. :biggrin: Но на клиенте и так, и сяк прорисовывается. Оффтоп
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Ну почему, можно: SetEntityRenderColor(entityWeaponKnife, 255, 255, 255, 0); - невидимый нож, если выбросить) Но на клиенте и так, и сяк прорисовывается. Оффтоп
Оффтоп
--- Добавлено позже ---
@Кирилл Спиридонов, сможешь сделать невидимую модель в CS:GO?
 

Kaptain

Школьник
Сообщения
912
Реакции
489

SenatoR

Участник
Сообщения
773
Реакции
344
ОффтопМожно сделать так, но с некоторой вероятностью некоторые клиенты будут вылетать при загадочных обстоятельствах. (ибо индекс = 0)
 
Последнее редактирование:

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
хм
if(client > 0 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && IsPlayerAlive(client))

if(!(client > 0 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && IsPlayerAlive(client)))
return Plugin_Stop;


и weapon <= 0 || !IsValidEdict(weapon) - вторая проверка не исключает первую?


а первая проверка не исключает вторую?
if(IsValidEdict(iWorldModel))
{
if(iWorldModel != 0)
 

SenatoR

Участник
Сообщения
773
Реакции
344
хм
if(client > 0 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && IsPlayerAlive(client))

if(!(client > 0 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && IsPlayerAlive(client)))
return Plugin_Stop;


и weapon <= 0 || !IsValidEdict(weapon) - вторая проверка не исключает первую?


а первая проверка не исключает вторую?
if(IsValidEdict(iWorldModel))
{
if(iWorldModel != 0)
1) Из-за таймера проверка повторяется.
2) Спасибо, сразу не углядел кривую проверку, поправил
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
ну когда игрок меняет оружие, он точно > 0, в игре и жив, а в таймере передают userid (это исключает применение функций на вновь зашедшем игроке), хотя спорно, может ли за 0.1 секунды сменится игрок
 
Последнее редактирование:

SenatoR

Участник
Сообщения
773
Реакции
344
ну когда игрок меняет оружие, он точно > 0, в игре и жив, а в таймере передают userid (это исключает применение функций на вновь зашедшем игроке), хотя спорно, может ли за 0.1 секунды смениться игрок
Краш игры во время смены оружия?
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
не говорю, что нужно отказаться от проверок вовсе, но некоторые повторяющиеся явно лишние, имхо
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
ОффтопМожно сделать так, но с некоторой вероятностью некоторые клиенты будут вылетать при загадочных обстоятельствах. (ибо индекс = 0)
Можно тупо удалять модель, AcceptEntityInput "kill".
Но дело в том, что нужно убрать модель от первого лица...
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
В CS:S что-то не работает, видно нож.
в CS:S подругому, m_hWeaponWorldModel лишь в CS:GO есть, и вроде б в Insurgency
--- Добавлено позже ---
в CS:S подругому, m_hWeaponWorldModel лишь в CS:GO есть, и вроде б в Insurgency
Я так понял там просто SetEntityRenderColor(weapon, 255, 255, 255, 0), или SetEntityRenderMode(weapon, RENDER_NONE)
--- Добавлено позже ---
Так ударить не сможешь и игрок будет ходит с "руками по швам".
Это если удалить само оружие, а если просто модель, то в руках ничего не будет, но руки будут на местах и бить сможет. И + это лишь на CS:GO и Insurgency
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
m_hWeaponWorldModel лишь в CS:GO есть
Ну всё, на CS:S не сделаете. :biggrin:
Нет, я уже писал об этом.Оффтоп
В общем, в CS:S делается так:
PHP:
#include <sdkhooks>
#include <sdktools>

public OnClientPostAdminCheck(client)
{
	SDKHook(client, SDKHook_WeaponSwitchPost, WeaponHook);
	SDKHook(client, SDKHook_WeaponEquipPost, WeaponHook);
}

public WeaponHook(client, weapon)
{
	decl String:classname[13];
	GetEdictClassname(weapon, classname, sizeof(classname));
	if(strcmp(classname, "weapon_knife", false) == 0)
	{
		new model = MaxClients + 1;
		while((model = FindEntityByClassname(model, "predicted_viewmodel")) != -1)
		{
			if(GetEntPropEnt(model, Prop_Send, "m_hOwner") == client && GetEntPropEnt(model, Prop_Send, "m_hWeapon") == weapon)
			{
				SetEntProp(model, Prop_Send, "m_nModelIndex", 0);
				break;
			}
		}
	}
}
Правда, мельком пробегает анимация.
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
Ну всё, на CS:S не сделаете. :biggrin:Нет, я уже писал об этом.Оффтоп
В общем, в CS:S делается так:
PHP:
#include <sdkhooks>
#include <sdktools>

public OnClientPostAdminCheck(client)
{
    SDKHook(client, SDKHook_WeaponSwitchPost, WeaponHook);
    SDKHook(client, SDKHook_WeaponEquipPost, WeaponHook);
}

public WeaponHook(client, weapon)
{
    decl String:classname[13];
    GetEdictClassname(weapon, classname, sizeof(classname));
    if(strcmp(classname, "weapon_knife", false) == 0)
    {
        new model = MaxClients + 1;
        while((model = FindEntityByClassname(model, "predicted_viewmodel")) != -1)
        {
            if(GetEntPropEnt(model, Prop_Send, "m_hOwner") == client && GetEntPropEnt(model, Prop_Send, "m_hWeapon") == weapon)
            {
                SetEntProp(model, Prop_Send, "m_nModelIndex", 0);
                break;
            }
        }
    }
}
Правда, мельком пробегает анимация.
Поиграюсь завтра с этим в CS:GO...
 
Сверху Снизу