problem z getchar.

problem z getchar.
DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Witam wszystkich.
Jest to mój pierwszy post na tym forum i pewnie nie ostatni.
Moim celem jest napisanie własnego programu... tak zwanego bota do gry.
Oczywiście wiem to, że trzeba zaczynać od podstaw i poświęcić bardzo dużo czasu.
Oglądam na youtube jakieś podstawy... robię wg. poradnika i gdy przychodzi czas na
wpisanie "getchar();" pojawia się problem. Nawet nawias po spacji dawałem i też nie działa.
user image
http://www.dropmocks.com/mBiI_t
Tak to wygląda.
Proszę o pomoc. Dziękuję i pozdrawiam.
Z poważaniem ;)

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

http://www.cplusplus.com/reference/clibrary/cstdio/getchar/
Odpowiedź brzmi: jak używasz jakiejs funkcji to musisz wiedzieć w jakiej jest bibliotece! W tym przypadku jest to cstdio


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
KU
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:166
0

Ughhhh.... Dlaczego nie wkleiłeś kodu zamiast linków do obrazków?
Dlaczego nie napisałeś na czym polega problem (jaki jest komunikat błędu)?

W iostream nie ma funkcji getchar(). Musisz zaincludować stdio.h, albo użyć czegoś specyficznego dla C++ (koledzy zapewne pomogą w tej kwestii).

EDIT: ...albo dołączyć cstdio jak Shalom zaproponował :D

edytowany 1x, ostatnio: Kumashiro
Flaker
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 5 lat
  • Postów:98
0

Jeśli już korzystamy z iostream i strumieni w ogóle, to lepiej w tej sytuacji użyć cin.get(). Ono także w tej sytuacji nie wymaga załączania żadnej dodatkowej biblioteki.

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Nie bardzo łapie ; D
Z tego co rozumiem używam 'iostream', a powinienem używać 'stdio.h'.
Jak to zmienić?

KU
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:166
0

Nie. Używasz iostream, a powinieneś iostream i cstdio :)

Kopiuj
#include <iostream>
#include <cstdio>
edytowany 2x, ostatnio: Kumashiro
CI
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 10 lat
0

Zacznij od jakiegoś kursu od podstaw. Wiesz w ogóle do czego służy dyrektywa #include ? Albo książki, albo coś typu "od zera do gier kodera".


DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Dzięki wielkie za pomoc! :)
Patrzyłem na youtube jak to zrobić i facet pisał tylko
#include <iostream> :)
Nie wiem zatem jak mu to wyszło poprawnie.
Jeszcze raz wielkie dzięki :D :)

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Próbuję zrobić kalkulator.
wygląda tak:

Kopiuj
 #include <iostream>
#include <cstdio>

using namespace std;

int main()
{

	cout << "Kalkulator \n\n";
	
	while(true)

	cout << "wpisz dzialanie: ";

		double liczba1;
		double liczba2;
		char znak_operator;
		double wynik;
		
		cin >> liczba 1 >> znak_operator >> liczba2;
		
		if (znak_operator == '+')
	}
 {
        /*      daneST zmienna; -> błąd kompilator nie wie co to jest - 
            error: `daneST' was not declared in this scope */
        using jakasNazwa::zmienna;
        cout << zmienna;
    }
{
	
  wynik = liczba1 + liczba2;
                cout  << "Wynik: " << wynik << endl
                 							<< endl;
}
else if (znak_operator=='*')
a powinno byc:
else if (znak_operator=='/')
i w? 35 rowniez jest blad poniewaz jest:
wynik=liczba1-liczba2
a powinno byc:
wynik=liczba1/liczba2    
       }
}

system ("pause")
return 0;

Problem jest [Error] 'liczba' was not declared in this scope.

Idzie go jakoś naprawić? W czym mam błąd ?

