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

camerdisco

Użytkownik
  • Postów

    219
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez camerdisco

  1. Nie testowałem, ale powinno działać i powinieneś mniej więcej zauważyć mechanikę działania: #include <sourcemod> int gTime[MAXPLAYERS + 1]; Handle gCounting[MAXPLAYERS + 1]; Handle gInfo[MAXPLAYERS + 1]; public void OnPluginStart() { RegConsoleCmd("sm_testinfo", Test); } public Action Test(int client, int args) { gTime[client] = 15; gInfo[client] = CreateTimer(0.1, ShowInfo, GetClientUserId(client), TIMER_REPEAT); gCounting[client] = CreateTimer(1.0, Count, GetClientUserId(client), TIMER_REPEAT); } public Action ShowInfo(Handle timer, any userid) { int client = GetClientOfUserId(userid); if (!IsClientInGame(client))return Plugin_Stop; if (gTime[client] <= 0)return Plugin_Stop; PrintHintText(client, "Zostało Ci %i sekund", gTime[client]); return Plugin_Continue; } public Action Count(Handle timer, any userid) { int client = GetClientOfUserId(userid); if (!IsClientInGame(client))return Plugin_Stop; gTime[client]--; return Plugin_Continue; }
  2. Zapętlasz to poprzez kolejny powtarzający się Timer. Obniżanie zrobisz po prostu poprzez np. czas[client]--; - gdzie czas to nazwa zmiennej z czasem.
  3. Tworzysz globalny int/float z czasem, przy starcie umiejętności tworzysz powtarzający się co sekundę timer, który przed obniżał o 1 sekundę tą globalną zmienną, a w Princie będziesz po prostu wyświetlał tą globalną zmienną.
  4. http://cplusplus.com/reference/clibrary/ctime/strftime.html
  5. Podany przez Ciebie czas to czas unixowy, aby wyprowadzić z niego normalny czas musisz użyć owej funkcji: https://sm.alliedmods.net/new-api/sourcemod/FormatTime btw. Pisałem wcześniej o pobieraniu danych z MySQLa, gdyż nie do końca zrozumiałem twojego problemu, uważałem że chcesz przy każdym wejściu gracza na serwer pobierać jego czas bana jeśli owy jest i wyświetlać mu to, jeśli jednak chcesz pokazać to jedynie przy nadaniu bana to faktycznie musisz edytować tylko kilka linijek.
  6. Jeśli sam mastah nie udostępni Ci kodu, to ktoś będzie musiał to wykonać, raczej nie za darmo, jeśli chciałbyś sam wykonać to, to polecam na początku podstawy mysqla + czytanie pluginów obsługujących mysqla, przeanalizuj sobie również sam plugin od sourcebansów.
  7. Najzwyczajniej "fetchujesz" dane z sqla.
  8. https://sm.alliedmods.net/new-api/console/RegConsoleCmd Jak widzisz ten argument to: ConCmd callback A function to use as a callback for when the command is invoked. Jeśli coś ma callback to ten callback musi zostać utworzony w pluginie, w tym przypadku będzie to: public Action cmd_admini(int client, int args) { //funkcja }
  9. CS:GO SDK->Hammer->File->New->Tools->Sound browser
  10. Udostępnianie komuś token api nie jest zbyt bezpieczne, ew. można go zmienić po transakcji.
  11. Masz na myśli, że: - Co ~2 minuty będzie sprawdzać czy stream jest włączony, jeśli tak to wysyła na serwerze informację do wszystkich o streamie? Obecnie niczego takiego publicznego nie ma(mogę się zawsze mylić, ale wątpię), ale za drobną opłatą byłbym skłonny napisać coś takiego bez problemu.
  12. Nie wiem czy nadawałeś chmody: chmod -R 755 /home/serwer
  13. Tak, ale błąd wskazuje, że nie ma tego pliku w katalogu /linux32, sugeruję pobrać jeszcze raz steamcmd, ew. wejdź do linux32 i pokaż tam output z ls -lah
  14. https://forums.alliedmods.net/showthread.php?p=2533212
  15. Ale przecież to nie ma najmniejszego sensu, wszystko jest dostępne w internecie, to będzie na zasadzie - wynalezienie koła po raz drugi.
  16. Cóż, z chęcią udowodniłbym Ci że się da, ale po co tracić czas, na coś co już istnieje i pisać to od 0?(Przy okazji pewnie większość funkcji ktoś zaczerpnąłby z istniejącego już). Podpisuję się pod @Qesik, wszystko to co zostało wymienione jest dostępne w internecie pod pierwszymi wynikami w googlu. Podsumowując, to co wymieniłeś nie stworzy unikalnego serwera JB.
  17. Napisał to sam asherkin czyli obecnie jeden z głównych devów SMa, także śmiem mu wierzyć :P Ale tak naprawdę to jest to kwestia do przetestowania, jak ktoś ma tyle wolnego czasu i chciałby :D Tak naprawdę to są takie standardy kodowania jak w phpie standardy PSR i np. ja po prostu będę się ich trzymał.
  18. #define LoopAllPlayers(%1) for(int %1=1;%1<=MaxClients;++%1)\ if(IsClientInGame(%1) && !IsFakeClient(%1)) stock int GetUserFromAuthID(int authid) { LoopAllPlayers(i) { char authstring[50]; GetClientAuthId(i, AuthId_Steam3, authstring, sizeof(authstring)); char authstring2[50]; IntToString(authid, authstring2, sizeof(authstring2)); if(StrContains(authstring, authstring2) != -1) { return i; } } return -1; } Wracając do waszego tematu, w temacie który podałem w 2 ostatnich postach widać o co z tym chodzi, zwiększyli faktycznie do 65, ale: That was for 64 players + SourceTV, you still need to +1 for client index arrays. Można powiedzieć, że MAXPLAYERS+1 przyjęło się za pewien standard i po prostu i tak każdy go stosuje, poza tym zawsze lepiej mieć pewność w działaniu skryptu.
  19. Tutaj masz to wyjaśnione: https://forums.alliedmods.net/showthread.php?t=169765
  20. Z tego co pamiętam to clantag ustawia się dopiero po 1 spawnie gracza, także nie przejdzie to.
  21. Najszybszym i najlepszym sposobem jest użycie steamworks, a konkretniej natywu SteamWorks_GetUserGroupStatus Gotowego rozwiązania Ci nie pokazuje, ale zostaje Ci sprawdzenie argumentów tej funkcji i utworzenie callbacka, w którym przestawisz jakiegoś boola, jeśli gracz jest w grupie.
  22. camerdisco

    Błędne sp

    @T1LT3D nie bardzo, można mu nadać ilość min, ale cod_class_skill_used(client) użycie skilla się nie wywoła z tej klasy i tak.
  23. camerdisco

    Błędne sp

    Bez różnicy, chyba że jesteś turbo-oszczędzaczem kodu.
  24. camerdisco

    Błędne sp

    public cod_class_enabled(client) { ma_klase[client] = false; ilosc_min_gracza[client] = 3; if(GetUserFlagBits(client) & ADMFLAG_RESERVATION) { ma_klase[client] = true; return COD_CONTINUE; } PrintToChat(client, "%s Klasa dostępna tylko dla posiadaczy VIP", PREFIX); return COD_STOP; }
  25. Taki sposób był może i dobry, ale 5 lat temu. Po to powstają takie rzeczy jak SCP, gdzie do dyspozycji masz forward, który może być wielokrotnie używany i może posłużyć do wielu rzeczy, przy powyższym przykładzie ustawi się TAG, ale jakby ktoś w przyszłości dodać prefix z np. lvlem z coda bądź cokolwiek to będzie zmuszony do grzebania w tym. Kolejna rzecz to prostota, użycie forwardu jest dużo prostsze niż hookowanie komend etc. Co kto lubi ;)
×
×
  • Dodaj nową pozycję...