Плагин Knife_Speed доработка

cangncan

Участник
Сообщения
69
Реакции
4
Имеется плагин Посмотреть вложение 7582
сыпятся ошибки вида:
L 02/02/2014 - 23:40:25: [SM] Native "SetEntPropFloat" reported: Entity 1 (1) is invalid
L 02/02/2014 - 23:40:25: [SM] Displaying call stack trace for plugin "knife_speed.smx":
L 02/02/2014 - 23:40:25: [SM] [0] Line 24, knife_speed.sp::OnWeapon()
L 02/02/2014 - 23:40:25: [SM] Native "SetEntPropFloat" reported: Entity 1 (1) is invalid
L 02/02/2014 - 23:40:25: [SM] Displaying call stack trace for plugin "knife_speed.smx":
L 02/02/2014 - 23:40:25: [SM] [0] Line 24, knife_speed.sp::OnWeapon()
L 02/02/2014 - 23:40:25: [SM] Native "SetEntPropFloat" reported: Entity 1 (1) is invalid
L 02/02/2014 - 23:40:25: [SM] Displaying call stack trace for plugin "knife_speed.smx":
L 02/02/2014 - 23:40:25: [SM] [0] Line 24, knife_speed.sp::OnWeapon()
L 02/02/2014 - 23:52:27: Error log file session closed.

В плагине куча ненужных пробелов и т.д. поправил - результат тот же. что ему нужно ума не приложу.
п.с. плагин в аттаче как и скачивал, не измененный.
 
Последнее редактирование:

NagarD

Участник
Сообщения
411
Реакции
184
PHP:
#include <sdkhooks>

new Handle:g_hCvarKnifeSpeed = INVALID_HANDLE;

public OnPluginStart()
{
	g_hCvarKnifeSpeed = CreateConVar("sm_knife_speed", "1.0");
}

public OnClientPutInServer(client)
{
	SDKHook(client, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnWeapon(client, weapon)
{
	decl String:classname[64];
	GetEdictClassname(weapon, classname, sizeof(classname));
	if (StrEqual(classname, "weapon_knife"))
		SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(g_hCvarKnifeSpeed));
	else if (IsValidEntity(client))
		SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 1.0);
}
 

cangncan

Участник
Сообщения
69
Реакции
4
PHP:
#include <sdkhooks>

new Handle:g_hCvarKnifeSpeed = INVALID_HANDLE;

public OnPluginStart()
{
    g_hCvarKnifeSpeed = CreateConVar("sm_knife_speed", "1.0");
}

public OnClientPutInServer(client)
{
    SDKHook(client, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnWeapon(client, weapon)
{
    decl String:classname[64];
    GetEdictClassname(weapon, classname, sizeof(classname));
    if (StrEqual(classname, "weapon_knife"))
        SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(g_hCvarKnifeSpeed));
    else if (IsValidEntity(client))
        SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 1.0);
}


Спасибо. теперь все ок!

Добавлено через 4 минуты
Блин, поторопился...снова посыпалось
L 02/04/2014 - 09:54:18: [SM] Native "SetEntPropFloat" reported: Entity 1 (1) is invalid
L 02/04/2014 - 09:54:18: [SM] Displaying call stack trace for plugin "knife_speed.smx":
L 02/04/2014 - 09:54:18: [SM] [0] Line 22, knife_speed.sp::OnWeapon()
L 02/04/2014 - 09:54:18: [SM] Native "SetEntPropFloat" reported: Entity 1 (1) is invalid
L 02/04/2014 - 09:54:18: [SM] Displaying call stack trace for plugin "knife_speed.smx":
L 02/04/2014 - 09:54:18: [SM] [0] Line 22, knife_speed.sp::OnWeapon()
 
Последнее редактирование:

NagarD

Участник
Сообщения
411
Реакции
184
Оффтоп
PHP:
#include <sdkhooks>

new Handle:g_hCvarKnifeSpeed = INVALID_HANDLE;

public OnPluginStart()
{
	g_hCvarKnifeSpeed = CreateConVar("sm_knife_speed", "2.0");
}

public OnClientPutInServer(client)
{
	SDKHook(client, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnWeapon(client, weapon)
{
	if (IsValidEntity(client) && IsValidEdict(client))
	{
		decl String:classname[64];
		GetEdictClassname(weapon, classname, sizeof(classname));
		if (StrEqual(classname, "weapon_knife"))
			SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(g_hCvarKnifeSpeed));
		else if
			SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 1.0);
	}
}
 
Последнее редактирование:

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
else if (IsValidEntity(client) && IsValidEdict(client))

А это зачем?! Игрок не является энтити. Это и так понятно.
 

NagarD

Участник
Сообщения
411
Реакции
184
wanted241, так напиши как лучше
 

cangncan

Участник
Сообщения
69
Реакции
4
NagarD, последний раз что ты написал даже не компилируется :(

Уважаемые, ну кто нибудь поправит код????
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
#include <sdkhooks>

new Handle:g_hCvarKnifeSpeed = INVALID_HANDLE;

public OnPluginStart()
{
g_hCvarKnifeSpeed = CreateConVar("sm_knife_speed", "2.0");
}

public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_WeaponSwitch, OnWeapon);
}

public Action:OnWeapon(client, weapon)
{
decl String:classname[64];
GetEdictClassname(weapon, classname, sizeof(classname));
if (StrEqual(classname, "weapon_knife"))
SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", GetConVarFloat(g_hCvarKnifeSpeed));
else if
SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", 1.0);
}
}


Я рак но возможно будет работать
 

Vit_ amin

Добрая душа
Сообщения
1,552
Реакции
741
Исправлено.
 

Вложения

  • knife_speed.sp
    879 байт · Просмотры: 77

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Vit_ amin
PHP:
public Action:Weapon_Function(client, weapon)
{
	if (client > 0)
	{
		decl String:weapon_classname[16];
		GetEdictClassname(weapon, weapon_classname, sizeof(weapon_classname));

		SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", (strcmp(weapon_classname, "weapon_knife", false) == 0) ? GetConVarFloat(g_hCvarKnifeSpeed) : 1.0);
	}
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #17
The End Is Near..., а если игрок сменил оружие (не нож на не нож) ему всё ровно будет скорость ставить 1.0 хотя она и так 1.0. Не лучше ли бул на каждого юзать?
 
Последнее редактирование:

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
R1KO
И что? Ради одной переменной предлагаешь получать значение гравитации у игрока?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #19
The End Is Near..., нет. При установке скорости bool = true;
И при смене оружия if(bool) ставим скорость 1.0 и bool = false;

P.S. Исправил граву на скорость в постах =D
 

cangncan

Участник
Сообщения
69
Реакции
4
товарищи! ну в итоге должно быть так???:
PHP:
#include <sourcemod>
#include <sdkhooks>

new Handle:g_hCvarKnifeSpeed;

public OnPluginStart()
{
    g_hCvarKnifeSpeed = CreateConVar("sm_knife_speed", "1.0", "How Speed Will Be Player whuch used Weapon Knife", FCVAR_NOTIFY, true, 0.1, true, 3.0);
}

public OnClientPutInServer(client)
{
    SDKHook(client, SDKHook_WeaponSwitch, Weapon_Function);
}

public Action:Weapon_Function(client, weapon)
{
    if (client > 0)
    {
        decl String:weapon_classname[16];
        GetEdictClassname(weapon, weapon_classname, sizeof(weapon_classname));

        SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", (strcmp(weapon_classname, "weapon_knife", false) == 0) ? GetConVarFloat(g_hCvarKnifeSpeed) : 1.0);
    }
}
 
Сверху Снизу