char szModelName[PLATFORM_MAX_PATH];
int iEntity = MaxClients + 1;
while ((iEntity = FindEntityByClassname(iEntity, "prop_dynamic")) != -1)
{
GetEntPropString(iEntity, Prop_Data, "m_ModelName", szModelName, sizeof(szModelName));
if (StrContains(szModelName, "weapon", false) == -1)
{
continue;
}
PrintToServer("Weapon Model: %s", szClassname);
}
GetEntPropString(entity, Prop_Data, "m_ModelName", sBuffer, sizeof(sBuffer));
Как у вас prop_dynamic (с моделью оружия - как вы указали выше), может иметь модели ящика ?@Vit_ amin, не работает, так же возвращает prop_dynamic.
Попробовал другой способ:
возвращает models/props/de_dust/du_crate_96x96.mdl.C-подобный:GetEntPropString(entity, Prop_Data, "m_ModelName", sBuffer, sizeof(sBuffer));
Есть ещё какие-нибудь варианты?
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (IsClientInGame(client) && IsPlayerAlive(client))
{
static iPrevButtons[MAXPLAYERS+1];
if ((buttons & IN_USE) && !(iPrevButtons[client] & IN_USE))
{
new entity = GetClientAimTarget(client, false);
if (entity > -1)
{
decl String:sBuffer[256];
GetEntPropString(entity, Prop_Data, "m_ModelName", sBuffer, sizeof(sBuffer));
PrintToChatAll("[SM] %s", sBuffer);
}
}
iPrevButtons[client] = buttons;
}
return Plugin_Continue;
}
m_ModelName
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
&weapon
Но это ведь индекс оружия, на которое игрок переключился. А мне надо сначала определить, является ли сущность, на которую смотрит игрок, оружием, и потом уже производить дальнейшие действия.Если не ошибаюсь параметрЭто индекс оружия, через него можете смотреть Classname оружияC-подобный:&weapon
В таком случае проверяйте сначала Classname Entity, куда игрок наводит свой прицел (возможно через цикл можно проверить получиться)Но это ведь индекс оружия, на которое игрок переключился. А мне надо сначала определить, является ли сущность, на которую смотрит игрок, оружием, и потом уже производить дальнейшие действия.
а ты часом не пытаешься сделать пикап оружия на кнопку юза?Навожу прицел на оружие, нажимаю E, срабатывает следующий код:
судя по тому что я увидел, тебе просто нужно воспользоваться правильным фильтром для трассировки@Reg1oxeN, сделал уже, но из-за античита не работает, вот и ищу альтернативный вариант определения оружия.
public void OnClientPutInServer(int iClient)
{
SDKHook(iClient, SDKHook_WeaponCanUse, OnWeaponCanUse);
}
public Action OnWeaponCanUse(int iClient, int iWeapon)
{
return Plugin_Handled;
}
Спасибо, работает.судя по тому что я увидел, тебе просто нужно воспользоваться правильным фильтром для трассировки
![]()
ClientMod-Pickup-Weapon/pickup_weapon.sp at main · Reg1oxeN/ClientMod-Pickup-Weapon
Allows players to pickup weapon using [USE] key. Contribute to Reg1oxeN/ClientMod-Pickup-Weapon development by creating an account on GitHub.github.com![]()
ClientMod-Api/scripting/include/clientmod/tracerayfilter.inc at master · Reg1oxeN/ClientMod-Api
Contribute to Reg1oxeN/ClientMod-Api development by creating an account on GitHub.github.com