CI
Nie ma średnika po system("pause") i sformatuj jakoś sensownie ten kod, bo się tego nie da czytać. Jak wstawiasz na forum to użyj <code=cpp>...</code>. Jak komentujesz kod, to wstawiaj w nim // lub /* */.
MH
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 13 lat
  • Postów:3
1
Kopiuj
cin >> liczba 1 >> znak_operator >> liczba2;

Jak tak szybko na to spojrzałem to " spacja " Ci się wkradła pomiędzy liczba i 1 ... dlatego traktuje jako osobną niezadeklarowaną zmienną :>?

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Powiedzcie mi... da rade właśnie w C++ napisać tzw. bota ? http://4programmers.net/Forum/C_i_C++/196941-problem_z_getchar?mode=submit
Chodzi mi o to, by się przemieszczać w grze po jakimś małym polu, by atakował moby i by używał heal.
np. bym mógł w nim zaznaczyć 4 miejsca, po jakich ma chodzić i gdy pojawi się jakaś bestia, by ją zaatakował i klikał np '1/2/3'-skille... a gdy życia/many mniej niż X by nacisnął np '5/6'
Da się coś takiego zrobić?
Jakieś wskazówki ??

KU
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:166
0

Ale w jakiej grze? A zresztą, to mi wygląda na chęć botowania w MMO, co jest nidozwolone. Jeśli tak i nie masz czasu żeby grać, to nie graj. Farmienie botem jest nie fair wobec innych graczy.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

@DroniC czy się da? Tak, ale miną pewnie miesiące zanim ogarniesz się na tyle żeby coś takiego napisać.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

gra: Aion :D
jak dla mnie może to trwać i rok. Zawsze się czegoś nauczę. Takim celem jak na razie jest bot.
Bot byłby tylko dla mnie ; p nikomu bym go nie udostępniał.
Problem w tym, że nie wiem od czego zacząć naukę i co konkretnie będzie mi potrzebne, hah ;D

KU
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Postów:166
1
DroniC napisał(a)

Bot byłby tylko dla mnie ; p nikomu bym go nie udostępniał.

I naprawdę uważasz, że jeśli bota będziesz używał tylko Ty, to będzie wtedy fair? To tak, jakbyś zapytał nas jak napisać aimbota do BF3 i że będziesz go używał tylko Ty, więc luz...
Wybacz, ale sam gram w grę MMO, która do niedawna cierpiała z powodu botów farmiących złoża i uważam, że osoby które się tego dopuszczają powinne dostać permban na wszystkie gry MMO. Jeśli masz 12-16 lat, zajmij się czymś pożyteczniejszym. Jak jesteś starszy, dorośnij.

edytowany 1x, ostatnio: Kumashiro
CI
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 10 lat
0
DroniC napisał(a)

Problem w tym, że nie wiem od czego zacząć naukę i co konkretnie będzie mi potrzebne, hah ;D

Jest "szukajka", ale jak Ci się nie chce, to podpowiem.

  1. Jakieś IDE, polecam Code::Blocks.
  2. Materiały - książki, kursy, etc.

Jeśli chodzi o książki, to np. "C++ Ćwiczenia praktyczne" A. Stasiewicz, "C++ dla każdego", "Thinking in C++", "Język C++. Szkoła programowania. Wydanie V". To jeśli chodzi o podstawy, później sam będziesz wiedział, czego chcesz, o ile nie zrezygnujesz. Jeśli chodzi o "kursy" w internecie, to np. www.google.pl/search?q=od+zera+do+gier+kodera .

  1. Chęci, motywacja. :)

KR
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
1
Kumashiro napisał(a)

I naprawdę uważasz, że jeśli bota będziesz używał tylko Ty, to będzie wtedy fair? To tak, jakbyś zapytał nas jak napisać aimbota do BF3 i że będziesz go używał tylko Ty, więc luz...
Wybacz, ale sam gram w grę MMO, która do niedawna cierpiała z powodu botów farmiących złoża i uważam, że osoby które się tego dopuszczają powinne dostać permban na wszystkie gry MMO. Jeśli masz 12-16 lat, zajmij się czymś pożyteczniejszym. Jak jesteś starszy, dorośnij.

