Skocz do zawartości
szogun

[Rozwiązane] szybkość gracza

Rekomendowane odpowiedzi

To ja znów...

 

Jak zwiększyć graczu szybkość, próbowałem tak lecz to nie działa a moja googlowanie coś dziś marnie idziem, a wszystko wywołuje w Event_Player_Spawn

 

else if(g_iRank[client] == 7)
	SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.9);

else if(g_iRank[client] == 7)
	SetEntProp(client, Prop_Send, "m_flLaggedMovementValue", 1.9);

 

 

Edytowane przez szogun

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wywołuj funkcję w evencie lub dodaj timer.

HookEvent("round_start", Event_RoundStart);

 

Edytowane przez Master

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dokładnie tak jak napisałeś. Jeżeli nie działa, to inny plugin lub mapa może wpływać na szybkość biegania.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Trochę tego taimera nie mogę rozgryźć

 

Mam event player spawn, który wygląda tak

public Action:Event_Player_Spawn(Handle event, char[] name, bool dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	GiveWeapon(client);
	if (!(0 < client <= MaxClients)) return;
	if ( !IsClientInGame(client) ) return;
	if( IsFakeClient(client) ) return;

	CheckBonus(client);
	CheckLeczenie(client);
	CheckSpeed(client);

}

Następnie są wywołane bonusy,leczenie i na sam koniec powinna być prędkość gracza, która wygląda tak

 

void CheckSpeed(int client)
{
	CreateTimer(3.0, Timer_SpeedPlayers, _, TIMER_REPEAT);
}

public Action Timer_SpeedPlayers(Handle timer, any client)
{
	if(g_iRank[client] == 7)
		SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.9);

	return Plugin_Continue;
}

Jak chce to prze kompilować

 

Cytat


plugin.sp(1430) : warning 203: symbol is never used: "client"

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@szogun Przy tworzeniu timera musisz podać dane, które chcesz wysłać w tym timerze. W naszym przypadku będzie to client. Dodatkowo bezsensu używasz flagi TIMER_REPEAT, chyba nie chcesz, aby funkcja wykonywała się co 3 sekundy. Jeszcze jedna uwaga jak już używasz nowej składni to stosuj ją w całym pluginie.

 

 

 

public Action Event_Player_Spawn(Event event, char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));

    if(!client)
        return;

    if(IsFakeClient(client))
        return;

    GiveWeapon(client);
    CheckBonus(client);
    CheckLeczenie(client);
    CheckSpeed(client);
}

void CheckSpeed(int client)
{
    CreateTimer(3.0, Timer_SpeedPlayers, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE);
}

public Action Timer_SpeedPlayers(Handle timer, any clientUserId)
{
    int client = GetClientOfUserId(clientUserId);

    if(!client)
        return;

    if(g_iRank[client] == 7)
        SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", 1.9);
}

 

Edytowane przez Master

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Cytat

plugin.sp(1430) : warning 203: symbol is never used: "client"

Prawdopodobnie ten warning wyskakuje przez to:

void CheckSpeed(int client)
{
	CreateTimer(3.0, Timer_SpeedPlayers, _, TIMER_REPEAT);
}

Funkcja jest z argumentem client, mimo że ten argument nie jest użyty wewnątrz funkcji.

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