Jump to content

TobiPL

Użytkownicy
  • Content Count

    9
  • Joined

  • Last visited

Everything posted by TobiPL

  1. 1. Zwiększ limit na Avatar... mamy rok 2019 nie 1980 Nie musimy liczyć każdego bajta jak grosza do końca miesiąca a 100kb limitu to jakiś żart... //Edit: { co do tego, to są portale internetowe które udostępniają nawet GB użytkownikowi... patrz Google darmowe 15GB są tez inne strony, jeśli mnie nie myli pamięć to Mega daje aż 50GB darmowej przestrzeni... Google -> Free 15.000.000.000 Mega -> Free 50.000.000.000 Steam -> Free 20.000.000.000 Unit1 -> Free 100.000 a tutaj mamy 100 kb na avatara... GJ !... } 2. Unowocześnij wybór tematu do zachodnich... Kafelki są lepsza od listy !... - Więcej zobaczysz na tej samej stronie jako że kafelki są ustawione w 2 wymiarach a nie jednym - Kafelki mogą mieć ładne ikonki które poprawią styl forum 3. Dodaj lub ustaw jako default czarny motyw forum... Nie wiem was oczy nie bolą od standardowej bieli?... całe szczęście Google i Microsoft już to zrobiło jednak tak długo jak wszyscy nie będą się do tego stosować to wciąż muszę używać DarkReadera... 4. Dodaj nowe funkcje, coś ala CodeFights lub SoloLearn - Code Playground -> Miejsce gdzie każdy idiota może udostępnić swój kod... - Wyzwania jak w CodeFights -> gdzie nie każdy idiota ma szansę uzyskać poprawne wyniki... Zwiększysz tym samym zainteresowanie forum, przyda się też kilka śmieciowych tematów które po prostu utrzymają pseudointelektualnych użytkowników Nie wspominając o tutorialach... z tego co sam dostrzegłem na waszym forum to bardziej jest się karanym niż nagradzanym za zadanie pytania... nawet na trudne pytania powinna być odpowiedź a takie spotykają się z olewczą i wymijającą odpowiedzią zlewaniem lub ignorancją... 5. Ogarnij pisanie na tym forum... czemu akapity są tak wypierdolone w kosmos odstęp między liniami to jakieś 30px nie wspominając o braku niektórych funkcji... gdzie są najważniejsze SPOILERY? Możesz nie mieć ręki... możesz nie mieć nogi... i być zdrowy... ale jak nie masz spoilerów to jesteś kaleką... możliwość ukrycia niektórych rzeczy pod spoilerem jest bardzo przydatna... pozatym inne funkcje formatowania tekstu też by się przydały... tak widzę przyciski na górze... ponownie... mamy rok 2019 nie rok 1980... Jest sporo do poprawy i zrobienia... A wiesz co jest najlepsze?... że ostatni post jest z 2012 roku a ja to piszę w 2019... Nie zasługuję na złotą łopatę lub order kopacza... ten temat był na pierwszej stronie... Raz na forum gdzie byłem adminem spotkałem się z chujowym pomysłem od właściciela - Ej chłopaki piszemy tematy i sami sobie odpowiadamy z różnych userów - Po co?... - Aby forum nie było puste i aby ludzie zostali dłużej i aby gugly znajdowały forum... Kadra administratorska może robić sztuczny tłum, często coś takiego jest robione i często różne firmy są o to oskarżane... i powiem wam... słusznie są oskarżane bo jest to znana technika... cóż można to streścić w 2 słowach "Dodaj życie" Ok to widzimy się w 2032 !...
  2. Jesteście prawdziwą Perełką !... Lubię przeglądać nowości w programowania, każdego tygodnia wyszukują C++ Kurs oraz C++ Poradnik na YouTube i ustawiam filtr na ostatni tydzień Od niedawna zacząłem interesować się również forami... Jakim cudem jest tak wiele postów sprzed ponad 2/4 lat !... na pierwszych stronach są widoczne posty z 2013 roku... powinniście zareklamować skuteczniej swoje Formu :x... Co prawda ma sporo niedociągnięć oraz braków jednak wygląda zdecydowanie lepiej niż cpp0x czy inne beznadziejne fora... Jednak aby nie być oskarżonym o bezwartościowy post... to OK... Mam taki problem że mi to się nie kompiluje... Kompilator wywala błąd i nie umiem znaleźć powodu :)... ahh ja !... Ja !... CZEMU?... Ktoś mi odpowie?... jest to Język Skryptowy Papyrus dla Bethesdy... Scriptname QLG_Script_SwitchLight extends ObjectReference { Script to Light Up all Lights in List and turn them out after Time This script is created by TobiPL for Braverock 3 } Import Sound ;===- Base Info. -===; ;Created: 2019-03-17 ;Update: 2019-04-19 ;Author: TobiPL ;Unit: M.PC<1> ;===- Var. setup -============================================ Actor Property QPlayer Auto { Player Ref. } ;===- Items Var. -=============================== ;***********************************************; FormList Property QData auto { List of Used items << Order >> :0: - Light :1: - Light Effect :2: - Static :3: - Sound Marker } ObjectReference[] QDataArray Sound Property QSoundFireUp Auto { Sound to Play on fire activate } Sound Property QSoundFireOut Auto { Sound to Play on fire deactivate } Float Property QTurnOffDelay auto { Time in GameH to Off Light, 0.5 Mean 30 Min } Float Property QTrunOffMin Auto { Min. in GameH time to Off Light, after this use only Delay } GlobalVariable Property QDebug Auto { Global, true/false to show Debug Notifications ! please, use "QLG_DEBUG_SCRIPT" } ;================================================ ;===- Main Script -============================== ;***********************************************; Ev ent OnInit() If( QDebug as bool ) Debug.Notification( "Starting Initialization" ) EndIf ;*********************************; If( FirstUse ) Constructor() FirstUse = false EndIf If( QFired ) GoToState( "QState_Working" ) Else GoToState( "QState_Ready" ) EndIf ;*********************************; If( QDebug as bool ) Debug.Notification( "Initialization Finished" ) EndIf EndEvent;==- Var. List -==; Bool FirstUse = true ; ;*************************; State Wait ; Do Nothing EndState ;================================================ ;***********************************************; State QState_Ready Event OnTriggerEnter( ObjectReference QRef ) If( QRef != QPlayer ) Return EndIf If( QDebug as bool ) Debug.Notification( "Triggered QLG_Script_SwitchLight" ) EndIf QFired = true; GoToState( "QState_Working" ) QLFireUp() RegisterForSingleUpdateGameTime( QTurnOffDelay + QTrunOffMin ) EndEvent EndState;==- Var. List -==; ;*************************; Bool QFired = false; ; ;================================================ ;***********************************************; State QState_Working Event OnUpdateGameTime() If( QLUpdateFire() ) RegisterForSingleUpdateGameTime( QTurnOffDelay ) If( QDebug as bool ) Debug.Notification( "Update Fire, Fires left: " + AMT ) EndIf Else QFired = false; UnregisterForUpdateGameTime() GoToState( "QState_Ready" ) If( QDebug as bool ) Debug.Notification( "Fire out" ) EndIf EndIf EndEvent EndState;==- Var. List -==; ; ; ;================================================ ;***********************************************; Bool Function QLUpdateFire() Int Rand = QChain_GetRandomID() If( QDebug as bool ) Debug.Notification( "Fire Update, ID: " + Rand ) EndIf ObjectReference[] TempArray TempArray = new ObjectReference [ 4 ] ; Light, Effect, Static, Sound TempArray[ 0 ] = QDataArray[ 4 * Rand ] TempArray[ 1 ] = QDataArray[ 4 * Rand + 1 ] TempArray[ 2 ] = QDataArray[ 4 * Rand + 2 ] TempArray[ 3 ] = QDataArray[ 4 * Rand + 3 ] If( ( TempArray[0] ) || ( TempArray[1] ) || ( TempArray[2] ) || ( TempArray[3] ) ) Debug.Notification( "Fire Update, All Objects are Good" ) Else Debug.Notification( "Fire Update, Few Objects are Bad" ) EndIf QLPlayFireOut( TempArray ) QChain_RemoveID( Rand ) If( AMT == 0 ) Return False EndIf Return true EndFunction;==- Var. List -==; ; ; ;================================================ ;***********************************************; Function QLFireUp() ObjectReference[] TempArray TempArray = new ObjectReference [ 4 ] ; Light, Effect, Static, Sound Int DataSize = QData.GetSize() DataSize /= 4 Int i = 0 While ( i < DataSize ) TempArray[ 0 ] = QDataArray[ 4 * i ] TempArray[ 1 ] = QDataArray[ 4 * i + 1 ] TempArray[ 2 ] = QDataArray[ 4 * i + 2 ] TempArray[ 3 ] = QDataArray[ 4 * i + 3 ] If( ( TempArray[0] ) || ( TempArray[1] ) || ( TempArray[2] ) || ( TempArray[3] ) ) Debug.Notification( "Fire UP, All Objects are Good" ) Else Debug.Notification( "Fire UP, Objects are Bad" ) EndIf QChain_Add( i ) QLPlayFireUp( TempArray ) Utility.Wait( 0.1 ) i += 1 If( QDebug as bool ) Debug.Notification( "Fire Created, ID: " + i ) EndIf EndWhile EndFunction;==- Var. List -==; ; ; ;================================================ ;***********************************************; Function QLPlayFireUp( ObjectReference[] Data ) Int SoundTemp = QSoundFireUp.Play( Data[2] ) Data[0].Enable( true ) ; Enable Light Data[1].Enable( true ) ; Enable Effect Utility.Wait( 0.1 ) ; Wait Data[1].Disable( true ) ; Disable Effect Data[2].Enable( true ) ; Enable Static Data[3].Enable() ; Enable Sound Marker Utility.Wait( 0.2 ) ; Wait StopInstance( SoundTemp ) EndFunction;==- Var. List -==; ; ; ;================================================ ;***********************************************; Function QLPlayFireOut( ObjectReference[] Data ) Int SoundTemp = QSoundFireOut.Play( Data[2] ) Data[2].Disable( true ) ; Disable Static Utility.Wait( 0.3 ) ; Wait Data[0].Disable( true ) ; Disable Light Data[3].Disable( true ) ; Disable Sound Marker Utility.Wait( 0.3 ) ; Wait StopInstance( SoundTemp ) EndFunction ;========================================================== ;*******************************************************************; ;===- Class QChain -================================================= ;*******************************************************************; ;========================================================== ; Item Structure ; ; Int[] NextID ; Next Item ID Int[] PrevID ; Prev Item ID Int[] RefID ; Value to Object ID ;*******************************************; ; Free Strusture ; ; Int[] List ; List of Free IDs Int First ; First Free ID ;*******************************************; ; Var. List ; ; Int LastUsed ; Last Used Item Int FirstID ; First Item Int LastID ; Last Item Int AMT ; Amount Of Items Int Size = 32 ; Size of Array ;*******************************************; ;================================================ ;***********************************************; Int Function QChain_GetRandomID() Int Temp = FirstID Int Rand = Utility.RandomInt( 0 , AMT ) Int i = 0 While ( i < Rand ) Temp = NextID[ Temp ] i += 1 EndWhile Return RefID[ Temp ] EndFunction ;_______________________________________________; ;===============================================; ;***********************************************; Bool Function QChain_Add( int NewValue ) If( AMT == Size ) Return false EndIf int NewItemID = List[ First ] PrevID[ FirstID ] = NewItemID NextID[ LastID ] = NewItemID NextID[ NewItemID ] = FirstID PrevID[ NewItemID ] = LastID RefID[ NewItemID ] = NewValue LastID = NewItemID; First -= 1 AMT += 1 Return true EndFunction ;_______________________________________________; ;===============================================; ;***********************************************; Bool Function QChain_RemoveID( int ID ) If( AMT == 0 ) Return false EndIf int ItemID = FirstID Int i = 0 While ( i < AMT ) If( ID == ItemID ) AMT -= 1 First += 1 List[ First ] = ID NextID[ PrevID[ ItemID ] ] = NextID[ ItemID ] PrevID[ NextID[ ItemID ] ] = PrevID[ ItemID ] If( ItemID == FirstID ) FirstID = NextID[ ItemID ] EndIf If( ItemID == LastID ) LastID = PrevID[ ItemID ] EndIf Return true EndIf ItemID = NextID[ ItemID ] i += 1 EndWhile Return false EndFunction ;_______________________________________________; ;===============================================; ;***********************************************; Function Constructor() NextID = new Int [ 32 ] PrevID = new Int [ 32 ] RefID = new Int [ 32 ] List = new Int [ 32 ] QDataArray = new ObjectReference [ 128 ] Int T = 0 Int DataSize = QData.GetSize() While ( T < DataSize ) QDataArray[ T ] = QData.GetAt( T ) as ObjectReference T += 1 EndWhile First = Size - 1 Int i = 0 While ( i < Size ) List[i] = ( Size - i ) - 1 ; NextID[i] = 0; PrevID[i] = 0; RefID[i] = 1; i += 1 EndWhile AMT = 0; LastUsed = 0; FirstID = 0; LastID = 0; EndFunction ;***********************************************; ;=============- QChain Class END -==============; ;***********************************************; ; Hello I'm Tobi and my Sexy Cat is Nicole !...
  3. I co... znalazłeś kogoś? Ktoś był na tyle głupi by podać swój nr. tel przez internet? Jeśli to faktyczne pytanie o pomoc to zapisz je tutaj, gwarantuje że będzie łatwiej niż przez telefon.
  4. Jak się nazywało to coś... egh.. jak macie np. instalacje programu to na Win7+ macie na ikonce przesuwający się pasek migający czerwony dla errora lub zółty dla innych przypadków... Próbuję to znaleźć jednak moje twórcze nazwy niczego mi nie pomagają odnaleźć :c... Chodzi mi o te kolory na pasku szybkiego dostępu xD Jakieś nakierowanie link nazwa pod którą mogę znaleźć?... Kiedyś się tym bawiłem ale w programach moich też nic nie mogę znaleźć a zależy mi bo mam zamiar procesować sobie dużo a korzystanie z Beep jako sygnału że program skończył pracę jest... :c... Nieprofesjonalne !... Chociaż jak oglądam film na YouTube to migającej ikonki nie zobaczę, więc w sumie Beep jest bardziej praktyczne... w każdym razie chcę te kolorowe ikonki !... ktoś wie jak to się nazywało ? xD
  5. W odpowiedzi na ten temat: SetPixel jest powolny jednak istnieją dużo lepsze metody które pozwalają ci uzyskać nawet dużą wydajność... Mało tego zobacz ten kanał na YT: https://www.youtube.com/watch?v=LPzyNOHY3A4 Aby mieć możliwość szybkiego renderowania tak jak chciałeś np. z tylko WinApi ( Windows.h ) BitBlt( Uchwyt , X , Y , Xs , Ys , BitMapa, 0 , 0 , TypRysowania ) Aby móc rysować musisz mieć uchwyt do okna które stworzysz, co za tym idzie... musisz mieć okno... a przynajmniej jakiś uchwyt... W taki sposób zdobędziesz uchwyt do konsoli - przynajmniej nie muszę cie uczyć jak się robi okno :)... HANDLE Console = GetStdHandle(STD_OUTPUT_HANDLE); HWND ConsoleWindow = GetConsoleWindow(); HDC ConsoleDC = GetDC(ConsoleWindow); w HDC będziemy mieli nasze Uchwyt który pozwoli nam rysować na konsoli, uważaj jednak bo Cout będzie zamalowywać nasz rysowany obraz... więc oczywiście nie warto wtedy używać Couta, jak się nauczysz SAM robić okno dla WinApi będziesz mógł zamienić konsolę na okno :)... To pozwoli ci korzystać z CallBacków więc dużo nowy opcji i możliwości !... Wracając do tematu, będziesz musiał stworzyć teraz sobię tablicę intów które będą KOLORAMI unsigned int Pixele[ RozdzielczoscX * RozdzielczoscY ]; W taki sposób, pamiętaj że ustawiasz wartości w RGB Jeśli zrobisz np. Pixele[ 0 ] = 0xFF00FF; to ustawisz pixel w lewym gónym rogu na różowy czyli kolor 0xFF00FF Nie będę cie wszystkiego uczył, korzystaj z google jak nie ogarniasz ja tylko daję podpowiedzi... Jak stworzysz już tablicę która będzie przechowywać pixele stwórz Bitmapę BITMAPINFO PixelMap; To będzie nasz obiekt który będziemy wysyłać do funkcji BitBlt która narysuje nam ją na konsoli... Wypełnij wartości: PixelMap.bmiHeader.biSize = sizeof(BITMAPINFO); PixelMap.bmiHeader.biWidth = RozdzielczoscX; PixelMap.bmiHeader.biHeight = -RozdzielczoscY; PixelMap.bmiHeader.biPlanes = 1; PixelMap.bmiHeader.biBitCount = 32; PixelMap.bmiHeader.biCompression = BI_RGB; PixelMap.bmiHeader.biSizeImage = 0; PixelMap.bmiHeader.biXPelsPerMeter = 0; PixelMap.bmiHeader.biYPelsPerMeter = 0; PixelMap.bmiHeader.biClrUsed = 0; PixelMap.bmiHeader.biClrImportant = 0; PixelMap.bmiColors[0].rgbBlue = 0; PixelMap.bmiColors[0].rgbGreen = 0; PixelMap.bmiColors[0].rgbRed = 0; PixelMap.bmiColors[0].rgbReserved = 0; Ustaw biHeight na negatywie aby rysować od góry do dołu, jak zostawisz na pozytywie czyli BEZ MINUSA to będziesz rysować od dołu do góry czyli do góry nogami wszystko będzie... Ale prawdę mówiąc to tylko kwestia spojrzenia ponieważ od ciebie będzie zależeć jak będziesz rysować... Nową Bit mapę tworzymy tak: HBITMAP BitMapa; Potem musimy stworzyć sobie coś takiego a wynik funkcji zapisać do naszej BitMapy CreateDIBSection( Uchwyt, BitMap Info ,DIB_RGB_COLORS, Tablica pixelów ,NULL,0); Uchwyt to nasza konsola - na górze masz ( ConsoleDC czy jakoś tak powinno być w moim przykładzie już nie pamiętam xD ) BitMap Info to nasza PixelMap-a którą też stworzyliśmy wyżej, Tablica pixelów to nasz Unsigned Int Pixele[] resztę zostaw nie ruszoną... powinno to wyglądać tak: BitMapa = CreateDIBSection( ConsoleDC,&PixelMap,DIB_RGB_COLORS,(void**)&TablicaPixelow,NULL,0); W taki sposób stworzyliśmy sobie coś na czym możemy rysować... teraz tylko zaznaczamy to czy też wybieramy funkcją Select HDC PixelMapDC = CreateCompatibleDC(NULL); SelectObject(PixelMapDC,BitMapa); Teraz funkcja BitBlt wyświetli nam to co jest zapisane w naszym TablicaPIxelów jako obrazek na ekranie... BitBlt(ConsoleDC,0,0,RozdzielczoscX,RozdzielczoscY,PixelMapDC,0,0,SRCCOPY); Nie wiem czy pisałem to napiszę jeszcze raz: pierwsze to Uchwyt GDZIE chcemy rysować te dwa zera po ConsoleDC do kordy GDZIE ma być LEWY GÓRNY RÓG OBRAZKA RozdzielczoscX oraz Y to wiadomo WYMIARY NASZEGO OBRAZKA PixelMapDC to BitMapa uchwyt do naszego zbioru pixelów kolejne 0,0 to już nie pamiętam a i tak nigdy tego nie zmieniam xD ostatnie to TRYB rysowania, SRCCOPY zamieni stare pixele na NOWE, są też inne tryby rysowania ale nie polecam się nimi bawić zanim nie ogarniesz jak to wszystko działa... od teraz możesz bez problemu rysować sobie to co tylko chcesz !... To mój programik zrobiony... MNIEJ WIĘCEJ tą samą metodą... Oczywiście nie obedzie się bez przeszukiwania Google, nauczenie tak w "locie" robienia grafiki od zera... bo to cie prawdopodobnie interesowało widząc w poście SetPixel-a jest dość złożonym problemem :c... Tu masz np. Funkcję która rysuje koło: void QLDrawCircle(int ym, int xm, int r,unsigned int color) { int x = -r, y = 0, err = 2-2*r; do { JDraw(xm+y, ym-x, color); JDraw(xm-x, ym-y, color); JDraw(xm-y, ym+x, color); JDraw(xm+x, ym+y, color); r = err; if (r <= y) err += ++y*2+1; if (r > x || err > y) err += ++x*2+1; } while (x < 0); } Poszukaj sobie w internecie Breshman-owych algorytmów znajdziesz bez problemu funkcje do rysowania koła lini elips i dużo więcej jak nauczysz się conieco to potem możesz przejść na grafikę 3D Jej nauczysz się szybko z pierwszego kanału który ci tam na górze dałem OneLoneCoder wyszukaj w YT Jeśli ktoś potrzebuje kontaktu: YouTube/User/PanTobiPL PanTobiPL@GMail.com Jeśli ktoś chce ulepszyć mój post zamieść poniżej odpowiedź a jeśli jeszcze korzystam z tego forum to wprowadzę poprawki do mojego posta... kurde rozpisałem się tu, 40 minut poszłoooo :o...
  6. Nie mam zamiaru czytać twojego kodu... to jakaś porażka... ale cóż są różni ludzie... mnie dla przykładu za dbałość i szczegółowość wielu też obraziło mówiąc że kod nieczytelny... nie wiem po co ci te dyrektywy na początku in out struct{ string Pytanie, Odpowiedz[4]; int DobraOdpowiedz; }ListaPytań[]={ { "Ile to 2+2?...", " a) 4", " b) 7?", " c) Cebula", " d) Nie wiem...", 0 }, { "Czy woda jest mokra?...", " a) Nie !...", " b) Tak !...", " c) Chyba...", " d) Czasami.", 1 }, { "W którym roku był chrzest Polski?...", " a) 2011", " b) -37", " c) Nie Wiem, i jestem na tyle głupi by wybrać tą odpowiedź zamiast strzelać !...", " d) 966", 3 }, } Nie uważasz że tak wygląda lepiej?... Przy okazji: //int tablica [4][3] 5 pytan 4 odpowiedzi To będą 4 Pytania i 3 Odpowiedzi, co prawda numerowanie jest od 0 jednak ilość podajemy... normalnie... lol... int Array[5] = Array[0], Array[1], Array[2], Array[3], Array[4] ( Czyli 5 Elementów od 0 do 4 ) podajemy ILOŚĆ w tych nawiasach ile potrzebujemy elementów tego typu... //Edit: Potrzebujesz kontaktu do mnie: YouTube/User/PanTobiPL lub PanTobiPL@GMail.com
  7. Po opisie widzę że poradnik Zelenta co zniechęca mnie do pomocy tobie, cóż... 1. Czy masz to napisane jako: #Include <iostream.h> Jeśli zapisałeś to bez .h to, to może być problemem... oczywiście domyślam się że odnalazłeś GCC dla CB tak jak było na filmie Zelenta... 2. Czy twój plik to .cpp czy .c ?... upewnij się że jest .cpp Main.cpp 3. Upewnij się czy aby na 100% kompilujesz dla C++ =_=... Jeśli chcesz to zapraszam na np. CodeFights, jedyne dobre miejsce gdzie można nauczyć się programować ponadto nie wymaga od ciebie instalacji żadnego kompilatora bo wszystko możesz skompilować przez stronę... przynajmniej do czasu aż się uczysz bo strona dużego projektu ci nie skompiluje... CodeFights to jedyne miejsce gdzie można się dobrze nauczyć programować... tylko jest po Ang. Znajdziesz to tutaj: https://app.codesignal.com/ Kontakt do mnie jeśli potrzebujesz: YouTube/c/PanTobi lub YouTube/User/PanTobiPL PanTobiPL@GMail.com Sprawdź te 3 punkty które ci napisałem i powiedz czy problem dalej jest czy już nie... w skrócie: 1. Czy masz zapisane "#Include <iostream.h>" 2. Czy masz plik jako "Nazwa.cpp" 3. Czy kompilujesz pod C++
×
×
  • Create New...