Jump to content
assignment_ind Existing user? Sign In

Sign In



person_add Sign Up
Go-Code.pl - Support SourceMod i Pluginy CS:GO

MAGNET

Administrator
  • Content Count

    501
  • Joined

  • Last visited

  • Days Won

    85

Everything posted by MAGNET

  1. Tablice dynamiczne w dokumentacji Formatowanie czasu Poradnik o tablicach dynamicznych na forum
  2. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  3. Wiadomość wygenerowana automatycznie Temat został zamknięty i przeniesiony do działu "Kosz". Powodem jest złamanie regulaminu naszego forum. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  4. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  5. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  6. Jeśli wszystkie HUDy tworzysz samodzielnie i masz nad nimi kontrole, to spokojnie możesz używać ShowHudText, bo będziesz wiedział gdzie używasz kanału 1-ego, a gdzie 4-ego. Sync mimo wszysto na bezpiecznie ^^
  7. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  8. Nie oczekuj ze dostaniesz odpowiedzi na "e bo nie działa help" . Musisz dać z siebie coś więcej, poszukać errorów, powiedziec jak to wgrales etc.
  9. @EDIT ten vtex to kawał szajsu, bo nic nie chce działać... dla potomnych tutaj lepszy tutorial: https://steamcommunity.com/sharedfiles/filedetails/?id=1288408087
  10. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  11. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  12. Czołem Czy ktoś się orientuje jak się animuje sprite'y/overlaye? Może ma jakiś poradnik gotowy albo krótko mi powie jak przebiega taki proces? Z góry dziena ^^
  13. Też się musiałem chwilę zastanowić dlaczego to nie działa, ale znalazłem wyjaśnienie: Kiedy chcesz zacząć malować to naciskasz dwa klawisze, czyli shift i e. Zauważ, że praktycznie nigdy nie naciśniesz dwóch klawiszy idealnie w tym samym momencie. Z tego powodu, najpierw funkcja uruchamia się z wciśniętym IN_USE, a dopiero potem drugi raz z IN_USE oraz IN_SPEED (lub odwrotnie). Wówczas spełnia się ten warunek: if ((buttons & (IN_USE|IN_SPEED)) == (IN_USE|IN_SPEED)) niestety, wchodząc do kolejnego, zagnieżdżonego warunku masz już takie coś: if (!(g_iLastButtons[client] & IN_USE) && !(g_iLastButtons[client] & IN_SPEED)) lastButtons przechowuje zwyczajnie informacje jakie klawisze trzymałeś w ostatnim wywołaniu funkcji OnPlayerRunCmd. W momencie kiedy trzymasz obydwa klawisze w zmiennej 'buttons' będzie IN_USE oraz IN_SPEED, natomiast w lastButtons...tylko jeden klawisz. Dlatego właśnie if nigdy nie przechodzi i nie rozpoczyna się proces malowania. Po co w ogóle jest ten warunek? Ponieważ TraceEye(client, g_fLastPainter[client]); służy do rozpoczęcia procesu malowania. Później mógłbyś trzymać shift oraz e i przykładowo poruszać się WSAD - gdyby tego zagnieżdżonego warunku nie było, TraceEye uruchamiałby się za każdym razem. Rozwiązanie które teraz przychodzi mi do głowy (może da się to zrobić lepiej, ale to co wymyśliłem jest w miarę sensowne) to stworzenie dwóch globalnych zmiennych typu bool: paintEnabled oraz lastPaintEnabled. lastPaintEnabled będzie działał podobnie do lastButtons - sprawdza, czy malowanie zaczęło być dozwolone przy ostatnim wywołaniu OnPlayerRunCmd i będzie zapobiegało wielokrotnemu wywoływaniu TraceEye: // dodaj sobie do globalnych bool paintEnabled[MAXPLAYERS]; bool lastPaintEnabled; public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon) { if (!g_bEquipt[client]) return Plugin_Continue; if (!gc_bEnable.BoolValue) return Plugin_Continue; if ((buttons & (IN_USE|IN_SPEED)) == (IN_USE|IN_SPEED)) { if (!lastPaintEnabled[client]) { TraceEye(client, g_fLastPainter[client]); g_bPainterUse[client] = true; paintEnabled[client] = true; } } else if ((g_iLastButtons[client] & IN_USE) && (g_iLastButtons[client] & IN_SPEED)) { g_fLastPainter[client][0] = 0.0; g_fLastPainter[client][1] = 0.0; g_fLastPainter[client][2] = 0.0; g_bPainterUse[client] = false; paintEnabled[client] = false; } g_iLastButtons[client] = buttons; lastPaintEnabled[client] = paintEnabled[client]; return Plugin_Continue; } Sprawdź czy to działa w ogóle, bo musze zmykać i nie przekminiłem tego do końca
  14. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  15. To fajne pytanie, bo zahacza mocno o operacje bitowe Jeśli wcześniej nie operowałeś na bitach i chcesz dowiedzieć się więcej, możesz poczytać sobie o tym tutaj: Zakładając, że wiesz już o co chodzi, możemy przejść dalej... Aby wykryć naciśnięcie klawiszy, najlepiej użyć funkcji: OnPlayerRunCmd public Action OnPlayerRunCmd(int client, int & buttons, int & impulse, float vel[3], float angles[3], int & weapon, int & subtype, int & cmdnum, int & tickcount, int & seed, int mouse[2]) { // tutaj kod... } zmienna buttons zawiera wszystkie informacje o naciśniętych przyciskach W normalnej sytuacji, gdybyśmy chcieli przykładowo sprawdzić czy gracz naciska tylko klawisz E, robi się to tak: if (buttons & IN_USE) { ..... } Gdyby natomiast interesowało nad naciśnięcie dwóch klawiszy naraz, po prostu używamy ANDa: if (buttons & IN_USE && buttons & IN_SPEED) { .... } Ilość ampersantów '&' jest trochę przerażająca, ale jeśli ciężko to rozszyfrować można sobie pododawać nawiasy: if ((buttons & IN_USE) && (buttons & IN_SPEED)) { .... } @EDIT Można to załatwić jednym warunkiem: if ((buttons & (IN_USE|IN_SPEED)) == (IN_USE|IN_SPEED)) { ... } Albo ładniej: int yourFlags = IN_USE|IN_SPEED; if ((buttons & yourFlags) == yourFlags) { ... }
  16. MAGNET

    15. Timery

    Dzieje się tak dlatego, że PrintToChat (i wszystkie jego odmiany) działają tak, że każda wpisana na czat fraza "sama dodaje nową linię" Dlatego każde użycie PrintToChat to de facto nowa linia Nie używaj \n tylko zwyczajnie wypisuj po kolei czego potrzebujesz, a jeśli chciałbyś w jednym miejscu w kodzie zrobić dwie linie - po prostu dwa razy użyj PrintToChat
  17. Korzystając ze strony CSGO Models i pobierając z niej skiny zauważyłem, że składają się one z wielu pomniejszych plików, których pobieranie muszę wymuszać graczom przez AddFilesToDownloadsTable. Z racji, iż jest to strasznie upierdliwe zadanie (szukanie wszystkich ścieżek), można na serwer wgrać plugin, który będzie pobierał całą zawartość folderu. Ja jednak stwierdziłem, że napiszę prosty skrypcik, który wszystkie ścieżki będzie rekurencyjnie pobierał i wypluwał ładny wynik, który po prostu kopiuj/wklejam do OnMapStart Jest to skrypt pythonowy, który działa najzwyczajniej w świecie tak, że rekurencyjnie przeszukuje wszystkie foldery w lokalizacji w której obecnie się znajduje i wypisuje ich pełną ścieżkę, dodając potrzebne przedrostki 'AddFiles.......' Step by step: 1. Utwórz sobie na pulpicie nowy folder o dowolnej nazwie i wrzuć do niego skrypt oraz foldery 'models' i 'materials' ze strony CSGO Models, lub dowolnej innej, której modele mają mnóstwo pomniejszych plików 2. Wejdź do folderu i odpal skrypt 3. Skopiuj wynik 4. elo Przykładowo, przeprowadzając tę procedurę na tym modelu otrzymałem następujący wydruk z konsoli: run.py
  18. Wiadomość wygenerowana automatycznie Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie. Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.
  19. Może problemy z hostingiem? Na Twoim miejscu ticketa bym wysłał do nich zapytaniem - może coś zaradzą...

O NAS Jesteśmy społecznością łączącą ludzi, którzy dzielą pasję poznawania CS:GO od strony programistycznej. Posiadamy duże zaplecze merytoryczne i zawsze cieszymy się, gdy dołączają do nas osoby gotowe do nauki. Gwarantujemy, że z odrobiną wytrwałości i otwartym umysłem bardzo szybko napiszesz swój pierwszy plugin. Zapraszamy! 🙂
Szablon wykonany z dużą ilością przez cyberpixelz / Mesharsky / Sitefuture
Forum dumnie napędzane przez: Invision Power Services, Inc.
×
×
  • Create New...