Witam,
posiadamy na serwerze paczkę Linuxa` COD Nowy, która posiada przedmiot Buty Szturmowego sprawiający, że nie słychać naszych kroków. Dodałem funkcjonalność tego przedmiotu do nowo utworzonej klasy i na serwerze testowym postawionym na moim komputerze, gdzie sprawdzam sobie wszystkie zmiany i testuje przed wypuszczeniem na serwer właściwy, wszystko śmiga (sprawdzane z innymi graczami, nie jest tak że tylko ja się sam nie słyszałem i to stwierdzam). Problem jest jednak taki, że na serwerze właściwym zarówno po wrzuceniu bezpośrednio .smx skompilowanego u mnie jak i skompilowaniu tam .sp osobno (na serwerze właściwym przez FTP) kroki słychać. Z racji, że u mnie działa dokładnie ten sam .smx a tam nie to domyślam się, że problem leży po stronie konfiguracji serwera i różnic na moim a na właściwym. Są jakieś komendy które blokują wyłączenie kroków danego klienta? Nie jestem w stanie tego zrozumieć, bo same Buty Szturmowego wyciszają kroki zarówno u mnie na testowym jak i na serwerze właściwym, ale klasa zrobiona na jego podstawie wg poradnika działa tylko u mnie :(
Ocenzurowane jak to działa, bo paczka Linuxa` jest płatna i nie chciałbym wrzucać jak to wygląda całe, a nie ma go na Steamie żeby się skontaktować i zapytać o zgodę (w razie uzyskania zgody to wrzucę całość, ale nie wydaje mi się żeby to było aż tak istotne).
... - cenzura :D
#include <sourcemod>
#include <codmod>
#include <sdktools>
#include <sdkhooks>
... // zmienne do statystyk i czy klient posiada umiejętność klasy czy już wykorzystał (tutaj akurat nie ma aktywnej umiejętności, zawsze jest tak, że nie słychać)
public Plugin:myinfo =
{
name = nazwa,
author = "Linux`",
description = "Cod Klasa",
version = "1.0",
url = "http://steamcommunity.com/id/linux2006"
};
public OnPluginStart()
{
... // rejestrowanie klasy
AddNormalSoundHook(DzwiekiGracza);
}
public OnClientPutInServer(client)
{
if ... // sprawdzanie czy jest fake clientem
SendConVarValue(client, FindConVar("sv_footsteps"), "0");
}
public ... // klasa jest włączona
{
... // zmienna, że klient gra daną klasą
}
public ... // klasa jest wyłączona
{
... // zmienna, że klient nie gra daną klasą
}
public Action:DzwiekiGracza(clients[64], &numclients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
{
if ... // sprawdzanie czy jest fake clientem
return Plugin_Continue;
if ... // sprawdzanie warunków wypuszczenia dźwięku do innych graczy
{
if // sprawdzanie, czy ma umiejętność (tak jak pisałem wyżej zawsze ją ma)
EmitSoundToAll(sample, entity);
return Plugin_Handled;
}
return Plugin_Continue;
}