Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

sebuli

Użytkownik
  • Postów

    12
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Odpowiedzi opublikowane przez sebuli

  1. naXe, twój plugin zawiera hookowanie śmierci w MapStart, przez to event wykonuje sie po kilka razy w zalezności kiedy ostatni raz był serwer pusty (w hibernacji). U mnie to powodowało np dawanie większej ilości pieniędzy za kill, bo event został wykonywany np. 5 razy (jeśli było 5 zmian mapy od restartu serwera lub odhibernowania). 

     

    Wg mnie event powinien być przeniesiony do PluginStart, bo to rozwiązuje problem. 

  2. Problem zażegnany na 99%. Okazuje się, że dałem hookevent śmierci w MapStart zamiast PluginStart, i przez to gdy gracze są na serwerze i mapa ciągle się zmienia to załóżmy mapa się zmieniła już 5 razy od ostatniej hibernacji serwera (czyli jak serwer pusty), więc event śmierci wykonywał się aż 5 razy. Stąd takie sumy!

     

    Swoją drogą, czasami nie wiem co mogę hookować w MapStart a co w PluginStart, ale zauważyłem, że np PlayerSpawn w MapStart też potrafi wykonać się mnóstwo razy, więc widocznie powinien być w PluginStart.

     

    I wiem, że nie powinienem pisać post pod postem, ale chce żebyście wiedzieli, że coś nowego pojawiło się w mojej kwestii.

  3. Ogólnie nie jestem zwolennikiem stosowania samego return jeśli warunek jest spełniony, bo i tak i tak niektóre rzeczy wykonują się po kilka razy wtedy. Lepiej mi już użyć PLUGIN_HANDLED.

     

    Wiecie gdzie był problem? Przynajmniej teraz od wczoraj wszystko działa.

    HookEvent("player_death",  Event_PlayerDeath, EventHookMode_Post);

    Dodałem tryb na Post i już nie ma problemu. Tak event wykonywał się kilka razy i to nie wina IsValidPlayer, bo to jest w porządku, mega tępy nie jestem żeby w pętli coś gdzieś przepuścić a potem się dziwić, że coś parę razy się wykonuje :D

     

    Także dzięki za pomoc. Jeśli jednak nie uda się z tym co tutaj zaprezentowałem to znowu się odezwę w tym temacie :D

     

    EDIT:

     

    Niestety, problem nadal się pojawia, a kurcze nie ma żadnego pluginu, który ustala kase. Nie ma nic co by tą kasę zmieniało. Po prostu jakiś dziwny bug!

  4. Cześć,

     

    mam w pluginie od vipa event, gdzie gracz dostaje za killa +300$, i raz działa poprawnie, a raz daje wygórowane sumy np. równe 3000$ albo 3900$, naprawdę różnie.

     

    Tak wygląda event:

     

    public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
        
        if(!IsValidPlayer(attacker) || attacker == GetClientOfUserId(GetEventInt(event, "userid"))) return;
        
        new max = 16000;
        
        new account = GetEntProp(attacker, Prop_Send, "m_iAccount");
        
        account += 300;
        
        if(account < max)
            SetEntProp(attacker, Prop_Send, "m_iAccount", account);
        else
            SetEntProp(attacker, Prop_Send, "m_iAccount", max);

        PrintHintText(attacker, "[VIP] Otrzymłeś +300$ za killa.");
    }

     

    Nie wiem jak go wstawić w znacznik code, może ktoś podpowie.

     

     

     

×
×
  • Dodaj nową pozycję...