Oj tam, moze i nie fair, ale bardzo sie przydaje ;) Sam w sumie zaczynalem nauke z celem pisania botow i w sumie sie udalo ;p

Jesli serio myslisz o botach to nauki sporo. Zeby cos lepszego zrobic to trzeba znac asm, w miare przyzwoicie(do pisania bypassow). Ogarnac olly, zakladanie hookow na funkcje. Obsluga pakietow, grzebanie w pamieci procesu, dll inject, samo c++ to najmniejsze zmartwienie. Zapal po paru dniach i tak Ci przejdzie zapewne.

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Okej, dzięki ;D Tyle tego, że aż nie wiem od czego zacząć.
Na jakiej zasadzie będzie to polegać?
Np. takie uleczanie się w grze ; p
Chodzi o to, by jakoś bota połączyć z tą grą.
Co to jest to 'bypass'? ;]
Krycho. Mówisz, że Ci się udało.... Ile czasu poświęciłeś na naukę?:]

KR
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
0

Bypassy to ogolnie rzecz biora obejscia do hackshieldow, bo to jest najtrudniejsza czescia calej "zabawy". Samo pisanie bota to juz ta przyjemniejsza czesc. Ja akurat studiuje informatyke, wiec duzo rzeczy nauczylem sie stad, reszte samemu z roznych tutoriali. Google chetnie pomoze we wszystkim.

Leczenie jest proste. znajdujesz adres w pamieci gry ktory przechowuje stan zdrowia, robisz sobie watek sprawdzajacy co chwile stan zdrowia jesli spadnie, wysylasz do gry sygnal uzycia medycynki czy cus.

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Ja też informatyka... 1 lvl w Newham College xd
Czego się uczę? Właściwie to niczego.
Skoro na szkole nie mogę polegać i w niej nic się nie mogę nauczyć postanowiłem, że biorę sprawy poniekąd we własne ręce i nauczę się czegoś poza szkołą.

"Leczenie jest proste. znajdujesz adres w pamieci gry ktory przechowuje stan zdrowia, robisz sobie watek sprawdzajacy co chwile stan zdrowia jesli spadnie, wysylasz do gry sygnal uzycia medycynki czy cus."

Jak mam to znaleźć? :)
Otwierać każdy plik po kolei w notatniku i ctrl+f i wpisywać health?? ; p

CI
Chyba bardziej w hex, ale strzelam...
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@DroniC ty masz chociaż jakieś wątłe pojęcie o tym jak działają programy na poziomie asemblera? o_O Jakie znów pliki? Przecież tu chodzi o dane które są w pamięci procesu gry a nie w jakichś plikach...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

szczerze?
Nie, nie mam pojęcia ;d
W jaki sposób mam to znaleźć w tej pamięci gry ? ; o

JA
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:Białystok
  • Postów:258
2

Z całym szacunkiem, ale ale chyba się ktoś tu nad autorem pastwi.

@DroniC, czytaj uważnie co tu jest napisane.

Zanim będziesz zdolny napisać takiego bota miną miesiące, zwłaszcza, że póki co prawie nie masz o niczym pojęcia z tej dziedziny. Programowanie to nie jest "hop-siup,magiczne instrukcje i napisane". Na razie naucz się po prostu języka. Może być C++. Opanujesz podstawy, opanujesz rzeczy średnio zaawansowane - będziesz wtedy miał na tyle wiadomości, że będziesz wiedział czego w ogóle szukać, żeby się zabrać za tego bota (pomijając kwestię legalności, moralności, bo to nikogo nie powinno obchodzić) - po drodze dowiesz się co to jest assembler, jak działają programy komputerowe, jak istnieją w pamięci procesy - ale nie zrobisz tego w godzinę. Musisz poświęcić na to dużo czasu, chęci, sił - wtedy Ci się uda, jeśli nie zniechęcisz się po pierwszych tygosniach, miesiacach nauki. Nie próbuj na razie nawet wybiegać tak daleko w przód - powoli realizuj podstawy, nie poddając się. Jeśli będziesz chciał od razu rozwiązać swój problem, to utkniesz na samym słownictwie - sprawdzając co to bypasssy będziesz musiał sprawdzić co to hook, co to proces, co to asembler, co to pamięć i tak dalej, i tak dalej...

