Skocz do zawartości
Kerel 303

[Rozwiązane] error 100: function prototypes do not match

Rekomendowane odpowiedzi

Witam od jakiegoś czasu w kompilacji przeszkadza mi błąd nr. 100 i nie wiem co on oznacza. Proszę o pomoc i z góry dziękuję 🙂

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <sourcemod>
#include <multicolors>

public void OnPluginStart() {
    RegAdminCmd("sm_v", invisibility, ADMFLAG_ROOT);
}

public Action invisibility(int client, int args, bool invisible) {
    if (invisible == false) {
        SetEntityRenderMode(client, RENDER_TRANSCOLOR);
        SetEntityRenderColor(client, 0, 0, 0, 0);
        CPrintToChat(client, "{blue}Jesteś teraz niewidzialny");
        invisible = true;
        return Plugin_Handled;
    }
    else if (invisible == true) {
        SetEntityRenderMode(client, RENDER_TRANSCOLOR);
        SetEntityRenderColor(client, 255, 255, 255, 255);
        CPrintToChat(client, "{lightred}Jesteś teraz widzialny");
        invisible = false;
        return Plugin_Handled;
    }
    return Plugin_Handled;
}

błędy: 

niewidzialnosc.sp(5) : error 100: function prototypes do not match

Edytowane przez Kerel 303

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 godzinę temu, Kerel 303 napisał:

public Action invisibility(int client, int args, bool invisible) {

Komenda przyjmuje tylko int client, int args nie wiem skąd invisible.
Jeżeli chcesz to ma być globalne zrób po prostu globalną zmienną bool invisible;
Jeżeli ma być dla danego gracza, który wpisze komendę bool invisible[MAXPLAYERS+1];
a w komendzie invisible[client] = true/false;
 

Spoiler

Dla jednej osoby:
 

#include <multicolors>

bool invisible[MAXPLAYERS + 1];

public void OnPluginStart() {
	RegAdminCmd("sm_v", invisibility, ADMFLAG_ROOT);
}

public Action invisibility(int client, int args) {
	if (!invisible[client]) {
		SetEntityRenderMode(client, RENDER_TRANSCOLOR);
		SetEntityRenderColor(client, 0, 0, 0, 0);
		CPrintToChat(client, "{blue}Jesteś teraz niewidzialny");
		invisible[client] = true;
		return Plugin_Handled;
	}
	else if (invisible[client]) {
		SetEntityRenderMode(client, RENDER_TRANSCOLOR);
		SetEntityRenderColor(client, 255, 255, 255, 255);
		CPrintToChat(client, "{lightred}Jesteś teraz widzialny");
		invisible[client] = false;
		return Plugin_Handled;
	}
	return Plugin_Handled;
} 

public void OnClientDisconnect(int client)
{
	invisible[client] = false;
}

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli zajrzysz w dokumentację zauważysz, że w argumentach(prototypie właśnie) handlera RegConsoleCmd nie ma żadnego bool'a. Musisz poprawić kod zgodnie z zaleceniami Bruma

 

Muszę Cię pochwalić, bo widać gołym okiem że próbujesz tworzyć coś samemu. Ogólne zrozumienie programowania zajmie Ci trochę czasu, ale na pewno szybko się z tym uporasz, jeśli będziesz popełniał dużo błędów i uczył się na nich. Good job 😁

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie.

 

Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.

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ę...