Skocz do zawartości
whyind

[Rozwiązane] Problem z kompilacją

Rekomendowane odpowiedzi

Cześć, napisałem sobie prosty plugin (nawet nie wiem czy będzie działał - ma za zadanie slaynąć wszystkich, jeśli dołączy drugi gracz - oczywiście tylko w sytuacji gdy jest jeden gracz i dołączy drugi), ale nie chce się skompilować:

 

public void OnPluginStart()
{
	HookEvent("player_team", EventPlayerTeam);
}

GetPlayerCount()
{
    new players;
    for (new i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i)){
            players++;
		}
    }
    return players;
}

int clientCount = GetPlayerCount();

public Action EventPlayerTeam(Event event, const char[] name, bool dontBroadcast){
	int clientOldTeam = event.GetInt("oldteam");
	if(clientCount == 2){
		if(clientOldTeam == 0){
			ServerCommand("sm_slay @all");
		}
	}
}

 

Errory jakie wyskakują:
xyz.sp(32) : error 010: invalid function or declaration

xyz.sp(32) : error 008: must be a constant expression; assumed zero

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

GetPlayerCount()

nie podałeś typu do tej funkcji 

zmień na

int GetPlayerCount()

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 minuty temu, ogbudowa napisał:

 

GetPlayerCount()

nie podałeś typu do tej funkcji 

zmień na

int GetPlayerCount()

Nie działa ;/

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To chyba wtedy plugin nie będzie miał sensu? Przecież niżej wykorzystuję clientCount do warunku. Pojawi mi się wtedy kolejny error, że: error 017: undefined symbol "clientCount"

 

 

Dobra. Ogarnięte:

przeniosłem:

int clientCount = GetPlayerCount();

do:

 

public Action EventPlayerTeam(Event event, const char[] name, bool dontBroadcast){
	int clientOldTeam = event.GetInt("oldteam");
	int clientCount = GetPlayerCount();
	if(clientCount == 2){
		if(clientOldTeam == 0){
			ServerCommand("sm_slay @all");
		}
	}
}

 

I ustawiłem int dla GetPlayerCount

Edytowane przez whyind

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
public void OnPluginStart()
{
	HookEvent("player_team", EventPlayerTeam);
}

int GetPlayerCount()
{
    int players;
    for (int i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i)){
            players++;
		}
    }
    return players;
}

public Action EventPlayerTeam(Event event, const char[] name, bool dontBroadcast){
	int clientOldTeam = event.GetInt("oldteam");
	int clientCount = GetPlayerCount();
	if(clientCount == 2){
		if(clientOldTeam == 0){
			ServerCommand("sm_slay @all");
		}
	}
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Dziękuje 1
2 minuty temu, whyind napisał:

To chyba wtedy plugin nie będzie miał sensu? Przecież niżej wykorzystuję clientCount do warunku. Pojawi mi się wtedy kolejny error, że: error 017: undefined symbol "clientCount"

zamist clientCount mozesz uzyc GetPlayerCount ();

sorki ze w 2 odpowiedziach ale na telefonie jestem 😞

Edytowane przez Grafit

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Lubię to! 1
10 minut temu, Grafit napisał:
public void OnPluginStart()
{
	HookEvent("player_team", EventPlayerTeam);
}

int GetPlayerCount()
{
    int players;
    for (int i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i)){
            players++;
		}
    }
    return players;
}

public Action EventPlayerTeam(Event event, const char[] name, bool dontBroadcast){
	int clientOldTeam = event.GetInt("oldteam");
	int clientCount = GetPlayerCount();
	if(clientCount == 2){
		if(clientOldTeam == 0){
			ServerCommand("sm_slay @all");
		}
	}
}

 

Właśnie edytowałem post ostatni i zrobiłem dokładnie to samo xD, ale dzięki!

 

 

 

Edit:
Plugin działa, można zamknąć!

Edytowane przez whyind

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