Powoli, systematycznie - tylko tak może ci się udać.

edytowany 1x, ostatnio: Jadeszek
H4
AutoIT jest lepszy dla początkujących, dowód na klikanie myszką: http://www.youtube.com/watch?v=jZfq219G9p8&amp;list=UUwoSn1flUt_Z9FGHqHaDIwg&amp;index=9&amp;feature=plcp Nie bawimy sie masakrycznym wysyłaniem wiadomości WM_MOUSEDOWN etc.
H4
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:107
0
Shalom napisał(a)

@DroniC czy się da? Tak, ale miną pewnie miesiące zanim ogarniesz się na tyle żeby coś takiego napisać.

Wystarczy pomysł ;)

Często MMO mają to do siebie, że mają jakiś hotkey na pobranie najbliższego celu (generalnie jest to tab), i potem wysyłamy do okna klawisz ataku (od 1 do 9 pewnie). Z HP i maną bawimy się za pomocą GetPixel.

To chyba najprostsza droga napisania bota, nie ma co się wgłębiać w DLL Injection bez podstawowej wiedzy

DroniC napisał(a)

szczerze?
Nie, nie mam pojęcia ;d
W jaki sposób mam to znaleźć w tej pamięci gry ? ; o

Nie dasz rady, nie bez znajomości działania tego u podstaw
Pewnie nadal Ci w głowie notatnik, więc nakieruję Ciebie bardziej - bo jesteś totalnie w błędzie.

Znajdź pierwszy lepszy filmik na youtube w stylu "Cheat Engine cheat", np.

Od razu mówię, że sam się na tym zbyt dobrze nie znam (asm), ale CE się bawiłem, i jest dużo prostszy niż OllyDbg, czy IdaPro

Koleś programem zmienia wartości zmiennych w procesie aplikacji. Otwiera proces programem, i je wyszukuje. Ty musisz zrobić to samo, tylko zamiast tak banalnych rzeczy musisz nauczyć się wyszukiwać adresy funkcji, by móc je potem przywołać.

Poucz się skutecznie C++ pare dni, i jak będziesz czuł sie na siłach to przejdź do wskaźników, a potem interesuj się tym co tu napisałem (i tak twoja wiedza pewnie będzie za mała, ale dopóki masz jakiś zapał to próbuj, bo i tak Ci zniknie pewnie :) )

Polecam na początek AutoIT, dużo prostszy od C++ (tam nawet nie ma typów zmiennych), a potem jak będziesz wymagał od siebie więcej zajrzyj do C++
AutoIT to chyba najłatwiejszy, i najbardziej przyswajalny język skryptowy dla newbies. Sam z nim zaczynałem i już mam go dosyć, dziwnie się czuję nie pisząc typów zmiennych, czy struktur

DC
  • Rejestracja:około 13 lat
  • Ostatnio:około rok
  • Postów:145
0

Mam AUTO IT... ale dzięki niemu chyba nie osiągnę tego co chcę : D

KR
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:353
0

Jesli chce pisac boty to lepiej niech sie uczy c++ i asma, zamiast tracic czas na autoit.

http://gynvael.coldwind.pl/?id=433

Bardzo przydatne tutoriale zrobione przez polaka na temat asma i RE. Ciekawie i fajnie tlumaczone. Sam sie z nich uczylem.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)