Skocz do zawartości
Maroxx

[Rozwiązane] Tag na SteamID

Rekomendowane odpowiedzi

Cześć, napisałem dzisiaj swój piewszy plugin, nie jest on jakiś mega wymagający. Po wgraniu wywaliło cały serwer.

#include <sourcemod>
#include <multicolors>
#include <cstrike>


public void OnPluginStart() {
    RegConsoleCmd("say", Chat);
}

public Action Chat(int client, int args) {
    char buffer[512];
    GetCmdArgString(buffer, sizeof(buffer));
    StripQuotes(buffer);
    char steamIdBuffer[64];
GetClientAuthId(client, AuthId_Steam2, steamIdBuffer, sizeof(steamIdBuffer));

if (StrEqual(steamIdBuffer, "STEAM_1:1:528777533", true)) {

    CPrintToChatAll("%s%s%N{default} %s", "{green}TAG ", GetClientTeam(client)== CS_TEAM_T ? "{red}" : "{blue}", client, buffer);

    return Plugin_Handled;
}


}

Może ktoś by podpowiedział co robie zle

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Samego say nie musisz rejestrować, wystarczy zadeklarować akcję OnChatMessage.

 

#include <sourcemod>
#include <multicolors>
#include <cstrike>

public Action OnChatMessage(&author, Handle recipients, String:name[], String:message[])
{
	if (IsValidPlayer(author))
	{
		char steamIdBuffer[64];
		GetClientAuthId(client, AuthId_SteamID64, steamIdBuffer, sizeof(steamIdBuffer));
		
		if (StrEqual(steamIdBuffer, "STEAM_1:1:528777533", true))
		{
			Format(name, MAXLENGTH_NAME, "�%s", name);
			new MaxMessageLength = MAXLENGTH_MESSAGE - strlen(name) - 5;
			Format(name, MaxMessageLength, " TAG %s", name);
			return Plugin_Changed;
		}
		else
		{
			Format(name, MAXLENGTH_NAME, "�%s", name);
			new MaxMessageLength = MAXLENGTH_MESSAGE - strlen(name) - 5;
			Format(name, MaxMessageLength, " %s", name);
			return Plugin_Changed;
		}
	}
	return Plugin_Continue;
} 

stock bool IsValidPlayer(int client)
{
	if (client >= 1 && client <= MaxClients && IsClientConnected(client) && !IsFakeClient(client) && IsClientInGame(client))
		return true;
	
	return false;
}

To powinno zadziałać.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oprócz tego, że white space jest niekoniecznie odpowiedni w paru miejscach i funkcja Chat nie zwraca wartości w przypadku nie wejścia do warunku(naprawiane przy kompilacji), to wszystko jest ok. Nie powinno crashować serwera. Zobacz logi.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
8 godzin temu, PyNiO napisał:

Samego say nie musisz rejestrować, wystarczy zadeklarować akcję OnChatMessage.

 

#include <sourcemod>
#include <multicolors>
#include <cstrike>

public Action OnChatMessage(&author, Handle recipients, String:name[], String:message[])
{
	if (IsValidPlayer(author))
	{
		char steamIdBuffer[64];
		GetClientAuthId(client, AuthId_SteamID64, steamIdBuffer, sizeof(steamIdBuffer));
		
		if (StrEqual(steamIdBuffer, "STEAM_1:1:528777533", true))
		{
			Format(name, MAXLENGTH_NAME, "�%s", name);
			new MaxMessageLength = MAXLENGTH_MESSAGE - strlen(name) - 5;
			Format(name, MaxMessageLength, " TAG %s", name);
			return Plugin_Changed;
		}
		else
		{
			Format(name, MAXLENGTH_NAME, "�%s", name);
			new MaxMessageLength = MAXLENGTH_MESSAGE - strlen(name) - 5;
			Format(name, MaxMessageLength, " %s", name);
			return Plugin_Changed;
		}
	}
	return Plugin_Continue;
} 

stock bool IsValidPlayer(int client)
{
	if (client >= 1 && client <= MaxClients && IsClientConnected(client) && !IsFakeClient(client) && IsClientInGame(client))
		return true;
	
	return false;
}

To powinno zadziałać.

Dlaczego wciąż piszesz w starej składni? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@VestSmart Jakoś się do niej przyzwyczaiłem i nie przeszkadza mi to. W sumie prawie żadnych moich pluginów nie udostępniam i robię je tylko dla siebie, więc to już tylko moja sprawa czy chce  w nowej czy starej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...