Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Не работает плагин
ORdli Дата: Четверг, 16.06.2022, 23:59:10 | Сообщение # 1
Сообщений: 11
Репутация: 0 [ +/- ]
Есть плагин который проигрывает 3 рандомных звука при падение, но конкретно в этой игре они не проигрываются, тестил его в Half-life 2 deathmatch, CSS, FoF. там все работает

исходник плагина будет ниже

KeyValues kv;

#include <sdktools>
#include <sdkhooks>

ArrayList sounds;

public void OnPluginStart()
{
for(int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i)) OnClientPutInServer(i);
}
}

public void OnConfigsExecuted()
{
if(sounds != null)
{
delete sounds;
}

sounds = new ArrayList(ByteCountToCells(PLATFORM_MAX_PATH));

if(kv != null)
delete kv;

kv = new KeyValues("sample");

char soundfile[PLATFORM_MAX_PATH];
BuildPath(Path_SM, soundfile, sizeof(soundfile), "configs/hitsound.txt");

if(!kv.ImportFromFile(soundfile))
{
SetFailState("Missing KeyValue file: \"configs/hitsound.txt\"");
}

kv.Rewind();

if(!kv.GotoFirstSubKey(false))
{
SetFailState("could'nt enter in first subkey")
}

char buffer[PLATFORM_MAX_PATH];

do
{
kv.GetString(NULL_STRING, buffer, sizeof(buffer));
//PrintToServer("%s %i", buffer, sounds.Length);

if(strlen(buffer) < 5)
continue;

sounds.PushString(buffer);

PrecacheSound(buffer);

Format(buffer, sizeof(buffer), "sound/%s", buffer);
AddFileToDownloadsTable(buffer);
}
while(kv.GotoNextKey(false))
}

public void OnClientPutInServer(int client)
{
SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost);
}

public void OnTakeDamagePost(int victim, int attacker, int inflictor, float damage, int damagetype)
{
if(damagetype == DMG_FALL)
{
int random = GetRandomInt(1, sounds.Length-1);

if(sounds.Length <= 1)
{
random = 0;
}

char buffer[PLATFORM_MAX_PATH];
sounds.GetString(random, buffer, sizeof(buffer));
//PrintToServer("array random %i %s", random, buffer);
EmitSoundToAll(buffer, victim);
}
}
 
  • Страница 1 из 1
  • 1
Поиск: