inklesspen
Не пишу модули под LSD :с
- Сообщения
- 1,775
- Реакции
- 966
- Автор ресурса
- #1
Получаем функцией GetKeyValue(int entity, const String:name[], String:buf[], int size)
ОБЯЗАТЕЛЬНО func_getkeyvalue.txt ПОЛОЖИТЬ В gamedata ПАПКУ
Пример для плагина
Для вас оставил готовый плагин, достаточно пихнуть в начало
native ICNative_GetKeyValue(int entity, const String:name[], String:buffer[], int size)
P.S. Если используете сигнатуру и у вас винда, то работать будет только на CS:GO
PHP:
#include <sdktools>
new Handle:fGetKeyValue = INVALID_HANDLE
public OnPluginStart()
{
StartPrepSDKCall(SDKCall_Entity)
new Handle:conf = LoadGameConfigFile("func_getkeyvalue.txt")
PrepSDKCall_SetFromConf(conf, SDKConf_Virtual, "CBaseEntity_GetKeyValue") // Можно вместо SDKConf_Virtual поставить SDKConf_Signature,
CloseHandle(conf)
PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer)
PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer)
PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Plain)
fGetKeyValue = EndPrepSDKCall()
}
GetKeyValue(int entity, const String:name[], String:buf[], int size)
{
SDKCall(fGetKeyValue, entity, name, buf, size)
}
Пример для плагина
PHP:
new Handle:fGetKeyValue = INVALID_HANDLE
public OnPluginStart()
{
StartPrepSDKCall(SDKCall_Entity)
new Handle:conf = LoadGameConfigFile("func_getkeyvalue.txt")
PrepSDKCall_SetFromConf(conf, SDKConf_Virtual, "CBaseEntity_GetKeyValue") // Можно вместо SDKConf_Virtual поставить SDKConf_Signature,
CloseHandle(conf)
PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer)
PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer)
PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Plain)
fGetKeyValue = EndPrepSDKCall()
}
public OnEntityCreated(int entity, const String:classname[])
{
if(StrEqual(classname, "func_breakable"))
SDKHook(entity, SDKHook_OnTakeDamagePost, OnTakeDamage_FuncBreakable)
}
public OnTakeDamage_FuncBreakable(int victim, int client, int inflictor, float damage, int damagetype)
{
if(client<65&&client>0&&IsClientInGame(client))
PrintHintText(client, "Health: %i", GetKeyValueInt(victim, "health"))
}
int GetKeyValueInt(int entity, const String:name[])
{
decl String:value[64]
GetKeyValue(entity, name, value, 64)
return StringToInt(value)
}
GetKeyValue(int entity, const String:name[], String:buf[], int size)
{
SDKCall(fGetKeyValue, entity, name, buf, size)
}
Для вас оставил готовый плагин, достаточно пихнуть в начало
native ICNative_GetKeyValue(int entity, const String:name[], String:buffer[], int size)
PHP:
param1 Клиент
param2 Название ключа
param3 Буффер для значения
param4 Макс.размер буффера
P.S. Если используете сигнатуру и у вас винда, то работать будет только на CS:GO
Последнее редактирование: