Witam, oto pierwszy temat z serii pozbycie się CurWeapon. A więc, postanowiłem usunąć z swojego silnika event CurWeapon i zastąpić go kanapką (optymalizacja). Niby zmiana prędkości/speeda gracza w hamsandwich działa, lecz mam pewien bug, który mam nadzieję, jakoś uda się naprawić.
Sypne kodem, aby nie było wróżenia z fusów.
Do zmiany/resetowania prędkości/speeda gracza użyłem:
RegisterHam(get_player_resetmaxspeed_func(), "player", "CS_Player_ResetMaxSpeed_Post", 1);
Next:
Ham:get_player_resetmaxspeed_func(){
#if defined Ham_CS_Player_ResetMaxSpeed
return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame;
#else
return Ham_Item_PreFrame;
#endif
}
Next:
public CS_Player_ResetMaxSpeed_Post(id)
{
if(!is_user_alive(id))
return;
UstawSzybkosc(id);
}
Next:
public PoczatekRundy()
{
freezetime = false;
for(new id=0;id<=32;id++)
{
if(!is_user_alive(id))
continue;
Display_Fade(id, 1<<9, 1<<9, 1<<12, 0, 255, 70, 100);
set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC);
switch(get_user_team(id))
{
case 1: client_cmd(id, "spk QTM_CodMod/start2");
case 2: client_cmd(id, "spk QTM_CodMod/start");
}
}
}
Next:
public UstawSzybkosc(id)
{
id -= id>32? ZADANIE_USTAW_SZYBKOSC: 0;
if(klasa_gracza[id] && !freezetime)
set_pev(id, pev_maxspeed, szybkosc_gracza[id]);
}
To jest cały kod związany z prędkością gracza.
Wyżej wspomniałem, iż owa opcja posiada pewien bug, a więc jeżeli gracz dołączy do teamu i wybierze jakąś klasę to automatycznie ustawia mu się szybkość z sv_maxspeed. Jeżeli serwer ma sv_maxspeed "9999" to serwer ustawi mu taką samą prędkość jaką ma w cvarze. Ten bug jest raczej tylko raz (gdy gracz dołączy do teamu i wybierze klase), chcę dodać, iż owy bug ustaje jak się zmieni bronie np. z slota 1 na slot 2, gracz zrespi się na nowo jak zginie itd. to posiadamy już normalną prędkość taką jaką powinniśmy mieć.
Teraz nasuwa się pytanie, jak usunąć ten bug?
Pozdrawiam.


Dodatki SourceMod



Temat jest zamknięty
















