Skocz do zawartości

Winnetou

Użytkownik
  • Zawartość

    101
  • Rejestracja

  • Ostatnia wizyta

O Winnetou

  • Tytuł
    Początkujący

Informacje profilowe

  • Płeć
    Mężczyzna

Informacje o serwerze

  • Typ serwera
    Nie wybrano

Ostatnie wizyty

939 wyświetleń profilu
  1. Witam. Czym się różni gamemode of Filterscrpits? Wiem tylko, że gamemode może być uruchomione tylko 1, a filterscipts chyba 16. Ale czym to się od siebie w praktyce różni? Czy może inaczej: Kiedy warto używać filterscipts? Bo ja np. wszystko co do tej pory napisałem mam w gamemode oraz zaincludowanych do niego plikach .inc. Z góry dzięki za pomoc.
  2. Winnetou

    [ROZWIĄZANY]Brama :/

    Co prawda możesz użyć gotowego include z filmiku Nicka888Samp, ale niczego się nie nauczysz. 1. Po pierwsze musisz sprawdzić czy jesteś w pobliżu któregoś ze szlabanów: CMD:szlaban(playerid) { if(GetPlayerDistanceFromPoint(playerid, 1286.33936, 1074.55664, 9.72740) < 10 ) //czyli jeśli odległość od bramy1 jest mniejsza niż 10m { //otwieramy bramę1 } if(i tutaj sprawdzasz czy odległość od drugiej bramy jest mniejsza niż 10m) { //otwieramy bramę2 } return 1; } Musisz jeszcze sprawdzić czy nie jest już przypadkiem otwarta. W tym celu na górze kodu tworzysz dwie zmienne: bool Brama1Open = false; oraz bool Brama2Open = false; I teraz miejscu gdzie napisałem "otwieramy bramę1" wstawiasz: if(Brama1Open) //czyli jeśli jest otwarta { 1. za pomocą funkcji SetObjectRot ustawiasz jej przechylenie na zamkniętą 2. Ustawiasz zmienną Brama1Open = false; } else //czyli jeśli jest zamknięta { 1. za pomocą funkcji SetObjectRot ustawiasz jej przechylenie na otwartą 2. Ustawiasz zmienną Brama1Open = true; } I to samo robisz dla bramy2. Powinno działać, jednak brama "przeskoczy" z pozycji otwartej do zamkniętej. Jak chcesz żeby przechodziło płynnie musisz użyć timerów, które powiedzmy co 10ms będą ją przechylać o 1 kąt.
  3. Winnetou

    [PYTANIE] Da się zrobić tablicę w komórce w MySQL?

    Nie mam pojęcie co to jest
  4. Witam, mam 2 krótkie pytania, wszystkie dotyczące stringów. 1. Stąd zauważyłem, że maksymalna długość textu w GUI to 2048 znaków. Jak wpisać tak długi text do GUI, skoro słyszałem, że maxymalny rozmiar stringu w Pawn to 498 znaków? 2. Jak to w końcu jest z tymi stringami? Ja sobie zrobiłem kilka stringów globalnych (string100[100], string200[200], string300[300], string450[450]) i używam tylko ich, nie używam prawie żadnych stringów lokalnych. Kiedyś czytałem opinię jakiegoś doświadczonego pawnera z tego forum (chyba Mr Auto, ale nie jestem pewien), że w PAWN lepiej robić tablice globalne, zamiast mnóstwa lokalnych. I tutaj pojawia się moje pytanie, czy nie lepiej zrobić po prostu jeden duży globalny string "new JEDYNY_STRING[498]" i używać tylko jego? (z wyjątkiem sytuacji, gdzie w jednym momencie trzeba użyć dwóch różnych) Czy będą jakieś problemy z optymalnością jeśli do kilkunasto-znakowych stringów będę używał tak dużej tablicy?
  5. Witam. Mam krótkie pytanie. Jak np. mam tabelę "Frakcje", gdzie mam zapisane np. w jednej kolumnie nazwę jako string, w drugiej ID jako int itd., to czy można w jakiejś kolumnie zrobić tablicę? Chodzi o to, że np. chciałbym żeby w bazie zapisane były też wszystkie skiny jakich frakcja może używać. Nie będę przecież robił, takiej struktury: (string) Nazwa (int) ID (int) skin1 (int) skin2 (int) skin3 (int) skin4 (int) skin5 (int) ........ Nie można by w jednej kolumnie zrobić tablicy? O ile przy skinach jeszcze jakoś by to poszło, bo byłoby max 20 takich kolumn, to nie wyobrażam sobie, jak miałoby to wyglądać np. przy systemie przedmiotów, gdzie musiałbym zrobić tak wiele komórek.
  6. Winnetou

    Errory MySQL

    Wiem, że odkop, ale podam tutaj info jak ja sobie poradziłem z tym problemem, w razie gdyby ktoś np. to wygooglował (tak jak ja) ;p Przed mysql_store_result(); zapomniałem dać mysql_query(string);
  7. Winnetou

    Operacje bitowe

    Dzięki wielkie Bardzo mi pomogłeś. Jeśli możesz i ci się chce, to odpowiedz jeszcze na dwa pytania, a będę spełniony 1. Tak przeliczając na system dziesiętny, to zrobienie x>>n spowoduje podzielenie x przez 2 do potegi n. Co w takim razie w "naszym dziesiątkowym języku" zrobi x>>>n? 2. 2a. Czyli przy mniejszych liczbach nie ma różnicy? 2b. Jaka różnica występuje przy przekroczeniu zakresu integera?
  8. Winnetou

    Operacje bitowe

    Wyszło mi coś takiego: FFFFFFFF 7FFFFFFF 11111111111111111111111111111111 01111111111111111111111111111111 Mógłbyś wytłumaczyć? Bo nie bardzo mogę to rozgryźć
  9. Winnetou

    Operacje bitowe

    Mam pytanie. Na forum samp-wiki znalazłem coś takiego: enum Door { DOOR_HOOD, DOOR_TRUNK, DOOR_DRIVER DOOR_PASSENGER } enum DoorState(<<= 1) { IS_OPENED = 1, IS_DAMAGED, IS_REMOVED } stock GetDoorState(doorStates, Door:door, DoorState:doorState) return (doorStates >>> (8 * door)) & doorState; Mam pytanie. Co oznaczają trzy znaki większości? To ma coś wspólnego z operacjami bitowymi?
  10. Winnetou

    Malutki problemik

    Wklej tutaj kod (jak nie wiesz gdzie jest ten fragment to wyszukaj w tekście frazę "PLN")
  11. Winnetou

    Czy mozna jakoś uniknąć zapłaty za mandat za parkowanie

    U nas np. jest taka sytuacja, że znak "strefa zamieszkania" jest tylko z jednej strony, a jak wjeżdżasz od drugiej strony to go nie ma. Jak ci chcą wystawić mandat, to mówisz, że przyjechałeś z tamtej strony ;p
  12. Winnetou

    Problem z pobieraniem lokalizacji

    Ehh... tu nie ma co tłumaczyć, tak podstawowej wiedzy, skoro są już do tego świetne poradniki. Wejdź na youtube i wpisz Sim00n Pawn i oglądaj po kolei. Tłumaczy naprawdę zwięźle i krótko. (zaraz poleci na mnie fala hejtu, ale...) trzymaj się z daleka od takich youtuberów jak np. Nick888Samp itp.
  13. Winnetou

    polaczenie

    Proszę bardzo, przeklej to sobie do Notepada++, albo jakiegoś innego ogarniętego środowiska, zanim zaczniesz to czytać stock FindBadSign(string[]) { new bool:z[1]; for (new i; i < strlen(string); i++) { switch(string[i]) //Lecimy po kolei z każdym znakiem, tego chyba, nie musze tłumaczyć (chyba, że muszę to napisz ;p) { case 'a'..'z': //jeśli znak to mała litera { z{0} = true; //to zaznaczamym że są małe litery continue; //i lecimy dalej w pętli case } case 'A'..'Z': //jeśli znak to duża litera { z{1} = true; //to zaznaczamym że są małe litery continue; //i lecimy dalej w pętli case } case '0'..'9': //jeśli znak to cyfra { continue; //to lecimy dalej w pętli } default: //jeśli znak jest inny niż: małe litery, duże litery, cyfry { return true; //to od razu przerywamy funkcję i zwracamy true (czyli, że string jest zły) } } } //jeśli przebrniemy przez całą pętle to znaczy, że nie ma znaków w stylu %#&(*&^% - inaczej program by się przerwał if(z{0} && z{1}) //sprawdzamy więc czy były zarówno małe jak i duże litery return false; //jeśli były to zwracamy false (czyli, że string NIE jest zły - czyli jest dobry ) return true; //a jeśli nie, to zwracamy true (czyli, że string jest zły). Zauważ, że nie potrzebujemy słowa "else", bo ta linijka i tak wykona się tylko, jeśli warunek if'a nie jest spełniony (bo jeśli byłby spełniony to funkcja przerwała by się na poprzednim returnie) }
  14. Winnetou

    [!] POMOCY ! Dziwne bugi przy logowaniu na serwerze [debug]

    właśnie nie wiem jak to wskazać. dodaję w kompilatorze to -d2 lub -d3 ale dalej nie wyświetla mi tej linii mnie natomiast, najbardziej zastanawia to: [debug] #1 000109fc in public OnDialogResponse (0, 18, 1, -1, 149368) dlaczego jako ostatni argument (czyli inputtext) wpisane jest 149368 skoro ja wpisuję jako hasło słowo "test"
  15. Siedzę nad tym już godzinę i nie mogę wykminić. Kiedy wchodzę na serwer, to po wpisaniu hasła w konsoli wywala mi takie bugi: [13:31:30] Number of vehicle models: 0 [13:32:04] [connection] (tutaj_ip) requests connection cookie. [13:32:05] Incoming connection: (tutaj_ip) id: 0 [13:32:05] [join] Przemek has joined the server (tutaj_ip) [13:32:08] [debug] Run time error 4: "Array index out of bounds" [13:32:08] [debug] Accessing element at index 513 past array upper bound 512 [13:32:08] [debug] AMX backtrace: [13:32:08] [debug] #0 00000ba0 in ?? (13560) from serwers.amx [13:32:08] [debug] #1 000109fc in public OnDialogResponse (0, 18, 1, -1, 149368) from serwers.amx wstawiam jeszcze: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DLogin: { if(!response) Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DLogin, DIALOG_STYLE_PASSWORD, "Logowanie", "Nie zostawiaj pola pustego!\nWpisz hasło aby się zalogować", "Rejestruj", "Anuluj"); format(u_string128, sizeof(u_string128), "%s%s", SHA256(inputtext), Gracz[playerid][pSol]); format(u_string64, sizeof(u_string64), "%s", SHA256(u_string128)); if(strcmp(Gracz[playerid][pHaslo], u_string64, false) == 0) { if(Gracz[playerid][pFlag] & pBan) { format(u_string490, sizeof(u_string490), "Twoje konto zostało zbanowane przez %s. Powód: %s", Gracz[playerid][pNadajacyBana], Gracz[playerid][pPowodBana]); SendClientMessage(playerid, czerwony, u_string490); SetTimerEx("Kickuj", 1000, 0, "d", playerid); } else { GivePlayerMoney(playerid, Gracz[playerid][pKasa]); SetPlayerScore(playerid, Gracz[playerid][pPunkty]); Gracz[playerid][pZleHaslo] = 0; printf("Gracz zalogował się: %s", Gracz[playerid][pName]); } } else { if(Gracz[playerid][pZleHaslo] == 2) { format(u_string490, sizeof(u_string490), "W celu zapewnienia bezpieczeństwa Twojego konta, zostałeś wyrzucony z serwera, za wpisanie 3 razy z rzędu niepoprawnego hasła."); SendClientMessage(playerid, czerwony, u_string490); SetTimerEx("Kickuj", 1000, 0, "d", playerid); } else { Gracz[playerid][pZleHaslo]++; SendClientMessage(playerid, czerwony, "Hasło niepoprawne. Spróbuj jeszcze raz lub wejdź na serwer pod innym nickiem."); ShowPlayerDialog(playerid, DLogin, DIALOG_STYLE_PASSWORD, "Logowanie", "Witaj na serwerze!\nPodaj hasło aby się zalogować", "Login", "Anuluj"); } } }
×